【好用的工具记录-Foundry 智能合约开发工具包】

发布时间:2026/11/6 1:28:46

【好用的工具记录-Foundry 智能合约开发工具包】 Foundry 智能合约开发工具包Cast 常用命令速查表Cast 是 Foundry 工具套件中的命令行工具用于与以太坊链交互Cast call 查询合约的只读函数Cast send 与合约交互环境配置# 设置常用环境变量exportRPChttps://api.zan.top/node/v1/pharos/atlantic/xxxexportPKyour_private_key# 如需代理exporthttps_proxyhttp://127.0.0.1:7890基础查询# 查询最新区块号cast block-number --rpc-url$RPC# 查询最新区块详情cast block latest --rpc-url$RPC# 查询指定区块cast block12345--rpc-url$RPC# 查询当前 gas 价格cast gas-price --rpc-url$RPC# 查询 chain idcast chain-id --rpc-url$RPC# 获取合约 codecast code 0x合约地址 --rpc-url$RPC余额查询# 查询 ETH 余额单位: weicast balance 0x地址 --rpc-url$RPC# 查询 ETH 余额可读格式单位: ethercast balance 0x地址 --rpc-url$RPC--ether# 查询 ERC20 代币余额cast call 0x代币合约balanceOf(address)(uint256)0x用户地址 --rpc-url$RPC合约方法调用只读 view/pure# totalSupply - 总发行量cast call 0x合约地址totalSupply()(uint256)--rpc-url$RPC# totalAssets - 总资产Vault 类合约常用cast call 0x合约地址totalAssets()(uint256)--rpc-url$RPC# 代币基本信息cast call 0x合约地址name()(string)--rpc-url$RPCcast call 0x合约地址symbol()(string)--rpc-url$RPCcast call 0x合约地址decimals()(uint8)--rpc-url$RPC# 查询授权额度 allowancecast call 0x代币合约allowance(address,address)(uint256)0xowner 0xspender --rpc-url$RPC# 查询存储槽cast storage 0x合约地址 槽位 --rpc-url$RPC# 其他自定义方法cast call 0x合约地址getUserInfo(address)(uint256,uint256)0x用户地址 --rpc-url$RPC部署合约forge create --private-key${OWNER_PRIVATE_KEY}--broadcastsrc/LuLuCoin.sol:LuLuCoin --constructor-args${OWNER_ADDRESS}// 顺序是固定的私钥路径构造函数 // 其他记录 forge init forge compile forgetestforge to-dec 0x0000000000000000000000000000000000000000000000056bc75e2d63100000交易相关查询交易# 查询交易详情cast txtx_hash--rpc-url$RPC# 查询交易回执包含 logs、status、gasUsed 等cast receipttx_hash--rpc-url$RPC# 查询交易回执并显示完整信息cast receipttx_hash--rpc-url$RPC-vvv发送交易# 调用合约方法需要 gascast send 0x合约地址deposit(uint256)1000000000000000000\--private-key$PK\--rpc-url$RPC# 调用合约方法带 ETHcast send 0x合约地址deposit()\--value1ether\--private-key$PK\--rpc-url$RPC# 直接发送 ETHcast send 0x接收地址--value1ether --private-key$PK--rpc-url$RPC# 指定 gas limit 和 gas pricecast send 0x合约地址function()\--private-key$PK\--rpc-url$RPC\--gas-limit200000\--gas-price 20gwei# 使用 nonce 强制替换交易cast send 0x合约地址function()\--private-key$PK\--rpc-url$RPC\--nonce123模拟与估算# 模拟调用不实际发送交易检查是否会 revertcast call 0x合约地址withdraw(uint256)1000000000000000000\--from0x调用者地址\--rpc-url$RPC# 估算 gascast estimate 0x合约地址deposit(uint256)1000000000000000000\--from0x调用者地址\--rpc-url$RPC数据编码/解码# 编码 calldatacast calldatatransfer(address,uint256)0x接收地址1000000000000000000# 编码带签名的 calldatacast calldatapermit(address,address,uint256,uint256,uint8,bytes32,bytes32)\0xowner 0xspender10000000000000000001234567890270xr 0xs# 解码 calldatacast --calldata-decodetransfer(address,uint256)input_data# 解码事件日志cast decode-event--datalog_data--topicstopic0topic1# 解码函数输出cast --abi-decodebalanceOf(address)(uint256)return_data单位转换# hex 转 decimalcast --to-dec 0x1234# decimal 转 hexcast --to-hex4660# ether 转 weicast --to-wei 1ether# 输出: 1000000000000000000# wei 转 ethercast --from-wei1000000000000000000# 输出: 1 ether# gwei 转换cast --to-unit1000000000gwei地址与签名# 私钥转地址cast wallet address --private-key$PK# 签名消息cast wallet signhello world--private-key$PK# 验证签名cast wallet verify--address0x地址--messagehello world--signaturesig# 计算合约创建地址cast compute-address--address0x部署者地址--nonce0实用技巧# 批量操作示例foraddrin0xaaa... 0xbbb... 0xccc...;doecho$addr:$(cast balance $addr --rpc-url $RPC--ether)ETHdone# 监控pending交易cast receipttx_hash--rpc-url$RPC--wait# 获取事件日志通过区块范围cast logs--address0x合约地址 --from-block1000--to-block2000--rpc-url$RPC# 读取单个存储槽cast storage 0x合约地址0--rpc-url$RPC# 读取映射类型存储槽 (hash(key, slot))cast storage 0x合约地址$(cast index address 0x用户地址0)--rpc-url$RPC快速查表需求命令区块号cast block-number --rpc-url $RPCETH 余额cast balance 0x地址 --rpc-url $RPCETH 余额(ether)cast balance 0x地址 --rpc-url $RPC --etherERC20 余额cast call 0x代币 balanceOf(address)(uint256) 0x用户 --rpc-url $RPCtotalSupplycast call 0x合约 totalSupply()(uint256) --rpc-url $RPCtotalAssetscast call 0x合约 totalAssets()(uint256) --rpc-url $RPC代币名称cast call 0x合约 name()(string) --rpc-url $RPC代币符号cast call 0x合约 symbol()(string) --rpc-url $RPC代币精度cast call 0x合约 decimals()(uint8) --rpc-url $RPC授权额度cast call 0x代币 allowance(address,address)(uint256) 0xowner 0xspender --rpc-url $RPC交易详情cast tx hash --rpc-url $RPC交易回执cast receipt hash --rpc-url $RPC发送交易cast send 0x地址 func() --private-key $PK --rpc-url $RPC发送 ETHcast send 0x地址 --value 1ether --private-key $PK --rpc-url $RPCgas 价格cast gas-price --rpc-url $RPCchain idcast chain-id --rpc-url $RPC合约代码cast code 0x合约 --rpc-url $RPC编码 calldatacast calldata func(type) args...解码 calldatacast --calldata-decode func(type) data常见问题1. 返回值是 wei如何转成可读格式# 方法1: 使用 --ether 标志部分命令支持cast balance 0x地址 --rpc-url$RPC--ether# 方法2: 使用 --from-weicast --from-wei$(cast balance 0x地址 --rpc-url $RPC)2. 如何处理大数字# 使用 cast --to-hex 转换大数字cast call 0x合约balanceOf(address)(uint256)0x用户 --rpc-url$RPC|cast --to-dec3. 如何获取 ERC20 转账事件的 logs# Transfer(address from, address to, uint256 value) 事件签名cast logs--address0x代币合约\--topic00xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\--from-block1000\--rpc-url$RPC
延伸阅读

