ERC-20トークン契約API

ERC-20トークン契約のトークン機能に関連する次のメソッドを使用できます。

トークン構成メソッド

__ERC20Token_init
このメソッドは、トークン契約がデプロイされるときにコールされます。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • name: string– トークンの名前。
  • symbol: string– トークンの記号。
initializeERC20Token
このメソッドは、ERC-20トークンを初期化します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • token: ERC20Token– 次の例に示すように、ERC-20トークンを定義する構造。
    {
        "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
このメソッドはERC-20トークンを取得します。このメソッドは、Token Admin、Token Auditor、Org 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
このメソッドは、トークンに対して構成された小数点以下の桁数の数を返します。このメソッドは、Token Admin、Token Auditor、Org AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値:
  • 小数点以下の桁数を示すuint8値。
cap
このメソッドは、ERC-20トークンの上限値(最大供給合計)を返します。このメソッドは、Token Admin、Token Auditor、Org AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • なし
戻り値:
  • CAP値を示すuint256値。
balanceOf
このメソッドは、指定されたユーザーの現在のトークン残高を返します。このメソッドは、指定した組織のToken AdminまたはToken Auditor、あるいはOrg AdminまたはOrg Auditorのみがコールできます。
パラメータ:
  • userAddress: string– ユーザーのウォレット・アドレス。ゼロにできません。
戻り値:
  • 現在残高を示すuint256値。

トークン動作メソッド- ミント可能な動作

mint
このメソッドは、ERC-20トークンをミントします。このメソッドは、minterロールを持つ任意のユーザーがコールできます。
パラメータ:
  • to: string– トークンがミントされているユーザーのウォレット・アドレス。ゼロにできません。
  • value: uint256– ミントするトークンの量。
requestMint
このメソッドは、minterロールを持つすべてのユーザーがリクエストを送信して、指定された量のトークンを作成するために公証人にリクエストを送信できます。
パラメータ:
  • notary: string– 公証人ユーザーのウォレット・アドレス。ゼロにできません。
  • amount: uint256– ミントするトークンの量。
  • expiration: uint256– リクエストの有効期限(エポック形式)。
  • opId: string– リクエストの操作ID。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用する場合は、info_detailsパラメータを異なる形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveMint
このメソッドは、公証ロールを持つ承認者がコールして、ERC-20トークンのミント・リクエストを承認できます。
パラメータ:
  • opId: string– ミント・リクエストの操作ID。
rejectMint
このメソッドは、公証ロールを持つ承認者によってコールされ、ERC-20トークンのミント要求を拒否できます。
パラメータ:
  • opId: string– ミント・リクエストの操作ID。

トークン動作メソッド- 書き込み可能な動作

burn
このメソッドはERC-20トークンを書き込みます。このメソッドは、バーナー・ロールを持つ任意のユーザーがコールできます。
パラメータ:
  • account: string– トークンが書き込まれているユーザーのウォレット・アドレス。ゼロにできません。
  • value: uint256– 書き込むトークンの量。
burnFrom
このメソッドは、委任されたアローワンスを持つ任意のユーザーがコールできます。
パラメータ:
  • account: string– トークンを消費するアカウントのウォレット・アドレス。ゼロにできません。
  • value: uint256– 書き込むトークンの量。
requestBurn
このメソッドは、バーナー・ロールを持つすべてのユーザーがコールして、ERC-20トークンのバーン・リクエストを承認できます。
パラメータ:
  • notary: string– 公証人ユーザーのウォレット・アドレス。ゼロにできません。
  • amount: uint256– 書き込むトークンの量。
  • expiration: uint256– リクエストの有効期限(エポック形式)。
  • opId: string– リクエストの操作ID。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用する場合は、info_detailsパラメータを異なる形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveBurn
このメソッドは、公証ロールを持つ承認者がERC-20トークンの書き込み要求を承認するために呼び出すことができます。
パラメータ:
  • opId: string– バーン・リクエストの操作ID。
rejectBurn
このメソッドは、公証ロールを持つ承認者がERC-20トークンの書き込み要求を拒否するために呼び出すことができます。
パラメータ:
  • opId: string– バーン・リクエストの操作ID。

トークン動作方法- 転送可能な動作

transfer
このメソッドは、トークンを持つすべてのユーザーがコールして、別のユーザーに転送できます。
パラメータ:
  • to: string– 受信者のウォレット・アドレス。ゼロにできません。
  • value: uint256– 転送するトークンの量。
batchTransfer
このメソッドは、トークンを持つすべてのユーザーがコールして、他のユーザーにバッチで転送できます。
パラメータ:
  • toList: string[]– 受信者のウォレット・アドレスのリスト。
  • amounts: uint256[]– 転送するトークンの量のリスト。

トークン動作メソッド- 委任可能な動作

allowance
このメソッドは、トークンを所有するユーザーがコールして、別のユーザーがトークンを使用することを委任できます。
パラメータ:
  • owner: string– トークン所有者のウォレット・アドレス。ゼロにできません。
  • spender: string– トークン・スペンダのウォレット・アドレス。ゼロにできません。
戻り値:
  • 使用するために委任されたトークンの量のuint256値。
approve
このメソッドは、トークンを所有するユーザーがコールして、委任された支出者が費やすことができる金額を設定できます。
パラメータ:
  • spender: string– トークン・スペンダのウォレット・アドレス。ゼロにできません。
  • value: uint256– 支出が許可されるトークンの量。
transferFrom
このメソッドは、委任されたアローワンスを持つユーザーがトークンを別のユーザーに転送するために呼び出すことができます。
パラメータ:
  • from: string– 送信者のウォレット・アドレス。ゼロにできません。
  • to: string– 受信者のウォレット・アドレス。ゼロにできません。
  • value: uint256– 転送するトークンの量。

トークン動作メソッド- 一時停止可能な動作

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

トークン動作メソッド- 保持可能な動作

hold
このメソッドは、トークンを持つすべてのユーザーがトークン転送をリクエストするために呼び出すことができます。
パラメータ:
  • to: string– 受信者のウォレット・アドレス。ゼロにできません。
  • notary: string– 公証人ユーザーのウォレット・アドレス。ゼロにできません。
  • amount: uint256– 転送するトークンの量。
  • expiration: uint256– リクエストの有効期限(エポック形式)。
  • opId: string– リクエストの操作ID。
  • holdType: string– 保持のタイプ。たとえば、transferです。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用する場合は、info_detailsパラメータを異なる形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

holdFrom
このメソッドは、別のユーザーのウォレット・アドレスからのトークンを保持するアローワンスを持つ委任ユーザーがコールできます。このメソッドには、委任可能な動作が必要です。
パラメータ:
  • fromAccount: string– トークンが保持されるユーザーのウォレット・アドレス。ゼロにできません。
  • toAccount: string– 受信者のウォレット・アドレス。ゼロにできません。
  • notary: string– 公証人ユーザーのウォレット・アドレス。ゼロにできません。
  • amount: uint256– 転送するトークンの量。
  • expiration: uint256– リクエストの有効期限(エポック形式)。
  • opId: string– リクエストの操作ID。
  • holdType: string– 保持のタイプ。たとえば、transferです。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用する場合は、info_detailsパラメータを異なる形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

executeHold
このメソッドは、公証人ロールを持つ承認者が保留リクエストを承認するために呼び出すことができます。
パラメータ:
  • amount: uint256– 転送用に承認するトークンの数量。
  • opId: string– 保留リクエストの操作ID。
releaseHold
このメソッドは、公証ロールを持つ承認者が保留リクエストを却下するために呼び出すことができます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
updateNotary
このメソッドは、公証人ロールを持つ承認者が呼び出して、指定されたリクエストの公証人情報を更新できます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
  • newNotary: string– 新しい公証人ユーザーのウォレット・アドレス。ゼロにできません。
getOnHoldBalanceWithOperationId
このメソッドは、指定された操作IDの保留残高を取得します。このメソッドは、指定された組織のToken AdminまたはToken Auditor、Org AdminまたはOrg Auditor、またはトランザクション参加者(送信者、受信者、公証人)によってのみコールできます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
戻り値:
  • 保留残高のuint256値。
getOnHoldDetailsWithOperationId
このメソッドは、指定された操作IDの保留詳細を取得します。このメソッドは、指定された組織のToken AdminまたはToken Auditor、Org AdminまたはOrg Auditor、またはトランザクション参加者(送信者、受信者、公証人)によってのみコールできます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
戻り値:
  • 次の情報を含むholdオブジェクト。
    • to: address– 受信者のウォレット・アドレス。
    • notary: address– 公証人のウォレット・アドレス。
    • amount: uint256– 転送されるトークンの量。
    • expiration: uint256– リクエストの有効期限(エポック形式)。
    • opId: string– リクエストの操作ID。
    • holdType: string– 保留タイプ。たとえば、transfer。
    • info: infoDetails– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。
getAccountOnHoldBalance
このメソッドは、指定されたアカウントの保留残高を取得します。このメソッドは、指定された組織のToken AdminまたはToken Auditor、Org AdminまたはOrg Auditor、またはトランザクション参加者(送信者、受信者、公証人)によってのみコールできます。
パラメータ:
  • account: string– チェックするアカウントのウォレット・アドレス。ゼロにできません。
戻り値:
  • 保留残高のuint256値。

トークン動作方法- マルチレベル承認動作

createOrupdateAccountPolicy
このメソッドは、Token AdminまたはOrg Adminによってコールされ、指定されたアカウントのポリシーを作成または更新できます。
パラメータ:
  • accountPolicyId– システムは、指定されたorgIdおよびuserIdフィールドからこのIDを生成します。このフィールドは手動で指定しません。
  • orgId– ポリシーを作成するユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • userId– ポリシーを作成するユーザーのユーザー名または電子メールID。
  • kycCompliance– アカウントがKYC (Know Your Customer)要件を満たすかどうかを示す文字列値(trueまたはfalse)。
  • amlCompliance– アカウントがAML (Anti-Money Laundering)要件を満たすかどうかを示す文字列値(trueまたはfalse)。
  • riskScore– アカウントに関連付けられたリスク・スコアで、コンプライアンス評価に使用されます。
  • restrictionFlag– アカウントが制限付き転送の対象かどうかを示す文字列値(trueまたはfalse)。trueに設定すると、直接転送は転送制限バケット制限に従い、保留転送は最も低い承認ポリシーしきい値に従います。
getAccountPolicyById
このメソッドは、指定されたポリシーIDのアカウント・ポリシー詳細を取得します。このメソッドは、アカウント・ポリシーがフェッチされる組織のToken AdminまたはToken Auditor、あるいはOrg AdminまたはOrg Auditorによってコールできます。
パラメータ:
  • accountPolicyId: string– 一意のアカウント・ポリシーID。
戻り値:
  • accountPolicyId– システムは、指定されたorgIdおよびuserIdフィールドからこのIDを生成します。このフィールドは手動で指定しません。
  • orgId– ユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • userId – ユーザーのユーザー名または電子メールID。
  • kycCompliance– アカウントがKYC (Know Your Customer)要件を満たすかどうかを示す文字列値(trueまたはfalse)。
  • amlCompliance– アカウントがAML (Anti-Money Laundering)要件を満たすかどうかを示す文字列値(trueまたはfalse)。
  • riskScore– アカウントに関連付けられたリスク・スコアで、コンプライアンス評価に使用されます。
  • restrictionFlag– アカウントが制限付き転送の対象かどうかを示す文字列値(trueまたはfalse)。trueに設定すると、直接転送は転送制限バケット制限に従い、保留転送は最も低い承認ポリシーしきい値に従います。
getAccountPolicyById
このメソッドは、指定されたユーザーのアカウント・ポリシー詳細を取得します。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • who: address– ユーザーのウォレット・アドレス。
戻り値:
  • accountPolicyId文字列。
deleteAccountPolicyById
このメソッドは、指定されたポリシーIDのポリシーを削除します。このメソッドは、アカウント・ポリシーが削除されるユーザーを含む組織のToken AdminまたはOrg Adminによってコールできます。
パラメータ:
  • accountPolicyId– 一意のアカウント・ポリシーID。
戻り値:
  • accountPolicyId文字列。
createOrupdateApprovalPolicy
このメソッドは、Token Adminによってコールできます。
パラメータ:
  • approvalPolicyId– このIDが生成されます。このフィールドは手動で指定しません。
  • transactionLowerLimit– 承認ポリシーが適用される最小トランザクション量。
  • transactionUpperLimit– 承認ポリシーが適用される最大トランザクション量。
  • numberOfApprovalsRequired– トランザクションを完了するために必要な承認の合計数。
  • approverDetails– 承認者のリストとその承認順序。承認の必須順序を定義します。
  • version– 承認ポリシーのバージョン。新規ポリシーを作成する場合は0を使用します。
  • status– アクティブまたは非アクティブ。
getApprovalPolicyById
このメソッドは、指定されたポリシーIDの承認ポリシー詳細を取得します。このメソッドは、Token AdminまたはToken Auditorによってコールできます。
パラメータ:
  • approvalPolicyId: string– 一意の承認ポリシーID。
戻り値:
  • approvalPolicyId– このIDが生成されます。
  • transactionLowerLimit– 承認ポリシーが適用される最小トランザクション量。
  • transactionUpperLimit– 承認ポリシーが適用される最大トランザクション量。
  • numberOfApprovalsRequired– トランザクションを完了するために必要な承認の合計数。
  • approverDetails– 承認者のリストとその承認順序。承認の必須順序を定義します。
  • version– 承認ポリシーのバージョン。
  • status– アクティブまたは非アクティブ。
deleteApprovalPolicy
このメソッドは、指定されたポリシーIDのポリシーを削除します。このメソッドは、Token Adminによってコールできます。
パラメータ:
  • approvalPolicyId: string– 一意の承認ポリシーID。
getApprovalTransactionsById
このメソッドは、指定されたアカウントの保留残高を取得します。このメソッドは、Token Admin、Token Auditor、Org AdminまたはOrg Auditorによってコールできます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
戻り値:
  • approvalTransactionsオブジェクト。
戻り値の例:
{
"approvalTransactionId": "",
"approvalPolicyId": "",
"approvalPolicyVersion": "",
"fromAccount": "",
"toAccount": "",
"totalApprovals": "",
"numberaOfApprovalsRequired": "",
"status": "",
"approverDetails": ""
}
getApprovalStatusByOperationId
このメソッドは、指定された保留リクエストの承認詳細を取得します。このメソッドは、Token Admin、Token Auditor、Org AdminまたはOrg Auditorによってコールできます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
戻り値の例:
{
"approvalWorkflowExists": "",
"activePolicyFound": "",
"receivedApprovals": "",
"requiredApprovals": "",
"approvalRequirementMet": "",
"nextApprovalSequence": "",
"nextApprover": "",
"workflowStatus": "",
"approvalPolicyId": "",
"approvalPolicyVersion": ""
}
approveTransaction
承認者は、この方法を使用して保留トランザクションを承認できます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
  • amount: uint256– 承認する金額。
rejectTransaction
公証人は、この方法を使用して保留取引を却下できます。
パラメータ:
  • opId: string– 保留リクエストの操作ID。
getTransferRestriction
このメソッドは、トランザクション制限の下限と上限を含む、現在の転送制限構成を返します。このメソッドは、Token AdminまたはToken Auditorによってコールできます。
パラメータ:
  • account: address– 保留残高をチェックするユーザーのウォレット・アドレス。住所はゼロにしないでください。
戻り値:
  • transferRestrictionオブジェクト。
戻り値の例:
transactionLowerLimit: 0transactionUpperLimit: 100
setOrupdateTransferRestriction
この方法では、新しい下限および上限トランザクション制限を設定して、転送制限構成を更新します。このメソッドは、Token Adminによってコールできます。
パラメータ:
  • transactionLowerLimit: uint256– 最小許容トランザクション金額。
  • transactionUpperLimit: uint256– 最大許容トランザクション金額。

コンテキスト管理メソッド

setTokenContext
このメソッドは、アカウント契約のトークン契約住所を設定します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • tokenAddress: address– デプロイされたトークンの契約アドレス。ゼロにできません。
getTokenContext
このメソッドは、アカウント契約のトークン契約住所を取得します。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • なし
返品
  • トークン契約アドレス
setGovernanceContext
この方法では、アカウント契約のガバナンス・ライフ・サイクルの管理に使用するガバナンス契約を設定します。このメソッドは、Token Adminのみがコールできます。
パラメータ:
  • uuid: string– 契約のデプロイメント前にデジタル・アセットToken Adminによって設定された一意のID。
  • governance: address– デプロイされたガバナンス契約の契約アドレス。ゼロにできません。
getGovernanceContext
このメソッドは、政府コンテキストの詳細を取得します。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • なし
返品
  • governanceContextオブジェクト。
戻り値の例:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
このメソッドは、デプロイメントがアクティブかどうかをチェックします。このメソッドは、どのユーザーでもコールできます。
パラメータ:
  • なし
戻り値:
  • デプロイメントがアクティブかどうかを示すブール値(trueまたはfalse)。