使用foundry:查看当前gas价格,预估gas后发送交易上链

查看当前gas打包价格,预估gas后发送交易上链

cast send

与合约交互的方式有:1. 开源的代码直接调用ehterscan。2. 用开发工具编程进行交互。3. 去官方提供的接口进行调用

在我们直接进行发送`eth`或者调用`智能合约`简单的方法发送交易的时候,对于开发人员来说有时候并不想编写执行文件,或者将自己的私钥导入钱包再到对应的网站进行调用。这两种模式都稍显复杂,对于一次简单的交互来说,直接用cast命令既可以很快发起调用,也可以确认自己调用的方法和合约地址都没有问题。个人对于简单的交互更加偏向于cast send。

链上交互在拥堵的时候费用会非常贵,所以在发送交易的时候预估一下gas和查看当前区块的gas费用是很重要的,防止自己的交易迟迟不被提交,或是被消耗掉大量的手续费

查看当前的gas价格

调用cast gas-price方法,后面加上你查询的网络的rpc就可以了。这样可以看到当前大家的愿意支付的gas单价

image-20240316110922566

用cast --to-unit转换后发现,当前的gas费用为29Gwei左右

预估执行本次方法大概要消耗多少gas

我们用cast estimate方法预估交易费用。

参数为:

  1. 你要交互的合约地址。
  2. 你要执行的方法以及你传入的参数(uint256既可以传入16进制也可以传入10进制数字)。
  3. 调用的rpc节点

image-20240316112036161

算出来是46422 Gwei。 价格乘上总消耗,就是我们这次交易花费的费用。大概是1364993Gwei。也就是0.001364993000000000eth。写文章的时候,ETH价格是3724 。算出这笔交易执行,大概消耗 5.08 。算出这笔交易执行,大概消耗5.08 。算出这笔交易执行,大概消耗5.08。但是如果想要交易快速打包上链,我们得查看最近区块打包的basefee,用cast base-fee可以查看

发起交易

cast send 的主要参数有:

  1. 调用目标地址,如果是合约的话加上调用方法和参数
  2. RPC端点(rpc)
  3. 常用可选项:–gas-limit,:使用的gas数量限制; --gas-price:gas的单价; --value:要发送的eth数量

下面演示了三种常用的发送方式

首先我发起发送eth到其他地址:

image-20240316122344847

发起一笔合约交互,但是没有指定gasPirce

image-20240316123837789

这是一笔设置了gas单价和gas最高使用数的交易

image-20240316125224614

单位转换工具:

十六进制转换为十进制 --to-base number type(10)

十六进制转化为ascii码 --to-ascii number

将数字转换为wei或者ether cast --to-unit value type

获取函数选择器 cast sig “someFunc(address,uint256)”

解析函数选择器 cast 4byte 0x8cc5ce99

编码带参数的函数 cast calldata “someFunc(address,uint256)” 0x… 1

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值