更多相关文章

2026/11/6 1:23:45

前端入职第一天环境配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 1:23:45

Weylus:3 步把平板变成电脑绘图板,压感多触全都有

Weylus:3 步把平板变成电脑绘图板,压感多触全都有 【免费下载链接】Weylus Use your tablet as graphic tablet/touch screen on your computer. 项目地址: https://gitcode.com/gh_mirrors/we/Weylus 家里有闲置的平板,却只是吃灰&am…

2026/11/6 1:28:46

【WebSocket】WebSocket 与消息队列(如 Kafka、RocketMQ)如何结合,构建可靠的异步实时通信系统?

WebSocket 与消息队列融合架构:金融行情推送系统的高可靠实时通信设计 用户问题原文:WebSocket 与消息队列(如 Kafka、RocketMQ)如何结合,构建可靠的异步实时通信系统? 在构建金融行情推送系统时,我们曾因架构设计不当导致严重生产事故:当市场开盘瞬间百万级用户同时连…

2026/11/6 1:28:46

996引擎 - 跨服:用 WIN10 mklink 创建 Mir200-KF

996引擎 - 跨服:用 WIN10 mklink 创建 Mir200-KF v1 v2 v3 v3 - PowerShell 版 参考资料 v1 @echo off setlocal enabledelayedexpansion:: 设置源目录和目标目录 set "SOURCE=Mir200" set "DEST=Mir200-KF"echo [1/3] 正在创建目标根目录: %DEST% if no…

2026/11/6 1:28:46

【芳芯科技】气体检测报警系统设备

实物效果图:实现功能:1.需要4个传感器,甲醛,温湿度,PM2.5,co2传感器。 2.采用stm32作为控制系统核心。 3.显示屏显示数据。 4.通过wifi传输数据到手机。 5.需要通过AT24CO2芯片存储数据。原理图&#xff1a…

2026/11/6 1:28:46

【好用的工具记录-Foundry 智能合约开发工具包】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 1:03:39

MCU晶振电路设计全解析:从负载电容计算到PCB布局调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