Pre-General Availability (一般提供前)バージョン: 2026-02-26

SolidityスマートコントラクトAPI

Oracle Blockchain Platform Enterprise Edition for Hyperledger Besuには、Solidityスマート・コントラクトの操作に使用できるSolidityメソッドが用意されています。

APIは、ERC-20標準およびERC-1155標準に基づくトークンをサポートしています。ERC-20およびERC-1155実装は、アカウントスマートコントラクトとトークンスマートコントラクトで構成されています。アカウント・スマート・コントラクトは、アイデンティティおよびアクセス制御方法を提供します。トークンスマートコントラクトは、トークンに特に関連する機能を提供します。

ERC-20アカウント契約方法

アカウント管理のメソッド

createAccount
このメソッドは、指定されたユーザーのアカウントを作成します。アカウントは、ユーザーのトークン残高と保留残高を追跡し、いつでもトークンを持つすべてのユーザーに対して作成する必要があります。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userId: string – ユーザーのユーザー名または電子メールID。ユーザーID文字列は空にできません。
  • orgId: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。組織IDは空にできません。
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • maxDailyAmount: int256– トランザクションで毎日使用できるトークンの最大量。maxDailyAmount-1の場合、制限はありません。
  • maxDailyTransactions: int256– 毎日完了できるトランザクションの最大数。maxDailyTransactions-1の場合、制限はありません。
deleteAccount
このメソッドは、指定されたユーザーのアカウントを削除します。アカウントを削除できるのは、トークン残高がゼロの場合のみです。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
getAccountStatus
このメソッドは、指定されたアカウントの現在のステータスを取得します。このメソッドは、指定された組織のToken AdminToken AuditorOrg Admin、または指定されたユーザーによってのみコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • enum AccountStatusオブジェクト、01または2の値。
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
このメソッドは、指定されたユーザーのアカウント情報を取得します。このメソッドは、指定された組織のToken AdminToken AuditorOrg Admin、または指定されたユーザーによってのみコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値の例:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50           
	},
	"status":0
}
getAllAccounts
このメソッドは、指定された範囲に含まれるすべてのアカウントのアカウント情報を取得します。このメソッドは、Token AdminまたはToken Auditorのみがコールできます。
パラメータ:
  • offset: uint256– アカウントを取得するオフセット索引。
  • limit: uint256– 取得するアイテムの数。
戻り値の例:
Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50           
	},
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
このメソッドは、ユーザー・アカウントをアクティブ化します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
suspendAccount
このメソッドは、ユーザー・アカウントを一時停止します。アカウントを削除するには、アカウント残高がゼロである必要があります。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
setMaxDailyAmount
このメソッドは、トランザクションで毎日使用できるトークンの最大量を設定します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • count: int256– トランザクションで毎日使用できるトークンの最大量。
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
setMaxDailyTransactionCount
このメソッドは、毎日完了できるトランザクションの最大数を設定します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • value: int256– 毎日完了できるトランザクションの最大数。
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。

管理者管理の方法

addTokenAdmin
このメソッドは、Token Adminとしてユーザーを追加します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • adminDetails: JSON– 次の例に示すように、Token Adminとして追加するユーザーの詳細を含むオブジェクト。
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
このメソッドは、ユーザーをToken Adminとして削除します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
getAllTokenAdmins
このメソッドは、Token Adminになっているすべてのユーザーのリストを返します。このメソッドは、Token AdminまたはToken Auditorのみがコールできます。
パラメータ:
  • なし
