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
|
|
|
abigen
command
|
|
|
bootnode
command
Bootnode为以太坊发现协议运行一个引导节点。
|
Bootnode为以太坊发现协议运行一个引导节点。 |
|
ethkey
command
|
|
|
evm
command
EVM执行EVM代码段。
|
EVM执行EVM代码段。 |
|
internal/browser
包浏览器提供了与用户浏览器交互的实用程序。
|
包浏览器提供了与用户浏览器交互的实用程序。 |
|
rlpdump
command
|
|
|
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包含对网络包的扩展。 |
|
simulations/examples
command
|
|
|
signer
|
|
|
rules/deps
包deps包含控制台javascript依赖项go embedded。
|
包deps包含控制台javascript依赖项go embedded。 |
|
swarm
|
|
|
whisper
|
|