txs

package
v0.0.0-...-3fa05c8 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2023 License: BSD-3-Clause Imports: 25 Imported by: 0

Documentation

Overview

Package txs is a generated GoMock package.

Index

Constants

View Source
const CodecVersion = 0

CodecVersion is the current default codec version

Variables

View Source
var (
	ErrNilInitialState  = errors.New("nil initial state is not valid")
	ErrNilFxOutput      = errors.New("nil feature extension output is not valid")
	ErrOutputsNotSorted = errors.New("outputs not sorted")
	ErrUnknownFx        = errors.New("unknown feature extension")
)
View Source
var (
	ErrNilOperation              = errors.New("nil operation is not valid")
	ErrNilFxOperation            = errors.New("nil fx operation is not valid")
	ErrNotSortedAndUniqueUTXOIDs = errors.New("utxo IDs not sorted and unique")
)

Functions

func IsSortedAndUniqueOperations

func IsSortedAndUniqueOperations(ops []*Operation, c codec.Manager) bool

func SortOperations

func SortOperations(ops []*Operation, c codec.Manager)

func SortOperationsWithSigners

func SortOperationsWithSigners(ops []*Operation, signers [][]*secp256k1.PrivateKey, codec codec.Manager)

Types

type BaseTx

type BaseTx struct {
	Vidar.BaseTx `serialize:"true"`
	// contains filtered or unexported fields
}

BaseTx is the basis of all transactions.

func (*BaseTx) Bytes

func (t *BaseTx) Bytes() []byte

func (*BaseTx) InitCtx

func (t *BaseTx) InitCtx(ctx *snow.Context)

func (*BaseTx) InputIDs

func (t *BaseTx) InputIDs() set.Set[ids.ID]

func (*BaseTx) SetBytes

func (t *BaseTx) SetBytes(bytes []byte)

func (*BaseTx) Visit

func (t *BaseTx) Visit(v Visitor) error

type CreateAssetTx

type CreateAssetTx struct {
	BaseTx       `serialize:"true"`
	Name         string          `serialize:"true" json:"name"`
	Symbol       string          `serialize:"true" json:"symbol"`
	Denomination byte            `serialize:"true" json:"denomination"`
	States       []*InitialState `serialize:"true" json:"initialStates"`
}

CreateAssetTx is a transaction that creates a new asset.

func (*CreateAssetTx) InitCtx

func (t *CreateAssetTx) InitCtx(ctx *snow.Context)

func (*CreateAssetTx) InitialStates

func (t *CreateAssetTx) InitialStates() []*InitialState

InitialStates track which virtual machines, and the initial state of these machines, this asset uses. The returned array should not be modified.

func (*CreateAssetTx) Visit

func (t *CreateAssetTx) Visit(v Visitor) error

type ExportTx

type ExportTx struct {
	BaseTx `serialize:"true"`

	// Which chain to send the funds to
	DestinationChain ids.ID `serialize:"true" json:"destinationChain"`

	// The outputs this transaction is sending to the other chain
	ExportedOuts []*Vidar.TransferableOutput `serialize:"true" json:"exportedOutputs"`
}

ExportTx is a transaction that exports an asset to another blockchain.

func (*ExportTx) InitCtx

func (t *ExportTx) InitCtx(ctx *snow.Context)

func (*ExportTx) Visit

func (t *ExportTx) Visit(v Visitor) error

type ImportTx

type ImportTx struct {
	BaseTx `serialize:"true"`

	// Which chain to consume the funds from
	SourceChain ids.ID `serialize:"true" json:"sourceChain"`

	// The inputs to this transaction
	ImportedIns []*Vidar.TransferableInput `serialize:"true" json:"importedInputs"`
}

ImportTx is a transaction that imports an asset from another blockchain.

func (*ImportTx) AssetIDs

func (t *ImportTx) AssetIDs() set.Set[ids.ID]

AssetIDs returns the IDs of the assets this transaction depends on

func (*ImportTx) ConsumedAssetIDs

func (t *ImportTx) ConsumedAssetIDs() set.Set[ids.ID]

ConsumedAssetIDs returns the IDs of the assets this transaction consumes

func (*ImportTx) InputIDs

func (t *ImportTx) InputIDs() set.Set[ids.ID]

func (*ImportTx) InputUTXOs

func (t *ImportTx) InputUTXOs() []*Vidar.UTXOID

InputUTXOs track which UTXOs this transaction is consuming.

func (*ImportTx) NumCredentials

func (t *ImportTx) NumCredentials() int

NumCredentials returns the number of expected credentials

func (*ImportTx) Visit

func (t *ImportTx) Visit(v Visitor) error

type InitialState

