Documentation ¶
Overview ¶
包ethapi实现一般的以太坊API功能。
Index ¶
- func GetAPIs(apiBackend Backend) []rpc.API
- func RPCMarshalBlock(b *types.Block, inclTx bool, fullTx bool) (map[string]interface{}, error)
- type AddrLocker
- type Backend
- type CallArgs
- type ExecutionResult
- type PrivateAccountAPI
- func (s *PrivateAccountAPI) DeriveAccount(url string, path string, pin *bool) (accounts.Account, error)
- func (s *PrivateAccountAPI) EcRecover(ctx context.Context, data, sig hexutil.Bytes) (common.Address, error)
- func (s *PrivateAccountAPI) ImportRawKey(privkey string, password string) (common.Address, error)
- func (s *PrivateAccountAPI) ListAccounts() []common.Address
- func (s *PrivateAccountAPI) ListWallets() []rawWallet
- func (s *PrivateAccountAPI) LockAccount(addr common.Address) bool
- func (s *PrivateAccountAPI) NewAccount(password string) (common.Address, error)
- func (s *PrivateAccountAPI) OpenWallet(url string, passphrase *string) error
- func (s *PrivateAccountAPI) SendTransaction(ctx context.Context, args SendTxArgs, passwd string) (common.Hash, error)
- func (s *PrivateAccountAPI) Sign(ctx context.Context, data hexutil.Bytes, addr common.Address, passwd string) (hexutil.Bytes, error)
- func (s *PrivateAccountAPI) SignAndSendTransaction(ctx context.Context, args SendTxArgs, passwd string) (common.Hash, error)
- func (s *PrivateAccountAPI) SignTransaction(ctx context.Context, args SendTxArgs, passwd string) (*SignTransactionResult, error)
- func (s *PrivateAccountAPI) UnlockAccount(addr common.Address, password string, duration *uint64) (bool, error)
- type PrivateDebugAPI
- type PublicAccountAPI
- type PublicBlockChainAPI
- func (s *PublicBlockChainAPI) BlockNumber() hexutil.Uint64
- func (s *PublicBlockChainAPI) Call(ctx context.Context, args CallArgs, blockNr rpc.BlockNumber) (hexutil.Bytes, error)
- func (s *PublicBlockChainAPI) EstimateGas(ctx context.Context, args CallArgs) (hexutil.Uint64, error)
- func (s *PublicBlockChainAPI) GetBalance(ctx context.Context, address common.Address, blockNr rpc.BlockNumber) (*hexutil.Big, error)
- func (s *PublicBlockChainAPI) GetBlockByHash(ctx context.Context, blockHash common.Hash, fullTx bool) (map[string]interface{}, error)
- func (s *PublicBlockChainAPI) GetBlockByNumber(ctx context.Context, blockNr rpc.BlockNumber, fullTx bool) (map[string]interface{}, error)
- func (s *PublicBlockChainAPI) GetCode(ctx context.Context, address common.Address, blockNr rpc.BlockNumber) (hexutil.Bytes, error)
- func (s *PublicBlockChainAPI) GetStorageAt(ctx context.Context, address common.Address, key string, ...) (hexutil.Bytes, error)
- func (s *PublicBlockChainAPI) GetUncleByBlockHashAndIndex(ctx context.Context, blockHash common.Hash, index hexutil.Uint) (map[string]interface{}, error)
- func (s *PublicBlockChainAPI) GetUncleByBlockNumberAndIndex(ctx context.Context, blockNr rpc.BlockNumber, index hexutil.Uint) (map[string]interface{}, error)
- func (s *PublicBlockChainAPI) GetUncleCountByBlockHash(ctx context.Context, blockHash common.Hash) *hexutil.Uint
- func (s *PublicBlockChainAPI) GetUncleCountByBlockNumber(ctx context.Context, blockNr rpc.BlockNumber) *hexutil.Uint
- type PublicDebugAPI
- type PublicEthereumAPI
- type PublicNetAPI
- type PublicTransactionPoolAPI
- func (s *PublicTransactionPoolAPI) GetBlockTransactionCountByHash(ctx context.Context, blockHash common.Hash) *hexutil.Uint
- func (s *PublicTransactionPoolAPI) GetBlockTransactionCountByNumber(ctx context.Context, blockNr rpc.BlockNumber) *hexutil.Uint
- func (s *PublicTransactionPoolAPI) GetRawTransactionByBlockHashAndIndex(ctx context.Context, blockHash common.Hash, index hexutil.Uint) hexutil.Bytes
- func (s *PublicTransactionPoolAPI) GetRawTransactionByBlockNumberAndIndex(ctx context.Context, blockNr rpc.BlockNumber, index hexutil.Uint) hexutil.Bytes
- func (s *PublicTransactionPoolAPI) GetRawTransactionByHash(ctx context.Context, hash common.Hash) (hexutil.Bytes, error)
- func (s *PublicTransactionPoolAPI) GetTransactionByBlockHashAndIndex(ctx context.Context, blockHash common.Hash, index hexutil.Uint) *RPCTransaction
- func (s *PublicTransactionPoolAPI) GetTransactionByBlockNumberAndIndex(ctx context.Context, blockNr rpc.BlockNumber, index hexutil.Uint) *RPCTransaction
- func (s *PublicTransactionPoolAPI) GetTransactionByHash(ctx context.Context, hash common.Hash) *RPCTransaction
- func (s *PublicTransactionPoolAPI) GetTransactionCount(ctx context.Context, address common.Address, blockNr rpc.BlockNumber) (*hexutil.Uint64, error)
- func (s *PublicTransactionPoolAPI) GetTransactionReceipt(ctx context.Context, hash common.Hash) (map[string]interface{}, error)
- func (s *PublicTransactionPoolAPI) PendingTransactions() ([]*RPCTransaction, error)
- func (s *PublicTransactionPoolAPI) Resend(ctx context.Context, sendArgs SendTxArgs, gasPrice *hexutil.Big, ...) (common.Hash, error)
- func (s *PublicTransactionPoolAPI) SendRawTransaction(ctx context.Context, encodedTx hexutil.Bytes) (common.Hash, error)
- func (s *PublicTransactionPoolAPI) SendTransaction(ctx context.Context, args SendTxArgs) (common.Hash, error)
- func (s *PublicTransactionPoolAPI) Sign(addr common.Address, data hexutil.Bytes) (hexutil.Bytes, error)
- func (s *PublicTransactionPoolAPI) SignTransaction(ctx context.Context, args SendTxArgs) (*SignTransactionResult, error)
- type PublicTxPoolAPI
- type RPCTransaction
- type SendTxArgs
- type SignTransactionResult
- type StructLogRes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AddrLocker ¶
type AddrLocker struct {
// contains filtered or unexported fields
}
func (*AddrLocker) LockAddr ¶
func (l *AddrLocker) LockAddr(address common.Address)
lockaddr锁定帐户的mutex。这用于阻止另一个Tx获取 直到释放锁。互斥体阻止(相同的nonce) 在签署第一个事务期间被再次读取。
func (*AddrLocker) UnlockAddr ¶
func (l *AddrLocker) UnlockAddr(address common.Address)
unlockaddr解锁给定帐户的互斥体。
type Backend ¶
type Backend interface { //通用以太坊API Downloader() *downloader.Downloader ProtocolVersion() int SuggestPrice(ctx context.Context) (*big.Int, error) ChainDb() ethdb.Database EventMux() *event.TypeMux AccountManager() *accounts.Manager //块链API SetHead(number uint64) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Header, error) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Block, error) StateAndHeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*state.StateDB, *types.Header, error) GetBlock(ctx context.Context, blockHash common.Hash) (*types.Block, error) GetReceipts(ctx context.Context, blockHash common.Hash) (types.Receipts, error) GetTd(blockHash common.Hash) *big.Int GetEVM(ctx context.Context, msg core.Message, state *state.StateDB, header *types.Header, vmCfg vm.Config) (*vm.EVM, func() error, error) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription //TXPL API SendTx(ctx context.Context, signedTx *types.Transaction) error GetPoolTransactions() (types.Transactions, error) GetPoolTransaction(txHash common.Hash) *types.Transaction GetPoolNonce(ctx context.Context, addr common.Address) (uint64, error) Stats() (pending int, queued int) TxPoolContent() (map[common.Address]types.Transactions, map[common.Address]types.Transactions) SubscribeNewTxsEvent(chan<- core.NewTxsEvent) event.Subscription ChainConfig() *params.ChainConfig CurrentBlock() *types.Block }
后端接口提供公共API服务(由 全功能和轻功能客户机)。
type CallArgs ¶
type CallArgs struct { From common.Address `json:"from"` To *common.Address `json:"to"` Gas hexutil.Uint64 `json:"gas"` GasPrice hexutil.Big `json:"gasPrice"` Value hexutil.Big `json:"value"` Data hexutil.Bytes `json:"data"` }
callargs表示调用的参数。
type ExecutionResult ¶
type ExecutionResult struct { Gas uint64 `json:"gas"` Failed bool `json:"failed"` ReturnValue string `json:"returnValue"` StructLogs []StructLogRes `json:"structLogs"` }
ExecutionResult将EVM发出的所有结构化日志分组 在调试模式和事务中重播事务时 执行状态、使用的气体量和返回值
type PrivateAccountAPI ¶
type PrivateAccountAPI struct {
// contains filtered or unexported fields
}
privateaccountapi提供了访问此节点管理的帐户的API。 它提供创建(取消)锁定列表帐户的方法。有些方法可以接受 密码,因此默认情况下被视为私有密码。
func NewPrivateAccountAPI ¶
func NewPrivateAccountAPI(b Backend, nonceLock *AddrLocker) *PrivateAccountAPI
new privateaccountapi创建新的privateaccountapi。
func (*PrivateAccountAPI) DeriveAccount ¶
func (s *PrivateAccountAPI) DeriveAccount(url string, path string, pin *bool) (accounts.Account, error)
DeriveAccount请求HD钱包派生一个新帐户,可以选择固定 供以后再使用。
func (*PrivateAccountAPI) EcRecover ¶
func (s *PrivateAccountAPI) EcRecover(ctx context.Context, data, sig hexutil.Bytes) (common.Address, error)
ecrecover返回用于创建签名的帐户的地址。 注意,此功能与ETH标志和个人标志兼容。因此,它恢复了 地址: hash=keccak256(“\x19ethereum签名消息:\n”$消息长度$消息) addr=ecrecover(哈希,签名)
注意,签名必须符合secp256k1曲线r、s和v值,其中 由于遗留原因,V值必须是27或28。
https://github.com/ethereum/go-ethereum/wiki/management-apis个人\u-ecrecover
func (*PrivateAccountAPI) ImportRawKey ¶
importrawkey将给定的十六进制编码的ecdsa密钥存储到密钥目录中, 用密码短语加密。
func (*PrivateAccountAPI) ListAccounts ¶
func (s *PrivateAccountAPI) ListAccounts() []common.Address
list accounts将返回此节点管理的帐户的地址列表。
func (*PrivateAccountAPI) ListWallets ¶
func (s *PrivateAccountAPI) ListWallets() []rawWallet
list wallets将返回此节点管理的钱包列表。
func (*PrivateAccountAPI) LockAccount ¶
func (s *PrivateAccountAPI) LockAccount(addr common.Address) bool
LockAccount解锁后将锁定与给定地址关联的帐户。
func (*PrivateAccountAPI) NewAccount ¶
func (s *PrivateAccountAPI) NewAccount(password string) (common.Address, error)
new account将创建一个新帐户并返回新帐户的地址。
func (*PrivateAccountAPI) OpenWallet ¶
func (s *PrivateAccountAPI) OpenWallet(url string, passphrase *string) error
OpenWallet启动硬件钱包打开程序,建立USB 连接并尝试通过提供的密码短语进行身份验证。注: 该方法可能会返回需要第二次打开的额外挑战(例如 Trezor针矩阵挑战)。
func (*PrivateAccountAPI) SendTransaction ¶
func (s *PrivateAccountAPI) SendTransaction(ctx context.Context, args SendTxArgs, passwd string) (common.Hash, error)
sendTransaction将根据给定的参数和 尝试使用与args.to关联的密钥对其进行签名。如果给定的密码不是 能够解密失败的密钥。
func (*PrivateAccountAPI) Sign ¶
func (s *PrivateAccountAPI) Sign(ctx context.Context, data hexutil.Bytes, addr common.Address, passwd string) (hexutil.Bytes, error)
sign计算以太坊ECDSA签名: keccack256(“\x19ethereum签名消息:\n”+len(消息)+消息)
注:生成的签名符合secp256k1曲线r、s和v值, 由于遗产原因,V值将为27或28。
用于计算签名的密钥用给定的密码解密。
https://github.com/ethereum/go-ethereum/wiki/management-apis个人签名
func (*PrivateAccountAPI) SignAndSendTransaction ¶
func (s *PrivateAccountAPI) SignAndSendTransaction(ctx context.Context, args SendTxArgs, passwd string) (common.Hash, error)
SignandSendTransaction已重命名为SendTransaction。此方法已弃用 并将在未来被移除。它的主要目标是给客户时间更新。
func (*PrivateAccountAPI) SignTransaction ¶
func (s *PrivateAccountAPI) SignTransaction(ctx context.Context, args SendTxArgs, passwd string) (*SignTransactionResult, error)
signTransaction将根据给定的参数和 尝试使用与args.to关联的密钥对其进行签名。如果给定的密码不是 能够解密失败的密钥。事务以RLP形式返回,而不是广播 其他节点
func (*PrivateAccountAPI) UnlockAccount ¶
func (s *PrivateAccountAPI) UnlockAccount(addr common.Address, password string, duration *uint64) (bool, error)
解锁帐户将解锁与给定地址关联的帐户 持续时间秒的给定密码。如果持续时间为零,则使用 默认为300秒。它返回帐户是否已解锁的指示。
type PrivateDebugAPI ¶
type PrivateDebugAPI struct {
// contains filtered or unexported fields
}
privatedebugapi是在私有服务器上公开的以太坊API的集合。 调试终结点。
func NewPrivateDebugAPI ¶
func NewPrivateDebugAPI(b Backend) *PrivateDebugAPI
new private debug api为专用调试方法创建新的API定义 以太坊服务。
func (*PrivateDebugAPI) ChaindbCompact ¶
func (api *PrivateDebugAPI) ChaindbCompact() error
func (*PrivateDebugAPI) ChaindbProperty ¶
func (api *PrivateDebugAPI) ChaindbProperty(property string) (string, error)
chainedbproperty返回链数据库的leveldb属性。
func (*PrivateDebugAPI) SetHead ¶
func (api *PrivateDebugAPI) SetHead(number hexutil.Uint64)
sethead将区块链的头倒回到上一个块。
type PublicAccountAPI ¶
type PublicAccountAPI struct {
// contains filtered or unexported fields
}
PublicAccountAPI提供了一个API,用于访问此节点管理的帐户。 它只提供可以检索帐户的方法。
func NewPublicAccountAPI ¶
func NewPublicAccountAPI(am *accounts.Manager) *PublicAccountAPI
我创建了一个新的公共会计。
func (*PublicAccountAPI) Accounts ¶
func (s *PublicAccountAPI) Accounts() []common.Address
帐户返回此节点管理的帐户集合
type PublicBlockChainAPI ¶
type PublicBlockChainAPI struct {
// contains filtered or unexported fields
}
PublicBlockChainAPI提供访问以太坊区块链的API。 它只提供对任何人都可以自由使用的公共数据进行操作的方法。
func NewPublicBlockChainAPI ¶
func NewPublicBlockChainAPI(b Backend) *PublicBlockChainAPI
NewPublicBlockChainAPI创建新的以太坊区块链API。
func (*PublicBlockChainAPI) BlockNumber ¶
func (s *PublicBlockChainAPI) BlockNumber() hexutil.Uint64
BlockNumber返回链头的块号。
func (*PublicBlockChainAPI) Call ¶
func (s *PublicBlockChainAPI) Call(ctx context.Context, args CallArgs, blockNr rpc.BlockNumber) (hexutil.Bytes, error)
调用对给定块号的状态执行给定事务。 它不会在状态/区块链中进行更改,并且对执行和检索值很有用。
func (*PublicBlockChainAPI) EstimateGas ¶
func (s *PublicBlockChainAPI) EstimateGas(ctx context.Context, args CallArgs) (hexutil.Uint64, error)
EstimateGas返回执行 针对当前挂起块的给定事务。
func (*PublicBlockChainAPI) GetBalance ¶
func (s *PublicBlockChainAPI) GetBalance(ctx context.Context, address common.Address, blockNr rpc.BlockNumber) (*hexutil.Big, error)
GetBalance返回给定地址在 给定的块编号。rpc.latestBlockNumber和rpc.pendingBlockNumber元 也允许使用块编号。
func (*PublicBlockChainAPI) GetBlockByHash ¶
func (s *PublicBlockChainAPI) GetBlockByHash(ctx context.Context, blockHash common.Hash, fullTx bool) (map[string]interface{}, error)
GetBlockByHash返回请求的块。当fulltx为true时,块中的所有事务都将全部返回 详细信息,否则只返回事务哈希。
func (*PublicBlockChainAPI) GetBlockByNumber ¶
func (s *PublicBlockChainAPI) GetBlockByNumber(ctx context.Context, blockNr rpc.BlockNumber, fullTx bool) (map[string]interface{}, error)
GetBlockByNumber返回请求的块。当blocknr为-1时,链头返回。当fulltx为真时,所有 块中的事务将返回完整的详细信息,否则只返回事务哈希。
func (*PublicBlockChainAPI) GetCode ¶
func (s *PublicBlockChainAPI) GetCode(ctx context.Context, address common.Address, blockNr rpc.BlockNumber) (hexutil.Bytes, error)
getcode返回给定块号状态下存储在给定地址的代码。
func (*PublicBlockChainAPI) GetStorageAt ¶
func (s *PublicBlockChainAPI) GetStorageAt(ctx context.Context, address common.Address, key string, blockNr rpc.BlockNumber) (hexutil.Bytes, error)
GetStorageAt返回给定地址、键和 块号。The rpc.LatestBlockNumber and rpc.PendingBlockNumber meta block 也允许使用数字。
func (*PublicBlockChainAPI) GetUncleByBlockHashAndIndex ¶
func (s *PublicBlockChainAPI) GetUncleByBlockHashAndIndex(ctx context.Context, blockHash common.Hash, index hexutil.Uint) (map[string]interface{}, error)
GetUncleByBlockHashAndIndex返回给定块哈希和索引的叔叔块。当fulltx为真时 块中的所有事务都将返回完整的详细信息,否则只返回事务哈希。
func (*PublicBlockChainAPI) GetUncleByBlockNumberAndIndex ¶
func (s *PublicBlockChainAPI) GetUncleByBlockNumberAndIndex(ctx context.Context, blockNr rpc.BlockNumber, index hexutil.Uint) (map[string]interface{}, error)
GetUncleByBlockNumberAndIndex返回给定块哈希和索引的叔叔块。当fulltx为真时 块中的所有事务都将返回完整的详细信息,否则只返回事务哈希。
func (*PublicBlockChainAPI) GetUncleCountByBlockHash ¶
func (s *PublicBlockChainAPI) GetUncleCountByBlockHash(ctx context.Context, blockHash common.Hash) *hexutil.Uint
GetUncleCountByBlockHash返回给定块哈希的块中的叔叔数
func (*PublicBlockChainAPI) GetUncleCountByBlockNumber ¶
func (s *PublicBlockChainAPI) GetUncleCountByBlockNumber(ctx context.Context, blockNr rpc.BlockNumber) *hexutil.Uint
GetUncleCountByBlockNumber返回给定块号的块中的叔叔数
type PublicDebugAPI ¶
type PublicDebugAPI struct {
// contains filtered or unexported fields
}
publicDebugAPI是公开的以太坊API集合 调试终结点。
func NewPublicDebugAPI ¶
func NewPublicDebugAPI(b Backend) *PublicDebugAPI
NewPublicDebugGapi为公共调试方法创建新的API定义 以太坊服务。
func (*PublicDebugAPI) GetBlockRlp ¶
getblockrlp检索为单个块编码的rlp。
func (*PublicDebugAPI) PrintBlock ¶
printblock检索一个块并返回其漂亮的打印表单。
type PublicEthereumAPI ¶
type PublicEthereumAPI struct {
// contains filtered or unexported fields
}
PublicEthereumAPI提供一个API来访问与以太坊相关的信息。 它只提供对任何人都可以自由使用的公共数据进行操作的方法。
func NewPublicEthereumAPI ¶
func NewPublicEthereumAPI(b Backend) *PublicEthereumAPI
NewPublicEthereumAPI创建新的Ethereum协议API。
func (*PublicEthereumAPI) ProtocolVersion ¶
func (s *PublicEthereumAPI) ProtocolVersion() hexutil.Uint
ProtocolVersion返回此节点支持的当前以太坊协议版本
func (*PublicEthereumAPI) Syncing ¶
func (s *PublicEthereumAPI) Syncing() (interface{}, error)
如果节点当前未与网络同步,则同步将返回false。它可以是最新的,也可以没有。 但它收到了梨的最新数据块头。如果正在同步: -startingblock:此节点开始同步的块号 -currentblock:此节点当前导入的块号 -highest block:此节点从对等方接收到的最高块头的块号 -pulledstates:到目前为止处理的状态条目数 -knownstates:仍需要提取的已知状态条目数
type PublicNetAPI ¶
type PublicNetAPI struct {
// contains filtered or unexported fields
}
PublicNetAPI提供与网络相关的RPC方法
func NewPublicNetAPI ¶
func NewPublicNetAPI(net *p2p.Server, networkVersion uint64) *PublicNetAPI
NewPublicNetAPI创建新的NET API实例。
type PublicTransactionPoolAPI ¶
type PublicTransactionPoolAPI struct {
// contains filtered or unexported fields
}
PublicTransactionPoolapi公开RPC接口的方法
func NewPublicTransactionPoolAPI ¶
func NewPublicTransactionPoolAPI(b Backend, nonceLock *AddrLocker) *PublicTransactionPoolAPI
NewPublicTransactionPoolapi使用特定于事务池的方法创建新的RPC服务。
func (*PublicTransactionPoolAPI) GetBlockTransactionCountByHash ¶
func (s *PublicTransactionPoolAPI) GetBlockTransactionCountByHash(ctx context.Context, blockHash common.Hash) *hexutil.Uint
GetBlockTransactionCountByHash返回具有给定哈希的块中的事务数。
func (*PublicTransactionPoolAPI) GetBlockTransactionCountByNumber ¶
func (s *PublicTransactionPoolAPI) GetBlockTransactionCountByNumber(ctx context.Context, blockNr rpc.BlockNumber) *hexutil.Uint
GetBlockTransactionCountByNumber返回具有给定块号的块中的事务数。
func (*PublicTransactionPoolAPI) GetRawTransactionByBlockHashAndIndex ¶
func (s *PublicTransactionPoolAPI) GetRawTransactionByBlockHashAndIndex(ctx context.Context, blockHash common.Hash, index hexutil.Uint) hexutil.Bytes
GetRawTransactionByBlockHashAndIndex返回给定块哈希和索引的事务字节。
func (*PublicTransactionPoolAPI) GetRawTransactionByBlockNumberAndIndex ¶
func (s *PublicTransactionPoolAPI) GetRawTransactionByBlockNumberAndIndex(ctx context.Context, blockNr rpc.BlockNumber, index hexutil.Uint) hexutil.Bytes
GetRawTransactionByBlockNumberAndIndex返回给定块号和索引的事务字节。
func (*PublicTransactionPoolAPI) GetRawTransactionByHash ¶
func (s *PublicTransactionPoolAPI) GetRawTransactionByHash(ctx context.Context, hash common.Hash) (hexutil.Bytes, error)
GetRawTransactionByHash返回给定哈希的事务字节。
func (*PublicTransactionPoolAPI) GetTransactionByBlockHashAndIndex ¶
func (s *PublicTransactionPoolAPI) GetTransactionByBlockHashAndIndex(ctx context.Context, blockHash common.Hash, index hexutil.Uint) *RPCTransaction
GetTransactionByBlockHashAndIndex返回给定块哈希和索引的事务。
func (*PublicTransactionPoolAPI) GetTransactionByBlockNumberAndIndex ¶
func (s *PublicTransactionPoolAPI) GetTransactionByBlockNumberAndIndex(ctx context.Context, blockNr rpc.BlockNumber, index hexutil.Uint) *RPCTransaction
GetTransactionByBlockNumberAndIndex返回给定块号和索引的事务。
func (*PublicTransactionPoolAPI) GetTransactionByHash ¶
func (s *PublicTransactionPoolAPI) GetTransactionByHash(ctx context.Context, hash common.Hash) *RPCTransaction
GetTransactionByHash返回给定哈希的事务
func (*PublicTransactionPoolAPI) GetTransactionCount ¶
func (s *PublicTransactionPoolAPI) GetTransactionCount(ctx context.Context, address common.Address, blockNr rpc.BlockNumber) (*hexutil.Uint64, error)
GetTransactionCount返回给定地址为给定块号发送的事务数。
func (*PublicTransactionPoolAPI) GetTransactionReceipt ¶
func (s *PublicTransactionPoolAPI) GetTransactionReceipt(ctx context.Context, hash common.Hash) (map[string]interface{}, error)
GetTransactionReceipt返回给定事务哈希的事务回执。
func (*PublicTransactionPoolAPI) PendingTransactions ¶
func (s *PublicTransactionPoolAPI) PendingTransactions() ([]*RPCTransaction, error)
PendingtTransactions返回事务池中的事务 并且有一个发件人地址,该地址是此节点管理的帐户之一。
func (*PublicTransactionPoolAPI) Resend ¶
func (s *PublicTransactionPoolAPI) Resend(ctx context.Context, sendArgs SendTxArgs, gasPrice *hexutil.Big, gasLimit *hexutil.Uint64) (common.Hash, error)
重新发送接受现有交易和新的天然气价格和限额。它将移除 从池中指定的交易,并重新插入新的天然气价格和限额。
func (*PublicTransactionPoolAPI) SendRawTransaction ¶
func (s *PublicTransactionPoolAPI) SendRawTransaction(ctx context.Context, encodedTx hexutil.Bytes) (common.Hash, error)
sendrawtransaction将把签名的事务添加到事务池中。 发送方负责签署事务并使用正确的nonce。
func (*PublicTransactionPoolAPI) SendTransaction ¶
func (s *PublicTransactionPoolAPI) SendTransaction(ctx context.Context, args SendTxArgs) (common.Hash, error)
sendTransaction为给定参数创建一个事务,对其签名并将其提交给 事务池。
func (*PublicTransactionPoolAPI) Sign ¶
func (s *PublicTransactionPoolAPI) Sign(addr common.Address, data hexutil.Bytes) (hexutil.Bytes, error)
sign为以下项计算ECDSA签名: keccack256(“\x19ethereum签名消息:\n”+len(消息)+消息)。
注:生成的签名符合secp256k1曲线r、s和v值, 由于遗产原因,V值将为27或28。
必须解锁与addr关联的帐户。
func (*PublicTransactionPoolAPI) SignTransaction ¶
func (s *PublicTransactionPoolAPI) SignTransaction(ctx context.Context, args SendTxArgs) (*SignTransactionResult, error)
SignTransaction将使用From帐户对给定的事务进行签名。 节点需要具有与 从地址发出,需要解锁。
type PublicTxPoolAPI ¶
type PublicTxPoolAPI struct {
// contains filtered or unexported fields
}
publicTxPoolapi为事务池提供和API。它只对非机密数据进行操作。
func NewPublicTxPoolAPI ¶
func NewPublicTxPoolAPI(b Backend) *PublicTxPoolAPI
newpublicTxPoolapi创建一个新的TxPool服务,提供有关事务池的信息。
func (*PublicTxPoolAPI) Content ¶
func (s *PublicTxPoolAPI) Content() map[string]map[string]map[string]*RPCTransaction
Content返回事务池中包含的事务。
type RPCTransaction ¶
type RPCTransaction struct { BlockHash common.Hash `json:"blockHash"` BlockNumber *hexutil.Big `json:"blockNumber"` From common.Address `json:"from"` Gas hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Hash common.Hash `json:"hash"` Input hexutil.Bytes `json:"input"` Nonce hexutil.Uint64 `json:"nonce"` To *common.Address `json:"to"` TransactionIndex hexutil.Uint `json:"transactionIndex"` Value *hexutil.Big `json:"value"` V *hexutil.Big `json:"v"` R *hexutil.Big `json:"r"` S *hexutil.Big `json:"s"` }
rpc transaction表示将序列化为事务的rpc表示形式的事务
type SendTxArgs ¶
type SendTxArgs struct { From common.Address `json:"from"` To *common.Address `json:"to"` Gas *hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Value *hexutil.Big `json:"value"` Nonce *hexutil.Uint64 `json:"nonce"` //出于向后兼容性的原因,我们接受“数据”和“输入”。“输入”是 //更新的名称,应为客户首选。 Data *hexutil.Bytes `json:"data"` Input *hexutil.Bytes `json:"input"` Type types.TxType `json:"type"` }
sendtxargs表示向事务池中sumbit新事务的参数。
type SignTransactionResult ¶
type SignTransactionResult struct { Raw hexutil.Bytes `json:"raw"` Tx *types.Transaction `json:"tx"` }
SignTransactionResult表示RLP编码的签名事务。
type StructLogRes ¶
type StructLogRes struct { Pc uint64 `json:"pc"` Op string `json:"op"` Gas uint64 `json:"gas"` GasCost uint64 `json:"gasCost"` Depth int `json:"depth"` Error error `json:"error,omitempty"` Stack *[]string `json:"stack,omitempty"` Memory *[]string `json:"memory,omitempty"` Storage *map[string]string `json:"storage,omitempty"` }
structlogres存储EVM在重播时发出的结构化日志 调试模式下的事务处理
func FormatLogs ¶
func FormatLogs(logs []vm.StructLog) []StructLogRes
FORMATLOGS FORMATS EVM为JSON输出返回结构化日志