transaction

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 27, 2020 License: LGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrTransactionExists = errors.New("transaction is already in pool")

ErrTransactionExists is returned when trying to add a transaction to the pool that already exists

Functions

This section is empty.

Types

type Pool

type Pool map[common.Hash]*ValidTransaction

Pool represents the transaction pool

type PriorityQueue

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

PriorityQueue implements a priority queue using a double linked list

func NewPriorityQueue

func NewPriorityQueue() *PriorityQueue

NewPriorityQueue creates new instance of PriorityQueue

func (*PriorityQueue) Peek

func (q *PriorityQueue) Peek() *ValidTransaction

Peek returns the next item without removing it from the queue

func (*PriorityQueue) Pending

func (q *PriorityQueue) Pending() []*ValidTransaction

Pending returns all the transactions currently in the queue

func (*PriorityQueue) Pop

func (q *PriorityQueue) Pop() *ValidTransaction

Pop removes the head of the queue and returns it

func (*PriorityQueue) Push

Push traverses the list and places a valid transaction with priority p directly before the first node with priority p-1. If there are other nodes with priority p, the new node is placed behind them.

func (*PriorityQueue) RemoveExtrinsic

func (q *PriorityQueue) RemoveExtrinsic(ext types.Extrinsic)

RemoveExtrinsic removes an extrinsic from the queue

type ValidTransaction

type ValidTransaction struct {
	Extrinsic types.Extrinsic
	Validity  *Validity
}

ValidTransaction struct

func NewValidTransaction

func NewValidTransaction(extrinsic types.Extrinsic, validity *Validity) *ValidTransaction

NewValidTransaction returns ValidTransaction

func (*ValidTransaction) Encode

func (vt *ValidTransaction) Encode() ([]byte, error)

Encode SCALE encodes the transaction

type Validity

type Validity struct {
	Priority  uint64
	Requires  [][]byte
	Provides  [][]byte
	Longevity uint64
	Propagate bool
}

Validity struct see: https://github.com/paritytech/substrate/blob/5420de3face1349a97eb954ae71c5b0b940c31de/core/sr-primitives/src/transaction_validity.rs#L178

func NewValidity

func NewValidity(priority uint64, requires, provides [][]byte, longevity uint64, propagate bool) *Validity

NewValidity returns Validity

Jump to

Keyboard shortcuts

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