txs

package
v0.25.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2019 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HashLength    = 32
	HashLengthHex = HashLength * 2
)

Variables

View Source
var (
	ErrInvalidLengthTxs = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowTxs   = fmt.Errorf("proto: integer overflow")
)

Functions

func NewAminoCodec added in v0.19.0

func NewAminoCodec() *aminoCodec

func NewJSONCodec added in v0.19.0

func NewJSONCodec() *jsonCodec

Types

type Codec added in v0.19.0

type Codec interface {
	Encoder
	Decoder
}

type Decoder added in v0.18.0

type Decoder interface {
	DecodeTx(txBytes []byte) (*Envelope, error)
}

type Encoder added in v0.18.0

type Encoder interface {
	EncodeTx(envelope *Envelope) ([]byte, error)
}

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"`
	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

func Enclose(chainID string, payload payload.Payload) *Envelope

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 EnvelopeFromAny(chainID string, p *payload.Any) *Envelope

func (*Envelope) Descriptor added in v0.20.0

func (*Envelope) Descriptor() ([]byte, []int)

func (*Envelope) GetSignatories added in v0.20.0

func (m *Envelope) GetSignatories() []Signatory

func (*Envelope) Marshal added in v0.20.0

func (m *Envelope) Marshal() (dAtA []byte, err error)

func (*Envelope) MarshalTo added in v0.20.0

func (m *Envelope) MarshalTo(dAtA []byte) (int, error)

func (*Envelope) ProtoMessage added in v0.20.0

func (*Envelope) ProtoMessage()

func (*Envelope) Reset added in v0.20.0

func (m *Envelope) Reset()

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) Size added in v0.20.0

func (m *Envelope) Size() (n int)

func (*Envelope) String added in v0.19.0

func (txEnv *Envelope) String() string

func (*Envelope) Tagged added in v0.20.0

func (txEnv *Envelope) Tagged() query.Tagged

func (*Envelope) Unmarshal added in v0.20.0

func (m *Envelope) Unmarshal(dAtA []byte) error

func (*Envelope) Validate added in v0.19.0

func (txEnv *Envelope) Validate() error

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

func (txEnv *Envelope) Verify(getter acmstate.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 added in v0.23.0

func (m *Envelope) XXX_DiscardUnknown()

func (*Envelope) XXX_Marshal added in v0.23.0

func (m *Envelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Envelope) XXX_Merge added in v0.23.0

func (m *Envelope) XXX_Merge(src proto.Message)

func (*Envelope) XXX_MessageName added in v0.20.0

func (*Envelope) XXX_MessageName() string

func (*Envelope) XXX_Size added in v0.23.0

func (m *Envelope) XXX_Size() int

func (*Envelope) XXX_Unmarshal added in v0.23.0

func (m *Envelope) XXX_Unmarshal(b []byte) error

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 DecodeReceipt(bs []byte) (*Receipt, error)

func (*Receipt) Descriptor added in v0.20.0

func (*Receipt) Descriptor() ([]byte, []int)

func (*Receipt) Encode added in v0.20.0

func (receipt *Receipt) Encode() ([]byte, error)

func (*Receipt) GetCreatesContract added in v0.20.0

func (m *Receipt) GetCreatesContract() bool

func (*Receipt) GetTxType added in v0.20.0

func (*Receipt) Marshal added in v0.20.0

func (m *Receipt) Marshal() (dAtA []byte, err error)

func (*Receipt) MarshalTo added in v0.20.0

func (m *Receipt) MarshalTo(dAtA []byte) (int, error)

func (*Receipt) ProtoMessage added in v0.20.0

func (*Receipt) ProtoMessage()

func (*Receipt) Reset added in v0.20.0

func (m *Receipt) Reset()

func (*Receipt) Size added in v0.20.0

func (m *Receipt) Size() (n int)

func (*Receipt) String added in v0.20.0

func (m *Receipt) String() string

func (*Receipt) Unmarshal added in v0.20.0

func (m *Receipt) Unmarshal(dAtA []byte) error

func (*Receipt) XXX_DiscardUnknown added in v0.23.0

func (m *Receipt) XXX_DiscardUnknown()

func (*Receipt) XXX_Marshal added in v0.23.0

func (m *Receipt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Receipt) XXX_Merge added in v0.23.0

func (m *Receipt) XXX_Merge(src proto.Message)

func (*Receipt) XXX_MessageName added in v0.20.0

func (*Receipt) XXX_MessageName() string

func (*Receipt) XXX_Size added in v0.23.0

func (m *Receipt) XXX_Size() int

func (*Receipt) XXX_Unmarshal added in v0.23.0

func (m *Receipt) XXX_Unmarshal(b []byte) error

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) Descriptor() ([]byte, []int)

