netmap

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2023 License: GPL-3.0 Imports: 11 Imported by: 6

Documentation

Overview

Package netmap contains RPC wrappers for NeoFS Netmap contract.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Actor

type Actor interface {
	Invoker

	MakeCall(contract util.Uint160, method string, params ...any) (*transaction.Transaction, error)
	MakeRun(script []byte) (*transaction.Transaction, error)
	MakeUnsignedCall(contract util.Uint160, method string, attrs []transaction.Attribute, params ...any) (*transaction.Transaction, error)
	MakeUnsignedRun(script []byte, attrs []transaction.Attribute) (*transaction.Transaction, error)
	SendCall(contract util.Uint160, method string, params ...any) (util.Uint256, uint32, error)
	SendRun(script []byte) (util.Uint256, uint32, error)
}

Actor is used by Contract to call state-changing methods.

type AddPeerSuccessEvent

type AddPeerSuccessEvent struct {
	PublicKey *keys.PublicKey
}

AddPeerSuccessEvent represents "AddPeerSuccess" event emitted by the contract.

func AddPeerSuccessEventsFromApplicationLog

func AddPeerSuccessEventsFromApplicationLog(log *result.ApplicationLog) ([]*AddPeerSuccessEvent, error)

AddPeerSuccessEventsFromApplicationLog retrieves a set of all emitted events with "AddPeerSuccess" name from the provided result.ApplicationLog.

func (*AddPeerSuccessEvent) FromStackItem

func (e *AddPeerSuccessEvent) FromStackItem(item *stackitem.Array) error

FromStackItem converts provided stackitem.Array to AddPeerSuccessEvent or returns an error if it's not possible to do to so.

type CommonBallot

type CommonBallot struct {
	ID     []byte
	Voters keys.PublicKeys
	Height *big.Int
}

CommonBallot is a contract-specific common.Ballot type used by its methods.

func (*CommonBallot) FromStackItem

func (res *CommonBallot) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of CommonBallot from the given stackitem.Item or returns an error if it's not possible to do to so.

type CommonIRNode

type CommonIRNode struct {
	PublicKey *keys.PublicKey
}

CommonIRNode is a contract-specific common.IRNode type used by its methods.

func (*CommonIRNode) FromStackItem

func (res *CommonIRNode) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of CommonIRNode from the given stackitem.Item or returns an error if it's not possible to do to so.

type Contract

type Contract struct {
	ContractReader
	// contains filtered or unexported fields
}

Contract implements all contract methods.

func New

func New(actor Actor, hash util.Uint160) *Contract

New creates an instance of Contract using provided contract hash and the given Actor.

func (*Contract) AddPeer

func (c *Contract) AddPeer(nodeInfo []byte) (util.Uint256, uint32, error)

AddPeer creates a transaction invoking `addPeer` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) AddPeerIR

func (c *Contract) AddPeerIR(nodeInfo []byte) (util.Uint256, uint32, error)

AddPeerIR creates a transaction invoking `addPeerIR` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) AddPeerIRTransaction

func (c *Contract) AddPeerIRTransaction(nodeInfo []byte) (*transaction.Transaction, error)

AddPeerIRTransaction creates a transaction invoking `addPeerIR` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) AddPeerIRUnsigned

func (c *Contract) AddPeerIRUnsigned(nodeInfo []byte) (*transaction.Transaction, error)

AddPeerIRUnsigned creates a transaction invoking `addPeerIR` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) AddPeerTransaction

func (c *Contract) AddPeerTransaction(nodeInfo []byte) (*transaction.Transaction, error)

AddPeerTransaction creates a transaction invoking `addPeer` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) AddPeerUnsigned

func (c *Contract) AddPeerUnsigned(nodeInfo []byte) (*transaction.Transaction, error)

AddPeerUnsigned creates a transaction invoking `addPeer` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) LastEpochBlock

func (c *Contract) LastEpochBlock() (util.Uint256, uint32, error)

LastEpochBlock creates a transaction invoking `lastEpochBlock` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) LastEpochBlockTransaction

func (c *Contract) LastEpochBlockTransaction() (*transaction.Transaction, error)

LastEpochBlockTransaction creates a transaction invoking `lastEpochBlock` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) LastEpochBlockUnsigned

func (c *Contract) LastEpochBlockUnsigned() (*transaction.Transaction, error)

LastEpochBlockUnsigned creates a transaction invoking `lastEpochBlock` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) NewEpoch

func (c *Contract) NewEpoch(epochNum *big.Int) (util.Uint256, uint32, error)

NewEpoch creates a transaction invoking `newEpoch` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) NewEpochTransaction

