表示由客户发起的交易。
| JSON 表示法 |
|---|
{ "source": { object ( |
| 字段 | |
|---|---|
source |
可选。交易发送者。已弃用:请改用 |
senderId |
可选。发送相应交易的账号的 ID。对于 |
signatories[] |
可选。除了发送者之外,已为此交易签名的账号。已弃用:请改用 |
otherSignatoryIds[] |
可选。除了发送者之外,已为此交易签名的账号的 ID。 |
sequenceNumber |
必需。一个从 0 开始的唯一单调递增的数字。 对于同一交易发送者之前向网络提交的每笔交易,此编号都必须增加 1。 请注意,这不包括可能已作为链的一部分提交的任何交易单元,这些交易单元不得设置序列号。但确实包含交易链本身的发送者。 |
chainedUnit |
如果此客户端交易是交易链的一部分,则必须设置为 true。否则,必须将其设置为 false。 这是为了防止旨在成为链式交易一部分的已签名交易被单独提交。 |
联合字段 kind。特定于客户端交易的消息。kind 只能是下列其中一项: |
|
app |
可选。已弃用:请改用特定于消息的字段。特定于客户端交易的消息。应为以下任意一项:
此对象可以包含任意类型的字段。附加字段 |
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
创建新的币种运算符。发送者必须是平台运营商。
如果交易成功,则会在最终交易的 TransactionCertificate 中以事件的形式返回新创建的账号的 ID。
此交易必须在系统中引入新的币种。如果指定的币种已存在,则此交易将失败。如果必须替换币种运算符,则应改为发送 TransferCurrencyOperator 交易。
| JSON 表示法 |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| 字段 | |
|---|---|
publicKey |
必需。新币种运营商的公钥。此公钥将与币种运营商相关联,并存储在账本中。它将用于验证运营商账号发出的交易的签名。 公钥的格式由 使用 base64 编码的字符串。 |
keyFormat |
可选。不可变。公钥的密钥格式。如果未指定,则默认为采用 Tink 序列化格式的二进制序列化密钥集。视为公开信息。 |
accountComment |
可选。不可变。一个不透明的注释字段,系统不会对其进行解读,但会将其存储在账号的账本中。视为公开信息。长度上限为 128 个字符。可以留空。创建后,此字段便不可更改。 |
currency |
可选。已弃用:请改用 |
currencyCode |
可选。与此运营商关联的法定货币,以 3 个大写字母的 ISO 4217 代码表示。视为公开信息。 |
TransferCurrencyOperator
将指定币种运营商的所有权转移到新账号。发送者必须是平台运营商。
如果交易成功,则停用给定的币种运营商,并将新创建的账号的 ID 作为最终交易的 TransactionCertificate 中的事件返回。
| JSON 表示法 |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| 字段 | |
|---|---|
publicKey |
必需。新币种运营商的公钥。此公钥将与币种运营商相关联,并存储在账本中。它将用于验证货币运营商账号发出的交易的签名。 公钥的格式由 使用 base64 编码的字符串。 |
keyFormat |
可选。不可变。公钥的密钥格式。如果未指定,则默认为采用 Tink 序列化格式的二进制序列化密钥集。视为公开信息。 |
accountComment |
可选。不可变。一个不透明的注释字段,系统不会对其进行解读,但会将其存储在账号的账本中。视为公开信息。长度上限为 128 个字符。可以留空。创建后,此字段便不可更改。 |
currencyOperator |
可选。已弃用:请改用 |
currencyOperatorId |
可选。要替换的币种运算符的 ID。必须处于有效状态。必须指定 |
CreateClearinghouse
创建新的清算机构。汇款方必须是货币运营商。
如果交易成功,则会在最终交易的 TransactionCertificate 中以事件的形式返回新创建的账号的 ID。
| JSON 表示法 |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| 字段 | |
|---|---|
publicKey |
必需。新清算机构的公钥。请注意,此密钥不是运营商的公钥。此公钥将与清算机构相关联,并存储在账本中。它将用于验证清算机构账号发出的交易的签名。 公钥的格式由 使用 base64 编码的字符串。 |
keyFormat |
可选。不可变。公钥的密钥格式。如果未指定,则默认为采用 Tink 序列化格式的二进制序列化密钥集。视为公开信息。 |
accountComment |
可选。不可变。一个不透明的注释字段,系统不会对其进行解读,但会将其存储在账号的账本中。视为公开信息。长度上限为 128 个字符。可以留空。创建后,此字段便不可更改。 |
settlementMode |
必需。相应清算机构的结算模式。必需。视为公开信息。 |
CreateAccountManager
创建新的客户经理。汇款方必须是货币运营商。
如果交易成功,则会在最终交易的 TransactionCertificate 中以事件的形式返回新创建的账号的 ID。
| JSON 表示法 |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| 字段 | |
|---|---|
publicKey |
必需。新账号管理器的公钥。请注意,此密钥不是运营商的公钥。此公钥将与账号管理器相关联,并存储在账本中。它将用于验证来自客户经理账号的交易的签名。 公钥的格式由 使用 base64 编码的字符串。 |
keyFormat |
可选。不可变。公钥的密钥格式。如果未指定,则默认为采用 Tink 序列化格式的二进制序列化密钥集。视为公开信息。 |
defaultTokenManager |
可选。已弃用:请改用 |
defaultTokenManagerId |
可选。相应经理账号将创建的账号的默认令牌管理器的 ID。该值的长度上限为 60 个字符。 |
accountComment |
可选。不可变。一个不透明的注释字段,系统不会对其进行解读,但会将其存储在账号的账本中。视为公开信息。长度上限为 128 个字符。可以留空。创建后,此字段便不可更改。 |
CreateTokenManager
创建与发送请求的运营商的币种相关联的新令牌管理器。汇款方必须是货币运营商。
如果交易成功,则会在最终交易的 TransactionCertificate 中以事件的形式返回新创建的账号的 ID。
| JSON 表示法 |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| 字段 | |
|---|---|
publicKey |
必需。新令牌管理器的公钥。请注意,此密钥不是运营商的公钥。此公钥将与令牌管理器相关联,并存储在账本中。它将用于验证来自令牌管理器账号的交易的签名。 公钥的格式由 使用 base64 编码的字符串。 |
keyFormat |
可选。不可变。公钥的密钥格式。如果未指定,则默认为采用 Tink 序列化格式的二进制序列化密钥集。视为公开信息。 |
accountComment |
可选。不可变。一个不透明的注释字段,系统不会对其进行解读,但会将其存储在账号的账本中。视为公开信息。长度上限为 128 个字符。可以留空。创建后,此字段便不可更改。 |
IncreaseTokenIssuanceLimit
用于代币发行和铸造的交易。通知网络目标账号已存入准备金,并提高其令牌发行限额。发件人必须是清算机构账号。
| JSON 表示法 |
|---|
{ "tokenManager": { object ( |
| 字段 | |
|---|---|
tokenManager |
可选。已弃用:请改用 |
tokenManagerId |
可选。要提高铸造限额的机构账号的 ID。此账号必须是令牌管理器,交易才能有效。必须指定 |
amount |
必需。要提高的限额。金额必须为正数。 |
DecreaseTokenIssuanceLimit
通知网络目标账号希望提取储备资金,并降低其令牌发行限额。发件人必须是清算机构账号。
请注意,只有在成功完成此交易后,才能提取预留资金。这是必需的,因为交易可能会失败(例如,如果铸造的金额已高于请求的减少限额)。
| JSON 表示法 |
|---|
{ "tokenManager": { object ( |
| 字段 | |
|---|---|
tokenManager |
可选。已弃用:请改用 |
tokenManagerId |
可选。要降低铸造限额的机构账号的 ID。此账号必须是令牌管理器,交易才能有效。必须指定 |
amount |
必需。要降低的限额。金额必须为正数。如果减少后的限额低于当前已发放的令牌数量,交易将失败。 |
SettlementRequest
在两个令牌管理器之间启动结算操作。发件人必须是清算机构账号。
在清算机构持有令牌管理器资金的延迟 SettlementMode 中,这是唯一需要发送的交易,用于在两个令牌管理器之间执行结算。
| JSON 表示法 |
|---|
{ "payer": { object ( |
| 字段 | |
|---|---|
payer |
可选。不可变。已弃用:请改用 |
payerId |
可选。不可变。需要进行资金转移的方的账号 ID。必须指定 |
beneficiary |
可选。不可变。已弃用:请改用 |
beneficiaryId |
可选。不可变。将接收资金的当事方的账号 ID。必须指定 |
balance |
必需。不可变。 |
roundId |
必需。不可变。计算此结算金额时的轮次 ID。 |
明特
铸造币种令牌并将其转移到指定账号。发件人必须是令牌管理器。
| JSON 表示法 |
|---|
{ "mintAmount": { object ( |
| 字段 | |
|---|---|
mintAmount |
必需。要铸造的金额。该金额必须确保令牌管理器铸造的令牌总数不超过铸造限额。如果金额高于此值,则必须拒绝交易 |
beneficiary |
可选。已弃用:请改用 |
beneficiaryId |
可选。铸造金额应转移到的账号的 ID。接收账号必须已启用 |
CreateAccount
创建新的用户账号。发件人必须是客户经理。
如果交易成功,则会在最终交易的 TransactionCertificate 中以事件的形式返回新创建的账号的 ID。
| JSON 表示法 |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| 字段 | |
|---|---|
publicKey |
必需。账号所有者的公钥。请注意,这不是发送者的公钥。这是新账号所有者的公钥,将存储在账本中。它将用于验证从所创建账号发出的交易的签名。 公钥的格式由 使用 base64 编码的字符串。 |
keyFormat |
可选。不可变。公钥的密钥格式。如果未指定,则默认为采用 Tink 序列化格式的二进制序列化密钥集。视为公开信息。 |
roles[] |
可选。要向相应账号授予的角色列表。 |
accountStatus |
可选。要创建的账号的状态。默认情况下,新创建的账号的状态为 |
accountComment |
可选。不可变。一个不透明的注释字段,系统不会对其进行解读,但会将其存储在账号的账本中。视为公开信息。长度上限为 128 个字符。可以留空。创建后,此字段便不可更改。 |
tokenManager |
可选。已弃用:请改用 |
tokenManagerId |
可选。相应账号的令牌管理器的 ID。此字段为可选字段,如果未提供,系统将使用与账号管理器(即此交易的发送者)关联的默认令牌管理器。该值的长度上限为 60 个字符。 |
DeactivateAccount
将账号标记为 ACCOUNT_STATUS_INACTIVE。发送者必须是要停用的账号的客户经理。
这意味着,无论账号所有者拥有何种角色,都无法在该账号中进行任何交易。
| JSON 表示法 |
|---|
{
"account": {
object ( |
| 字段 | |
|---|---|
account |
可选。已弃用:请改用 |
accountId |
可选。要停用的账号的 ID。必须指定 |
RemoveRoles
从账号中移除指定角色。发件人必须是要修改的账号的客户经理。
| JSON 表示法 |
|---|
{ "account": { object ( |
| 字段 | |
|---|---|
account |
可选。已弃用:请改用 |
accountId |
可选。要修改的账号的 ID。必须指定 |
roles[] |
必需。要移除的角色。 |
转移
将代币从一个用户账号转移到另一个用户账号。发件人必须是常规用户账号,而不是令牌管理器或账号管理器等具有特殊权限的账号。
此外,交易发送方必须启用 ROLE_PAYER,而接收方必须启用 ROLE_RECEIVER。
| JSON 表示法 |
|---|
{ "beneficiary": { object ( |
| 字段 | |
|---|---|
beneficiary |
可选。已弃用:请改用 |
beneficiaryId |
可选。接收令牌的账号的 ID。必须指定 |
amount |
必需。要转移的金额。金额必须为正数。 |
CreateContract
在账本上存储合约。
| JSON 表示法 |
|---|
{ "contractBytes": string, "arguments": { string: { object ( |
| 字段 | |
|---|---|
contractBytes |
序列化合约字节。 使用 base64 编码的字符串。 |
arguments |
可选。不可变。已弃用:请改用 包含一系列 |
initArguments |
可选。不可变。包含 包含一系列 |
contractComment |
可选。不可变。一个不透明的注释字段,不会被系统解读,但会存储在合约的账本中。视为公开信息。长度上限为 128 个字符。可以留空。创建后,此字段便不可更改。 |
GrantContractPermissions
通过交易发送者向合约授予权限。如果指定了 delegateContractId,则权限和相应存储空间将仅授予 delegateContractId 合约,而不是发送者。
请注意,不支持撤消权限。
| JSON 表示法 |
|---|
{ "contract": { object ( |
| 字段 | |
|---|---|
contract |
可选。已弃用:请改用 |
contractId |
可选。要授予权限的合同的 ID。必须指定 |
permissions[] |
要授予的权限。 |
delegateContractId |
可选。要授予权限的合同 ID。交易发送者必须是相应合约的所有者。 |
InvokeContractMethod
调用合约方法的执行。
| JSON 表示法 |
|---|
{ "contract": { object ( |
| 字段 | |
|---|---|
contract |
可选。已弃用:请改用 |
contractId |
可选。要运行的合约的 ID。必须指定 |
methodName |
要运行的方法的名称。 |
arguments |
可选。不可变。已弃用:请改用 包含一系列 |
methodArguments |
可选。不可变。包含要传递给方法的实参。 包含一系列 |
payment |
待付金额。调用可付款方法时必须大于零;对于不可付款方法,则必须为零。 |
CreateContractTokenManager
创建与发送请求的运营商的币种相关联的新合约令牌管理器。汇款方必须是货币运营商。新创建的合同令牌管理器默认处于有效状态。如果必须替换合同令牌管理器,则应改为发送 TransferContractTokenManager 交易。如果存在与同一币种关联的其他合同令牌管理器,此交易将失败。
与常规代币管理器不同,合约代币管理器不得执行铸造或销毁等交易。不过,他们可以参与结算操作。
如果交易成功,则会在最终交易的 TransactionCertificate 中以事件的形式返回新创建的账号的 ID。
| 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
从指定 slot 中移除账号签名密钥。另一个 slot 不得为空,且必须包含用于对 ClientTransaction 进行签名的密钥。
| JSON 表示法 |
|---|
{
"keySlot": enum ( |
| 字段 | |
|---|---|
keySlot |
必需。要从中移除密钥的密钥槽。如果此值已为空,则交易将失败。 |
ReplaceSigningPublicKey
替换指定 slot 中的账号签名密钥。另一个 slot 不得为空,且必须包含用于对 ClientTransaction 进行签名的密钥。
| JSON 表示法 |
|---|
{ "keySlot": enum ( |
| 字段 | |
|---|---|
keySlot |
必需。我们要替换密钥的密钥槽。 |
newPublicKey |
必需。将替换指定 slot 中公钥的新公钥。 公钥的格式由 newKeyFormat 字段定义。视为公开信息。 使用 base64 编码的字符串。 |
newKeyFormat |
必需。新公钥的密钥格式。如需查看支持的格式列表,请参阅 KeyFormat 的定义。视为公开信息。 |
TransactionChain
包含多个按顺序执行的交易单元的交易链。
各单元将按列出的顺序依次执行。如果所有单元都成功,则它们的累积效应将以原子方式提交到世界状态。否则,如果其中任何一个失败,整个链都会失败,并且不会应用任何效果。
| JSON 表示法 |
|---|
{ "units": [ string ] } |
| 字段 | |
|---|---|
units[] |
链的各个单元。每个单元都必须是序列化的 请注意,为了确定要为链本身签名的字节,需要使用序列化字节。 使用 base64 编码的字符串。 |