request

package
v0.90.0-pre Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2020 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StringT paramType
	NumberT
	ArrayT
	FuncParamT
)

These are parameter types accepted by RPC server.

View Source
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 *ContractDetails) ([]byte, error)

CreateDeploymentScript returns a script that deploys given smart contract with its metadata.

func CreateFunctionInvocationScript

func CreateFunctionInvocationScript(contract util.Uint160, params Params) ([]byte, error)

CreateFunctionInvocationScript creates a script to invoke given contract with given parameters.

func CreateInvocationScript

func CreateInvocationScript(contract util.Uint160, funcParams []Param) ([]byte, error)

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 *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 ContractDetails

type ContractDetails struct {
	Author               string
	Email                string
	Version              string
	ProjectName          string `yaml:"name"`
	Description          string
	HasStorage           bool
	HasDynamicInvocation bool
	IsPayable            bool
	ReturnType           smartcontract.ParamType
	Parameters           []smartcontract.ParamType
}

ContractDetails contains contract metadata.

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 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. It's used in server to represent incoming queries.

func NewIn

func NewIn() *In

NewIn creates a new Request struct.

func (*In) DecodeData

func (r *In) DecodeData(data io.ReadCloser) error

DecodeData decodes the given reader into the the request struct.

func (*In) Params

func (r *In) Params() (*Params, error)

Params takes a slice of any type and attempts to bind the params to it.

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) GetArray

func (p Param) GetArray() ([]Param, error)

GetArray returns a slice of Params stored in the parameter.

func (Param) GetBytesHex

func (p Param) GetBytesHex() ([]byte, error)

GetBytesHex returns []byte value of the parameter if it is a hex-encoded string.

func (Param) GetFuncParam

func (p Param) GetFuncParam() (FuncParam, error)

GetFuncParam returns current parameter as a function call parameter.

func (Param) GetInt

func (p Param) GetInt() (int, error)

GetInt returns int value of te parameter.

func (Param) GetString

func (p Param) GetString() (string, error)

GetString returns string value of the parameter.

func (Param) GetUint160FromAddress

func (p Param) GetUint160FromAddress() (util.Uint160, error)

GetUint160FromAddress returns Uint160 value of the parameter that was supplied as an address.

func (Param) GetUint160FromHex

func (p Param) GetUint160FromHex() (util.Uint160, error)

GetUint160FromHex returns Uint160 value of the parameter encoded in hex.

func (Param) GetUint256

func (p Param) GetUint256() (util.Uint256, error)

GetUint256 returns Uint256 value of the parameter.

func (Param) String

func (p Param) String() string

func (*Param) UnmarshalJSON

func (p *Param) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler interface.

type Params

type Params []Param

Params represents the JSON-RPC params.

func (Params) Value

func (p Params) Value(index int) (*Param, bool)

Value returns the param struct for the given index if it exists.

func (Params) ValueWithType

func (p Params) ValueWithType(index int, valType paramType) (*Param, bool)

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.

Jump to

Keyboard shortcuts

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