client

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2020 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const HaltState = "HALT"

HaltState returned if TestInvoke function processed without panic.

Variables

View Source
var ErrNilClient = errors.New("client is nil")

ErrNilClient is returned by functions that expect a non-nil Client pointer, but received nil.

View Source
var ErrNilStaticClient = errors.New("static client is nil")

ErrNilStaticClient is returned by functions that expect a non-nil StaticClient pointer, but received nil.

Functions

func ArrayFromStackItem added in v0.12.0

func ArrayFromStackItem(param stackitem.Item) ([]stackitem.Item, error)

ArrayFromStackItem returns the slice contract parameters from passed parameter.

If passed parameter carries boolean false value, (nil, nil) returns.

func BigIntFromStackItem added in v0.12.0

func BigIntFromStackItem(param stackitem.Item) (*big.Int, error)

BigIntFromStackItem receives numerical value from the value of a smart contract parameter.

func BoolFromStackItem added in v0.12.0

func BoolFromStackItem(param stackitem.Item) (bool, error)

BoolFromStackItem receives boolean value from the value of a smart contract parameter.

func BytesFromStackItem added in v0.12.0

func BytesFromStackItem(param stackitem.Item) ([]byte, error)

BytesFromStackItem receives binary value from the value of a smart contract parameter.

func IntFromStackItem added in v0.12.0

func IntFromStackItem(param stackitem.Item) (int64, error)

IntFromStackItem receives numerical value from the value of a smart contract parameter.

func StringFromStackItem added in v0.12.0

func StringFromStackItem(param stackitem.Item) (string, error)

StringFromStackItem receives string value from the value of a smart contract parameter.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a neo-go wrapper that provides smart-contract invocation interface.

Working client must be created via constructor New. Using the Client that has been created with new(Client) expression (or just declaring a Client variable) is unsafe and can lead to panic.

func New

func New(key *ecdsa.PrivateKey, endpoint string, opts ...Option) (*Client, error)

New creates, initializes and returns the Client instance.

If private key is nil, crypto.ErrEmptyPrivateKey is returned.

Other values are set according to provided options, or by default:

  • client context: Background;
  • dial timeout: 5s;
  • blockchain network type: netmode.PrivNet;
  • logger: zap.L().

If desired option satisfies the default value, it can be omitted. If multiple options of the same config value are supplied, the option with the highest index in the arguments will be used.

func (*Client) Invoke

func (c *Client) Invoke(contract util.Uint160, fee util.Fixed8, method string, args ...interface{}) error

Invoke invokes contract method by sending transaction into blockchain. Supported args types: int64, string, util.Uint160, []byte and bool.

func (*Client) TestInvoke

func (c *Client) TestInvoke(contract util.Uint160, method string, args ...interface{}) ([]stackitem.Item, error)

TestInvoke invokes contract method locally in neo-go node. This method should be used to read data from smart-contract.

func (*Client) TransferGas

func (c *Client) TransferGas(receiver util.Uint160, amount util.Fixed8) error

TransferGas to the receiver from local wallet

type Option

type Option func(*cfg)

Option is a client configuration change function.

func WithContext

func WithContext(ctx context.Context) Option

WithContext returns a client constructor option that specifies the neo-go client context.

Ignores nil value.

If option not provided, context.Background() is used.

func WithDialTimeout

func WithDialTimeout(dur time.Duration) Option

WithDialTimeout returns a client constructor option that specifies neo-go client dial timeout duration.

Ignores non-positive value.

If option not provided, 5s timeout is used.

func WithGasContract

func WithGasContract(gas util.Uint160) Option

WithGasContract returns a client constructor option that specifies native gas contract script hash.

If option not provided, empty script hash is used.

func WithLogger

func WithLogger(logger *logger.Logger) Option

WithLogger returns a client constructor option that specifies the component for writing log messages.

Ignores nil value.

If option not provided, zap.L() is used.

type StaticClient

type StaticClient struct {
	// contains filtered or unexported fields
}

StaticClient is a wrapper over Neo:Morph client that invokes single smart contract methods with fixed fee.

Working static client must be created via constructor NewStatic. Using the StaticClient that has been created with new(StaticClient) expression (or just declaring a StaticClient variable) is unsafe and can lead to panic.

func NewStatic

func NewStatic(client *Client, scriptHash util.Uint160, fee util.Fixed8) (*StaticClient, error)

NewStatic creates, initializes and returns the StaticClient instance.

If provided Client instance is nil, ErrNilClient is returned.

func (StaticClient) Invoke

func (s StaticClient) Invoke(method string, args ...interface{}) error

Invoke calls Invoke method of Client with static internal script hash and fee. Supported args types are the same as in Client.

func (StaticClient) TestInvoke

func (s StaticClient) TestInvoke(method string, args ...interface{}) ([]stackitem.Item, error)

TestInvoke calls TestInvoke method of Client with static internal script hash.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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