Stablecoin 鏈碼方法

stablecoin 鏈碼包含通用「權杖分類架構」鏈碼中提供的所有 TypeScript 方法,以及可用來穩定案例的特定其他 TypeScript 方法。

Stablecoin 資產方法

stablecoin 資產是以延伸的「記號分類架構」標準為基礎,並支援該標準的所有一般方法。如需有關一般權杖分類架構方法的詳細資訊,請參閱 Blockchain App Builder for Oracle Blockchain Platform 中的 Scaffolded TypeScript Project for Token Taxonomy Framework

附註:

在穩定的鏈碼中,executeHoldTokens 方法與一般版本的行為不同。此方法的穩定版本一律會完成完整保留金額,且不支援部分轉移。

客戶保單檢查方法

createAccountPolicyCheck
此方法會為指定的帳戶建立原則。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
createAccountPolicyCheck(asset: AccountPolicyCheck)
參數:
  • asset: AccountPolicyCheck class – 定義帳號策略參數的類別,其中包含下列欄位:
    • accountPolicyId – 系統會從指定的 orgId 和 userId 欄位產生此 ID。您並未手動提供此欄位。
    • orgId – 要為其建立原則之使用者的成員服務提供者 (MSP) ID。
    • userId – 要為其建立策略的使用者名稱或電子郵件 ID。
    • kycCompliance - 表示帳戶是否滿足 KYC (瞭解您的客戶) 需求的布林值。
    • amlCompliance – 表示帳戶是否滿足 AML (反洗錢) 需求的布林值。
    • riskScore – 與帳戶相關聯的風險分數,用於規範評估。
    • restrictionFlag – 表示帳戶是否受限制轉帳的布林值。如果設為 true,則只允許在最低核准原則臨界值內的傳輸。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "02875ca9c6a7408da3f81156214228b91b09c4bb2b8026d7a5733b53598c6635",
        "payload": {
            "assetType": "AccountPolicyCheck",
            "accountPolicyId": "APID~CentralBank~cb__creator_demo",
            "orgId": "CentralBank",
            "userId": "cb__creator_demo",
            "kycCompliance": "true",
            "amlCompliance": "true",
            "riskScore": 1000,
            "restrictionFlag": "false"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 272
    }
}
getAccountPolicyCheckById
此方法會取得指定保單 ID 的帳戶保單詳細資料。此方法只能由指定組織的 Token AdminToken AuditorOrg AdminOrg Auditor 呼叫。
getAccountPolicyCheckById(id: string)
參數:
  • id: string – 唯一的帳戶原則 ID。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "02875ca9c6a7408da3f81156214228b91b09c4bb2b8026d7a5733b53598c6635",
        "payload": {
            "assetType": "AccountPolicyCheck",
            "accountPolicyId": "APID~CentralBank~cb__creator_demo",
            "orgId": "CentralBank",
            "userId": "cb__creator_demo",
            "kycCompliance": "true",
            "amlCompliance": "true",
            "riskScore": 1000,
            "restrictionFlag": "false"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 272
    }
}
updateAccountPolicyCheck
此方法會更新指定帳戶的原則。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
updateAccountPolicyCheck(asset: AccountPolicyCheck)
參數:
  • asset: AccountPolicyCheck class – 定義帳號策略參數的類別,其中包含下列欄位:
    • accountPolicyId – 唯一的帳戶原則 ID。
    • orgId – 要為其建立原則之使用者的成員服務提供者 (MSP) ID。
    • userId – 要為其建立策略的使用者名稱或電子郵件 ID。
    • kycCompliance - 表示帳戶是否滿足 KYC (瞭解您的客戶) 需求的布林值。
    • amlCompliance – 表示帳戶是否滿足 AML (反洗錢) 需求的布林值。
    • riskScore – 與帳戶相關聯的風險分數,用於規範評估。
    • restrictionFlag – 表示帳戶是否受限制轉帳的布林值。如果設為 true,則只允許在最低核准原則臨界值內的傳輸。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "02875ca9c6a7408da3f81156214228b91b09c4bb2b8026d7a5733b53598c6635",
        "payload": {
            "assetType": "AccountPolicyCheck",
            "accountPolicyId": "APID~CentralBank~cb__creator_demo",
            "orgId": "CentralBank",
            "userId": "cb__creator_demo",
            "kycCompliance": "true",
            "amlCompliance": "true",
            "riskScore": 1000,
            "restrictionFlag": "true"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 272
    }
}
deleteAccountPolicyCheck
此方法會刪除指定之原則 ID 的原則。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
deleteAccountPolicyCheck(id: string)
參數:
  • id: string – 唯一的帳戶原則 ID。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "5499f49ae8595facbcbf56835bed9e6606875c0f54fd3cacb31a4104b56d3579",
        "payload": {
            "isValid": true,
            "message": "Successfully deleted asset with ID [APID~CentralBank~cb__creator_demo] from ledger"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 273
    }
}
getAccountPolicyCheckHistoryById
此方法會取得指定保單 ID 的完整帳戶保單記錄。此方法只能由指定組織的 Token AdminToken AuditorOrg AdminOrg Auditor 呼叫。
getAccountPolicyCheckHistoryById(id: string)
參數:
  • id: string – 唯一的帳戶原則 ID。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "trxId": "dbfd34199bc5ea7224ca6c9976e30166dc859923ab044e595d0d42ad842eb471",
                "timeStamp": "2025-11-20T21:36:29.000Z",
                "value": {
                    "assetType": "AccountPolicyCheck",
                    "accountPolicyId": "APID~CentralBank~cb__creator_demo",
                    "orgId": "CentralBank",
                    "userId": "cb__creator_demo",
                    "kycCompliance": "true",
                    "amlCompliance": "true",
                    "riskScore": 1000,
                    "restrictionFlag": "true"
                }
            },
            {
                "trxId": "8b6951a4093f3bb79a489397878f9025ce4384c8973a0c4d0ec9c618667e8935",
                "timeStamp": "2025-11-20T21:35:34.000Z",
                "value": {
                    "assetType": "AccountPolicyCheck",
                    "accountPolicyId": "APID~CentralBank~cb__creator_demo",
                    "orgId": "CentralBank",
                    "userId": "cb__creator_demo",
                    "kycCompliance": "true",
                    "amlCompliance": "true",
                    "riskScore": 1000,
                    "restrictionFlag": "false"
                }
            },
            {
                "trxId": "5499f49ae8595facbcbf56835bed9e6606875c0f54fd3cacb31a4104b56d3579",
                "timeStamp": "2025-11-20T21:34:03.000Z",
                "value": "KEY DELETED"
            },
            {
                "trxId": "02875ca9c6a7408da3f81156214228b91b09c4bb2b8026d7a5733b53598c6635",
                "timeStamp": "2025-11-20T21:33:24.000Z",
                "value": {
                    "assetType": "AccountPolicyCheck",
                    "accountPolicyId": "APID~CentralBank~cb__creator_demo",
                    "orgId": "CentralBank",
                    "userId": "cb__creator_demo",
                    "kycCompliance": "true",
                    "amlCompliance": "true",
                    "riskScore": 1000,
                    "restrictionFlag": "false"
                }
            }
        ],
        "encode": "JSON"
    }
}
getAccountPolicyCheckByRange
此方法會取得指定範圍之原則 ID 的所有原則歷史記錄。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
getAccountPolicyCheckByRange(startId: string, endId: string)
參數:
  • startId: string – 範圍的起始帳戶原則 ID (含)。
  • endId: string – 範圍的結束帳戶原則 ID (不含)。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "assetType": "AccountPolicyCheck",
                "accountPolicyId": "APID~CentralBank~cb__creator_demo",
                "orgId": "CentralBank",
                "userId": "cb__creator_demo",
                "kycCompliance": "true",
                "amlCompliance": "true",
                "riskScore": 1000,
                "restrictionFlag": "true"
            },
            {
                "assetType": "AccountPolicyCheck",
                "accountPolicyId": "APID~CentralBank~cb_issuer_demo",
                "orgId": "CentralBank",
                "userId": "cb_issuer_demo",
                "kycCompliance": "true",
                "amlCompliance": "true",
                "riskScore": 1000,
                "restrictionFlag": "false"
            }
        ],
        "encode": "JSON"
    }
}

核准原則檢查方法

createApprovalPolicyCheck
此方法會建立核准原則。只有 Token Admin 才能呼叫此方法。
createApprovalPolicyCheck(asset: ApprovalPolicyCheck)
參數:
  • asset: ApprovalPolicyCheck class – 定義交易核准規則的類別,包含下列欄位:
    • approvalPolicyId – 系統會產生此 ID。您並未手動提供此欄位。
    • transactionLowerLimit – 適用核准策略的最低交易金額。
    • transactionUpperLimit – 套用核准原則的交易金額上限。
    • numberOfApprovalsRequired – 完成交易前所需的核准總數。
    • approverDetails – 核准者清單及其指派的核准順序,定義核准的必要順序。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "3a5701ca90ffb98832421c7d5377eb9c0df9fdab30a0a3ce06216808bdea098e",
        "payload": {
            "status": "active",
            "assetType": "ApprovalPolicyCheck",
            "approvalPolicyId": "GPID~500~1000",
            "transactionLowerLimit": "500",
            "transactionUpperLimit": "1000",
            "numberOfApprovalsRequired": 2,
            "approverDetails": [
                {
                    "approverOrgId": "CentralBank",
                    "approverUserId": "manager",
                    "approvalSequence": 1
                },
                {
                    "approverOrgId": "CentralBank",
                    "approverUserId": "creator",
                    "approvalSequence": 2
                }
            ]
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 284
    }
}
getApprovalPolicyCheckById
此方法會取得指定之原則 ID 的核准原則詳細資訊。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
getApprovalPolicyCheckById(id: string)
參數:
  • id: string – 唯一核准原則 ID。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "assetType": "ApprovalPolicyCheck",
            "approvalPolicyId": "GPID~0~100",
            "transactionLowerLimit": "0",
            "transactionUpperLimit": "100",
            "numberOfApprovalsRequired": 0,
            "approverDetails": []
        },
        "encode": "JSON"
    }
}
updateApprovalPolicyCheck
此方法會更新核准原則。只有 Token Admin 才能呼叫此方法。
updateApprovalPolicyCheck(asset: ApprovalPolicyCheck)
參數:
  • asset: ApprovalPolicyCheck class – 定義交易核准規則的類別,包含下列欄位:
    • approvalPolicyId – 唯一核准原則 ID。
    • transactionLowerLimit – 適用核准策略的最低交易金額。
    • transactionUpperLimit – 套用核准原則的交易金額上限。
    • numberOfApprovalsRequired – 完成交易前所需的核准總數。
    • approverDetails – 核准者清單及其指派的核准順序,定義核准的必要順序。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "ed1e1950fe02dbab74fa3aa7630b8dc6096e30aae5c81bab0dd22d5232c44fc9",
        "payload": {
            "status": "active",
            "assetType": "ApprovalPolicyCheck",
            "approvalPolicyId": "GPID~500~1000",
            "transactionLowerLimit": "500",
            "transactionUpperLimit": "1000",
            "numberOfApprovalsRequired": 1,
            "approverDetails": [
                {
                    "approverOrgId": "CentralBank",
                    "approverUserId": "manager",
                    "approvalSequence": 1
                }
            ]
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 285
    }
}
deleteApprovalPolicyCheck
此方法會刪除指定原則 ID 的核准原則。只有 Token Admin 才能呼叫此方法。
deleteApprovalPolicyCheck(id: string)
參數:
  • id: string – 唯一核准原則 ID。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "5ac54d3279a183022a00495aee3c25c2893388ff9aaaecd5c3b594edfa49ad8f",
        "payload": {
            "isValid": true,
            "message": "Successfully deleted asset with ID [GPID~500~1000] from ledger"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 286
    }
}
getApprovalPolicyCheckHistoryById
此方法會取得指定之原則 ID 的完整核准原則歷史記錄。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
getApprovalPolicyCheckHistoryById(id: string)
參數:
  • id: string – 唯一核准原則 ID。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "trxId": "48f196c18869e871dc92ab880933ccc1c4dc402b9753ae6270e223646c177090",
                "timeStamp": "2025-11-21T09:30:04.000Z",
                "value": {
                    "assetType": "ApprovalPolicyCheck",
                    "approvalPolicyId": "GPID~0~100",
                    "transactionLowerLimit": "0",
                    "transactionUpperLimit": "100",
                    "numberOfApprovalsRequired": 0,
                    "approverDetails": []
                }
            }
        ],
        "encode": "JSON"
    }
}
getApprovalPolicyCheckByRange
此方法會取得指定範圍之原則 ID 的所有核准原則歷史記錄。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
getApprovalPolicyCheckByRange(startId: string, endId: string)
參數:
  • startId: string – 範圍的開始核准原則 ID (含)。
  • endId: string – 範圍的結束核准原則 ID (不含)。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "assetType": "ApprovalPolicyCheck",
                "approvalPolicyId": "GPID~0~100",
                "transactionLowerLimit": "0",
                "transactionUpperLimit": "100",
                "numberOfApprovalsRequired": 0,
                "approverDetails": []
            },
            {
                "status": "active",
                "assetType": "ApprovalPolicyCheck",
                "approvalPolicyId": "GPID~500~1000",
                "transactionLowerLimit": "500",
                "transactionUpperLimit": "1000",
                "numberOfApprovalsRequired": 2,
                "approverDetails": [
                    {
                        "approverOrgId": "CentralBank",
                        "approverUserId": "manager",
                        "approvalSequence": 1
                    },
                    {
                        "approverOrgId": "CentralBank",
                        "approverUserId": "creator",
                        "approvalSequence": 2
                    }
                ]
            }
        ],
        "encode": "JSON"
    }
}

核准異動方式

getApprovalTransactionById
此方法會取得指定異動 ID 的核准異動。只有指定的組織之 Token AdminOrg Admin 才能呼叫此方法。
getApprovalTransactionsById(id: string)
參數:
  • id: string – 系統產生的核准異動 ID。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "assetType": "ApprovalTransactions",
            "approvalTransactionId": "hold1~oaccount~1cf5d40c7ea7b9dceedfc66292ab843c1583564c3ecaf9f5ceb11f834018b02f",
            "approvalOperationId": "hold1",
            "fromAccountId": "oaccount~374e4e762940fc185c7cd5b6528c7f94985b6c56acf46abb746de6381589edd2",
            "toAccountId": "oaccount~79c427e614530eacad6fb07cff6048f6b96283e65019301320c9684932846f64",
            "approverAccountId": "oaccount~1cf5d40c7ea7b9dceedfc66292ab843c1583564c3ecaf9f5ceb11f834018b02f",
            "totalApprovals": 1,
            "timestamp": "2025-11-21T12:32:43.000Z"
        },
        "encode": "JSON"
    }
}

自訂方式

getApproverDetailsByTransferAmount
此方式會取得指定移轉金額所需的核准者明細。只有 Token AdminToken Auditor 才能呼叫此方法。
getApproverDetailsByTransferAmount(Amount: number)
參數:
  • amount: number – 轉移金額。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "5874105c14abd67e68cb4dacf82f2a2dca6cc9da4f5b27fcc91c83a60b7249e1",
        "payload": {
            "approverDetails": [
                {
                    "approverOrgId": "CentralBank",
                    "approverUserId": "manager",
                    "approvalSequence": 1
                },
                {
                    "approverOrgId": "CentralBank",
                    "approverUserId": "creator",
                    "approvalSequence": 2
                }
            ]
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 292
    }
}
approveTransaction
核准者可以使用此方法來核准保留異動。
approveTransaction(token_id: string, operation_id: string, quantity: number)
參數:
  • token_id: string – 記號的 ID。
  • operation_id: string – 識別保留作業的唯一 ID。通常此 ID 會由用戶端應用程式傳送。
  • quantity: number – 要核准以進行轉移的保留權杖數目。
傳回值範例:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "44685b0ff1b0ee72d57cb62900aae30638d65c82f264d5de7b28375732171702",
        "payload": {
            "assetType": "ApprovalTransactions",
            "approvalTransactionId": "hold1~oaccount~1cf5d40c7ea7b9dceedfc66292ab843c1583564c3ecaf9f5ceb11f834018b02f",
            "approvalOperationId": "hold1",
            "fromAccountId": "oaccount~374e4e762940fc185c7cd5b6528c7f94985b6c56acf46abb746de6381589edd2",
            "toAccountId": "oaccount~79c427e614530eacad6fb07cff6048f6b96283e65019301320c9684932846f64",
            "approverAccountId": "oaccount~1cf5d40c7ea7b9dceedfc66292ab843c1583564c3ecaf9f5ceb11f834018b02f",
            "totalApprovals": 1,
            "timestamp": "2025-11-21T12:32:43.000Z"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 289
    }
}