oracle

package
v0.105.1 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package oracle allows to work with the native OracleContract contract via RPC.

Safe methods are encapsulated into ContractReader structure while Contract provides various methods to perform state-changing calls.

Index

Constants

This section is empty.

Variables

Hash stores the hash of the native OracleContract contract.

Functions

This section is empty.

Types

type Actor

type Actor interface {
	Invoker

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

Actor is used by Contract to create and send transactions.

type Contract

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

Contract represents the OracleContract contract client that can be used to invoke its "setPrice" method. Other methods are useless for direct calls, "request" requires a callback that entry script can't provide and "finish" will only work in an oracle transaction. Since "setPrice" can be called successfully only by the network's committee, an appropriate Actor is needed for Contract.

func New

func New(actor Actor) *Contract

New creates an instance of Contract to perform actions using the given Actor.

func (*Contract) SetPrice

func (c *Contract) SetPrice(value *big.Int) (util.Uint256, uint32, error)

SetPrice creates and sends a transaction that sets the new price for the oracle request call. The action is successful when transaction ends in HALT state. The returned values are transaction hash, its ValidUntilBlock value and an error if any.

func (*Contract) SetPriceTransaction

func (c *Contract) SetPriceTransaction(value *big.Int) (*transaction.Transaction, error)

SetPriceTransaction creates a transaction that sets the new price for the oracle request call. The action is successful when transaction ends in HALT state. The transaction is signed, but not sent to the network, instead it's returned to the caller.

func (*Contract) SetPriceUnsigned

func (c *Contract) SetPriceUnsigned(value *big.Int) (*transaction.Transaction, error)

SetPriceUnsigned creates a transaction that sets the new price for the oracle request call. The action is successful when transaction ends in HALT state. The transaction is not signed and just returned to the caller.

type ContractReader

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

ContractReader provides an interface to call read-only OracleContract contract's methods. "verify" method is not exposed since it's very specific and can't be executed successfully outside of the proper oracle response transaction.

func NewReader

func NewReader(invoker Invoker) *ContractReader

NewReader creates an instance of ContractReader that can be used to read data from the contract.

func (*ContractReader) GetPrice

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

GetPrice returns current price of the oracle request call.

type Invoker

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

Invoker is used by ContractReader to call various methods.

type RequestEvent

type RequestEvent struct {
	ID       int64
	Contract util.Uint160
	URL      string
	Filter   string
}

RequestEvent represents an OracleRequest notification event emitted from the OracleContract contract.

type ResponseEvent

type ResponseEvent struct {
	ID         int64
	OriginalTx util.Uint256
}

ResponseEvent represents an OracleResponse notification event emitted from the OracleContract contract.

Jump to

Keyboard shortcuts

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