cast call

名称

cast-call - 在不发布交易的情况下对账户进行调用。

概要

cast call [选项] to sig [args...]

描述

在不发布交易的情况下对账户进行调用。

目标(to)可以是 ENS 名称或地址。

签名 (sig) 可以是:

  • 一个片段: someFunction(uint256,bytes32)
  • 一个选择器和编码的 calldata: 0xcdba2fd40000000000000000000000000000000000000000000000000000000000007a69
  • 只有函数名:在这种情况下,Cast 将尝试从 Etherscan 中获取函数签名。

选项

--trace
    打印交易的跟踪信息。

--debug
    使用交易的交互式调试器。需要 --trace

--labels <address:label>
    要应用于跟踪的标签,格式为 address:label。需要 --trace

--evm-version
    要使用的 EVM 版本。需要 --trace

--data data
允许直接设置数据字段而不提供 sig [args…]。
数据需要是十六进制格式。

查询选项

-B block
--block block
    你要查询的区块高度。

    可以是区块号,也可以是任何标签:earliestfinalizedsafelatestpending

WALLET OPTIONS - RAW:

-i
--interactive <NUM>
    打开一个交互式提示,输入你的私钥。接受一个要输入的密钥数量的值。      默认为 0.

--mnemonic-derivation-path <PATHS>
     钱包的衍生路径。可与 --mnemonic-path 和硬件钱包一起使用。

--mnemonic-indexes <INDEXES>
     使用来自给定助记符索引的私钥。与 --mnemonic-paths 一起使用。      默认为 0.

--mnemonic-passphrase <PASSPHRASE>
     使用 BIP39 口令的助记符。

--mnemonic <PATHS>
     在指定的路径上使用助记词组或助记词文件。

--private-key <RAW_PRIVATE_KEY>
     使用提供的私钥。

--private-keys <RAW_PRIVATE_KEYS>
     使用提供的私钥。

钱包选项 - Keystore

--keystore path
&nbsp ;   使用给定文件夹或文件中的 keystore。
    环境变量:ETH_KEYSTORE

--account account-name
    通过文件名在默认 keystores 文件夹(~/.foundry/keystores)中使用 keystore。
    环境变量:ETH_KEYSTORE_ACCOUNT

--interactive

--password password
    keystore 密码。与 --keystore 一起使用。
    环境变量:ETH_PASSWORD

Wallet Options - Hardware Wallet

-t
--trezor
    使用 Trezor 硬件钱包。

-l
--ledger
    使用 Ledger 硬件钱包。

Wallet Options - Remote

-f address
--from address
    用 RPC 上的指定账户签署交易。     环境变量:ETH_FROM

RPC Options

--rpc-url url
    RPC 端点。接受一个 URL 或[rpc_endpoints] 表中的现有别名,如 mainnet。     环境变量:ETH_RPC_URL

--flashbots
    使用 Flashbots 的 RPC URL (https://rpc.flashbots.net).

Etherscan Options

--chain chain_name
    Etherscan 的链.

--etherscan-api-key key
    Etherscan API 密钥,或 Etherscan 配置表 密钥。     环境变量:ETHERSCAN_API_KEY

Common 选项

-h
--help
    输出帮助信息。

示例

  1. 在 WETH 合约上调用balanceOf(address)

    cast call 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 \
      "balanceOf(address)(uint256)" 0x...
    
  2. 在 Tubby Cats NFT 合约上调用tokenURI(uint256)(string)

    export CONTRACT=0xca7ca7bcc765f77339be2d648ba53ce9c8a262bd
    export TOKEN_ID=19938
    cast call $CONTRACT "tokenURI(uint256)(string)" $TOKEN_ID
    
  3. 在 Uniswap v2 路由器合约上调用getAmountsOut(uint,address[])

    cast call 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D \
     "getAmountsOut(uint,address[])" 1 "[0x6b...0f,0xc0...c2]"
    

参见

cast, cast send, cast publish, cast receipt