neo-go/pkg/rpc/rpc.go
Anthony De Meulemeester b2a5e34aac
RPC client (#42)
* Started RPC package to allow querying balances and sending raw transactions for sc's

* integrate invoke cmd in cli

* bumped version

* added sendrawtransaction to the rpc client.
2018-03-05 09:53:09 +01:00

57 lines
1.7 KiB
Go

package rpc
// 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 (c *Client) GetBlock(indexOrHash interface{}, verbose bool) (*response, error) {
var (
params = newParams(indexOrHash)
resp = &response{}
)
if verbose {
params = newParams(indexOrHash, 1)
}
if err := c.performRequest("getblock", params, resp); err != nil {
return nil, err
}
return resp, nil
}
// GetAccountState will return detailed information about a NEO account.
func (c *Client) GetAccountState(address string) (*AccountStateResponse, error) {
var (
params = newParams(address)
resp = &AccountStateResponse{}
)
if err := c.performRequest("getaccountstate", params, resp); err != nil {
return nil, err
}
return resp, nil
}
// InvokeScipt returns the result of the given script after running it true the VM.
// NOTE: This is a test invoke and will not affect the blokchain.
func (c *Client) InvokeScript(script string) (*InvokeScriptResponse, error) {
var (
params = newParams(script)
resp = &InvokeScriptResponse{}
)
if err := c.performRequest("invokescript", params, resp); err != nil {
return nil, err
}
return resp, nil
}
// 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 (c *Client) SendRawTransaction(rawTX string) (*response, error) {
var (
params = newParams(rawTX)
resp = &response{}
)
if err := c.performRequest("sendrawtransaction", params, resp); err != nil {
return nil, err
}
return resp, nil
}