Documentation ¶
Index ¶
- Variables
- func CreateRawContractTransaction(params ContractTxParams) (*transaction.Transaction, error)
- func GetInvocationScript(tx *transaction.Transaction, wif wallet.WIF) ([]byte, error)
- type Account
- type AccountStateResponse
- type Balance
- type BalanceGetter
- type Client
- func (c *Client) Balancer() BalanceGetter
- func (c *Client) Client() *http.Client
- func (c *Client) GetAccountState(address string) (*AccountStateResponse, error)
- func (c *Client) GetBlock(indexOrHash interface{}, verbose bool) (*response, error)
- func (c *Client) GetRawTransaction(hash string, verbose bool) (*response, error)
- func (c *Client) Invoke(script string, params []smartcontract.Parameter) (*InvokeScriptResponse, error)
- func (c *Client) InvokeFunction(script, operation string, params []smartcontract.Parameter) (*InvokeScriptResponse, error)
- func (c *Client) InvokeScript(script string) (*InvokeScriptResponse, error)
- func (c *Client) Ping() error
- func (c *Client) SendRawTransaction(rawTX string) (*response, error)
- func (c *Client) SendToAddress(asset util.Uint256, address string, amount util.Fixed8) (*SendToAddressResponse, error)
- func (c *Client) SetBalancer(b BalanceGetter)
- func (c *Client) SetClient(cli *http.Client)
- func (c *Client) SetWIF(wif string) error
- func (c *Client) WIF() wallet.WIF
- type ClientOptions
- type ContractTxParams
- type Error
- type GetRawTxResponse
- type InvokeResult
- type InvokeScriptResponse
- type NeoScanBalance
- type NeoScanServer
- type Param
- type Params
- type RawTxResponse
- type Request
- type Response
- type SendToAddressResponse
- type Server
- type StackParam
- type StackParamType
- type StackParams
- type TxResponse
- type UTXO
- type Unspent
- type Unspents
- type Vin
- type Vout
Constants ¶
This section is empty.
Variables ¶
var GlobalAssets = map[string]string{
"c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b": "NEO",
"602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7": "GAS",
}
NeoScan returns asset IDs as strings ("NEO"/"GAS"); strings might be converted to uint256 assets IDs using this map
Functions ¶
func CreateRawContractTransaction ¶
func CreateRawContractTransaction(params ContractTxParams) (*transaction.Transaction, error)
func GetInvocationScript ¶
func GetInvocationScript(tx *transaction.Transaction, wif wallet.WIF) ([]byte, error)
Types ¶
type Account ¶
type Account struct { Version int `json:"version"` ScriptHash string `json:"script_hash"` Frozen bool // TODO: need to check this field out. Votes []interface{} Balances []*Balance }
Account represents details about a NEO account.
type AccountStateResponse ¶
type AccountStateResponse struct { Result *Account `json:"result"` // contains filtered or unexported fields }
AccountStateResponse holds the getaccountstate response.
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) }
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents the middleman for executing JSON RPC calls to remote NEO RPC nodes.
func (*Client) Balancer ¶
func (c *Client) Balancer() BalanceGetter
func (*Client) GetAccountState ¶
func (c *Client) GetAccountState(address string) (*AccountStateResponse, error)
GetAccountState will return detailed information about a NEO account.
func (*Client) GetBlock ¶
GetBlock returns a block by its hash or index/height. If verbose is true the response will contain a pretty Block object instead of the raw hex string.
func (*Client) GetRawTransaction ¶
GetRawTransaction queries a transaction by hash.
func (*Client) Invoke ¶
func (c *Client) Invoke(script string, params []smartcontract.Parameter) (*InvokeScriptResponse, error)
InvokeFunction return the results after calling a the smart contract scripthash with the given parameters.
func (*Client) InvokeFunction ¶
func (c *Client) InvokeFunction(script, operation string, params []smartcontract.Parameter) (*InvokeScriptResponse, error)
InvokeFunction return the results after calling a the smart contract scripthash with the given operation and parameters. NOTE: this is test invoke and will not affect the blockchain.
func (*Client) InvokeScript ¶
func (c *Client) InvokeScript(script string) (*InvokeScriptResponse, error)
InvokeScript returns the result of the given script after running it true the VM. NOTE: This is a test invoke and will not affect the blockchain.
func (*Client) Ping ¶
Ping attempts to create a connection to the endpoint. and returns an error if there is one.
func (*Client) SendRawTransaction ¶
SendRawTransaction broadcasts a transaction over the NEO network. The given hex string needs to be signed with a keypair. When the result of the response object is true, the TX has successfully been broadcasted to the network.
func (*Client) SendToAddress ¶
func (c *Client) SendToAddress(asset util.Uint256, address string, amount util.Fixed8) (*SendToAddressResponse, error)
SendToAddress sends an amount of specific asset to a given address. This call requires open wallet. (`wif` key in client struct.) If response.Result is `true` then transaction was formed correctly and was written in blockchain.
func (*Client) SetBalancer ¶
func (c *Client) SetBalancer(b BalanceGetter)
type ClientOptions ¶
type ClientOptions struct { Cert string Key string CACert string DialTimeout time.Duration Client *http.Client // Version is the version of the client that will be send // along with the request body. If no version is specified // the default version (currently 2.0) will be used. Version string }
ClientOptions defines options for the RPC client. All Values are optional. If any duration is not specified a default of 3 seconds will be used.
type ContractTxParams ¶
type ContractTxParams struct {
// contains filtered or unexported fields
}
parameters for tx to transfer assets; includes parameters duplication `sendtoaddress` RPC call params and also some utility data;
type Error ¶
type Error struct { Code int64 `json:"code"` HTTPCode int `json:"-"` Cause error `json:"-"` Message string `json:"message"` Data string `json:"data,omitempty"` }
Error object for outputting JSON-RPC 2.0 errors.
func NewInternalServerError ¶
NewInternalServerError creates a new error with code -32603.
func NewInvalidParamsError ¶
NewInvalidParamsError creates a new error with code -32602.
func NewInvalidRequestError ¶
NewInvalidRequestError creates a new error with code -32600.
func NewMethodNotFoundError ¶
NewMethodNotFoundError creates a new error with code -32601.
func NewParseError ¶
NewParseError creates a new error with code -32700.:%s
type GetRawTxResponse ¶
type GetRawTxResponse struct { Error *Error `json:"error"` Result *RawTxResponse `json:"result"` // contains filtered or unexported fields }
struct represents verbose output of `getrawtransaction` RPC call
type InvokeResult ¶
type InvokeResult struct { State vm.State `json:"state"` GasConsumed string `json:"gas_consumed"` Script string `json:"script"` Stack []StackParam }
InvokeResult represents the outcome of a script that is executed by the NEO VM.
type InvokeScriptResponse ¶
type InvokeScriptResponse struct { Error *Error `json:"error,omitempty"` Result *InvokeResult `json:"result,omitempty"` // contains filtered or unexported fields }
type NeoScanBalance ¶
struct of NeoScan response to 'get_balance' request
type NeoScanServer ¶
type NeoScanServer struct { URL string // "protocol://host:port/" Path string // path to API endpoint without wallet address }
func (NeoScanServer) CalculateInputs ¶
func (NeoScanServer) GetBalance ¶
func (s NeoScanServer) GetBalance(address string) ([]*Unspent, error)
type Param ¶
Param represent a param either passed to the server or to send to a server using the client.
type Params ¶
type Params []Param
Params represent the JSON-RPC params.
func (*Params) UnmarshalJSON ¶
UnmarshalJSON implements the Unmarshaller interface.
func (Params) ValueAtAndType ¶
ValueAtAndType returns the param struct at the given index if it exists and matches the given type.
type RawTxResponse ¶
type RawTxResponse struct { TxResponse BlockHash string `json:"blockhash"` Confirmations uint `json:"confirmations"` BlockTime uint `json:"blocktime"` }
type Request ¶
type Request struct { JSONRPC string `json:"jsonrpc"` Method string `json:"method"` RawParams json.RawMessage `json:"params,omitempty"` RawID json.RawMessage `json:"id,omitempty"` }
Request represents a standard JSON-RPC 2.0 request: http://www.jsonrpc.org/specification#request_object.
func (*Request) DecodeData ¶
func (r *Request) DecodeData(data io.ReadCloser) error
DecodeData decodes the given reader into the the request struct.
func (Request) WriteErrorResponse ¶
func (r Request) WriteErrorResponse(w http.ResponseWriter, err error)
WriteErrorResponse writes an error response to the ResponseWriter.
func (Request) WriteResponse ¶
func (r Request) WriteResponse(w http.ResponseWriter, result interface{})
WriteResponse encodes the response and writes it to the ResponseWriter.
type Response ¶
type Response struct { JSONRPC string `json:"jsonrpc"` Result interface{} `json:"result,omitempty"` Error *Error `json:"error,omitempty"` ID json.RawMessage `json:"id,omitempty"` }
Response represents a standard JSON-RPC 2.0 response: http://www.jsonrpc.org/specification#response_object.
type SendToAddressResponse ¶
type SendToAddressResponse struct { Error *Error `json:"error"` Result *TxResponse // contains filtered or unexported fields }
type Server ¶
Server represents the JSON-RPC 2.0 server.
type StackParam ¶
type StackParam struct { Type StackParamType `json:"type"` Value interface{} `json:"value"` }
StackParam represent a stack parameter.
func (StackParam) TryParse ¶
func (p StackParam) TryParse(dest interface{}) error
func (*StackParam) UnmarshalJSON ¶
func (p *StackParam) UnmarshalJSON(data []byte) (err error)
UnmarshalJSON implements Unmarshaler interface
type StackParamType ¶
type StackParamType int
const ( Unknown StackParamType = -1 Signature StackParamType = 0x00 Boolean StackParamType = 0x01 Integer StackParamType = 0x02 Hash160 StackParamType = 0x03 Hash256 StackParamType = 0x04 ByteArray StackParamType = 0x05 PublicKey StackParamType = 0x06 String StackParamType = 0x07 Array StackParamType = 0x10 InteropInterface StackParamType = 0xf0 Void StackParamType = 0xff )
func StackParamTypeFromString ¶
func StackParamTypeFromString(s string) (StackParamType, error)
func (StackParamType) String ¶
func (t StackParamType) String() string
func (*StackParamType) UnmarshalJSON ¶
func (t *StackParamType) UnmarshalJSON(data []byte) (err error)
type StackParams ¶
type StackParams []StackParam
func (StackParams) TryParseArray ¶
func (p StackParams) TryParseArray(vals ...interface{}) error
type TxResponse ¶
type TxResponse struct { TxID string `json:"txid"` Size int `json:"size"` Type string `json:"type"` // todo: convert to TransactionType Version int `json:"version"` Attributes []transaction.Attribute `json:"attributes"` Vins []Vin `json:"vin"` Vouts []Vout `json:"vout"` SysFee int `json:"sys_fee"` NetFee int `json:"net_fee"` Scripts []transaction.Witness `json:"scripts"` }
type Unspent ¶
type Unspent struct { Unspent Unspents Asset string // "NEO" / "GAS" Amount util.Fixed8 // total unspent of this asset }
unspent per asset