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 调用。
参数:
  • 无
退货:
  • 指示上限值的 uint256 值。
balanceOf
此方法返回指定用户的当前令牌余额。此方法只能由指定组织的 Token Admin 或 Token Auditor 或 Org Admin 或 Org Auditor 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • 指示当前余额的 uint256 值。

令牌行为方法 - 可铸造行为

mint
此方法用于铸造 ERC-20 代币。具有 minter 角色的任何用户都可以调用此方法。
参数:
  • to: string- 标记要铸造的用户的 wallet 地址,该地址不能为零。
  • value: uint256 - 要铸造的令牌数量。
requestMint
任何具有 minter 角色的用户都可以调用此方法,向公证人发送请求以创建指定数量的令牌。
参数:
  • notary: string- 公证用户的 wallet 地址,不得为零。
  • amount: uint256 - 要铸造的令牌数量。
  • expiration: uint256- 以纪元格式表示请求的到期时间。
  • opId: string- 请求的操作 ID。
  • info_details: JSON- 指定请求类别 (category) 和说明 (description) 的对象。

    如果使用的是 Visual Studio Code 与 CLI 或 Postman 集合,则可以采用不同的格式指定 info_details 参数。

    Visual Studio Code:{ "category": "category value", "description": "description value" }

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

approveMint
具有公证角色的审批者可以调用此方法来批准 ERC-20 令牌的 mint 请求。
参数:
  • opId: string- 薄荷请求的操作 ID。
rejectMint
具有公证角色的审批者可以调用此方法来拒绝 ERC-20 令牌的 mint 请求。
参数:
  • opId: string- 薄荷请求的操作 ID。

令牌行为方法 - 可燃行为

burn
此方法燃烧 ERC-20 令牌。具有刻录器角色的任何用户都可以调用此方法。
参数:
  • account: string- 令牌被烧毁的用户的 wallet 地址,该地址不得为零。
  • value: uint256 - 要燃烧的令牌数量。
burnFrom
任何具有委派津贴的用户都可以调用此方法。
参数:
  • account: string —刻录令牌的账户的 wallet 地址,不得为零。
  • value: uint256 - 要燃烧的令牌数量。
