ERC-20 權杖合約 API

您可以使用下列與 ERC-20 權杖合約中權杖功能相關的方法。

權杖組態方法

__ERC20Token_init
建置記號合約時會呼叫此方法。只有 Token Admin 才能呼叫此方法。
參數:
  • name: string – 權杖的名稱。
  • symbol: string – 記號的符號。
initializeERC20Token
這個方法會初始化 ERC-20 token。只有 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 – 使用者的公事包位址,不能為零。
傳回:
  • 表示目前餘額的 uint256 值。

權杖行為方法 - 可變行為

mint
此方法會提示 ERC-20 記號。任何具備 minter 角色的使用者都可以呼叫這個方法。
參數:
  • to: string – 要提示記號之使用者的公事包位址,不能是零。
  • value: uint256 – 要提示的記號數量。
requestMint
任何具有次要角色的使用者都可以呼叫此方法,以傳送要求給公證人以建立指定數量的記號。
參數:
  • notary: string – 公證人的公事包位址,不能是零。
  • amount: uint256 – 要提示的記號數量。
  • expiration: uint256 – Epoch 格式的要求到期時間。
  • 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 – mint 要求的作業 ID。
rejectMint
具有公證人角色的核准者可呼叫此方法,以拒絕 ERC-20 權杖的提示要求。
參數:
  • opId: string – mint 要求的作業 ID。

記號行為方法 - 可燃行為

burn
此方法會燒錄 ERC-20 記號。具有燒錄機角色的任何使用者都可以呼叫此方法。
參數:
  • account: string – 記號被燒錄之使用者的公事包位址,不可為零。
  • value: uint256 – 要燒錄的記號數量。
burnFrom
任何具有委派津貼的使用者皆可呼叫此方法。
參數:
  • account: string – 要用來燒錄記號的帳戶公事包位址,不能是零。
  • value: uint256 – 要燒錄的記號數量。
requestBurn
任何具有燒錄機角色的使用者都可以呼叫此方法,以核准 ERC-20 記號的燒錄要求。
參數:
  • notary: string – 公證人的公事包位址,不能是零。
  • amount: uint256 – 要燒錄的記號數量。
  • expiration: uint256 – Epoch 格式的要求到期時間。
  • 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 – Epoch 格式的要求到期時間。
  • 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 – Epoch 格式的要求到期時間。
  • 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 – 要求的到期時間 (Epoch 格式)。
    • 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 – 字串值 (true 或 false),指出帳戶是否符合 KYC (瞭解您的客戶) 需求。
  • amlCompliance – 字串值 (true 或 false),指出帳戶是否符合 AML (反洗錢) 需求。
  • 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 – 字串值 (true 或 false),指出帳戶是否符合 KYC (瞭解您的客戶) 需求。
  • amlCompliance – 字串值 (true 或 false),指出帳戶是否符合 AML (反洗錢) 需求。
  • 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
此方法會檢查部署是否有效。任何使用者都可以呼叫這個方法。
參數:
  • 無
傳回:
  • 指示部署是否有效的布林值 (真或偽)。