type InitialState struct {
	FxIndex uint32         `serialize:"true" json:"fxIndex"`
	FxID    ids.ID         `serialize:"false" json:"fxID"`
	Outs    []verify.State `serialize:"true" json:"outputs"`
}

func (*InitialState) InitCtx

func (is *InitialState) InitCtx(ctx *snow.Context)

func (*InitialState) Less

func (is *InitialState) Less(other *InitialState) bool

func (*InitialState) Sort

func (is *InitialState) Sort(c codec.Manager)

func (*InitialState) Verify

func (is *InitialState) Verify(c codec.Manager, numFxs int) error

type MockUnsignedTx

type MockUnsignedTx struct {
	// contains filtered or unexported fields
}

MockUnsignedTx is a mock of UnsignedTx interface.

func NewMockUnsignedTx

func NewMockUnsignedTx(ctrl *gomock.Controller) *MockUnsignedTx

NewMockUnsignedTx creates a new mock instance.

func (*MockUnsignedTx) AssetIDs

func (m *MockUnsignedTx) AssetIDs() set.Set[ids.ID]

AssetIDs mocks base method.

func (*MockUnsignedTx) Bytes

func (m *MockUnsignedTx) Bytes() []byte

Bytes mocks base method.

func (*MockUnsignedTx) ConsumedAssetIDs

func (m *MockUnsignedTx) ConsumedAssetIDs() set.Set[ids.ID]

ConsumedAssetIDs mocks base method.

func (*MockUnsignedTx) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockUnsignedTx) InitCtx

func (m *MockUnsignedTx) InitCtx(arg0 *snow.Context)

InitCtx mocks base method.

func (*MockUnsignedTx) InputIDs

func (m *MockUnsignedTx) InputIDs() set.Set[ids.ID]

InputIDs mocks base method.

func (*MockUnsignedTx) InputUTXOs

func (m *MockUnsignedTx) InputUTXOs() []*Vidar.UTXOID

InputUTXOs mocks base method.

func (*MockUnsignedTx) NumCredentials

func (m *MockUnsignedTx) NumCredentials() int

NumCredentials mocks base method.

func (*MockUnsignedTx) SetBytes

func (m *MockUnsignedTx) SetBytes(arg0 []byte)

SetBytes mocks base method.

func (*MockUnsignedTx) Visit

func (m *MockUnsignedTx) Visit(arg0 Visitor) error

Visit mocks base method.

type MockUnsignedTxMockRecorder

type MockUnsignedTxMockRecorder struct {
	// contains filtered or unexported fields
}

MockUnsignedTxMockRecorder is the mock recorder for MockUnsignedTx.

func (*MockUnsignedTxMockRecorder) AssetIDs

func (mr *MockUnsignedTxMockRecorder) AssetIDs() *gomock.Call

AssetIDs indicates an expected call of AssetIDs.

func (*MockUnsignedTxMockRecorder) Bytes

func (mr *MockUnsignedTxMockRecorder) Bytes() *gomock.Call

Bytes indicates an expected call of Bytes.

func (*MockUnsignedTxMockRecorder) ConsumedAssetIDs

func (mr *MockUnsignedTxMockRecorder) ConsumedAssetIDs() *gomock.Call

ConsumedAssetIDs indicates an expected call of ConsumedAssetIDs.

func (*MockUnsignedTxMockRecorder) InitCtx

func (mr *MockUnsignedTxMockRecorder) InitCtx(arg0 interface{}) *gomock.Call

InitCtx indicates an expected call of InitCtx.

func (*MockUnsignedTxMockRecorder) InputIDs

func (mr *MockUnsignedTxMockRecorder) InputIDs() *gomock.Call

InputIDs indicates an expected call of InputIDs.

func (*MockUnsignedTxMockRecorder) InputUTXOs

func (mr *MockUnsignedTxMockRecorder) InputUTXOs() *gomock.Call

InputUTXOs indicates an expected call of InputUTXOs.

func (*MockUnsignedTxMockRecorder) NumCredentials

func (mr *MockUnsignedTxMockRecorder) NumCredentials() *gomock.Call

NumCredentials indicates an expected call of NumCredentials.

func (*MockUnsignedTxMockRecorder) SetBytes

func (mr *MockUnsignedTxMockRecorder) SetBytes(arg0 interface{}) *gomock.Call

SetBytes indicates an expected call of SetBytes.

func (*MockUnsignedTxMockRecorder) Visit

func (mr *MockUnsignedTxMockRecorder) Visit(arg0 interface{}) *gomock.Call

Visit indicates an expected call of Visit.

type Operation

type Operation struct {
	Vidar.Asset `serialize:"true"`
	UTXOIDs     []*Vidar.UTXOID `serialize:"true" json:"inputIDs"`
	FxID        ids.ID          `serialize:"false" json:"fxID"`
	Op          fxs.FxOperation `serialize:"true" json:"operation"`
}

