client

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2019 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

Package client provides a client for the Klaytn RPC API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BridgeJournal

type BridgeJournal struct {
	LocalAddress  common.Address `json:"localAddress"`
	RemoteAddress common.Address `json:"remoteAddress"`
	Subscribed    bool           `json:"subscribed"`
}

TODO-Klaytn if client pkg is removed in sc pkg, this will be replaced origin struct.

type Client

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

Client defines typed wrappers for the Klaytn RPC API.

func Dial

func Dial(rawurl string) (*Client, error)

Dial connects a client to the given URL.

func DialContext

func DialContext(ctx context.Context, rawurl string) (*Client, error)

func NewClient

func NewClient(c *rpc.Client) *Client

NewClient creates a client that uses the given RPC client.

func (*Client) AddPeer

func (ec *Client) AddPeer(ctx context.Context, url string) (bool, error)

AddPeer can add a static peer on Klaytn node.

func (*Client) BalanceAt

func (ec *Client) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error)

BalanceAt returns the peb balance of the given account. The block number can be nil, in which case the balance is taken from the latest known block.

func (*Client) BlockByHash

func (ec *Client) BlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error)

BlockByHash returns the given full block.

Note that loading full blocks requires two requests. Use HeaderByHash if you don't need all transactions.

func (*Client) BlockByNumber

func (ec *Client) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error)

BlockByNumber returns a block from the current canonical chain. If number is nil, the latest known block is returned.

Note that loading full blocks requires two requests. Use HeaderByNumber if you don't need all transactions.

func (*Client) BlockNumber

func (ec *Client) BlockNumber(ctx context.Context) (*big.Int, error)

BlockNumber can get the latest block number.

func (*Client) BridgeAddPeerOnBridge

func (ec *Client) BridgeAddPeerOnBridge(ctx context.Context, url string) (bool, error)

BridgeAddPeerOnParentChain can add a static peer on bridge node for service chain.

func (*Client) BridgeConvertRequestTxHashToHandleTxHash

func (ec *Client) BridgeConvertRequestTxHashToHandleTxHash(ctx context.Context, requestTxHash common.Hash) (common.Hash, error)

BridgeConvertRequestTxHashToHandleTxHash can convert a request value transfer tx hash to the corresponded handle value transfer tx hash.

func (*Client) BridgeConvertServiceChainBlockHashToMainChainTxHash

func (ec *Client) BridgeConvertServiceChainBlockHashToMainChainTxHash(ctx context.Context, scBlockHash common.Hash) (common.Hash, error)

BridgeConvertServiceChainBlockHashToMainChainTxHash can convert service chain block hash to anchoring tx hash which contains anchored data.

func (*Client) BridgeDeployBridge

func (ec *Client) BridgeDeployBridge(ctx context.Context) (common.Address, common.Address, error)

BridgeDeployBridge can deploy the pair of bridge for parent/child chain.

func (*Client) BridgeDeregisterBridge

func (ec *Client) BridgeDeregisterBridge(ctx context.Context, scBridge common.Address, mcBridge common.Address) (bool, error)

BridgeDeregisterBridge can deregister the given pair of deployed child/parent bridges.

func (*Client) BridgeDeregisterTokenContract

func (ec *Client) BridgeDeregisterTokenContract(ctx context.Context, scBridge, mcBridge, scToken, mcToken common.Address) error

BridgeDeregisterTokenContract can deregister the given pair of deployed service/main chain token contracts. If the registering is failed, it returns an error.

func (*Client) BridgeDisableAnchoring

func (ec *Client) BridgeDisableAnchoring(ctx context.Context) (bool, error)

BridgeDisableAnchoring can disable anchoring function and return the set value.

func (*Client) BridgeEnableAnchoring

func (ec *Client) BridgeEnableAnchoring(ctx context.Context) (bool, error)

BridgeEnableAnchoring can enable anchoring function and return the set value.

func (*Client) BridgeGetAnchoringPeriod

func (ec *Client) BridgeGetAnchoringPeriod(ctx context.Context) (uint64, error)

BridgeGetAnchoringPeriod can get the block period to anchor chain data.

func (*Client) BridgeGetChildChainIndexingEnabled

func (ec *Client) BridgeGetChildChainIndexingEnabled(ctx context.Context) (bool, error)

BridgeGetChildChainIndexingEnabled can get if child chain indexing is enabled or not.

func (*Client) BridgeGetERC20Fee added in v1.1.0

func (ec *Client) BridgeGetERC20Fee(ctx context.Context, bridgeAddr, tokenAddr common.Address) (*big.Int, error)

