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
&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

--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
    输出帮助信息。

例子

  1. 用你的 Ledger 给 Vitalik 发送一些 ether。

    cast send --ledger vitalik.eth --value 0.1ether
    
  2. 在一个合约上调用 deposit(address token, uint256 amount)

    cast send --ledger 0x... "deposit(address,uint256)" 0x... 1
    
  3. 调用一个预期输入 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)"
    
  4. 在交易对象的 input 字段中发送带有十六进制数据的交易:

    cast send 0x... 0x68656c6c6f20776f726c64
    
  5. 签署一个 EIP-7702 授权,并将其附加到来自不同发送者的交易中:

    cast send $(cast az) --private-key <sender-pk> --auth $(cast wallet sign-auth <address> --private-key <delegator-pk>)
    
  6. 发送一个 EIP-7702 交易,将发送者委托给 <address>

    cast send $(cast az) --auth <address>
    

请参阅

cast, cast call, cast publish, cast receipt, cast mktx, struct encoding