github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/protobuf/acm.proto (about)

     1  syntax = 'proto3';
     2  
     3  package acm;
     4  
     5  option go_package = "github.com/hyperledger/burrow/acm";
     6  
     7  import "gogoproto/gogo.proto";
     8  
     9  import "permission.proto";
    10  import "crypto.proto";
    11  
    12  option (gogoproto.stable_marshaler_all) = true;
    13  option (gogoproto.marshaler_all) = true;
    14  option (gogoproto.unmarshaler_all) = true;
    15  option (gogoproto.sizer_all) = true;
    16  option (gogoproto.goproto_registration) = true;
    17  option (gogoproto.messagename_all) = true;
    18  
    19  message Account {
    20      option (gogoproto.goproto_stringer) = false;
    21      bytes Address = 1 [(gogoproto.customtype) = "github.com/hyperledger/burrow/crypto.Address", (gogoproto.nullable) = false];
    22      crypto.PublicKey PublicKey = 2;
    23      // Sequence counts the number of transactions that have been accepted from this account
    24      uint64 Sequence = 3;
    25      // The account's current native token balance
    26      uint64 Balance = 4;
    27      // We expect exactly one of EVMCode, WASMCode, and NativeName to be non-empty
    28      // EVM bytecode
    29      bytes EVMCode = 5 [(gogoproto.customtype) = "Bytecode", (gogoproto.nullable) = false];
    30      permission.AccountPermissions Permissions = 6 [(gogoproto.nullable) = false];
    31      // WASM bytecode
    32      bytes WASMCode = 7 [(gogoproto.customtype) = "Bytecode", (gogoproto.jsontag) = ",omitempty", (gogoproto.nullable) = false];
    33      // Fully qualified (`<contract name>.<function name>`) name of native contract this for which this account object
    34      // is a sentinel value. Which is to say this account object is a pointer to compiled code and does not contain
    35      // the contract logic in its entirety
    36      string NativeName = 11 [(gogoproto.jsontag) = ",omitempty"];
    37      // The sha3 hash of the code associated with the account
    38      bytes CodeHash = 8 [(gogoproto.customtype) = "github.com/hyperledger/burrow/binary.HexBytes", (gogoproto.nullable) = false, (gogoproto.jsontag) = "-"];
    39      // Pointer to the Metadata associated with this account
    40      repeated ContractMeta ContractMeta = 9;
    41      // The metadata is stored in the deployed account. When the deployed account creates new account
    42      // (from Solidity/EVM), they point to the original deployed account where the metadata is stored.
    43      // This original account is called the forebear.
    44      bytes Forebear = 10 [(gogoproto.customtype) = "github.com/hyperledger/burrow/crypto.Address"];
    45  }
    46  
    47  message ContractMeta {
    48      bytes CodeHash = 1 [(gogoproto.customtype) = "github.com/hyperledger/burrow/binary.HexBytes", (gogoproto.nullable) = false];
    49      bytes MetadataHash = 2 [(gogoproto.customtype) = "github.com/hyperledger/burrow/binary.HexBytes", (gogoproto.nullable) = false];
    50      // In the dump format we would like the ABI rather than its hash
    51      string Metadata = 3;
    52  }