txs

package
v0.0.0-...-25a45d7 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const HashLength = tmhash.Size

Variables

View Source
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 Codec

type Codec interface {
	Encoder
	Decoder
}

type Decoder

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

type Encoder

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

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

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

func EnvelopeFromAny(chainID string, p *payload.Any) *Envelope

func (*Envelope) Descriptor

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

func (*Envelope) GetSignatories

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

func (*Envelope) Marshal

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

func (*Envelope) MarshalTo

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

func (*Envelope) ProtoMessage

func (*Envelope) ProtoMessage()

func (*Envelope) Reset

func (m *Envelope) Reset()

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) Size

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

func (*Envelope) String

func (txEnv *Envelope) String() string

func (*Envelope) Tagged

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

func (*Envelope) Unmarshal

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

func (*Envelope) Validate

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

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 (m *Envelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Envelope) XXX_Merge

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

func (*Envelope) XXX_MessageName

func (*Envelope) XXX_MessageName() string

func (*Envelope) XXX_Size

func (m *Envelope) XXX_Size() int

func (*Envelope) XXX_Unmarshal

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

func DecodeReceipt(bs []byte) (*Receipt, error)

func (*Receipt) Descriptor

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

func (*Receipt) Encode

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

func (*Receipt) GetCreatesContract

func (m *Receipt) GetCreatesContract() bool

func (*Receipt) GetTxType

func (*Receipt) Marshal

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

func (*Receipt) MarshalTo

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

func (*Receipt) ProtoMessage

func (*Receipt) ProtoMessage()

func (*Receipt) Reset

func (m *Receipt) Reset()

func (*Receipt) Size

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

func (*Receipt) String

func (m *Receipt) String() string

func (*Receipt) Unmarshal

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

func (*Receipt) XXX_DiscardUnknown

func (m *Receipt) XXX_DiscardUnknown()

func (*Receipt) XXX_Marshal

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

func (*Receipt) XXX_Merge

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

func (*Receipt) XXX_MessageName

func (*Receipt) XXX_MessageName() string

func (*Receipt) XXX_Size

func (m *Receipt) XXX_Size() int

func (*Receipt) XXX_Unmarshal

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

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

func (*Signatory) GetPublicKey

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

func (*Signatory) Marshal

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

func (*Signatory) MarshalTo

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

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) Reset

func (m *Signatory) Reset()

func (*Signatory) Size

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

func (*Signatory) String

func (m *Signatory) String() string

func (*Signatory) Unmarshal

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

func (*Signatory) Validate

func (sig *Signatory) Validate() error

func (*Signatory) XXX_DiscardUnknown

func (m *Signatory) XXX_DiscardUnknown()

func (*Signatory) XXX_Marshal

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

func (*Signatory) XXX_Merge

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

func (*Signatory) XXX_MessageName

func (*Signatory) XXX_MessageName() string

func (*Signatory) XXX_Size

func (m *Signatory) XXX_Size() int

func (*Signatory) XXX_Unmarshal

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

func NewTx(payload payload.Payload) *Tx

Wrap the Payload in Tx required for signing and serialisation

func (*Tx) Enclose

func (tx *Tx) Enclose() *Envelope

Enclose this Tx in an Envelope to be signed

func (*Tx) GenerateReceipt

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

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

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

Protobuf support

func (*Tx) MarshalJSON

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

func (*Tx) MarshalTo

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

func (*Tx) MustSignBytes

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

Generate SignBytes, panicking on any failure

func (*Tx) Rehash

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

func (tx *Tx) Sign(signingAccounts ...acm.AddressableSigner) (*Envelope, error)

Encloses in Envelope and signs envelope

func (*Tx) SignBytes

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

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

func (*Tx) Size

func (tx *Tx) Size() int

func (*Tx) String

func (tx *Tx) String() string

func (*Tx) Tagged

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

func (*Tx) Type

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

func (*Tx) Unmarshal

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

func (*Tx) UnmarshalJSON

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