func (c *Contract) NewEpochTransaction(epochNum *big.Int) (*transaction.Transaction, error)

NewEpochTransaction creates a transaction invoking `newEpoch` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) NewEpochUnsigned

func (c *Contract) NewEpochUnsigned(epochNum *big.Int) (*transaction.Transaction, error)

NewEpochUnsigned creates a transaction invoking `newEpoch` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) SetConfig

func (c *Contract) SetConfig(id []byte, key []byte, val []byte) (util.Uint256, uint32, error)

SetConfig creates a transaction invoking `setConfig` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) SetConfigTransaction

func (c *Contract) SetConfigTransaction(id []byte, key []byte, val []byte) (*transaction.Transaction, error)

SetConfigTransaction creates a transaction invoking `setConfig` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) SetConfigUnsigned

func (c *Contract) SetConfigUnsigned(id []byte, key []byte, val []byte) (*transaction.Transaction, error)

SetConfigUnsigned creates a transaction invoking `setConfig` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) Update

func (c *Contract) Update(script []byte, manifest []byte, data any) (util.Uint256, uint32, error)

Update creates a transaction invoking `update` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) UpdateSnapshotCount

func (c *Contract) UpdateSnapshotCount(count *big.Int) (util.Uint256, uint32, error)

UpdateSnapshotCount creates a transaction invoking `updateSnapshotCount` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) UpdateSnapshotCountTransaction

func (c *Contract) UpdateSnapshotCountTransaction(count *big.Int) (*transaction.Transaction, error)

UpdateSnapshotCountTransaction creates a transaction invoking `updateSnapshotCount` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) UpdateSnapshotCountUnsigned

func (c *Contract) UpdateSnapshotCountUnsigned(count *big.Int) (*transaction.Transaction, error)

UpdateSnapshotCountUnsigned creates a transaction invoking `updateSnapshotCount` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) UpdateState

func (c *Contract) UpdateState(state *big.Int, publicKey *keys.PublicKey) (util.Uint256, uint32, error)

UpdateState creates a transaction invoking `updateState` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) UpdateStateIR

func (c *Contract) UpdateStateIR(state *big.Int, publicKey *keys.PublicKey) (util.Uint256, uint32, error)

UpdateStateIR creates a transaction invoking `updateStateIR` method of the contract. This transaction is signed and immediately sent to the network. The values returned are its hash, ValidUntilBlock value and error if any.

func (*Contract) UpdateStateIRTransaction

func (c *Contract) UpdateStateIRTransaction(state *big.Int, publicKey *keys.PublicKey) (*transaction.Transaction, error)

UpdateStateIRTransaction creates a transaction invoking `updateStateIR` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) UpdateStateIRUnsigned

func (c *Contract) UpdateStateIRUnsigned(state *big.Int, publicKey *keys.PublicKey) (*transaction.Transaction, error)

UpdateStateIRUnsigned creates a transaction invoking `updateStateIR` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) UpdateStateTransaction

func (c *Contract) UpdateStateTransaction(state *big.Int, publicKey *keys.PublicKey) (*transaction.Transaction, error)

UpdateStateTransaction creates a transaction invoking `updateState` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) UpdateStateUnsigned

func (c *Contract) UpdateStateUnsigned(state *big.Int, publicKey *keys.PublicKey) (*transaction.Transaction, error)

UpdateStateUnsigned creates a transaction invoking `updateState` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

func (*Contract) UpdateTransaction

func (c *Contract) UpdateTransaction(script []byte, manifest []byte, data any) (*transaction.Transaction, error)

UpdateTransaction creates a transaction invoking `update` method of the contract. This transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) UpdateUnsigned

func (c *Contract) UpdateUnsigned(script []byte, manifest []byte, data any) (*transaction.Transaction, error)

UpdateUnsigned creates a transaction invoking `update` method of the contract. This transaction is not signed, it's simply returned to the caller. Any fields of it that do not affect fees can be changed (ValidUntilBlock, Nonce), fee values (NetworkFee, SystemFee) can be increased as well.

type ContractReader

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

ContractReader implements safe contract methods.

func NewReader

func NewReader(invoker Invoker, hash util.Uint160) *ContractReader

NewReader creates an instance of ContractReader using provided contract hash and the given Invoker.

func (*ContractReader) Config

func (c *ContractReader) Config(key []byte) (any, error)

Config invokes `config` method of contract.

func (*ContractReader) Epoch

func (c *ContractReader) Epoch() (*big.Int, error)

Epoch invokes `epoch` method of contract.

func (*ContractReader) InnerRingList

func (c *ContractReader) InnerRingList() ([]*CommonIRNode, error)

InnerRingList invokes `innerRingList` method of contract.