BridgeGetERC20Fee returns the ERC20 transfer fee.

func (*Client) BridgeGetFeeReceiver added in v1.1.0

func (ec *Client) BridgeGetFeeReceiver(ctx context.Context, bridgeAddr common.Address) (common.Address, error)

BridgeGetFeeReceiver returns the fee receiver.

func (*Client) BridgeGetKLAYFee added in v1.1.0

func (ec *Client) BridgeGetKLAYFee(ctx context.Context, bridgeAddr common.Address) (*big.Int, error)

BridgeGetKLAYFee returns the KLAY transfer fee.

func (*Client) BridgeGetLatestAnchoredBlockNumber

func (ec *Client) BridgeGetLatestAnchoredBlockNumber(ctx context.Context) (uint64, error)

BridgeGetLatestAnchoredBlockNumber can return the latest anchored block number.

func (*Client) BridgeGetMainChainAccountAddr

func (ec *Client) BridgeGetMainChainAccountAddr(ctx context.Context) (common.Address, error)

BridgeGetMainChainAccountAddr can get a main chain bridge account address.

func (*Client) BridgeGetMainChainAccountNonce

func (ec *Client) BridgeGetMainChainAccountNonce(ctx context.Context) (uint64, error)

BridgeGetMainChainAccountNonce can get a main chain bridge account nonce.

func (*Client) BridgeGetReceiptFromParentChain

func (ec *Client) BridgeGetReceiptFromParentChain(ctx context.Context, hash common.Hash) (*types.Receipt, error)

BridgeGetReceiptFromParentChain can get the receipt of child chain tx from parent node.

func (*Client) BridgeGetSentChainTxsLimit

func (ec *Client) BridgeGetSentChainTxsLimit(ctx context.Context) (uint64, error)

BridgeGetSentChainTxsLimit can get the maximum number of transaction which child peer can send to parent peer once.

func (*Client) BridgeGetServiceChainAccountAddr

func (ec *Client) BridgeGetServiceChainAccountAddr(ctx context.Context) (common.Address, error)

BridgeGetServiceChainAccountAddr can get a service chain bridge account address.

func (*Client) BridgeGetServiceChainAccountNonce

func (ec *Client) BridgeGetServiceChainAccountNonce(ctx context.Context) (uint64, error)

BridgeGetServiceChainAccountAddr can get a service chain bridge account nonce.

func (*Client) BridgeGetTxPending

func (ec *Client) BridgeGetTxPending(ctx context.Context) (map[common.Address]types.Transactions, error)

BridgeGetTxPending can return the pend tx list mapped by address.

func (*Client) BridgeListBridge

func (ec *Client) BridgeListBridge(ctx context.Context) ([]*BridgeJournal, error)

BridgeListBridge can return the list of the bridge.

func (*Client) BridgeNodeInfo

func (ec *Client) BridgeNodeInfo(ctx context.Context) (*p2p.NodeInfo, error)

BridgeNodeInfo returns the node information

func (*Client) BridgePeersOnBridge

func (ec *Client) BridgePeersOnBridge(ctx context.Context) ([]*p2p.PeerInfo, error)

BridgePeersOnBridge returns the peer list of bridge node for service chain.

func (*Client) BridgeRegisterBridge

func (ec *Client) BridgeRegisterBridge(ctx context.Context, scBridge common.Address, mcBridge common.Address) (bool, error)

BridgeRegisterBridge can register the given pair of deployed child/parent bridges.

func (*Client) BridgeRegisterTokenContract

func (ec *Client) BridgeRegisterTokenContract(ctx context.Context, scBridge, mcBridge, scToken, mcToken common.Address) error

BridgeRegisterTokenContract can register the given pair of deployed service/main chain token contracts. If the registering is failed, it returns an error.

func (*Client) BridgeRemovePeerOnBridge

func (ec *Client) BridgeRemovePeerOnBridge(ctx context.Context, url string) (bool, error)

BridgeRemovePeerOnParentChain can remove a static peer on bridge node.

func (*Client) BridgeSetERC20Fee added in v1.1.0

func (ec *Client) BridgeSetERC20Fee(ctx context.Context, bridgeAddr, tokenAddr common.Address, fee *big.Int) (common.Hash, error)

BridgeSetERC20Fee can set the ERC20 transfer fee.

func (*Client) BridgeSetFeeReceiver added in v1.1.0

func (ec *Client) BridgeSetFeeReceiver(ctx context.Context, bridgeAddr, receiver common.Address) (common.Hash, error)

BridgeSetFeeReceiver can set the fee receiver.

