表示由客户端发起的交易。
| 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 开始。 对于同一交易发送者之前提交到网络的每笔交易,此数字必须增加 1。 请注意,这不包括可能已作为链的一部分提交的任何事务单元,这些事务单元不得设置序列号。但确实包含交易链本身的发件人。 |
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 |
可选。Message for transferring the token manager role for a currency from one account to another. |
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
将指定货币运营商的所有权转移到新账号。发送者必须是平台运营商。
如果交易成功,则停用给定的货币运营商,并且新创建的账号的 ID 会作为事件在已完成交易的 TransactionCertificate 中返回。
| 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。 |
薄荷青
铸造货币代币并将其转移到指定账户。发送者必须是令牌管理员。
| 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 编码的字符串。 |