文章
问答
讲堂
百科图谱
线下集训
更多
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
讲堂
线下集训
专栏
活动
工作
文档
集市
搜索
登录/注册
个人账户调用智能合约中的那些写入类型的函数怎么才能拿到函数的返回值呢?
只知道如果是调用那种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
收藏,
3855
浏览
996633
提出于 2022-05-18 13:36
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: