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
你要查询的区块高度。
可以是区块号,也可以是任何标签:earliest
、finalized
、safe
、latest
或pending
。
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
  ; 使用给定文件夹或文件中的 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
输出帮助信息。
示例
-
在 WETH 合约上调用
balanceOf(address)
:cast call 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 \ "balanceOf(address)(uint256)" 0x...
-
在 Tubby Cats NFT 合约上调用
tokenURI(uint256)(string)
:export CONTRACT=0xca7ca7bcc765f77339be2d648ba53ce9c8a262bd export TOKEN_ID=19938 cast call $CONTRACT "tokenURI(uint256)(string)" $TOKEN_ID
-
在 Uniswap v2 路由器合约上调用
getAmountsOut(uint,address[])
:cast call 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D \ "getAmountsOut(uint,address[])" 1 "[0x6b...0f,0xc0...c2]"