@@ -28,29 +28,6 @@ option java_package = "com.google.cloud.universalledger.v1";
2828option php_namespace = "Google\\Cloud\\UniversalLedger\\V1" ;
2929option ruby_package = "Google::Cloud::UniversalLedger::V1" ;
3030
31- // Specifies who pays the transaction fees.
32- enum FeePayer {
33- // Unspecified fee payer. This value is invalid.
34- FEE_PAYER_UNSPECIFIED = 0 ;
35-
36- // Indicates that the sender should be charged the fees in addition to the
37- // transfer amount. For example, if A is sending `$100` to B and the fee is
38- // `$1`, then A's account is debited `$100 + $1 = $101` and B's account is
39- // credited `$100`.
40- FEE_PAYER_SENDER = 1 ;
41-
42- // Indicates that the receiver should be charged the fees. For example,
43- // if A is sending `$100` to B and the fee is `$1`, then A's account is
44- // debited `$100` and B's account is credited `$100 - $1 = $99`.
45- FEE_PAYER_RECEIVER = 2 ;
46-
47- // Indicates that a separate fee account should be charged the fees. For
48- // example, if A is sending `$100` to B and the fee is `$1`, then A's account
49- // is debited `$100` and B's account is credited `$100`. The fee of `$1` will
50- // be debited from a separate fee account specified elsewhere.
51- FEE_PAYER_OTHER = 3 ;
52- }
53-
5431// Specifies the format a public key is provided in.
5532enum KeyFormat {
5633 // The key format is unspecified. This value is invalid and should not be
@@ -85,37 +62,6 @@ enum SettlementMode {
8562 SETTLEMENT_MODE_INSTANT = 2 ;
8663}
8764
88- // Fee structure where the fee is proportional to some reference amount.
89- // The reference amount would usually be the payment amount but the specific
90- // choice is up to each transaction type that includes this fee stanza.
91- message FractionalFee {
92- // Required. A percentage expressed in multiples of hundredths of a basis
93- // point, where 1 basis point = 0.01%. For example, 1% is expressed as an
94- // amount of 10000, while 0.01% (= 1 bp) is expressed as an amount of 100.
95- int64 amount = 1 [(google.api.field_behavior ) = REQUIRED ];
96-
97- // Optional. Indicates who pays the fee. By default, it will be the
98- // transaction sender. If set to `FEE_PAYER_OTHER`, then a valid fee account
99- // must also be supplied in `fee_account_id` (or the deprecated `fee_account`
100- // field).
101- FeePayer fee_payer = 2 [(google.api.field_behavior ) = OPTIONAL ];
102-
103- // Optional. Optional fee account in case the fee is to be paid from an
104- // account other than the transaction sender or receiver. If a fee account is
105- // specified, fee payer must be set to `FEE_PAYER_OTHER` and the transaction
106- // must also be signed by the fee account. Deprecated: use `fee_account_id`
107- // instead.
108- Entity fee_account = 3
109- [deprecated = true , (google.api.field_behavior ) = OPTIONAL ];
110-
111- // Optional. The ID of the account from which the fee is paid. This is an
112- // optional field which is only required if the fee is to be paid from an
113- // account other than the transaction sender or receiver. If a fee account ID
114- // is specified, fee payer must be set to `FEE_PAYER_OTHER` and the
115- // transaction must also be signed by the fee account.
116- string fee_account_id = 4 [(google.api.field_behavior ) = OPTIONAL ];
117- }
118-
11965// Initiates a settlement operation between two token managers.
12066// The sender must be a clearinghouse account.
12167//
@@ -422,10 +368,6 @@ message Transfer {
422368
423369 // Required. The amount to transfer. The amount must be positive.
424370 CurrencyValue amount = 2 [(google.api.field_behavior ) = REQUIRED ];
425-
426- // Optional. The transaction fee to be paid, as a fraction of the amount to
427- // transfer.
428- FractionalFee fractional_fee = 3 [(google.api.field_behavior ) = OPTIONAL ];
429371}
430372
431373// Creates a new token manager associated to the currency of the operator
@@ -710,3 +652,80 @@ message InvokeContractMethod {
710652 // non-payable ones.
711653 CurrencyValue payment = 4 ;
712654}
655+
656+ // Creates a new contract token manager associated with the currency of the
657+ // operator sending the request. The sender must be a currency operator.
658+ // The newly created contract token manager will be active by default. If the
659+ // contract token manager has to be replaced, the TransferContractTokenManager
660+ // transaction should be sent instead. If another contract token manager
661+ // associated to the same currency exists, this transaction will fail.
662+ //
663+ // Unlike regular token managers, contract token managers are not allowed to
664+ // execute transactions such as mint or burn. They can, however, participate in
665+ // settlement operations.
666+ //
667+ // If the transaction is successful, the ID of the newly created account is
668+ // returned as an event in the
669+ // [TransactionCertificate][google.cloud.universalledger.v1.TransactionCertificate]
670+ // of the finalized transaction.
671+ message CreateContractTokenManager {
672+ // Required. The public key of the new contract token manager. Note that this
673+ // is *not* the public key of the operator. This public key will be associated
674+ // with the contract token manager and stored on the ledger. It will be used
675+ // to validate the signature of the transactions emanating from the contract
676+ // token manager's account.
677+ //
678+ // The format of the public key is defined by the `key_format` field.
679+ bytes public_key = 1 [(google.api.field_behavior ) = REQUIRED ];
680+
681+ // Optional. Immutable. An opaque comment field that is not interpreted by the
682+ // system but stored on the ledger in the account. Maximum length is 128
683+ // characters. May be left empty. Once created, the field is immutable.
684+ string account_comment = 2 [
685+ (google.api.field_behavior ) = OPTIONAL ,
686+ (google.api.field_behavior ) = IMMUTABLE
687+ ];
688+
689+ // Optional. Immutable. The key format of the public key. If not
690+ // specified, defaults to a binary serialized keyset in [Tink wire
691+ // format](https://developers.google.com/tink/wire-format#keyset_serialization).
692+ KeyFormat key_format = 3 [
693+ (google.api.field_behavior ) = OPTIONAL ,
694+ (google.api.field_behavior ) = IMMUTABLE
695+ ];
696+ }
697+
698+ // Transfers the ownership of the contract token manager to a new account. The
699+ // sender must be the current currency operator for the currency.
700+ //
701+ // If the transaction is successful, deactivates the current contract token
702+ // manager for the currency, and the ID of the newly created account is returned
703+ // as an event in the
704+ // [TransactionCertificate][google.cloud.universalledger.v1.TransactionCertificate]
705+ // of the finalized transaction.
706+ message TransferContractTokenManager {
707+ // Required. The public key of the new contract token manager. Note that this
708+ // is *not* the public key of the operator. This is the public key of the
709+ // *new* contract token manager and it will be stored on the ledger. It will
710+ // be used to validate the signature of the transactions emanating from the
711+ // contract token manager's account.
712+ //
713+ // The format of the public key is defined by the `key_format` field.
714+ bytes public_key = 1 [(google.api.field_behavior ) = REQUIRED ];
715+
716+ // Optional. Immutable. An opaque comment field that is not interpreted by the
717+ // system but stored on the ledger in the account. Maximum length is 128
718+ // characters. May be left empty. Once created, the field is immutable.
719+ string account_comment = 2 [
720+ (google.api.field_behavior ) = OPTIONAL ,
721+ (google.api.field_behavior ) = IMMUTABLE
722+ ];
723+
724+ // Optional. Immutable. The key format of the public key. If not
725+ // specified, defaults to a binary serialized keyset in [Tink wire
726+ // format](https://developers.google.com/tink/wire-format#keyset_serialization).
727+ KeyFormat key_format = 3 [
728+ (google.api.field_behavior ) = OPTIONAL ,
729+ (google.api.field_behavior ) = IMMUTABLE
730+ ];
731+ }
0 commit comments