func (*Operation) Verify

func (op *Operation) Verify() error

type OperationTx

type OperationTx struct {
	BaseTx `serialize:"true"`

	Ops []*Operation `serialize:"true" json:"operations"`
}

OperationTx is a transaction with no credentials.

func (*OperationTx) AssetIDs

func (t *OperationTx) AssetIDs() set.Set[ids.ID]

AssetIDs returns the IDs of the assets this transaction depends on

func (*OperationTx) ConsumedAssetIDs

func (t *OperationTx) ConsumedAssetIDs() set.Set[ids.ID]

ConsumedAssetIDs returns the IDs of the assets this transaction consumes

func (*OperationTx) InitCtx

func (t *OperationTx) InitCtx(ctx *snow.Context)

func (*OperationTx) InputIDs

func (t *OperationTx) InputIDs() set.Set[ids.ID]

func (*OperationTx) InputUTXOs

func (t *OperationTx) InputUTXOs() []*Vidar.UTXOID

func (*OperationTx) NumCredentials

func (t *OperationTx) NumCredentials() int

NumCredentials returns the number of expected credentials

func (*OperationTx) Operations

func (t *OperationTx) Operations() []*Operation

Operations track which ops this transaction is performing. The returned array should not be modified.

func (*OperationTx) Visit

func (t *OperationTx) Visit(v Visitor) error

type Parser

type Parser interface {
	Codec() codec.Manager
	GenesisCodec() codec.Manager

	CodecRegistry() codec.Registry
	GenesisCodecRegistry() codec.Registry

	ParseTx(bytes []byte) (*Tx, error)
	ParseGenesisTx(bytes []byte) (*Tx, error)

	InitializeTx(tx *Tx) error
	InitializeGenesisTx(tx *Tx) error
}

func NewCustomParser

func NewCustomParser(
	typeToFxIndex map[reflect.Type]int,
	clock *mockable.Clock,
	log logging.Logger,
	fxs []fxs.Fx,
) (Parser, error)

func NewParser

func NewParser(fxs []fxs.Fx) (Parser, error)

type Tx

type Tx struct {
	Unsigned UnsignedTx          `serialize:"true" json:"unsignedTx"`
	Creds    []*fxs.FxCredential `serialize:"true" json:"credentials"` // The credentials of this transaction
	// contains filtered or unexported fields
}

Tx is the core operation that can be performed. The tx uses the UTXO model. Specifically, a txs inputs will consume previous txs outputs. A tx will be valid if the inputs have the authority to consume the outputs they are attempting to consume and the inputs consume sufficient state to produce the outputs.

func (*Tx) Bytes

func (t *Tx) Bytes() []byte

Bytes returns the binary representation of this tx

func (*Tx) ID

func (t *Tx) ID() ids.ID

ID returns the unique ID of this tx

func (*Tx) Initialize

func (t *Tx) Initialize(c codec.Manager) error

func (*Tx) SetBytes

func (t *Tx) SetBytes(unsignedBytes, signedBytes []byte)

func (*Tx) SignNFTFx

func (t *Tx) SignNFTFx(c codec.Manager, signers [][]*secp256k1.PrivateKey) error

func (*Tx) SignPropertyFx

func (t *Tx) SignPropertyFx(c codec.Manager, signers [][]*secp256k1.PrivateKey) error

func (*Tx) SignSECP256K1Fx

func (t *Tx) SignSECP256K1Fx(c codec.Manager, signers [][]*secp256k1.PrivateKey) error

func (*Tx) UTXOs

func (t *Tx) UTXOs() []*Vidar.UTXO

UTXOs returns the UTXOs transaction is producing.

type UnsignedTx

type UnsignedTx interface {
	snow.ContextInitializable

	SetBytes(unsignedBytes []byte)
	Bytes() []byte

	InputIDs() set.Set[ids.ID]

	ConsumedAssetIDs() set.Set[ids.ID]
	AssetIDs() set.Set[ids.ID]

	NumCredentials() int
	// TODO: deprecate after x-chain linearization
	InputUTXOs() []*Vidar.UTXOID

	// Visit calls [visitor] with this transaction's concrete type
	Visit(visitor Visitor) error
}

type Visitor

type Visitor interface {
	BaseTx(*BaseTx) error
	CreateAssetTx(*CreateAssetTx) error
	OperationTx(*OperationTx) error
	ImportTx(*ImportTx) error
	ExportTx(*ExportTx) error
}

Allow vm to execute custom logic against the underlying transaction types.

Directories

Path Synopsis
Package mempool is a generated GoMock package.
Package mempool is a generated GoMock package.

Jump to

Keyboard shortcuts

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