func (*ContractReader) ListConfig

func (c *ContractReader) ListConfig() ([]*Netmaprecord, error)

ListConfig invokes `listConfig` method of contract.

func (*ContractReader) Netmap

func (c *ContractReader) Netmap() ([]*NetmapNode, error)

Netmap invokes `netmap` method of contract.

func (*ContractReader) NetmapCandidates

func (c *ContractReader) NetmapCandidates() ([]*NetmapNode, error)

NetmapCandidates invokes `netmapCandidates` method of contract.

func (*ContractReader) Snapshot

func (c *ContractReader) Snapshot(diff *big.Int) ([]*NetmapNode, error)

Snapshot invokes `snapshot` method of contract.

func (*ContractReader) SnapshotByEpoch

func (c *ContractReader) SnapshotByEpoch(epoch *big.Int) ([]*NetmapNode, error)

SnapshotByEpoch invokes `snapshotByEpoch` method of contract.

func (*ContractReader) Version

func (c *ContractReader) Version() (*big.Int, error)

Version invokes `version` method of contract.

type Invoker

type Invoker interface {
	Call(contract util.Uint160, operation string, params ...any) (*result.Invoke, error)
}

Invoker is used by ContractReader to call various safe methods.

type LedgerBlock

type LedgerBlock struct {
	Hash               util.Uint256
	Version            *big.Int
	PrevHash           util.Uint256
	MerkleRoot         util.Uint256
	Timestamp          *big.Int
	Nonce              *big.Int
	Index              *big.Int
	NextConsensus      util.Uint160
	TransactionsLength *big.Int
}

LedgerBlock is a contract-specific ledger.Block type used by its methods.

func (*LedgerBlock) FromStackItem

func (res *LedgerBlock) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of LedgerBlock from the given stackitem.Item or returns an error if it's not possible to do to so.

type LedgerBlockSR

type LedgerBlockSR struct {
	Hash               util.Uint256
	Version            *big.Int
	PrevHash           util.Uint256
	MerkleRoot         util.Uint256
	Timestamp          *big.Int
	Nonce              *big.Int
	Index              *big.Int
	NextConsensus      util.Uint160
	TransactionsLength *big.Int
	PrevStateRoot      util.Uint256
}

LedgerBlockSR is a contract-specific ledger.BlockSR type used by its methods.

func (*LedgerBlockSR) FromStackItem

func (res *LedgerBlockSR) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of LedgerBlockSR from the given stackitem.Item or returns an error if it's not possible to do to so.

type LedgerTransaction

type LedgerTransaction struct {
	Hash            util.Uint256
	Version         *big.Int
	Nonce           *big.Int
	Sender          util.Uint160
	SysFee          *big.Int
	NetFee          *big.Int
	ValidUntilBlock *big.Int
	Script          []byte
}

LedgerTransaction is a contract-specific ledger.Transaction type used by its methods.

func (*LedgerTransaction) FromStackItem

func (res *LedgerTransaction) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of LedgerTransaction from the given stackitem.Item or returns an error if it's not possible to do to so.

type LedgerTransactionSigner

type LedgerTransactionSigner struct {
	Account          util.Uint160
	Scopes           *big.Int
	AllowedContracts []util.Uint160
	AllowedGroups    keys.PublicKeys
	Rules            []*LedgerWitnessRule
}

LedgerTransactionSigner is a contract-specific ledger.TransactionSigner type used by its methods.

func (*LedgerTransactionSigner) FromStackItem

func (res *LedgerTransactionSigner) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of LedgerTransactionSigner from the given stackitem.Item or returns an error if it's not possible to do to so.

type LedgerWitnessCondition

type LedgerWitnessCondition struct {
	Type  *big.Int
	Value any
}

LedgerWitnessCondition is a contract-specific ledger.WitnessCondition type used by its methods.

func (*LedgerWitnessCondition) FromStackItem

func (res *LedgerWitnessCondition) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of LedgerWitnessCondition from the given stackitem.Item or returns an error if it's not possible to do to so.

type LedgerWitnessRule

type LedgerWitnessRule struct {
	Action    *big.Int
	Condition *LedgerWitnessCondition
}

LedgerWitnessRule is a contract-specific ledger.WitnessRule type used by its methods.

func (*LedgerWitnessRule) FromStackItem

func (res *LedgerWitnessRule) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of LedgerWitnessRule from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementABI

type ManagementABI struct {
	Methods []*ManagementMethod
	Events  []*ManagementEvent
}

ManagementABI is a contract-specific management.ABI type used by its methods.

func (*ManagementABI) FromStackItem

func (res *ManagementABI) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementABI from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementContract

