Help us shape the future of Go! Take the 2026 Go Developer Survey

transactor

package
v1.3.4 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2021 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Generator

type Generator interface {
	TransferTokens(symbol string) ([]byte, error)
}

Generator represents something that can generate Cadence scripts for transferring tokens between two accounts.

type Intent

type Intent struct {
	From     flow.Address
	To       flow.Address
	Amount   cadence.UFix64
	Payer    flow.Address
	Proposer flow.Address
}

Intent describes the intent of a set of two Rosetta operations.

type Invoker

type Invoker interface {
	Key(height uint64, address flow.Address, index int) (*flow.AccountPublicKey, error)
}

Invoker represents something that can retrieve account public keys at any given height.

type Parser added in v1.3.4

type Parser interface {
	BlockID() (identifier.Block, error)
	Sequence() uint64
	Signers() ([]identifier.Account, error)
	Operations() ([]object.Operation, error)
}

Parser represents something that can parse a transaction into individual parts.

type Submitter

type Submitter interface {
	Transaction(tx *sdk.Transaction) error
}

Submitter represents something that can submit transactions.

type TransactionParser added in v1.3.4

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

TransactionParser is a wrapper around a pointer to a sdk.Transaction which exposes methods to individually parse different elements of the transaction.

func (*TransactionParser) BlockID added in v1.3.4

func (p *TransactionParser) BlockID() (identifier.Block, error)

BlockID parses the transaction's BlockID.

func (*TransactionParser) Operations added in v1.3.4

func (p *TransactionParser) Operations() ([]object.Operation, error)

Operations parses the transaction's operations.

func (*TransactionParser) Sequence added in v1.3.4

func (p *TransactionParser) Sequence() uint64

Sequence parses the transaction's sequence number.

func (*TransactionParser) Signers added in v1.3.4

func (p *TransactionParser) Signers() ([]identifier.Account, error)

Signers parses the transaction's signer accounts.

type Transactor

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

Transactor can determine the transaction intent from an array of Rosetta operations, create a Flow transaction from a transaction intent and translate a Flow transaction back to an array of Rosetta operations.

func New

func New(validate Validator, generate Generator, invoke Invoker, submit Submitter) *Transactor

New creates a new transactor to handle interactions with Flow transactions.

func (*Transactor) AttachSignatures

func (t *Transactor) AttachSignatures(unsigned string, signatures []object.Signature) (string, error)

AttachSignatures returns the given transaction with the given signatures attached to it.

func (*Transactor) CompileTransaction

func (t *Transactor) CompileTransaction(rosBlockID identifier.Block, intent *Intent, sequence uint64) (string, error)

CompileTransaction creates a complete Flow transaction from the given intent and metadata.

func (*Transactor) DeriveIntent

func (t *Transactor) DeriveIntent(operations []object.Operation) (*Intent, error)

DeriveIntent derives a transaction Intent from two operations given as input. Specified operations should be symmetrical, a deposit and a withdrawal from two different accounts. At the moment, the only fields taken into account are the account IDs, amounts and type of operation.

func (*Transactor) HashPayload

func (t *Transactor) HashPayload(rosBlockID identifier.Block, unsigned string, signer identifier.Account) (string, string, error)

HashPayload returns the algorithm and hash of a given unsigned transaction when signed by a given account's public key.

func (*Transactor) Parse added in v1.3.4

func (t *Transactor) Parse(payload string) (Parser, error)

Parse processes the flow transaction, validates its correctness and translates it to a list of operations and a list of signers.

func (*Transactor) SubmitTransaction

func (t *Transactor) SubmitTransaction(signed string) (identifier.Transaction, error)

SubmitTransaction submits the given signed transaction.

func (*Transactor) TransactionIdentifier

func (t *Transactor) TransactionIdentifier(signed string) (identifier.Transaction, error)

TransactionIdentifier returns the transaction identifier of a given signed transaction.

type Validator

type Validator interface {
	Account(rosAccountID identifier.Account) (address flow.Address, err error)
	Block(rosBlockID identifier.Block) (height uint64, blockID flow.Identifier, err error)
	Currency(currency identifier.Currency) (symbol string, decimals uint, err error)
}

Validator represents something that can validate account and block identifiers as well as currencies.

Jump to

Keyboard shortcuts

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