func (*Client) BridgeSetKLAYFee added in v1.1.0

func (ec *Client) BridgeSetKLAYFee(ctx context.Context, bridgeAddr common.Address, fee *big.Int) (common.Hash, error)

BridgeSetKLAYFee can set the KLAY transfer fee.

func (*Client) BridgeSubscribeBridge

func (ec *Client) BridgeSubscribeBridge(ctx context.Context, scBridge common.Address, mcBridge common.Address) error

BridgeSubscribeBridge can enable for service chain bridge to subscribe the event of given service/main chain bridges. If the subscribing is failed, it returns an error.

func (*Client) BridgeTxPendingCount

func (ec *Client) BridgeTxPendingCount(ctx context.Context) (int, error)

BridgeTxPendingCount can return the count of the pend tx in bridge txpool.

func (*Client) BridgeUnsubscribeBridge

func (ec *Client) BridgeUnsubscribeBridge(ctx context.Context, scBridge common.Address, mcBridge common.Address) error

BridgeUnsubscribeBridge disables the event subscription of the given service/main chain bridges. If the unsubscribing is failed, it returns an error.

func (*Client) CallContract

func (ec *Client) CallContract(ctx context.Context, msg klaytn.CallMsg, blockNumber *big.Int) ([]byte, error)

CallContract executes a message call transaction, which is directly executed in the VM of the node, but never mined into the blockchain.

blockNumber selects the block height at which the call runs. It can be nil, in which case the code is taken from the latest known block. Note that state from very old blocks might not be available.

func (*Client) ChainID

func (ec *Client) ChainID(ctx context.Context) (*big.Int, error)

ChainID can return the chain ID of the chain.

func (*Client) Close

func (ec *Client) Close()

func (*Client) CodeAt

func (ec *Client) CodeAt(ctx context.Context, account common.Address, blockNumber *big.Int) ([]byte, error)

CodeAt returns the contract code of the given account. The block number can be nil, in which case the code is taken from the latest known block.

func (*Client) EstimateGas

func (ec *Client) EstimateGas(ctx context.Context, msg klaytn.CallMsg) (uint64, error)

EstimateGas tries to estimate the gas needed to execute a specific transaction based on the current pending state of the backend blockchain. There is no guarantee that this is the true gas limit requirement as other transactions may be added or removed by miners, but it should provide a basis for setting a reasonable default.

func (*Client) FilterLogs

func (ec *Client) FilterLogs(ctx context.Context, q klaytn.FilterQuery) ([]types.Log, error)

FilterLogs executes a filter query.

func (*Client) HeaderByHash

func (ec *Client) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error)

HeaderByHash returns the block header with the given hash.

func (*Client) HeaderByNumber

func (ec *Client) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error)

HeaderByNumber returns a block header from the current canonical chain. If number is nil, the latest known header is returned.

func (*Client) ImportRawKey

func (ec *Client) ImportRawKey(ctx context.Context, key string, password string) (common.Address, error)

ImportRawKey can create key store from private key string on Klaytn node.

func (*Client) MainBridgeNodeInfo

func (ec *Client) MainBridgeNodeInfo(ctx context.Context) (*p2p.NodeInfo, error)

BridgeNodeInfo returns the node information

func (*Client) MainBridgePeersOnBridge

func (ec *Client) MainBridgePeersOnBridge(ctx context.Context) ([]*p2p.PeerInfo, error)

BridgePeersOnBridge returns the peer list of bridge node for service chain.

func (*Client) NetworkID

func (ec *Client) NetworkID(ctx context.Context) (*big.Int, error)

NetworkID returns the network ID (also known as the chain ID) for this chain.

func (*Client) NonceAt

func (ec *Client) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error)

NonceAt returns the account nonce of the given account. The block number can be nil, in which case the nonce is taken from the latest known block.

func (*Client) PendingBalanceAt

func (ec *Client) PendingBalanceAt(ctx context.Context, account common.Address) (*big.Int, error)

PendingBalanceAt returns the peb balance of the given account in the pending state.

func (*Client) PendingCallContract

func (ec *Client) PendingCallContract(ctx context.Context, msg klaytn.CallMsg) ([]byte, error)

PendingCallContract executes a message call transaction using the EVM. The state seen by the contract call is the pending state.

func (*Client) PendingCodeAt

func (ec *Client) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error)

PendingCodeAt returns the contract code of the given account in the pending state.

func (*Client) PendingNonceAt

func (ec *Client) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error)

PendingNonceAt returns the account nonce of the given account in the pending state. This is the nonce that should be used for the next transaction.