戻り値の例:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
このメソッドは、指定されたユーザーがToken Adminかどうかをチェックします。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • このメソッドは、指定されたユーザーがToken Adminの場合はtrueを返し、それ以外の場合はfalseを返します。
addOrgAdmin
このメソッドにより、ユーザーがOrg Adminとして追加されます。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • adminDetails: JSON– 次の例に示すように、Org Adminとして追加するユーザーの詳細を含むオブジェクト。
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
このメソッドは、ユーザーのOrg Adminを削除します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
getAllOrgAdmins
このメソッドは、Org Adminであるすべてのユーザーのリストを返します。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値の例:
[{
    "userId": "orgadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAdmin
このメソッドは、指定されたユーザーがOrg Adminかどうかをチェックします。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • このメソッドは、指定されたユーザーがOrg Adminの場合はtrueを返し、それ以外の場合はfalseを返します。

監査者管理方法

addTokenAuditor
このメソッドは、Token Auditorとしてユーザーを追加します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • adminDetails: JSON– 次の例に示すように、Token Auditorとして追加するユーザーの詳細を含むオブジェクト。
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
このメソッドは、ユーザーをToken Auditorとして削除します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
getAllTokenAuditors
このメソッドは、Token Auditorになっているすべてのユーザーのリストを返します。このメソッドは、Token AdminまたはToken Auditorのみがコールできます。
パラメータ:
  • なし
戻り値の例:
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
このメソッドは、指定されたユーザーがToken Auditorかどうかをチェックします。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • このメソッドは、指定されたユーザーがToken Auditorの場合はtrueを返し、それ以外の場合はfalseを返します。
addOrgAuditor
このメソッドにより、ユーザーがOrg Auditorとして追加されます。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • adminDetails: JSON– 次の例に示すように、Org Auditorとして追加するユーザーの詳細を含むオブジェクト。
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
このメソッドは、ユーザーのOrg Auditorを削除します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
getAllOrgAuditors
このメソッドは、Org Auditorであるすべてのユーザーのリストを返します。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値の例:
[{
    "userId": "orgAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAuditor
このメソッドは、指定されたユーザーがOrg Auditorかどうかをチェックします。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • このメソッドは、指定されたユーザーがOrg Auditorの場合はtrueを返し、それ以外の場合はfalseを返します。

ロール管理のメソッド

addRole
このメソッドは、指定されたユーザーにロールを追加します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • role: string – 指定したユーザーに追加するロールの名前。たとえば、minterburnerまたはnotaryです。
removeRole
このメソッドは、指定されたユーザーからロールを削除します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • role: string – 指定したユーザーから削除するロールの名前。たとえば、minterburnerまたはnotaryです。
accountHasRole
このメソッドは、ユーザーが指定されたロールを持っているかどうかをチェックします。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • role: string– 検索するロールの名前(minterburnerまたはnotary)のKeccak-256ハッシュ。
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • このメソッドは、ユーザーが指定したロールを持っている場合はtrueを戻し、それ以外の場合はfalseを戻します。

ERC-20トークン契約方法

トークン構成管理のメソッド

__ERC20Token_init
このメソッドは、トークン契約がデプロイされるときにコールされます。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • name: string– トークンの名前。
  • symbol: string– トークンの記号。
  • accountContract: address– アカウント契約の住所。
initializeERC20Token
このメソッドは、ERC-20トークンを初期化します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • token: JSON– 次の例に示すように、トークンを定義するオブジェクト。
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
このメソッドは、トークンの詳細を取得します。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値の例:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
decimals
このメソッドは、トークンの10進値を取得します。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値
  • 小数点以下の桁数のuint8値。
__ERC20Token_init
このメソッドは、トークン契約がデプロイされるときにコールされます。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • name: string– トークンの名前。
  • symbol: string– トークンの記号。
  • accountContract: address– アカウント契約の住所。
initializeERC20Token
このメソッドは、ERC-20トークンを初期化します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • token: JSON– 次の例に示すように、トークンを定義するオブジェクト。
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
このメソッドは、トークンの詳細を取得します。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値の例:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
cap
このメソッドは、最大トークン供給(cap)を取得します。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値
  • トークン供給キャップのuint256値。
balanceOf
このメソッドは、指定されたユーザーのトークン残高を取得します。このメソッドは、Token AdminToken AuditorOrg AdminOrg Auditor、または指定されたユーザーによってのみコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値
  • トークン残高のuint256値。
トークン動作管理 - ミント可能動作
mint
このメソッドは、トークン(分)を作成します。このメソッドは、minterロールを持つ任意のユーザーがコールできます。
パラメータ:
  • to: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • value: uint256– ミントするトークンの量。
batchMint
このメソッドは、一度に複数のユーザーのトークンを作成(分)します。このメソッドは、minterロールを持つ任意のユーザーがコールできます。
パラメータ:
  • toList: address[]– ユーザーのウォレット・アドレスのリスト。住所はゼロにできません。
  • amounts: uint256[]– ミントするトークンの量のリスト。
requestMint
このメソッドは、指定された量のトークンを作成するために、minterが公証人にリクエストを送信するために呼び出すことができます。
パラメータ:
  • notary: address– 公証人のウォレット・アドレス。アドレスをゼロにすることはできません。
  • amount: uint256– ミントするトークンの量。
  • expiration: uint256– リクエストの有効期限(エポック形式)。
  • opId: string– リクエストの操作ID。
  • info: InfoDetails– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。
approveMint
このメソッドは、ミント・リクエストを承認するために公証人によってコールできます。
パラメータ:
  • opId: string– リクエストの操作ID。
rejectMint
このメソッドは、ミント要求を拒否するために公証人によってコールできます。
パラメータ:
  • opId: string– リクエストの操作ID。

トークン動作管理 - バーン可能動作

burn
このメソッドは、トークンを非アクティブ化(バーン)します。このメソッドは、バーナー・ロールを持つ任意のユーザーがコールできます。
パラメータ:
  • account: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • value: uint256– 書き込むトークンの量。
batchBurn
このメソッドは、複数のユーザーのトークンを一度に書き込みます。このメソッドは、バーナー・ロールを持つ任意のユーザーがコールできます。
パラメータ:
  • toList: address[]– ユーザーのウォレット・アドレスのリスト。住所はゼロにできません。
  • amounts: uint256[]– 書き込むトークンの量のリスト。
requestBurn
このメソッドは、指定した量のトークンを書き込むリクエストを公証人に送信するために、バーナーによってコールできます。
パラメータ:
  • notary: address– 公証人のウォレット・アドレス。アドレスをゼロにすることはできません。
  • amount: uint256– 書き込むトークンの量。
  • expiration: uint256– リクエストの有効期限(エポック形式)。
  • opId: string– リクエストの操作ID。
  • info: InfoDetails– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。
approveBurn
このメソッドは、書込みリクエストを承認するために公証人によってコールできます。
パラメータ:
  • opId: string– リクエストの操作ID。
rejectBurn
このメソッドは、書き込み要求を拒否するために公証人によって呼び出すことができます。
パラメータ:
  • opId: string– リクエストの操作ID。

トークン動作管理 - 転送可能動作

transfer
このメソッドは、指定されたユーザーにトークンを転送します。このメソッドは、トークンを持つ任意のユーザーがコールできます。
パラメータ:
  • to: address– 受信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • value: uint256– 転送するトークンの量。
batchTransfer
このメソッドは、指定されたユーザー・リストにトークンを転送します。このメソッドは、トークンを持つ任意のユーザーがコールできます。
パラメータ:
  • toList: address[]– 受信者のウォレット・アドレスのリスト。住所はゼロにできません。
  • amounts: uint256[]– 転送するトークンの量のリスト。

トークン動作管理- 委任可能な動作

allowance
このメソッドは、トークン支出を指定されたユーザーに委任します。このメソッドは、トークンを持つ任意のユーザーがコールできます。
パラメータ:
  • owner: address– トークンの支出を委任している所有者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • spender: address– トークン・スペンダのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値
  • 支出のために委任されたトークンのuint256量。
approve
このメソッドは、指定された委任された依頼者のトークンの量を承認します。このメソッドは、トークンを持つ任意のユーザーがコールできます。
パラメータ:
  • spender: address– トークン・スペンダのウォレット・アドレス。アドレスをゼロにすることはできません。
  • value: uint256– 支出が許可されるトークンの数量。
transferFrom
委任された支出者は、この方法を使用してトークンを転送します。
パラメータ:
  • from: address– 送信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • to: address– 受信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • value: uint256– 転送するトークンの量。

トークン動作管理- 一時停止可能な動作

isPaused
このメソッドは、契約が一時停止されているかどうかをチェックします。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
pause
このメソッドは、契約を一時停止します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • なし
unpause
このメソッドは契約を再開します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • なし

トークン動作管理- 保留可能動作

hold
このメソッドは、トークン所有者のかわりに保留を作成します。このメソッドは、トークンを持つ任意のユーザーがコールできます。
パラメータ:
  • to: address– 受信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • notary: address– 公証人のウォレット・アドレス。アドレスをゼロにすることはできません。
  • amount: uint256– 転送するトークンの量。
  • expiration: uint256– リクエストの有効期限(エポック形式)。
  • opId: string– リクエストの操作ID。
  • holdType: string– 保持のタイプ。たとえば、transferです。
  • info: InfoDetails– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。
executeHold
このメソッドは、保留リクエストを承認します。このメソッドは、以前に指定された公証人によってのみコールできます。
パラメータ:
  • amount: uint256– 承認するトークンの量。
  • opId: string– リクエストの操作ID。
releaseHold
このメソッドは、保留要求を拒否します。このメソッドは、以前に指定された公証人によってのみコールできます。
パラメータ:
  • opId: string– リクエストの操作ID。
getOnHoldBalanceWithOperationId
このメソッドは、指定された操作IDの保留残高を返します。このメソッドは、指定された組織のToken AdminまたはToken AuditorOrg AdminまたはOrg Auditor、またはトランザクション参加者(送信者、受信者、公証人)によってコールできます。
パラメータ:
  • opId: string– リクエストの操作ID。
戻り値
  • 保留残高のuint256金額。
getAccountOnHoldBalance
このメソッドは、指定されたアカウントの保留残高を返します。このメソッドは、指定された組織のToken AdminまたはToken AuditorOrg AdminまたはOrg Auditor、またはトランザクション参加者(送信者、受信者、公証人)によってコールできます。
パラメータ:
  • account: address– アカウントのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値
  • 保留残高のuint256金額。

ERC-1155アカウント契約方法

アカウント管理のメソッド

createAccount
このメソッドは、指定されたユーザーのアカウントを作成します。アカウントは、ユーザーのトークン残高を追跡し、任意の時点でトークンを持つすべてのユーザーに対して作成する必要があります。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userId: string – ユーザーのユーザー名または電子メールID。ユーザーID文字列は空にできません。
  • orgId: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。組織IDは空にできません。
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
deleteAccount
このメソッドは、指定されたユーザーのアカウントを削除します。アカウントを削除できるのは、トークン残高がゼロの場合のみです。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
getAccountStatus
このメソッドは、指定されたアカウントの現在のステータスを取得します。このメソッドは、Token Adminまたは指定されたユーザーがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • enum AccountStatusオブジェクト、01または2の値。
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
このメソッドは、指定されたユーザーのアカウント情報を取得します。このメソッドは、Token Adminまたは指定したユーザーがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値の例:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}
getAllAccounts
このメソッドは、指定された範囲に含まれるすべてのアカウントのアカウント情報を取得します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • offset: uint256– アカウントを取得するオフセット索引。
  • limit: uint256– 取得するアイテムの数。
戻り値の例:
Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
このメソッドは、ユーザー・アカウントをアクティブ化します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
suspendAccount
このメソッドは、ユーザー・アカウントを一時停止します。アカウントを削除するには、アカウント残高がゼロである必要があります。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。

管理者管理の方法

addTokenAdmin
このメソッドは、Token Adminとしてユーザーを追加します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • adminDetails: JSON– 次の例に示すように、Token Adminとして追加するユーザーの詳細を含むオブジェクト。
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
このメソッドは、ユーザーをToken Adminとして削除します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
getAllTokenAdmins
このメソッドは、Token Adminになっているすべてのユーザーのリストを返します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • なし
戻り値の例:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
このメソッドは、指定されたユーザーがToken Adminかどうかをチェックします。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • このメソッドは、指定されたユーザーがToken Adminの場合はtrueを返し、それ以外の場合はfalseを返します。

ロール管理のメソッド

addRole
このメソッドは、指定されたユーザーにロールを追加します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • role: string – 指定したユーザーに追加するロールの名前。たとえば、minterburnerまたはnotaryです。
  • scopeId: uint256– 非代替トークン(NFT)クラスIDまたは代替トークンID。
removeRole
このメソッドは、指定されたユーザーからロールを削除します。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • role: string – 指定したユーザーから削除するロールの名前。たとえば、minterburnerまたはnotaryです。
  • scopeId: uint256– 非代替トークン(NFT)クラスIDまたは代替トークンID。
accountHasRole
このメソッドは、ユーザーが指定されたロールを持っているかどうかをチェックします。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • role: string– 検索するロールの名前(minterburnerまたはnotary)のKeccak-256ハッシュ。
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • scopeId: uint256– 非代替トークン(NFT)クラスIDまたは代替トークンID。
戻り値:
  • このメソッドは、ユーザーが指定したロールを持っている場合はtrueを戻し、それ以外の場合はfalseを戻します。
addTokenSysRole
このメソッドは、指定されたユーザーにTOKEN_SYS_VAULT_ROLEロールを追加します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • role: string– サポートされているロールはTOKEN_SYS_VAULT_ROLEのみです。
戻り値:
  • このメソッドは、ロールが正常に追加された場合はtrueを戻し、それ以外の場合はfalseを戻します。
removeTokenSysRole
このメソッドは、指定されたユーザーからTOKEN_SYS_VAULT_ROLEロールを削除します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • userAddress: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • role: string– サポートされているロールはTOKEN_SYS_VAULT_ROLEのみです。
戻り値:
  • このメソッドは、ロールが正常に削除された場合はtrueを返し、それ以外の場合はfalseを返します。
transferTokenSysRole
このメソッドは、TOKEN_SYS_VAULT_ROLEロールをあるユーザーから別のユーザーに転送します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • fromAddress: address– 送信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • toAddress: address– 受信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • role: string– サポートされているロールはTOKEN_SYS_VAULT_ROLEのみです。
戻り値:
  • このメソッドは、ロールが正常に転送された場合はtrueを返し、それ以外の場合はfalseを返します。

ERC-1155トークン契約方法

トークン構成管理のメソッド

__ERC1155Token_init
このメソッドは、トークン契約がデプロイされるときにコールされます。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • accountContract: address– アカウント契約の住所。
  • uri: string– トークン・タイプURI。
saveNFTClass
このメソッドは、NFTクラス情報を元帳に保存します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • classinfo: JSON–NFTアカウント・クラス情報オブジェクト。次のコードは、NFT全体の例を示しています。
    {
        "nftClassId": (BigInt(1)),
        "tokenName": "ArtCollection2",
        "tokenDesc": "this is art collection contract",
        "tokenStandard": "erc1155",
        "tokenUnit": 0,
        "behaviors": ["mintable", "burnable", "transferable", "roles", "indivisible"],
        "divisible": { "decimals": 0 },
        "mintable": { "maxMintQuantity": 2 }
    }
    次のコードは、小数NFTの例を示しています。
    {
      "nftClassId": (BigInt(0)),
      "tokenName": "ArtCollection",
      "tokenDesc": "this is art collection contract",
      "tokenStandard": "erc1155",
      "tokenUnit": 1,
      "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
      "divisible": { "decimals": 0 },
      "mintable": { "maxMintQuantity": 1 }
    }
createNonFungibleToken
このメソッドはNFTをミントします。このメソッドは、minterロールを持つユーザーのみがコールできます。
パラメータ:
  • tokenId: uint256–NFTクラス情報を含むNFTのトークンID。IDの上位128ビットはNFTクラスIDを表し、下位128ビットはNFTの一意の索引を表します。
  • quantity: uint256– ミント(作成)するNFTの量。
createFungibleToken
このメソッドは、トークン契約がデプロイされるときにコールされます。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • token– 次の例に示すように、元帳に記録する代替トークン定義。
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
getTokenById
このメソッドは、トークンの詳細を取得します。このメソッドは、Token Adminまたはトークン所有者のみがコールできます。
パラメータ:
  • token– 次の例に示すように、代替トークン定義。
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
  • metaInfo: bytes– トークンが機能可能な場合は、空の値を指定します。トークンがNFT全体の場合は、次のstructオブジェクトのエンコードされたバージョンを指定します。
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    トークンが小数NFTの場合は、次のstructオブジェクトのエンコード・バージョンを指定します。
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
geTokenDecimals
このメソッドは、トークンの10進値を取得します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • id: uint256– トークンID。
戻り値
  • 小数点以下の桁数のuint8値。
tokenIdOf
このメソッドは、トークンのIDを取得します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • classId: uint256–NFTクラスID。
  • serialId: uint256–NFTクラスのシリアルID。
戻り値
  • uint256トークンID。
balanceOf
このメソッドは、指定されたユーザーのトークン残高を取得します。このメソッドは、Token Adminまたはトークン所有者がコールできます。
パラメータ:
  • account: address– ユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • id: uint256– トークンID。
戻り値
  • トークン残高のuint256値。
balanceOfBatch
このメソッドは、ユーザー・リストのトークン残高を取得します。このメソッドは、Token Adminまたはトークン所有者がコールできます。
パラメータ:
  • account: address[]– ユーザーのウォレット・アドレスのリスト。
  • id: uint256[]– トークンIDのリスト。
戻り値
  • トークン残高のuint256[]リスト。
exists
このメソッドは、指定されたトークンが存在するかどうかをチェックします。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • id: uint256– トークンID。
戻り値:
  • このメソッドは、指定されたトークンが存在する場合はtrueを返し、それ以外の場合はfalseを返します。
totalSupply
このメソッド・チェックでは、契約内のすべてのトークンの合計供給を取得します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • なし
戻り値:
  • トークンの合計供給のuint256[]値。
totalSupply
このメソッドは、契約内の指定されたトークンの合計供給を取得します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • id: uint256– トークンID。
戻り値:
  • 指定されたトークンの合計供給のuint256[]値。
トークン動作管理 - ミント可能動作
mintBatch
このメソッドは、ERC-1155トークンをバッチ・モードで作成します(分)。トークンを初期化する必要があります。このメソッドは、minterロールを持つ任意のユーザーがコールできます。
パラメータ:
  • tokenIds: uint256[]– ミントするトークンのリスト。
  • quantity: uint256[]– ミントするトークン数量のリスト。
  • data: byte– 追加のデータ・バイト。

トークン動作管理 - バーン可能動作

burnBatch
このメソッドは、ERC-1155トークンをバッチ・モードで破棄(バーン)します。トークンを初期化する必要があります。このメソッドは、バーナー・ロールを持つ任意のユーザーがコールできます。
パラメータ:
  • tokenIds: uint256[]– 書き込むトークンのリスト。
  • quantity: uint256[]– 書き込むトークン量のリスト。
  • data: byte– 追加のデータ・バイト。
burnNFT
このメソッドは、非代替トークンを破棄(バーン)します。トークンを初期化する必要があります。このメソッドは、バーナー・ロールを持つ任意のユーザーがコールできます。
パラメータ:
  • tokenId: uint256– バーンするトークンのID。

トークン動作管理 - 転送可能動作

safeTransferFrom
このメソッドは、トークンを送信者から受信者に転送します。このメソッドは、トークンを保持するユーザーであれば誰でもコールできます。
パラメータ:
  • from: address– 送信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • to: address– 受信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • id: uint256– 転送するERC-1155トークンのID。
  • value: uint256– 転送するトークンの量。
  • data: byte– 追加のデータ・バイト。
safeBatchTransferFrom
このメソッドは、トークンを送信者から受信者に転送します。このメソッドは、トークンを保持する任意のユーザーがコールできます。
パラメータ:
  • from: address– 送信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • to: address– 受信者のウォレット・アドレス。アドレスをゼロにすることはできません。
  • id: uint256– 転送するERC-1155トークンのID。
  • value: uint256– 転送するトークンの量。
  • data: byte– 追加のデータ・バイト。

トークン動作管理- 委任可能な動作

setApprovalForAll
このメソッドは、approvedパラメータに基づいて、オペレータがコール元のトークンを転送する権限を付与または取り消します。このメソッドは、トークンを保持する任意のユーザーがコールできます。
パラメータ:
  • operator: address– 権限を付与または取り消されるオペレータのウォレット・アドレス。アドレスをゼロにすることはできません。
  • approved: bool– ブール・フラグは、オペレータがコール元のトークンを転送する権限を持っているかどうかを示します。
isApprovedForAll
このメソッドは、指定されたアカウントのトークンを転送することをオペレータが承認されているかどうかをチェックします。このメソッドは、トークンを保持する任意のユーザーがコールできます。
パラメータ:
  • account: address– トークンを転送するための権限をオペレータに付与または取り消したユーザーのウォレット・アドレス。アドレスをゼロにすることはできません。
  • operator: address– 権限を付与または取り消されたオペレータのウォレット・アドレス。アドレスをゼロにすることはできません。
戻り値:
  • 指定した勘定科目のトークンを転送するために演算子が承認されているかどうかを示すブール値。

トークン動作管理- 一時停止可能な動作

paused
このメソッドは、契約が一時停止されているかどうかをチェックします。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • なし
pause
このメソッドは、契約を一時停止します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • なし
unpause
このメソッドは、一時停止された契約を再開します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • なし

トークン動作管理- ロック可能な動作

lockNFT
このメソッドは、非代替トークンをロックします。このメソッドは、TOKEN_SYS_VAULT_ROLEロールを持つユーザーのみがコールできます。
パラメータ:
  • tokenId: uint256– ロックするトークンのID。
isNFTLocked
このメソッドは、非代替トークンがロックされているかどうかをチェックします。このメソッドは、TOKEN_SYS_VAULT_ROLEロールを持つユーザーまたはToken Adminによってのみコールできます。
パラメータ:
  • tokenId: uint256– チェックするトークンのID。
戻り値:
  • トークンがロックされているかどうかを示すブール値。