type ManagementContract struct {
	ID            *big.Int
	UpdateCounter *big.Int
	Hash          util.Uint160
	NEF           []byte
	Manifest      *ManagementManifest
}

ManagementContract is a contract-specific management.Contract type used by its methods.

func (*ManagementContract) FromStackItem

func (res *ManagementContract) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementContract from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementEvent

type ManagementEvent struct {
	Name   string
	Params []*ManagementParameter
}

ManagementEvent is a contract-specific management.Event type used by its methods.

func (*ManagementEvent) FromStackItem

func (res *ManagementEvent) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementEvent from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementGroup

type ManagementGroup struct {
	PublicKey *keys.PublicKey
	Signature []byte
}

ManagementGroup is a contract-specific management.Group type used by its methods.

func (*ManagementGroup) FromStackItem

func (res *ManagementGroup) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementGroup from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementManifest

type ManagementManifest struct {
	Name               string
	Groups             []*ManagementGroup
	Features           map[string]string
	SupportedStandards []string
	ABI                *ManagementABI
	Permissions        []*ManagementPermission
	Trusts             []util.Uint160
	Extra              any
}

ManagementManifest is a contract-specific management.Manifest type used by its methods.

func (*ManagementManifest) FromStackItem

func (res *ManagementManifest) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementManifest from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementMethod

type ManagementMethod struct {
	Name       string
	Params     []*ManagementParameter
	ReturnType *big.Int
	Offset     *big.Int
	Safe       bool
}

ManagementMethod is a contract-specific management.Method type used by its methods.

func (*ManagementMethod) FromStackItem

func (res *ManagementMethod) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementMethod from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementParameter

type ManagementParameter struct {
	Name string
	Type *big.Int
}

ManagementParameter is a contract-specific management.Parameter type used by its methods.

func (*ManagementParameter) FromStackItem

func (res *ManagementParameter) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementParameter from the given stackitem.Item or returns an error if it's not possible to do to so.

type ManagementPermission

type ManagementPermission struct {
	Contract util.Uint160
	Methods  []string
}

ManagementPermission is a contract-specific management.Permission type used by its methods.

func (*ManagementPermission) FromStackItem

func (res *ManagementPermission) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of ManagementPermission from the given stackitem.Item or returns an error if it's not possible to do to so.

type NetmapNode

type NetmapNode struct {
	BLOB  []byte
	State *big.Int
}

NetmapNode is a contract-specific netmap.Node type used by its methods.

func (*NetmapNode) FromStackItem

func (res *NetmapNode) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of NetmapNode from the given stackitem.Item or returns an error if it's not possible to do to so.

type Netmaprecord

type Netmaprecord struct {
	Key []byte
	Val []byte
}

Netmaprecord is a contract-specific netmap.record type used by its methods.

func (*Netmaprecord) FromStackItem

func (res *Netmaprecord) FromStackItem(item stackitem.Item) error

FromStackItem retrieves fields of Netmaprecord from the given stackitem.Item or returns an error if it's not possible to do to so.

type NewEpochEvent

type NewEpochEvent struct {
	Epoch *big.Int
}

NewEpochEvent represents "NewEpoch" event emitted by the contract.

func NewEpochEventsFromApplicationLog

func NewEpochEventsFromApplicationLog(log *result.ApplicationLog) ([]*NewEpochEvent, error)

NewEpochEventsFromApplicationLog retrieves a set of all emitted events with "NewEpoch" name from the provided result.ApplicationLog.

func (*NewEpochEvent) FromStackItem

func (e *NewEpochEvent) FromStackItem(item *stackitem.Array) error

FromStackItem converts provided stackitem.Array to NewEpochEvent or returns an error if it's not possible to do to so.

type UpdateStateSuccessEvent

type UpdateStateSuccessEvent struct {
	PublicKey *keys.PublicKey
	State     *big.Int
}

UpdateStateSuccessEvent represents "UpdateStateSuccess" event emitted by the contract.

func UpdateStateSuccessEventsFromApplicationLog

func UpdateStateSuccessEventsFromApplicationLog(log *result.ApplicationLog) ([]*UpdateStateSuccessEvent, error)

UpdateStateSuccessEventsFromApplicationLog retrieves a set of all emitted events with "UpdateStateSuccess" name from the provided result.ApplicationLog.

func (*UpdateStateSuccessEvent) FromStackItem

func (e *UpdateStateSuccessEvent) FromStackItem(item *stackitem.Array) error

FromStackItem converts provided stackitem.Array to UpdateStateSuccessEvent or returns an error if it's not possible to do to so.

Jump to

Keyboard shortcuts

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