域名类合约交互,函数commit方法,已知一串bytes32数据作参数,如何把该参数转换成TEXT?

一、在Space ID项目的域名注册的合约交互中:

1、先进行要注册的域名等信息的commitHash转化; 2、把commitHash带入commit中验证; 3、再把验证结果带入另一个域名注册函数调用;

commit方法交互例如:https://bscscan.com/tx/0xf64b03ae4d862be563b9265813ba42b53003102e39fb6949372f09c960d736fd

二、问题一

commit方法交互中,该方法是填入一个commitHash参数来调用它,这个commitHash参数应该是在项目方网站,根据注册域名的信息等计算转化得到的

我的问题就是已知commitHash参数(bytes32),例如:

0xb95641d94bb9fa07663a95472a2cfa85a5c2a53eaa30c0d02266977ce85c64ec

问题一怎么把它转换成text呢?我想通过这个知道网站把哪些text信息转换成了该commitHash参数(bytes32)。

三、尝试:

1、我使用web3.py中的web3.toTextweb3.toByteweb3.toHex等函数调用尝试转换0xb95641d94bb9fa07663a95472a2cfa85a5c2a53eaa30c0d02266977ce85c64ec为TEXT,均失败,不是乱码,就是提示错误如下:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 0: invalid continuation byte

2、我把一个text短语fund,用web3.keccak转换得到一串0x的HEX,但是该HEX用web3.toText转换也无法转成回fund,也是提示invalid continuation byte错误。问题二:如何解决'utf-8' codec can't decode byte 0xf1 in position 0: invalid continuation byte

请先 登录 后评论

最佳答案 2023-02-10 21:26

你这个搞法就是错误的,Hash通过简单的toText,toByte是不能转成网站的text信息的。 你这个需要监控链上交易,获取makeCommitmentWithConfig函数调用参数,再自己调用这个函数,生成hash和你上面的hash进行比对,才能确定函数调用参数是不是能生成你这个hash。

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,1582 浏览
  • bfund 提出于 2023-02-10 09:58