github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/protobuf/rpctransact.proto (about) 1 syntax = 'proto3'; 2 3 package rpctransact; 4 5 option go_package = "github.com/hyperledger/burrow/rpc/rpctransact"; 6 7 import "gogoproto/gogo.proto"; 8 import "google/protobuf/duration.proto"; 9 10 import "exec.proto"; 11 import "payload.proto"; 12 import "txs.proto"; 13 14 option (gogoproto.marshaler_all) = true; 15 option (gogoproto.unmarshaler_all) = true; 16 option (gogoproto.stable_marshaler_all) = true; 17 // Enable custom Size method (Required by Marshal and Unmarshal). 18 option (gogoproto.sizer_all) = true; 19 // Enable registration with golang/protobuf for the grpc-gateway. 20 option (gogoproto.goproto_registration) = true; 21 // Enable generation of XXX_MessageName methods for grpc-go/status. 22 option (gogoproto.messagename_all) = true; 23 24 // Transaction Service Definition 25 service Transact { 26 // Broadcast a transaction to the mempool - if the transaction is not signed signing will be attempted server-side 27 // and wait for it to be included in block 28 rpc BroadcastTxSync (TxEnvelopeParam) returns (exec.TxExecution); 29 // Broadcast a transaction to the mempool - if the transaction is not signed signing will be attempted server-side 30 rpc BroadcastTxAsync (TxEnvelopeParam) returns (txs.Receipt); 31 32 // Sign transaction server-side 33 rpc SignTx (TxEnvelopeParam) returns (TxEnvelope); 34 // Formulate a transaction from a Payload and retrun the envelop with the Tx bytes ready to sign 35 rpc FormulateTx (payload.Any) returns (TxEnvelope); 36 37 // Formulate and sign a CallTx transaction signed server-side and wait for it to be included in a block, retrieving response 38 rpc CallTxSync (payload.CallTx) returns (exec.TxExecution); 39 // Formulate and sign a CallTx transaction signed server-side 40 rpc CallTxAsync (payload.CallTx) returns (txs.Receipt); 41 // Perform a 'simulated' call of a contract against the current committed EVM state without any changes been saved 42 // and wait for the transaction to be included in a block 43 rpc CallTxSim (payload.CallTx) returns (exec.TxExecution); 44 // Perform a 'simulated' execution of provided code against the current committed EVM state without any changes been saved 45 rpc CallCodeSim (CallCodeParam) returns (exec.TxExecution); 46 47 // Formulate a SendTx transaction signed server-side and wait for it to be included in a block, retrieving response 48 rpc SendTxSync (payload.SendTx) returns (exec.TxExecution); 49 // Formulate and SendTx transaction signed server-side 50 rpc SendTxAsync (payload.SendTx) returns (txs.Receipt); 51 52 // Formulate a NameTx signed server-side and wait for it to be included in a block returning the registered name 53 rpc NameTxSync (payload.NameTx) returns (exec.TxExecution); 54 // Formulate a NameTx signed server-side 55 rpc NameTxAsync (payload.NameTx) returns (txs.Receipt); 56 } 57 58 message CallCodeParam { 59 bytes FromAddress = 1 [(gogoproto.customtype) = "github.com/hyperledger/burrow/crypto.Address", (gogoproto.nullable) = false]; 60 bytes Code = 2; 61 bytes Data = 3; 62 } 63 64 message TxEnvelope { 65 txs.Envelope Envelope = 1 [(gogoproto.customtype) = "github.com/hyperledger/burrow/txs.Envelope"]; 66 } 67 68 message TxEnvelopeParam { 69 // An existing Envelope - either signed or unsigned - if the latter will be signed server-side 70 txs.Envelope Envelope = 1 [(gogoproto.customtype) = "github.com/hyperledger/burrow/txs.Envelope"]; 71 // If no Envelope provided then one will be generated from the provided payload and signed server-side 72 payload.Any Payload = 2; 73 // The amount of time to wait for the transaction to be committed and the TxExecution to be returned (server-side). 74 // If zero there wait is unbounded. Timed out transactions return SyncInfo state that may be helpful debugging 75 // non-committed transactions - this timeout must be less than client timeout to see such information! 76 google.protobuf.Duration Timeout = 3 [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; 77 } 78