func (*Signatory) GetPublicKey added in v0.20.0

func (m *Signatory) GetPublicKey() *crypto.PublicKey

func (*Signatory) GetSignature added in v0.24.0

func (m *Signatory) GetSignature() *crypto.Signature

func (*Signatory) Marshal added in v0.20.0

func (m *Signatory) Marshal() (dAtA []byte, err error)

func (*Signatory) MarshalTo added in v0.20.0

func (m *Signatory) MarshalTo(dAtA []byte) (int, error)

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) Reset added in v0.20.0

func (m *Signatory) Reset()

func (*Signatory) Size added in v0.20.0

func (m *Signatory) Size() (n int)

func (*Signatory) String added in v0.20.0

func (m *Signatory) String() string

func (*Signatory) Unmarshal added in v0.20.0

func (m *Signatory) Unmarshal(dAtA []byte) error

func (*Signatory) Validate added in v0.20.1

func (sig *Signatory) Validate() error

func (*Signatory) XXX_DiscardUnknown added in v0.23.0

func (m *Signatory) XXX_DiscardUnknown()

func (*Signatory) XXX_Marshal added in v0.23.0

func (m *Signatory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Signatory) XXX_Merge added in v0.23.0

func (m *Signatory) XXX_Merge(src proto.Message)

func (*Signatory) XXX_MessageName added in v0.20.0

func (*Signatory) XXX_MessageName() string

func (*Signatory) XXX_Size added in v0.23.0

func (m *Signatory) XXX_Size() int

func (*Signatory) XXX_Unmarshal added in v0.23.0

func (m *Signatory) XXX_Unmarshal(b []byte) error

type Tx

type Tx struct {
	ChainID string
	payload.Payload
	// contains filtered or unexported fields
}

Tx is the canonical object that we serialise to produce the SignBytes that we sign

func NewTx added in v0.19.0

func NewTx(payload payload.Payload) *Tx

Wrap the Payload in Tx required for signing and serialisation

func (*Tx) Enclose added in v0.19.0

func (tx *Tx) Enclose() *Envelope

Enclose this Tx in an Envelope to be signed

func (*Tx) GenerateReceipt added in v0.19.0

func (tx *Tx) GenerateReceipt() *Receipt

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

func (tx *Tx) Hash() binary.HexBytes

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) Marshal added in v0.20.0

func (tx *Tx) Marshal() ([]byte, error)

Protobuf support

func (*Tx) MarshalJSON added in v0.19.0

func (tx *Tx) MarshalJSON() ([]byte, error)

func (*Tx) MarshalTo added in v0.20.0

func (tx *Tx) MarshalTo(data []byte) (int, error)

func (*Tx) MustSignBytes added in v0.19.0

func (tx *Tx) MustSignBytes() []byte

Generate SignBytes, panicking on any failure

func (*Tx) Rehash added in v0.19.0

func (tx *Tx) Rehash() []byte

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() ([]byte, error)

Produces the canonical SignBytes (the Tx message that will be signed) for a Tx

func (*Tx) Size added in v0.20.0

func (tx *Tx) Size() int

func (*Tx) String added in v0.18.0

func (tx *Tx) String() string

func (*Tx) Tagged added in v0.20.0

func (tx *Tx) Tagged() query.Tagged

func (*Tx) Type added in v0.19.0

func (tx *Tx) Type() payload.Type

func (*Tx) Unmarshal added in v0.20.0

func (tx *Tx) Unmarshal(data []byte) error

func (*Tx) UnmarshalJSON added in v0.19.0

func (tx *Tx) UnmarshalJSON(data []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL