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