func (*Client) PendingStorageAt

func (ec *Client) PendingStorageAt(ctx context.Context, account common.Address, key common.Hash) ([]byte, error)

PendingStorageAt returns the value of key in the contract storage of the given account in the pending state.

func (*Client) PendingTransactionCount

func (ec *Client) PendingTransactionCount(ctx context.Context) (uint, error)

PendingTransactionCount returns the total number of transactions in the pending state.

func (*Client) RemovePeer

func (ec *Client) RemovePeer(ctx context.Context, url string) (bool, error)

RemovePeer can remove a static peer on Klaytn node.

func (*Client) SendRawTransaction

func (ec *Client) SendRawTransaction(ctx context.Context, tx *types.Transaction) (common.Hash, error)

SendRawTransaction injects a signed transaction into the pending pool for execution.

This function can return the transaction hash and error.

func (*Client) SendTransaction

func (ec *Client) SendTransaction(ctx context.Context, tx *types.Transaction) error

SendTransaction injects a signed transaction into the pending pool for execution.

If the transaction was a contract creation use the TransactionReceipt method to get the contract address after the transaction has been mined.

func (*Client) SendUnsignedTransaction

func (ec *Client) SendUnsignedTransaction(ctx context.Context, from common.Address, to common.Address, gas uint64, gasPrice uint64, value *big.Int, data []byte, input []byte) (common.Hash, error)

SendUnsignedTransaction injects a unsigned transaction into the pending pool for execution.

This function can return the transaction hash and error.

func (*Client) StorageAt

func (ec *Client) StorageAt(ctx context.Context, account common.Address, key common.Hash, blockNumber *big.Int) ([]byte, error)

StorageAt returns the value of key in the contract storage of the given account. The block number can be nil, in which case the value is taken from the latest known block.

func (*Client) SubscribeFilterLogs

func (ec *Client) SubscribeFilterLogs(ctx context.Context, q klaytn.FilterQuery, ch chan<- types.Log) (klaytn.Subscription, error)

SubscribeFilterLogs subscribes to the results of a streaming filter query.

func (*Client) SubscribeNewHead

func (ec *Client) SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (klaytn.Subscription, error)

SubscribeNewHead subscribes to notifications about the current blockchain head on the given channel.

func (*Client) SuggestGasPrice

func (ec *Client) SuggestGasPrice(ctx context.Context) (*big.Int, error)

SuggestGasPrice retrieves the currently suggested gas price to allow a timely execution of a transaction.

func (*Client) SyncProgress

func (ec *Client) SyncProgress(ctx context.Context) (*klaytn.SyncProgress, error)

SyncProgress retrieves the current progress of the sync algorithm. If there's no sync currently running, it returns nil.

func (*Client) TransactionByHash

func (ec *Client) TransactionByHash(ctx context.Context, hash common.Hash) (tx *types.Transaction, isPending bool, err error)

TransactionByHash returns the transaction with the given hash.

func (*Client) TransactionCount

func (ec *Client) TransactionCount(ctx context.Context, blockHash common.Hash) (uint, error)

TransactionCount returns the total number of transactions in the given block.

func (*Client) TransactionInBlock

func (ec *Client) TransactionInBlock(ctx context.Context, blockHash common.Hash, index uint) (*types.Transaction, error)

TransactionInBlock returns a single transaction at index in the given block.

func (*Client) TransactionReceipt

func (ec *Client) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error)

TransactionReceipt returns the receipt of a transaction by transaction hash. Note that the receipt is not available for pending transactions.

func (*Client) TransactionReceiptRpcOutput added in v1.1.0

func (ec *Client) TransactionReceiptRpcOutput(ctx context.Context, txHash common.Hash) (r map[string]interface{}, err error)

TransactionReceiptRpcOutput returns the receipt of a transaction by transaction hash as a rpc output.

func (*Client) TransactionSender

func (ec *Client) TransactionSender(ctx context.Context, tx *types.Transaction, block common.Hash, index uint) (common.Address, error)

TransactionSender returns the sender address of the given transaction. The transaction must be known to the remote node and included in the blockchain at the given block and index. The sender is the one derived by the protocol at the time of inclusion.

There is a fast-path for transactions retrieved by TransactionByHash and TransactionInBlock. Getting their sender address can be done without an RPC interaction.

func (*Client) UnlockAccount

func (ec *Client) UnlockAccount(ctx context.Context, address common.Address, password string, time uint) (bool, error)

UnlockAccount can unlock the account on Klaytn node.

Jump to

Keyboard shortcuts

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