Documentation ¶
Overview ¶
包以太坊定义了与以太坊交互的接口。
Index ¶
- Variables
- type CallMsg
- type ChainReader
- type ChainStateReader
- type ChainSyncReader
- type ContractCaller
- type FilterQuery
- type GasEstimator
- type GasPricer
- type LogFilterer
- type PendingContractCaller
- type PendingStateEventer
- type PendingStateReader
- type Subscription
- type SyncProgress
- type TransactionReader
- type TransactionSender
Constants ¶
This section is empty.
Variables ¶
var NotFound = errors.New("not found")
如果请求的项不存在,则API方法将返回NotFound。
Functions ¶
This section is empty.
Types ¶
type CallMsg ¶
type CallMsg struct { From common.Address //“交易”的发送方 To *common.Address //目的地合同(合同创建为零) Gas uint64 //如果为0,则调用以接近无穷大的气体执行。 GasPrice *big.Int //气体交换率 Value *big.Int //随呼叫发送的wei数量 Data []byte //输入数据,通常是ABI编码的合同方法调用 }
callmsg包含合同调用的参数。
type ChainReader ¶
type ChainReader interface { BlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error) BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) TransactionCount(ctx context.Context, blockHash common.Hash) (uint, error) TransactionInBlock(ctx context.Context, blockHash common.Hash, index uint) (*types.Transaction, error) //此方法订阅有关 //规范链。 SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (Subscription, error) }
ChainReader提供对区块链的访问。此接口中的方法访问原始 来自规范链(按块号请求时)或任何 以前由节点下载和处理的区块链分支。街区 number参数可以为nil以选择最新的规范块。读取块头 应尽可能优先于全块。
如果请求的项不存在,则找不到返回的错误。
type ChainStateReader ¶
type ChainStateReader interface { BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error) StorageAt(ctx context.Context, account common.Address, key common.Hash, blockNumber *big.Int) ([]byte, error) CodeAt(ctx context.Context, account common.Address, blockNumber *big.Int) ([]byte, error) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) }
ChainStateReader包装对规范区块链的状态trie的访问。注意 接口的实现可能无法返回旧块的状态值。 在许多情况下,使用CallContract比读取原始合同存储更可取。
type ChainSyncReader ¶
type ChainSyncReader interface {
SyncProgress(ctx context.Context) (*SyncProgress, error)
}
ChainSyncReader将访问打包到节点的当前同步状态。如果没有 同步当前正在运行,它返回零。
type ContractCaller ¶
type ContractCaller interface {
CallContract(ctx context.Context, call CallMsg, blockNumber *big.Int) ([]byte, error)
}
ContractCaller提供合同调用,本质上是由 EVM,但没有挖掘到区块链中。ContractCall是用于 执行此类调用。对于围绕特定合同构建的应用程序, AbigEn工具提供了一种更好的、正确类型的执行调用的方法。
type FilterQuery ¶
type FilterQuery struct { BlockHash *common.Hash //used by eth_getLogs, return logs only from block with this hash FromBlock *big.Int //查询范围的开始,零表示Genesis块 ToBlock *big.Int //范围结束,零表示最新块 Addresses []common.Address //限制与特定合同创建的事件的匹配 //主题列表限制与特定事件主题的匹配。每个事件都有一个列表 //话题。Topics matches a prefix of that list. An empty element slice matches any //话题。非空元素表示与 //包含的主题。 // //实例: //或零匹配任何主题列表 //匹配第一个位置的主题A //,b匹配第一位置的任何主题,B匹配第二位置的任何主题 //A,B匹配第一位置的主题A,第二位置的主题B //A,B,C,D匹配第一位置的主题(A或B),第二位置的主题(C或D) Topics [][]common.Hash }
filterquery包含用于合同日志筛选的选项。
type GasEstimator ¶
GasEstimator包装EstimateGas,它试图估计执行 基于未决状态的特定事务。不能保证这是 真正的天然气限制要求,因为其他交易可能由矿工添加或删除,但 它应为设定合理违约提供依据。
type LogFilterer ¶
type LogFilterer interface { FilterLogs(ctx context.Context, q FilterQuery) ([]types.Log, error) SubscribeFilterLogs(ctx context.Context, q FilterQuery, ch chan<- types.Log) (Subscription, error) }
LogFilter提供使用一次性查询或连续查询访问合同日志事件的权限 事件订阅。
通过流式查询订阅接收的日志可能已删除设置为true, 指示由于链重组而恢复日志。
type PendingContractCaller ¶
type PendingContractCaller interface {
PendingCallContract(ctx context.Context, call CallMsg) ([]byte, error)
}
PendingContractCaller可用于对挂起状态执行调用。
type PendingStateEventer ¶
type PendingStateEventer interface {
SubscribePendingTransactions(ctx context.Context, ch chan<- *types.Transaction) (Subscription, error)
}
PendingStateEventer提供对 悬而未决的状态。
type PendingStateReader ¶
type PendingStateReader interface { PendingBalanceAt(ctx context.Context, account common.Address) (*big.Int, error) PendingStorageAt(ctx context.Context, account common.Address, key common.Hash) ([]byte, error) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error) PendingTransactionCount(ctx context.Context) (uint, error) }
一个PungStuteReDead提供对挂起状态的访问,这是所有结果的结果。 尚未包含在区块链中的已知可执行交易。它是 通常用于显示“未确认”操作的结果(例如钱包价值 传输)由用户启动。PendingNoncoat操作是一种很好的方法 检索特定帐户的下一个可用事务。
type Subscription ¶
type Subscription interface { //取消订阅取消向数据通道发送事件 //关闭错误通道。 Unsubscribe() //err返回订阅错误通道。错误通道接收 //如果订阅存在问题(例如网络连接)的值 //传递活动已关闭)。将只发送一个值。 //通过退订来关闭错误通道。 Err() <-chan error }
订阅表示事件订阅,其中 通过数据通道传送。
type SyncProgress ¶
type SyncProgress struct { StartingBlock uint64 //同步开始的块号 CurrentBlock uint64 //同步所在的当前块号 HighestBlock uint64 //链中最高的声称块数 PulledStates uint64 //已下载的状态trie条目数 KnownStates uint64 //已知的State Trie条目的总数 }
当节点与 以太坊网络。
type TransactionReader ¶
type TransactionReader interface { //TransactionByHash除了检查 //块链。ISPUPDATE返回值指示事务是否已被关闭。 //开采了。请注意,事务可能不是规范链的一部分,即使 //它没有挂起。 TransactionByHash(ctx context.Context, txHash common.Hash) (tx *types.Transaction, isPending bool, err error) //TransactionReceipt返回挖掘的事务的收据。请注意 //事务可能不包括在当前规范链中,即使收据 //存在。 TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) }
TransactionReader提供对过去事务及其收据的访问。 实施可能会对以下交易和收据施加任意限制: 可以检索。历史交易可能不可用。
尽可能避免依赖此接口。合同日志(通过日志过滤器 接口)更可靠,在有链条的情况下通常更安全。 重组。
如果请求的项不存在,则找不到返回的错误。
type TransactionSender ¶
type TransactionSender interface {
SendTransaction(ctx context.Context, tx *types.Transaction) error
}
TransactionSender包装事务发送。sendTransaction方法注入 已将事务签名到挂起的事务池中以供执行。如果交易 是合同创建的,TransactionReceipt方法可用于检索 挖掘交易记录后的合同地址。
必须对该事务进行签名并包含一个有效的nonce。消费者 API可以使用包帐户来维护本地私钥,并且需要检索 下一个可用的nonce使用pendingnonceat。
Directories ¶
Path | Synopsis |
---|---|
accounts
|
|
abi
包ABI实现以太坊ABI(应用程序二进制 接口。
|
包ABI实现以太坊ABI(应用程序二进制 接口。 |
keystore
package keystore实现对secp256k1私钥的加密存储。
|
package keystore实现对secp256k1私钥的加密存储。 |
usbwallet/internal/trezor
包trezor在go中包含有线协议包装器。
|
包trezor在go中包含有线协议包装器。 |
cmd
|
|
bootnode
Bootnode为以太坊发现协议运行一个引导节点。
|
Bootnode为以太坊发现协议运行一个引导节点。 |
evm
EVM执行EVM代码段。
|
EVM执行EVM代码段。 |
internal/browser
包浏览器提供了与用户浏览器交互的实用程序。
|
包浏览器提供了与用户浏览器交互的实用程序。 |
common
|
|
bitutil
包bitutil实现快速按位操作。
|
包bitutil实现快速按位操作。 |
math
包数学提供整数数学实用程序。
|
包数学提供整数数学实用程序。 |
mclock
包mclock是单调时钟源的包装器
|
包mclock是单调时钟源的包装器 |
套餐共识实现不同的以太坊共识引擎。
|
套餐共识实现不同的以太坊共识引擎。 |
clique
包裹集团实施权威证明共识引擎。
|
包裹集团实施权威证明共识引擎。 |
contracts
|
|
core
|
|
asm
为处理EVM装配说明(例如,拆卸它们)提供支持。
|
为处理EVM装配说明(例如,拆卸它们)提供支持。 |
bloombits
包BloomBits对成批数据执行Bloom过滤。
|
包BloomBits对成批数据执行Bloom过滤。 |
rawdb
包RAWDB包含低级别数据库访问器的集合。
|
包RAWDB包含低级别数据库访问器的集合。 |
state
包状态在以太坊状态trie上提供一个缓存层。
|
包状态在以太坊状态trie上提供一个缓存层。 |
types
包类型包含与以太坊共识相关的数据类型。
|
包类型包含与以太坊共识相关的数据类型。 |
vm/runtime
包运行时提供执行EVM代码的基本执行模型。
|
包运行时提供执行EVM代码的基本执行模型。 |
bn256
包bn256在256位的barreto-naehrig曲线上实现了最佳的ate对。
|
包bn256在256位的barreto-naehrig曲线上实现了最佳的ate对。 |
bn256/cloudflare
包BN256以128位安全性实现特定的双线性组 水平。
|
包BN256以128位安全性实现特定的双线性组 水平。 |
bn256/google
包BN256实现特定的双线性组。
|
包BN256实现特定的双线性组。 |
secp256k1
包secp256k1包装比特币secp256k1 c库。
|
包secp256k1包装比特币secp256k1 c库。 |
sha3
包sha3实现sha-3固定输出长度散列函数和 由FIPS-202定义的Shake变量输出长度哈希函数。
|
包sha3实现sha-3固定输出长度散列函数和 由FIPS-202定义的Shake变量输出长度哈希函数。 |
包ETH实现以太坊协议。
|
包ETH实现以太坊协议。 |
downloader
软件包下载器包含手动全链同步。
|
软件包下载器包含手动全链同步。 |
filters
包过滤器为块实现以太坊过滤系统, 事务和日志事件。
|
包过滤器为块实现以太坊过滤系统, 事务和日志事件。 |
tracers
包跟踪程序是JavaScript事务跟踪程序的集合。
|
包跟踪程序是JavaScript事务跟踪程序的集合。 |
tracers/internal/tracers
包跟踪程序包含实际的javascript跟踪程序资产。
|
包跟踪程序包含实际的javascript跟踪程序资产。 |
包ethclient为以太坊RPC API提供客户端。
|
包ethclient为以太坊RPC API提供客户端。 |
event
|
|
filter
包筛选器实现事件筛选器。
|
包筛选器实现事件筛选器。 |
internal
|
|
ethapi
包ethapi实现一般的以太坊API功能。
|
包ethapi实现一般的以太坊API功能。 |
guide
包指南是一个小型测试套件,用于确保开发指南中的代码段正常工作。
|
包指南是一个小型测试套件,用于确保开发指南中的代码段正常工作。 |
jsre
包JSRE为JavaScript提供执行环境。
|
包JSRE为JavaScript提供执行环境。 |
jsre/deps
包deps包含控制台javascript依赖项go embedded。
|
包deps包含控制台javascript依赖项go embedded。 |
web3ext
包web3ext包含geth特定的web3.js扩展。
|
包web3ext包含geth特定的web3.js扩展。 |
包les实现轻以太坊子协议。
|
包les实现轻以太坊子协议。 |
flowcontrol
包流控制实现客户端流控制机制 包流控制实现客户端流控制机制
|
包流控制实现客户端流控制机制 包流控制实现客户端流控制机制 |
package light实现可按需检索的状态和链对象 对于以太坊Light客户端。
|
package light实现可按需检索的状态和链对象 对于以太坊Light客户端。 |
log
|
|
metrics
|
|
exp
将Go度量挂钩到expvar中 在任何/debug/metrics请求上,将注册表中的所有var加载到expvar,并执行常规expvar处理程序
|
将Go度量挂钩到expvar中 在任何/debug/metrics请求上,将注册表中的所有var加载到expvar,并执行常规expvar处理程序 |
p2p
|
|
enr
包ENR实现EIP-778中定义的以太坊节点记录。
|
包ENR实现EIP-778中定义的以太坊节点记录。 |
netutil
包netutil包含对网络包的扩展。
|
包netutil包含对网络包的扩展。 |
signer
|
|
rules/deps
包deps包含控制台javascript依赖项go embedded。
|
包deps包含控制台javascript依赖项go embedded。 |
swarm
|
|
whisper
|
|