requestBurn
任何具有刻录角色的用户都可以调用此方法来批准 ERC-20 令牌的刻录请求。
参数:
  • notary: string- 公证用户的 wallet 地址,不得为零。
  • amount: uint256 - 要燃烧的令牌数量。
  • expiration: uint256- 以纪元格式表示请求的到期时间。
  • opId: string- 请求的操作 ID。
  • info_details: JSON- 指定请求类别 (category) 和说明 (description) 的对象。

    如果使用的是 Visual Studio Code 与 CLI 或 Postman 集合,则可以采用不同的格式指定 info_details 参数。

    Visual Studio Code:{ "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 - 接收方的 wallet 地址,不能为空。
  • value: uint256 –要转移的令牌数量。
batchTransfer
任何具有令牌的用户都可以调用此方法,以批量将它们传输给其他用户。
参数:
  • toList: string[]- 接收器的 wallet 地址列表。
  • amounts: uint256[]- 要传输的令牌数量的列表。

标记行为方法 - 可委派行为

allowance
任何拥有令牌的用户都可以调用此方法,以委派其他用户来支出这些令牌。
参数:
  • owner: string- 令牌所有者的 wallet 地址,该地址不能为零。
  • spender: string- 令牌使用者的 wallet 地址,该地址不能为零。
退货:
  • 委托使用的令牌数量的 uint256 值。
approve
任何拥有令牌的用户都可以调用此方法来设置委托的支出者可以花费的金额。
参数:
  • spender: string- 令牌使用者的 wallet 地址,该地址不能为零。
  • value: uint256 –允许使用者花费的令牌数量。
transferFrom
具有委派津贴的用户可以调用此方法,以将令牌传输给其他用户。
参数:
  • from: string- 发件人的 wallet 地址,该地址不得为零。
  • to: string - 接收方的 wallet 地址,不能为空。
  • value: uint256 –要转移的令牌数量。

令牌行为方法 - 可暂停的行为

paused
此方法检查合同是否已暂停。此方法只能由 Token Admin、Token Auditor、Org Admin 或 Org Auditor 调用。
参数:
  • 无
pause
此方法将暂停合同。此方法只能由 Token Admin 调用。
参数:
  • 无
unpause
此方法将启动暂停的合同。此方法只能由 Token Admin 调用。
参数:
  • 无

令牌行为方法 - 可暂挂行为

hold
任何具有令牌的用户都可以调用此方法来请求令牌传输。
参数:
  • to: string - 接收方的 wallet 地址,不能为空。
  • notary: string- 公证用户的 wallet 地址,不得为零。
  • amount: uint256 –要转移的令牌数量。
  • expiration: uint256- 以纪元格式表示请求的到期时间。
  • opId: string- 请求的操作 ID。
  • holdType: string - 暂挂类型。例如,transfer。
  • info_details: JSON- 指定请求类别 (category) 和说明 (description) 的对象。

    如果使用的是 Visual Studio Code 与 CLI 或 Postman 集合,则可以采用不同的格式指定 info_details 参数。

    Visual Studio Code:{ "category": "category value", "description": "description value" }

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

holdFrom
此方法可由具有从其他用户的 wallet 地址保存令牌的容许的授权用户调用。此方法需要可委托行为。
参数:
  • fromAccount: string –将持有其令牌的用户的 wallet 地址,该地址不得为零。
  • toAccount: string - 接收方的 wallet 地址,不能为空。
  • notary: string- 公证用户的 wallet 地址,不得为零。
  • amount: uint256 –要转移的令牌数量。
  • expiration: uint256- 以纪元格式表示请求的到期时间。
  • opId: string- 请求的操作 ID。
  • holdType: string - 暂挂类型。例如,transfer。
  • info_details: JSON- 指定请求类别 (category) 和说明 (description) 的对象。

    如果使用的是 Visual Studio Code 与 CLI 或 Postman 集合,则可以采用不同的格式指定 info_details 参数。

    Visual Studio Code:{ "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- 新公证用户的 wallet 地址,不得为零。
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 - 接收者的 wallet 地址。
    • 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- 要检查的帐户的 wallet 地址,不能为空。
退货:
  • 暂挂余额的 uint256 值。

标记行为方法 - 多级审批行为

createOrupdateAccountPolicy
Token Admin 或 Org Admin 可以调用此方法来创建或更新指定帐户的策略。
参数:
  • accountPolicyId- 系统从指定的 orgId 和 userId 字段生成此 ID。您不手动提供此字段。
  • orgId- 要为其创建策略的用户的成员资格服务提供商 (membership service provider,MSP) ID。
  • userId- 要为其创建策略的用户的用户名或电子邮件 ID。
  • kycCompliance- 表示帐户是否满足 KYC(了解您的客户)要求的字符串值(true 或 false)。
  • amlCompliance- 表示帐户是否满足 AML(反洗钱)要求的字符串值(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- 用户的成员资格服务提供商 (membership service provider,MSP) ID。
  • userId- 用户的用户名或电子邮件 ID。
  • kycCompliance- 表示帐户是否满足 KYC(了解您的客户)要求的字符串值(true 或 false)。
  • amlCompliance- 表示帐户是否满足 AML(反洗钱)要求的字符串值(true 或 false)。
  • riskScore- 与账户关联的风险评分,用于合规性评估。
  • restrictionFlag- 字符串值(true 或 false),指示帐户是否受到限制的传输。如果设置为 true,则直接转移遵循转移限制时段限制,暂挂转移遵循最低审批策略阈值。
getAccountPolicyById
此方法获取指定用户的账户策略详细信息。此方法可由任何用户调用。
参数:
  • who: address- 用户的 wallet 地址。
退货:
  • accountPolicyId 字符串。
deleteAccountPolicyById
此方法删除指定策略 ID 的策略。此方法可以由组织的 Token Admin 或 Org Admin 调用,该组织包括将删除其帐户策略的用户。
参数:
  • accountPolicyId- 唯一的帐户策略 ID。
退货:
  • accountPolicyId 字符串。
createOrupdateApprovalPolicy
此方法可由 Token Admin 调用。
参数:
  • approvalPolicyId- 系统将生成此 ID。您不手动提供此字段。
  • transactionLowerLimit —审批策略适用的最小交易金额。
  • transactionUpperLimit —审批策略应用的最大事务处理金额。
  • numberOfApprovalsRequired —事务处理完成之前所需的审批总数。
  • approverDetails- 审批者列表及其分配的审批顺序,用于定义审批的强制顺序。
  • version- 审批策略版本。创建新策略时使用 0。
  • status-Active(活动)或 inactive(非活动)。
getApprovalPolicyById
此方法获取指定策略 ID 的审批策略详细信息。此方法可由 Token Admin 或 Token Auditor 调用。
参数:
  • approvalPolicyId: string- 唯一的审批策略 ID。
退货:
  • approvalPolicyId- 系统将生成此 ID。
  • transactionLowerLimit —审批策略适用的最小交易金额。
  • transactionUpperLimit —审批策略应用的最大事务处理金额。
  • numberOfApprovalsRequired —事务处理完成之前所需的审批总数。
  • approverDetails- 审批者列表及其分配的审批顺序,用于定义审批的强制顺序。
  • version- 审批策略版本。
  • status-Active(活动)或 inactive(非活动)。
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- 要检查暂挂余额的用户的 wallet 地址。地址不能为零。
退货:
  • 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),指示部署是否处于活动状态。