Documentation ¶
Index ¶
- Constants
- Variables
- func NewAminoCodec() *aminoCodec
- func NewJSONCodec() *jsonCodec
- type Codec
- type Decoder
- type Encoder
- type Envelope
- func (*Envelope) Descriptor() ([]byte, []int)
- 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 (txEnv *Envelope) Tagged() query.Tagged
- func (m *Envelope) Unmarshal(dAtA []byte) error
- func (txEnv *Envelope) Validate() error
- func (txEnv *Envelope) Verify(getter state.AccountGetter, chainID string) error
- func (m *Envelope) XXX_DiscardUnknown()
- func (m *Envelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *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 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 (dst *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) Marshal() (dAtA []byte, err error)
- func (m *Signatory) MarshalTo(dAtA []byte) (int, error)
- func (*Signatory) ProtoMessage()
- func (s *Signatory) RealisePublicKey(getter state.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 (dst *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) 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() ([]byte, error)
- func (tx *Tx) Size() int
- func (tx *Tx) String() string
- func (tx *Tx) Tagged() query.Tagged
- func (tx *Tx) Type() payload.Type
- func (tx *Tx) Unmarshal(data []byte) error
- func (tx *Tx) UnmarshalJSON(data []byte) error
Constants ¶
const HashLength = tmhash.Size
Variables ¶
var ( ErrInvalidLengthTxs = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowTxs = fmt.Errorf("proto: integer overflow") )
Functions ¶
func NewAminoCodec ¶
func NewAminoCodec() *aminoCodec
func NewJSONCodec ¶
func NewJSONCodec() *jsonCodec
Types ¶
type Envelope ¶
type Envelope struct { Signatories []Signatory `protobuf:"bytes,1,rep,name=Signatories" 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"` 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 ¶
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 (*Envelope) Descriptor ¶
func (*Envelope) GetSignatories ¶
func (*Envelope) ProtoMessage ¶
func (*Envelope) ProtoMessage()
func (*Envelope) Sign ¶
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 ¶
Returns an error if Envelope has a nil transaction or zero signatures (and therefore could not possibly be valid)
func (*Envelope) Verify ¶
func (txEnv *Envelope) Verify(getter state.AccountGetter, chainID string) error
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 ¶
func (m *Envelope) XXX_DiscardUnknown()
func (*Envelope) XXX_Marshal ¶
func (*Envelope) XXX_MessageName ¶
func (*Envelope) XXX_Unmarshal ¶
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 ¶
func (*Receipt) Descriptor ¶
func (*Receipt) GetCreatesContract ¶
func (*Receipt) GetTxType ¶
func (m *Receipt) GetTxType() github_com_hyperledger_burrow_txs_payload.Type
func (*Receipt) ProtoMessage ¶
func (*Receipt) ProtoMessage()
func (*Receipt) XXX_DiscardUnknown ¶
func (m *Receipt) XXX_DiscardUnknown()
func (*Receipt) XXX_Marshal ¶
func (*Receipt) XXX_MessageName ¶
func (*Receipt) XXX_Unmarshal ¶
type Signatory ¶
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" json:"PublicKey,omitempty"` Signature github_com_hyperledger_burrow_crypto.Signature `protobuf:"bytes,3,opt,name=Signature,proto3,customtype=github.com/hyperledger/burrow/crypto.Signature" json:"Signature"` 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 ¶
func (*Signatory) GetPublicKey ¶
func (*Signatory) ProtoMessage ¶
func (*Signatory) ProtoMessage()
func (*Signatory) RealisePublicKey ¶
func (s *Signatory) RealisePublicKey(getter state.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 ¶
func (m *Signatory) XXX_DiscardUnknown()
func (*Signatory) XXX_Marshal ¶
func (*Signatory) XXX_MessageName ¶
func (*Signatory) XXX_Unmarshal ¶
type Tx ¶
Tx is the canonical object that we serialise to produce the SignBytes that we sign
func (*Tx) GenerateReceipt ¶
Generate a transaction Receipt containing the Tx hash and other information if the Tx is call. Returned by ABCI methods.
func (*Tx) Hash ¶
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 ¶
func (*Tx) MustSignBytes ¶
Generate SignBytes, panicking on any failure
func (*Tx) Rehash ¶
Regenerate the Tx hash if it has been mutated or as called by Hash() in first instance
func (*Tx) Sign ¶
func (tx *Tx) Sign(signingAccounts ...acm.AddressableSigner) (*Envelope, error)
Encloses in Envelope and signs envelope
func (*Tx) SignBytes ¶
Produces the canonical SignBytes (the Tx message that will be signed) for a Tx