Documentation ¶
Index ¶
- Constants
- Variables
- func NewJSONCodec() *jsonCodec
- func NewProtobufCodec() *protobufCodec
- func RLPEncode(seq, gasPrice, gasLimit uint64, address, amount, data []byte) ([]byte, error)
- type Codec
- type Decoder
- type Encoder
- type Envelope
- func (*Envelope) Descriptor() ([]byte, []int)
- func (txEnv *Envelope) Get(key string) (interface{}, bool)
- func (m *Envelope) GetEnc() Envelope_Encoding
- func (m *Envelope) GetSignatories() []Signatory
- func (m *Envelope) Marshal() (dAtA []byte, err error)
- func (m *Envelope) MarshalTo(dAtA []byte) (int, error)
- func (*Envelope) ProtoMessage()
- func (m *Envelope) Reset()
- func (txEnv *Envelope) Sign(signingAccounts ...acm.AddressableSigner) error
- func (m *Envelope) Size() (n int)
- func (txEnv *Envelope) String() string
- func (m *Envelope) Unmarshal(dAtA []byte) error
- func (txEnv *Envelope) Validate() error
- func (txEnv *Envelope) Verify(chainID string) error
- func (m *Envelope) XXX_DiscardUnknown()
- func (m *Envelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Envelope) XXX_Merge(src proto.Message)
- func (*Envelope) XXX_MessageName() string
- func (m *Envelope) XXX_Size() int
- func (m *Envelope) XXX_Unmarshal(b []byte) error
- type Envelope_Encoding
- type Receipt
- func (*Receipt) Descriptor() ([]byte, []int)
- func (receipt *Receipt) Encode() ([]byte, error)
- func (m *Receipt) GetCreatesContract() bool
- func (m *Receipt) GetTxType() github_com_hyperledger_burrow_txs_payload.Type
- func (m *Receipt) Marshal() (dAtA []byte, err error)
- func (m *Receipt) MarshalTo(dAtA []byte) (int, error)
- func (*Receipt) ProtoMessage()
- func (m *Receipt) Reset()
- func (m *Receipt) Size() (n int)
- func (m *Receipt) String() string
- func (m *Receipt) Unmarshal(dAtA []byte) error
- func (m *Receipt) XXX_DiscardUnknown()
- func (m *Receipt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Receipt) XXX_Merge(src proto.Message)
- func (*Receipt) XXX_MessageName() string
- func (m *Receipt) XXX_Size() int
- func (m *Receipt) XXX_Unmarshal(b []byte) error
- type Signatory
- func (*Signatory) Descriptor() ([]byte, []int)
- func (m *Signatory) GetPublicKey() *crypto.PublicKey
- func (m *Signatory) GetSignature() *crypto.Signature
- func (m *Signatory) Marshal() (dAtA []byte, err error)
- func (m *Signatory) MarshalTo(dAtA []byte) (int, error)
- func (*Signatory) ProtoMessage()
- func (s *Signatory) RealisePublicKey(getter acmstate.AccountGetter) error
- func (m *Signatory) Reset()
- func (m *Signatory) Size() (n int)
- func (m *Signatory) String() string
- func (m *Signatory) Unmarshal(dAtA []byte) error
- func (sig *Signatory) Validate() error
- func (m *Signatory) XXX_DiscardUnknown()
- func (m *Signatory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Signatory) XXX_Merge(src proto.Message)
- func (*Signatory) XXX_MessageName() string
- func (m *Signatory) XXX_Size() int
- func (m *Signatory) XXX_Unmarshal(b []byte) error
- type Tx
- func (tx *Tx) Enclose() *Envelope
- func (tx *Tx) GenerateReceipt() *Receipt
- func (tx *Tx) Get(key string) (interface{}, bool)
- func (tx *Tx) Hash() binary.HexBytes
- func (tx *Tx) Marshal() ([]byte, error)
- func (tx *Tx) MarshalJSON() ([]byte, error)
- func (tx *Tx) MarshalTo(data []byte) (int, error)
- func (tx *Tx) MustSignBytes() []byte
- func (tx *Tx) Rehash() []byte
- func (tx *Tx) Sign(signingAccounts ...acm.AddressableSigner) (*Envelope, error)
- func (tx *Tx) SignBytes(enc Envelope_Encoding) ([]byte, error)
- func (tx *Tx) Size() int
- func (tx *Tx) String() string
- func (tx *Tx) Type() payload.Type
- func (tx *Tx) Unmarshal(data []byte) error
- func (tx *Tx) UnmarshalJSON(data []byte) error
Constants ¶
const ( HashLength = 32 HashLengthHex = HashLength * 2 )
Variables ¶
var ( ErrInvalidLengthTxs = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowTxs = fmt.Errorf("proto: integer overflow") )
var Envelope_Encoding_name = map[int32]string{
0: "JSON",
1: "RLP",
}
var Envelope_Encoding_value = map[string]int32{
"JSON": 0,
"RLP": 1,
}
Functions ¶
func NewJSONCodec ¶ added in v0.19.0
func NewJSONCodec() *jsonCodec
func NewProtobufCodec ¶ added in v0.28.0
func NewProtobufCodec() *protobufCodec
Types ¶
type Envelope ¶ added in v0.19.0
type Envelope struct { Signatories []Signatory `protobuf:"bytes,1,rep,name=Signatories,proto3" json:"Signatories"` // Canonical bytes of the Tx ready to be signed Tx *Tx `protobuf:"bytes,2,opt,name=Tx,proto3,customtype=Tx" json:"Tx,omitempty"` Enc Envelope_Encoding `protobuf:"varint,3,opt,name=Enc,proto3,enum=txs.Envelope_Encoding" json:"Enc,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
An envelope contains both the signable Tx and the signatures for each input (in signatories)
func Enclose ¶ added in v0.19.0
Enclose a Payload in an Envelope so it is ready to be signed by first wrapping the Payload as a Tx (including ChainID) and writing it to the Tx field of the Envelope
func EnvelopeFromAny ¶ added in v0.23.0
func (*Envelope) Descriptor ¶ added in v0.20.0
func (*Envelope) GetEnc ¶ added in v0.29.0
func (m *Envelope) GetEnc() Envelope_Encoding
func (*Envelope) GetSignatories ¶ added in v0.20.0
func (*Envelope) ProtoMessage ¶ added in v0.20.0
func (*Envelope) ProtoMessage()
func (*Envelope) Sign ¶ added in v0.19.0
func (txEnv *Envelope) Sign(signingAccounts ...acm.AddressableSigner) error
Sign the Tx Envelope by adding Signatories containing the signatures for each TxInput. signing accounts for each input must be provided (in any order).
func (*Envelope) Validate ¶ added in v0.19.0
Returns an error if Envelope has a nil transaction or zero signatures (and therefore could not possibly be valid)
func (*Envelope) Verify ¶ added in v0.19.0
Verifies the validity of the Signatories' Signatures in the Envelope. The Signatories must appear in the same order as the inputs as returned by Tx.GetInputs().
func (*Envelope) XXX_DiscardUnknown ¶ added in v0.23.0
func (m *Envelope) XXX_DiscardUnknown()
func (*Envelope) XXX_Marshal ¶ added in v0.23.0
func (*Envelope) XXX_MessageName ¶ added in v0.20.0
func (*Envelope) XXX_Unmarshal ¶ added in v0.23.0
type Envelope_Encoding ¶ added in v0.29.0
type Envelope_Encoding int32
const ( Envelope_JSON Envelope_Encoding = 0 Envelope_RLP Envelope_Encoding = 1 )
func (Envelope_Encoding) EnumDescriptor ¶ added in v0.29.0
func (Envelope_Encoding) EnumDescriptor() ([]byte, []int)
func (Envelope_Encoding) String ¶ added in v0.29.0
func (x Envelope_Encoding) String() string
type Receipt ¶
type Receipt struct { // Transaction type TxType github_com_hyperledger_burrow_txs_payload.Type `protobuf:"varint,1,opt,name=TxType,proto3,casttype=github.com/hyperledger/burrow/txs/payload.Type" json:"TxType,omitempty"` // The hash of the transaction that caused this event to be generated TxHash github_com_hyperledger_burrow_binary.HexBytes `protobuf:"bytes,2,opt,name=TxHash,proto3,customtype=github.com/hyperledger/burrow/binary.HexBytes" json:"TxHash"` // Whether the transaction creates a contract CreatesContract bool `protobuf:"varint,3,opt,name=CreatesContract,proto3" json:"CreatesContract,omitempty"` // The address of the contract being called ContractAddress github_com_hyperledger_burrow_crypto.Address `` /* 129-byte string literal not displayed */ XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
BroadcastTx or Transaction receipt
func DecodeReceipt ¶ added in v0.20.0
func (*Receipt) Descriptor ¶ added in v0.20.0
func (*Receipt) GetCreatesContract ¶ added in v0.20.0
func (*Receipt) GetTxType ¶ added in v0.20.0
func (m *Receipt) GetTxType() github_com_hyperledger_burrow_txs_payload.Type
func (*Receipt) ProtoMessage ¶ added in v0.20.0
func (*Receipt) ProtoMessage()
func (*Receipt) XXX_DiscardUnknown ¶ added in v0.23.0
func (m *Receipt) XXX_DiscardUnknown()
func (*Receipt) XXX_Marshal ¶ added in v0.23.0
func (*Receipt) XXX_MessageName ¶ added in v0.20.0
func (*Receipt) XXX_Unmarshal ¶ added in v0.23.0
type Signatory ¶ added in v0.19.0
type Signatory struct { Address *github_com_hyperledger_burrow_crypto.Address `protobuf:"bytes,1,opt,name=Address,proto3,customtype=github.com/hyperledger/burrow/crypto.Address" json:"Address,omitempty"` PublicKey *crypto.PublicKey `protobuf:"bytes,2,opt,name=PublicKey,proto3" json:"PublicKey,omitempty"` Signature *crypto.Signature `protobuf:"bytes,4,opt,name=Signature,proto3" json:"Signature,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
Signatory contains signature and one or both of Address and PublicKey to identify the signer
func (*Signatory) Descriptor ¶ added in v0.20.0
func (*Signatory) GetPublicKey ¶ added in v0.20.0
func (*Signatory) GetSignature ¶ added in v0.24.0
func (*Signatory) ProtoMessage ¶ added in v0.20.0
func (*Signatory) ProtoMessage()
func (*Signatory) RealisePublicKey ¶ added in v0.19.0
func (s *Signatory) RealisePublicKey(getter acmstate.AccountGetter) error
Attempts to 'realise' the PublicKey and Address of a Signatory possibly referring to state in the case where the Signatory contains an Address by no PublicKey. Checks consistency in other cases, possibly generating the Address from the PublicKey
func (*Signatory) XXX_DiscardUnknown ¶ added in v0.23.0
func (m *Signatory) XXX_DiscardUnknown()
func (*Signatory) XXX_Marshal ¶ added in v0.23.0
func (*Signatory) XXX_MessageName ¶ added in v0.20.0
func (*Signatory) XXX_Unmarshal ¶ added in v0.23.0
type Tx ¶
Tx is the canonical object that we serialise to produce the SignBytes that we sign
func (*Tx) GenerateReceipt ¶ added in v0.19.0
Generate a transaction Receipt containing the Tx hash and other information if the Tx is call. Returned by ABCI methods.
func (*Tx) Hash ¶ added in v0.18.0
Generate a Hash for this transaction based on the SignBytes. The hash is memoized over the lifetime of the Tx so repeated calls to Hash() are effectively free
func (*Tx) MarshalJSON ¶ added in v0.19.0
func (*Tx) MustSignBytes ¶ added in v0.19.0
Generate SignBytes, panicking on any failure
func (*Tx) Rehash ¶ added in v0.19.0
Regenerate the Tx hash if it has been mutated or as called by Hash() in first instance
func (*Tx) Sign ¶ added in v0.18.0
func (tx *Tx) Sign(signingAccounts ...acm.AddressableSigner) (*Envelope, error)
Encloses in Envelope and signs envelope
func (*Tx) SignBytes ¶ added in v0.19.0
func (tx *Tx) SignBytes(enc Envelope_Encoding) ([]byte, error)
Produces the canonical SignBytes (the Tx message that will be signed) for a Tx