跳转到主要内容

参数

transaction
string
必填
要模拟的交易,以 base-64 编码的字符串表示
config
object
包含以下内容的配置对象:
sigVerify
boolean
如果为 true,验证交易签名
commitment
string
Commitment 级别(processed、confirmed、finalized)
encoding
string
交易的编码格式(base58、base64、json)
replaceRecentBlockhash
boolean
如果为 true,将交易的近期 blockhash 替换为最新的 blockhash
accounts
object
账户配置对象,包含:
encoding
string
账户数据的编码格式(base58、base64、json)
addresses
array
要返回数据的账户地址数组
minContextSlot
number
请求可被评估的最小 slot

响应

result
object
包含以下内容的对象:
err
string | null
如果交易模拟失败则为错误信息,成功则为 null
logs
array
交易指令在执行期间输出的日志消息数组
accounts
array
带有数据的账户数组(如果已请求)
unitsConsumed
number
交易消耗的计算单元数量
returnData
object
模拟的程序返回数据

代码示例

基本请求

使用 web3.js

注意事项

  1. 模拟发送交易但不实际发送
  2. 响应包含执行日志和错误信息
  3. 模拟在当前状态上执行
  4. 不会持久化任何状态变化
  5. 对于测试和调试交易非常有用

最佳实践

  1. 在发送真实交易之前使用模拟
  2. 检查计算单元消耗
  3. 分析程序日志中的错误
  4. 模拟后验证账户状态
  5. 适当处理模拟错误

常见错误

用例

  1. 交易分析
  2. 交易验证
  3. 交易优化