Documentation ¶
Index ¶
- Constants
- func AddInputsAndUnspentsToTx(tx *transaction.Transaction, addr string, assetID util.Uint256, ...) error
- func CreateDeploymentScript(avm []byte, contract *smartcontract.ContractDetails) ([]byte, error)
- func CreateFunctionInvocationScript(contract util.Uint160, params Params) ([]byte, error)
- func CreateInvocationScript(contract util.Uint160, funcParams []Param) ([]byte, error)
- func CreateRawContractTransaction(params ContractTxParams) (*transaction.Transaction, error)
- func DetailsToSCProperties(contract *smartcontract.ContractDetails) smartcontract.PropertyState
- type BalanceGetter
- type Batch
- type ContractTxParams
- type ExecutionFilter
- type FuncParam
- type In
- type NotificationFilter
- type Param
- func (p *Param) GetArray() ([]Param, error)
- func (p *Param) GetArrayUint160FromHex() ([]util.Uint160, error)
- func (p *Param) GetBoolean() bool
- func (p *Param) GetBytesHex() ([]byte, error)
- func (p *Param) GetFuncParam() (FuncParam, error)
- func (p *Param) GetInt() (int, error)
- func (p *Param) GetString() (string, error)
- func (p *Param) GetUint160FromAddress() (util.Uint160, error)
- func (p *Param) GetUint160FromAddressOrHex() (util.Uint160, error)
- func (p *Param) GetUint160FromHex() (util.Uint160, error)
- func (p *Param) GetUint256() (util.Uint256, error)
- func (p Param) String() string
- func (p *Param) UnmarshalJSON(data []byte) error
- type Params
- type Raw
- type RawParams
- type Request
- type TxFilter
Constants ¶
const ( StringT paramType NumberT ArrayT FuncParamT TxFilterT NotificationFilterT ExecutionFilterT )
These are parameter types accepted by RPC server.
const (
// JSONRPCVersion is the only JSON-RPC protocol version supported.
JSONRPCVersion = "2.0"
)
Variables ¶
This section is empty.
Functions ¶
func AddInputsAndUnspentsToTx ¶
func AddInputsAndUnspentsToTx(tx *transaction.Transaction, addr string, assetID util.Uint256, amount util.Fixed8, balancer BalanceGetter) error
AddInputsAndUnspentsToTx adds inputs needed to transaction and one output with change.
func CreateDeploymentScript ¶
func CreateDeploymentScript(avm []byte, contract *smartcontract.ContractDetails) ([]byte, error)
CreateDeploymentScript returns a script that deploys given smart contract with its metadata.
func CreateFunctionInvocationScript ¶
CreateFunctionInvocationScript creates a script to invoke given contract with given parameters.
func CreateInvocationScript ¶
CreateInvocationScript creates a script to invoke given contract with given parameters. It differs from CreateFunctionInvocationScript in that it expects one array of FuncParams and expands it onto the stack as independent elements.
func CreateRawContractTransaction ¶
func CreateRawContractTransaction(params ContractTxParams) (*transaction.Transaction, error)
CreateRawContractTransaction returns contract-type Transaction built from specified parameters.
func DetailsToSCProperties ¶
func DetailsToSCProperties(contract *smartcontract.ContractDetails) smartcontract.PropertyState
DetailsToSCProperties extract the fields needed from ContractDetails and converts them to smartcontract.PropertyState.
Types ¶
type BalanceGetter ¶
type BalanceGetter interface { // parameters // address: base58-encoded address assets would be transferred from // assetID: asset identifier // amount: an asset amount to spend // return values // inputs: UTXO's for the preparing transaction // total: summarized asset amount from all the `inputs` // error: error would be considered in the caller function CalculateInputs(address string, assetID util.Uint256, amount util.Fixed8) (inputs []transaction.Input, total util.Fixed8, err error) }
BalanceGetter is an interface supporting CalculateInputs() method.
type Batch ¶ added in v0.78.2
type Batch []In
Batch represents a standard JSON-RPC 2.0 batch: https://www.jsonrpc.org/specification#batch.
type ContractTxParams ¶
type ContractTxParams struct { AssetID util.Uint256 Address string Value util.Fixed8 WIF keys.WIF // a WIF to send the transaction // since there are many ways to provide unspents, // transaction composer stays agnostic to that how // unspents was got; Balancer BalanceGetter }
ContractTxParams contains parameters for tx to transfer assets. It includes (*Client).TransferAsset call params and utility data.
type ExecutionFilter ¶ added in v0.75.0
type ExecutionFilter struct {
State string `json:"state"`
}
ExecutionFilter is a wrapper structure used for transaction execution events. It allows to choose failing or successful transactions based on their VM state.
type FuncParam ¶
type FuncParam struct { Type smartcontract.ParamType `json:"type"` Value Param `json:"value"` }
FuncParam represents a function argument parameter used in the invokefunction RPC method.
type In ¶
type In struct { JSONRPC string `json:"jsonrpc"` Method string `json:"method"` RawParams json.RawMessage `json:"params,omitempty"` RawID json.RawMessage `json:"id,omitempty"` }
In represents a standard JSON-RPC 2.0 request: http://www.jsonrpc.org/specification#request_object.
type NotificationFilter ¶ added in v0.75.0
NotificationFilter is a wrapper structure representing filter used for notifications generated during transaction execution. Notifications can only be filtered by contract hash.
type Param ¶
type Param struct { Type paramType Value interface{} }
Param represents a param either passed to the server or to send to a server using the client.
func (*Param) GetArrayUint160FromHex ¶ added in v0.77.0
GetArrayUint160FromHex returns array of Uint160 values of the parameter that was supply as array of raw hex.
func (*Param) GetBoolean ¶ added in v0.76.0
GetBoolean returns boolean value of the parameter.
func (*Param) GetBytesHex ¶
GetBytesHex returns []byte value of the parameter if it is a hex-encoded string.
func (*Param) GetFuncParam ¶
GetFuncParam returns current parameter as a function call parameter.
func (*Param) GetUint160FromAddress ¶
GetUint160FromAddress returns Uint160 value of the parameter that was supplied as an address.
func (*Param) GetUint160FromAddressOrHex ¶ added in v0.76.1
GetUint160FromAddressOrHex returns Uint160 value of the parameter that was supplied either as raw hex or as an address.
func (*Param) GetUint160FromHex ¶
GetUint160FromHex returns Uint160 value of the parameter encoded in hex.
func (*Param) GetUint256 ¶
GetUint256 returns Uint256 value of the parameter.
func (*Param) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler interface.
type Params ¶
type Params []Param
Params represents the JSON-RPC params.
func (Params) ValueWithType ¶
ValueWithType returns the param struct at the given index if it exists and matches the given type.
type Raw ¶
type Raw struct { JSONRPC string `json:"jsonrpc"` Method string `json:"method"` RawParams []interface{} `json:"params"` ID int `json:"id"` }
Raw represents JSON-RPC request.
type RawParams ¶
type RawParams struct {
Values []interface{}
}
RawParams is just a slice of abstract values, used to represent parameters passed from client to server.
func NewRawParams ¶
func NewRawParams(vals ...interface{}) RawParams
NewRawParams creates RawParams from its parameters.
type Request ¶ added in v0.78.2
Request contains standard JSON-RPC 2.0 request and batch of requests: http://www.jsonrpc.org/specification. It's used in server to represent incoming queries.
func NewRequest ¶ added in v0.78.2
func NewRequest() *Request
NewRequest creates a new Request struct.
func (*Request) DecodeData ¶ added in v0.78.2
func (r *Request) DecodeData(data io.ReadCloser) error
DecodeData decodes the given reader into the the request struct.
func (Request) MarshalJSON ¶ added in v0.78.2
MarshalJSON implements json.Marshaler interface
func (*Request) UnmarshalJSON ¶ added in v0.78.2
UnmarshalJSON implements json.Unmarshaler interface.
type TxFilter ¶ added in v0.75.0
type TxFilter struct {
Type transaction.TXType `json:"type"`
}
TxFilter is a wrapper structure for transaction event filter. The only allowed filter is a transaction type for now.