文章
问答
讲堂
专栏
集训营
更多
提问
发表文章
活动
文档
招聘
集市
发现
Toggle navigation
文章
问答
讲堂
集训营
🔥
专栏
活动
招聘
文档
集市
搜索
登录/注册
个人账户调用智能合约中的那些写入类型的函数怎么才能拿到函数的返回值呢?
智能合约
solidity 编程
web3.py
ethers.js
只知道如果是调用那种read类型的,不管是用web3还是ethers那个库,直接打印函数返回结果就行了,但是如果是写入操作的话,返回的是一个交易信息,那怎么才能获取到函数返回值呢?
只知道如果是调用那种read类型的,不管是用web3还是ethers那个库,直接打印函数返回结果就行了,但是如果是写入操作的话,返回的是一个交易信息,那怎么才能获取到函数返回值呢?
0 条评论
分类:
以太坊
请先
登录
后评论
默认排序
时间排序
2 个回答
不爱你ZC
2022-05-18 15:31
我有用过的方法: 调用eth_getTransactionReceipt 拿到交易详情 再调用eth_call把交易信息提交到节点上 就会拿到函数返回值 golang的话可以试下下面的代码 ``` func GetMessage(hash common.Hash) (string, error) { tx, _, err := eth.Client.TransactionByHash(context.Background(), hash) if err != nil { return "", err } from, err := types.Sender(types.NewEIP155Signer(tx.ChainId()), tx) if err != nil { return "", err } msg := ethereum.CallMsg{ From: from, To: tx.To(), Gas: tx.Gas(), GasPrice: tx.GasPrice(), Value: tx.Value(), Data: tx.Data(), } res, err := eth.Client.CallContract(context.Background(), msg, nil) if err != nil { return "", err } return string(res), nil } ```
请先
登录
后评论
李宗荣
2022-05-19 17:22
emit event?
请先
登录
后评论
您需要登录后才可以回答问题,
登录
关注
2
关注
收藏
0
收藏,
2957
浏览
996633
提出于 2022-05-18 13:36
相似问题
在 solidity 中,custom error 不会被继承?那如何测试?
1 回答
请问智能合约是究竟怎么在以太坊上运行的?
2 回答
ethers.js调用合约的时候,如果最终是失败的,ethers会提前报错,直接终止上链了,怎么样强制执行
2 回答
使用foundry对已部署的合约进行验证,出现`Unable to verify. Compiled contract deployment bytecode does NOT match the transaction deployment bytecode.`
1 回答
关于交易字段内容的问题
1 回答
web3.py中如何调用 需要指定地址才可以调用的方法?
2 回答
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: