代表由用戶端發起的交易。
| JSON 表示法 |
|---|
{ "senderId": string, "otherSignatoryIds": [ string ], "sequenceNumber": string, "chainedUnit": boolean, "network": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "operational": { "@type": string, field1: ..., ... }, "transferPlatformOperatorTransaction": { object ( |
| 欄位 | |
|---|---|
senderId |
這是必要旗標,傳送這筆交易的帳戶 ID。 |
otherSignatoryIds[] |
選用。除了傳送者外,簽署這筆交易的帳戶 ID。 |
sequenceNumber |
這是必要旗標,不重複的單調遞增數字,從 0 開始。 同一位交易傳送者先前向網路提交的每筆交易,都必須將這個數字加一。 請注意,這不包含可能已做為鏈結一部分提交的任何交易單位,這些單位不得設定序號。但會包含交易鏈本身的寄件者。 |
chainedUnit |
如果這筆用戶端交易屬於交易鏈的一部分,則必須設為 true。否則,必須設為 false。 這是為了避免已簽署的交易 (原本應為鏈結的一部分) 單獨提交。 |
network |
這是必要旗標,這筆交易預計使用的網路名稱,例如 |
| 用戶端交易專屬訊息。以下是互斥欄位清單。回應中最多會設定下列其中一個欄位: | |
operational |
選用。作業交易訊息。請注意,這項資訊只能由平台營運商傳送。應為下列其中一項: 包含任意類型欄位的物件。額外的 |
transferPlatformOperatorTransaction |
選用。將平台營運商角色轉移至新帳戶的訊息。 |
createCurrencyOperatorTransaction |
選用。建立新貨幣運算子的訊息。 |
transferCurrencyOperatorTransaction |
選用。將貨幣操作員角色轉移至新帳戶的訊息。 |
createClearinghouseTransaction |
選用。建立新結算所的訊息。 |
createAccountManagerTransaction |
選用。建立新客戶經理時顯示的訊息。 |
createTokenManagerTransaction |
選用。建立新代碼管理工具的訊息,與傳送要求的業者幣別相關聯。 |
increaseTokenIssuanceLimitTransaction |
選用。通知網路,目標帳戶已存入準備金,並提高代幣發行上限。 |
decreaseTokenIssuanceLimitTransaction |
選用。通知網路,目標帳戶希望提領準備金,並降低代幣發行上限。 |
settlementRequestTransaction |
選用。用於啟動結算作業的訊息。 |
mintTransaction |
選用。用於鑄造貨幣代幣並轉移至帳戶的訊息。 |
burnTransaction |
選用。從帳戶銷毀貨幣代幣的訊息。 |
createAccountTransaction |
選用。建立新使用者帳戶時顯示的訊息。 |
deactivateAccountTransaction |
選用。停用使用者帳戶時顯示的訊息。 |
activateAccountTransaction |
選用。啟用使用者帳戶的訊息。 |
addRolesTransaction |
選用。為帳戶新增角色的訊息。 |
removeRolesTransaction |
選用。從帳戶移除角色的訊息。 |
changeAccountManagerTransaction |
選用。變更帳戶客戶經理時顯示的訊息。 |
transferTransaction |
選用。用於將代幣從一個使用者帳戶轉移到另一個帳戶的訊息。 |
createContractTransaction |
選用。在總帳上建立新合約的訊息。 |
grantContractPermissionsTransaction |
選用。授予合約權限的訊息。 |
invokeContractMethodTransaction |
選用。叫用合約方法執行的訊息。 |
createContractTokenManagerTransaction |
選用。建立新代碼管理工具的訊息,與傳送要求的業者幣別相關聯。 |
transferContractTokenManagerTransaction |
選用。將某種貨幣的代幣管理員角色從一個帳戶轉移到另一個帳戶的訊息。 |
removeSigningPublicKeyTransaction |
選用。移除帳戶簽署金鑰時顯示的訊息。 |
replaceSigningPublicKeyTransaction |
選用。更換帳戶簽署金鑰的訊息。 |
chain |
選用。交易鏈訊息,包含多個要依序執行的交易單位。 |
| 互斥欄位結束。 | |
TransferPlatformOperator
將平台運算子的擁有權轉移至新帳戶。寄件者必須是目前的平台營運商。
如果交易成功,系統會停用目前的平台營運商,並將新建立帳戶的 ID,以事件形式傳回至已完成交易的 TransactionCertificate。
| JSON 表示法 |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新平台營運商的公開金鑰。這組公開金鑰會與平台營運商建立關聯,並儲存在帳本中。用於驗證平台業者帳戶交易的簽章。 公開金鑰的格式由 Base64 編碼字串。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
CreateCurrencyOperator
建立新的貨幣運算子。寄件者必須是平台營運商。
如果交易成功,新建立帳戶的 ID 會以事件形式,在已完成交易的 TransactionCertificate 中傳回。
這項交易可將新貨幣引入系統,或為現有貨幣建立額外的貨幣運算子。如需更換現有的貨幣業者,請改為傳送 TransferCurrencyOperator 交易。
| JSON 表示法 |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新貨幣營運商的公開金鑰。這組公開金鑰會與貨幣營運商建立關聯,並儲存在帳本中。用於驗證從操作者帳戶發出的交易簽章。 公開金鑰的格式由 Base64 編碼字串。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
currencyCode |
這是必要旗標,與這個運算子相關聯的法定貨幣,以 3 個大寫字母的 ISO 4217 代碼表示。視為公開資訊。 |
TransferCurrencyOperator
將指定貨幣運營商的擁有權轉移給新帳戶。寄件者必須是平台營運商。
如果交易成功,系統會停用指定的貨幣運算子,並在已完成交易的 TransactionCertificate 中,以事件形式傳回新建立帳戶的 ID。
| JSON 表示法 |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新貨幣營運商的公開金鑰。這組公開金鑰會與貨幣營運商建立關聯,並儲存在帳本上。用於驗證貨幣營運商帳戶交易的簽章。 公開金鑰的格式由 Base64 編碼字串。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
currencyOperatorId |
這是必要旗標,要取代的貨幣運算子 ID。必須處於有效狀態。值長度上限為 60 個半形字元。 |
CreateClearinghouse
建立新的結算所。寄件者必須是貨幣營運商。
如果交易成功,新建立帳戶的 ID 會以事件形式,在已完成交易的 TransactionCertificate 中傳回。
| JSON 表示法 |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新結算所的公開金鑰。請注意,這「不是」操作者的公開金鑰。這組公開金鑰會與結算所建立關聯,並儲存在總帳中。用於驗證清算所帳戶交易的簽章。 公開金鑰的格式由 Base64 編碼字串。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
settlementMode |
這是必要旗標,這個結算所的結算模式。這是必要旗標,視為公開資訊。 |
CreateAccountManager
建立新的帳戶管理員。寄件者必須是貨幣營運商。
如果交易成功,新建立帳戶的 ID 會以事件形式,在已完成交易的 TransactionCertificate 中傳回。
| JSON 表示法 |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新帳戶管理員的公開金鑰。請注意,這「不是」操作者的公開金鑰。這組公開金鑰會與帳戶管理員建立關聯,並儲存在帳本中。用於驗證帳戶管理員帳戶交易的簽章。 公開金鑰的格式由 Base64 編碼字串。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
defaultTokenManagerId |
選用。這個管理員建立的帳戶,其預設權杖管理員的 ID。值長度上限為 60 個半形字元。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
CreateTokenManager
建立新的代碼管理工具,並與傳送要求的業者所用幣別建立關聯。寄件者必須是貨幣營運商。
如果交易成功,新建立帳戶的 ID 會以事件形式,在已完成交易的 TransactionCertificate 中傳回。
| JSON 表示法 |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新權杖管理員的公開金鑰。請注意,這「不是」操作者的公開金鑰。這組公開金鑰會與代幣管理工具建立關聯,並儲存在帳本中。用於驗證來自代幣管理員帳戶的交易簽章。 公開金鑰的格式由 Base64 編碼字串。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
IncreaseTokenIssuanceLimit
代幣發行和鑄造交易。通知網路目標帳戶已存入準備金,並提高代幣發行上限。寄件者必須是結算所帳戶。
| JSON 表示法 |
|---|
{
"tokenManagerId": string,
"amount": {
object ( |
| 欄位 | |
|---|---|
tokenManagerId |
這是必要旗標,要提高鑄造上限的機構帳戶 ID。這個帳戶必須是權杖管理員,交易才有效。 |
amount |
這是必要旗標,要提高的上限。金額必須為正數。 |
DecreaseTokenIssuanceLimit
通知網路,目標帳戶希望提領準備金,並降低代幣發行上限。寄件者必須是結算所帳戶。
請注意,這筆交易必須先成功完成,才能提領預留資金。這是必要步驟,因為交易可能會失敗 (例如,鑄造金額已超過要求的降低上限)。
| JSON 表示法 |
|---|
{
"tokenManagerId": string,
"amount": {
object ( |
| 欄位 | |
|---|---|
tokenManagerId |
這是必要旗標,要降低鑄造上限的機構帳戶 ID。這個帳戶必須是權杖管理員,交易才有效。 |
amount |
這是必要旗標,要降低的限制量。金額必須為正數。如果調降後的上限低於目前核發的代碼數量,交易就會失敗。 |
SettlementRequest
在兩個代碼管理工具之間啟動結算作業。寄件者必須是結算所帳戶。
在結算所保管代幣管理工具資金的延遲 SettlementMode 中,這是唯一需要傳送的交易,以便在兩個代幣管理工具之間執行結算。
| JSON 表示法 |
|---|
{
"payerId": string,
"beneficiaryId": string,
"balance": {
object ( |
| 欄位 | |
|---|---|
payerId |
這是必要旗標,不可變動。需要轉帳付款的參與方帳戶 ID。 |
beneficiaryId |
這是必要旗標,不可變動。收款方的帳戶 ID。 |
balance |
這是必要旗標,不可變動。 |
roundId |
這是必要旗標,不可變動。計算這筆結算金額的回合 ID。 |
Mint
鑄造貨幣代幣,並轉移至指定帳戶。寄件者必須是權杖管理員。
| JSON 表示法 |
|---|
{
"mintAmount": {
object ( |
| 欄位 | |
|---|---|
mintAmount |
這是必要旗標,要鑄造的數量。代幣管理工具鑄造的代幣總數不得超過鑄造上限。如果金額高於這個值,就必須拒絕交易 |
beneficiaryId |
這是必要旗標,要轉移鑄造金額的帳戶 ID。接收帳戶必須啟用 |
CreateAccount
建立新的使用者帳戶。寄件者必須是客戶經理。
如果交易成功,新建立帳戶的 ID 會以事件形式,在已完成交易的 TransactionCertificate 中傳回。
| JSON 表示法 |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,帳戶擁有者的公開金鑰。請注意,這「不是」寄件者的公開金鑰。這是新帳戶擁有者的公開金鑰,會儲存在帳本中。用於驗證所建立帳戶發出的交易簽名。 公開金鑰的格式由 Base64 編碼字串。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
roles[] |
選用。要授予這個帳戶的角色清單。 |
accountStatus |
選用。要建立的帳戶狀態。根據預設,新建立帳戶的狀態會是 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
tokenManagerId |
選用。這個帳戶的權杖管理員 ID。這個欄位為選填,如未提供,系統會使用與帳戶管理員 (即這筆交易的傳送者) 相關聯的預設權杖管理工具。值長度上限為 60 個半形字元。 |
DeactivateAccount
將帳戶標示為 ACCOUNT_STATUS_INACTIVE。寄件者必須是停用帳戶的客戶經理。
這表示無論帳戶擁有者具備何種角色,都無法在帳戶中進行任何交易。
| JSON 表示法 |
|---|
{ "accountId": string } |
| 欄位 | |
|---|---|
accountId |
這是必要旗標,要停用的帳戶 ID。值長度上限為 60 個半形字元。 |
RemoveRoles
從帳戶中移除指定角色。寄件者必須是待修改帳戶的客戶經理。
| JSON 表示法 |
|---|
{
"accountId": string,
"roles": [
enum ( |
| 欄位 | |
|---|---|
accountId |
這是必要旗標,要修改的帳戶 ID。值長度上限為 60 個半形字元。 |
roles[] |
這是必要旗標,要移除的角色。 |
轉移
將代幣從一個使用者帳戶轉移到另一個帳戶。寄件者必須是一般使用者帳戶,而非權杖管理員或帳戶管理員等特殊權限帳戶。
此外,交易傳送方必須啟用 ROLE_PAYER,接收方則必須啟用 ROLE_RECEIVER。
| JSON 表示法 |
|---|
{
"beneficiaryId": string,
"amount": {
object ( |
| 欄位 | |
|---|---|
beneficiaryId |
這是必要旗標,接收權杖的帳戶 ID。 |
amount |
這是必要旗標,要轉移的金額。金額必須為正數。 |
CreateContract
在帳本中儲存合約。
| JSON 表示法 |
|---|
{
"contractBytes": string,
"initArguments": {
string: {
object ( |
| 欄位 | |
|---|---|
contractBytes |
序列化合約位元組。 Base64 編碼字串。 |
initArguments |
選用。不可變動。包含 包含 |
contractComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在合約的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
GrantContractPermissions
由交易傳送者授予合約權限。如果指定 delegateContractId,權限和對應的儲存空間會專門授予 delegateContractId 合約,而非傳送者。
請注意,系統不支援撤銷權限。
| JSON 表示法 |
|---|
{
"contractId": string,
"permissions": [
enum ( |
| 欄位 | |
|---|---|
contractId |
這是必要旗標,要授予權限的合約 ID。 |
permissions[] |
要授予的權限。 |
delegateContractId |
選用。要授予權限的合約 ID。交易傳送者必須是這份合約的擁有者。 |
InvokeContractMethod
叫用合約方法的執行作業。
| JSON 表示法 |
|---|
{ "contractId": string, "methodName": string, "methodArguments": { string: { object ( |
| 欄位 | |
|---|---|
contractId |
這是必要旗標,要執行的合約 ID。 |
methodName |
要執行的方法名稱。 |
methodArguments |
選用。不可變動。包含要傳遞至方法的引數。 包含 |
payment |
應付金額。叫用應付方法時,必須大於零;叫用非應付方法時,則為零。 |
CreateContractTokenManager
建立新的合約代碼管理工具,並與傳送要求的業者幣別建立關聯。寄件者必須是貨幣營運商。新建立的合約代碼管理工具預設為啟用。如果必須更換合約權杖管理員,則應改為傳送 TransferContractTokenManager 交易。如果已有另一個與相同幣別相關聯的合約代幣管理工具,這筆交易就會失敗。
與一般代幣管理工具不同,合約代幣管理工具無法執行鑄造或銷毀等交易。不過,他們可以參與結算作業。
如果交易成功,新建立帳戶的 ID 會以事件形式,在已完成交易的 TransactionCertificate 中傳回。
| JSON 表示法 |
|---|
{
"publicKey": string,
"accountComment": string,
"keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新合約權杖管理員的公開金鑰。請注意,這「不是」操作者的公開金鑰。這組公開金鑰會與合約代幣管理工具建立關聯,並儲存在帳本中。用於驗證合約代幣管理員帳戶發出的交易簽章。 公開金鑰的格式由 Base64 編碼字串。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
TransferContractTokenManager
將合約代幣管理員的擁有權轉移給新帳戶。傳送者必須是該貨幣的目前貨幣運算子。
如果交易成功,系統會停用該貨幣目前的合約權杖管理工具,並將新建立帳戶的 ID,以事件形式傳回至已完成交易的 TransactionCertificate。
| JSON 表示法 |
|---|
{
"publicKey": string,
"accountComment": string,
"keyFormat": enum ( |
| 欄位 | |
|---|---|
publicKey |
這是必要旗標,新合約權杖管理員的公開金鑰。請注意,這「不是」操作者的公開金鑰。這是新合約代碼管理員的公開金鑰,會儲存在總帳中。用於驗證合約代幣管理員帳戶發出的交易簽章。 公開金鑰的格式由 Base64 編碼字串。 |
accountComment |
選用。不可變動。不透明的註解欄位,系統不會解讀,但會儲存在帳戶的總帳中。視為公開資訊。長度上限為 128 個半形字元。可以留空。欄位建立後即無法變更。 |
keyFormat |
選用。不可變動。公開金鑰的格式。如未指定,則預設為 Tink 傳輸格式的二進位序列化金鑰組。視為公開資訊。 |
RemoveSigningPublicKey
從指定版位移除帳戶簽署金鑰。另一個版位不得空白,且必須包含用於簽署 ClientTransaction 的金鑰。
| JSON 表示法 |
|---|
{
"keySlot": enum ( |
| 欄位 | |
|---|---|
keySlot |
這是必要旗標,要移除金鑰的金鑰槽。如果這個欄位已留空,交易就會失敗。 |
ReplaceSigningPublicKey
取代指定運算單元中的帳戶簽署金鑰。另一個版位不得空白,且必須包含用於簽署 ClientTransaction 的金鑰。
| JSON 表示法 |
|---|
{ "keySlot": enum ( |
| 欄位 | |
|---|---|
keySlot |
這是必要旗標,要更換金鑰的金鑰槽。 |
newPublicKey |
這是必要旗標,新的公開金鑰,會取代指定運算單元中的公開金鑰。 公開金鑰的格式由 newKeyFormat 欄位定義。視為公開資訊。 Base64 編碼字串。 |
newKeyFormat |
這是必要旗標,新公開金鑰的金鑰格式。如需支援格式的清單,請參閱 KeyFormat 的定義。視為公開資訊。 |
TransactionChain
包含多個交易單元的交易鏈,會依序執行。
單元會按照列出的順序依序執行。如果所有單元都成功,其累積效果會以不可分割的方式提交至世界狀態。否則,如果其中任何一個失敗,整個鏈結都會失敗,且不會套用任何效果。
| JSON 表示法 |
|---|
{ "units": [ string ] } |
| 欄位 | |
|---|---|
units[] |
鏈結的個別單位。每個單位都必須是序列化的 請注意,您必須提供序列化位元組,才能判斷要為鏈結本身簽署的位元組。 Base64 編碼字串。 |