cast send
名称
cast-send - 签署并发布一项交易。
简介
cast send
[options] to [sig] [args...]
描述
签署并发布一项交易。
目的地(to)可以是 ENS 名称或地址。
签名 (sig) 可以是:
- 一个片段:
someFunction(uint256,bytes32)
- 一个选择器和编码的 calldata:
0xcdba2fd40000000000000000000000000000000000000000000000000000000000007a69
- 只有函数名:在这种情况下,Cast 将尝试从 Etherscan 中获取函数签名。
可选
Transaction Options
--gas-limit
gas_limit
交易的 Gas 限制。
--gas-price
price
交易的 Gas 价格,或 EIP1559 交易的每个 Gas 的最大费用。
--priority-gas-price
price
EIP1559 交易的每个 Gas 的最高优先费。
--value
value
交易中要发送的以太币。
可以指定为整数(wei),也可以指定为带单位的字符串,例如:
- 1ether
- 10gwei
- 0.01ether
--nonce
nonce
交易的Nonce。
--legacy
发送一个传统交易而不是 EIP1559 交易。
对于没有 EIP1559 的普通网络,这将自动启用。
--resend
重复使用发送账户的最新 nonce。
--create
code [sig args...]
通过指定原始字节码来部署合约,以代替指定 to 地址。
Receipt 选项
--async
--cast-async
如果交易收据还不存在,就不要等它了。
环境: CAST_ASYNC
-c
confirmations
--confirmations
confirmations
在退出前等待一定数量的交易确认。默认值:1
。
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
--unlocked
通过 eth_sendTransaction
使用 --from
参数或者 $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
Display Options
-j
--json
将部署信息打印成 JSON 格式。
Common 选项
-h
--help
输出帮助信息。
例子
-
用你的 Ledger 给 Vitalik 发送一些 ether。
cast send --ledger vitalik.eth --value 0.1ether
-
在一个合约上调用
deposit(address token, uint256 amount)
:cast send --ledger 0x... "deposit(address,uint256)" 0x... 1
-
调用一个预期输入
struct
的函数:contract Test { struct MyStruct { address addr; uint256 amount; } function myfunction(MyStruct memory t) public pure {} }
结构体被编码为元组 (请参阅 struct encoding)
cast send 0x... "myfunction((address,uint256))" "(0x...,1)"
-
在交易对象的
input
字段中发送带有十六进制数据的交易:cast send 0x... 0x68656c6c6f20776f726c64
-
签署一个 EIP-7702 授权,并将其附加到来自不同发送者的交易中:
cast send $(cast az) --private-key <sender-pk> --auth $(cast wallet sign-auth <address> --private-key <delegator-pk>)
-
发送一个 EIP-7702 交易,将发送者委托给
<address>
:cast send $(cast az) --auth <address>
请参阅
cast, cast call, cast publish, cast receipt, cast mktx, struct encoding