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 ¶
var Hash = nativehashes.OracleContract
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 (*Contract) SetPrice ¶
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.
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 ¶
RequestEvent represents an OracleRequest notification event emitted from the OracleContract contract.
type ResponseEvent ¶
ResponseEvent represents an OracleResponse notification event emitted from the OracleContract contract.