ios - 如何使用web3的个人扩展签署个人消息?
问题描述
我正在用物质公司的 web3swift 制作一个 Dapp。我遇到的一种方法是 web3.Personal 扩展之一:
public func signPersonalMessage(message: Data, from:
web3swift.EthereumAddress, password: String = default) ->
Result.Result<Data, web3swift.Web3Error>
我正在尝试这样:
let web3 = Web3.InfuraMainnetWeb3()
let res = web3.personal.signPersonalMessage(message: msgHash!,
from: self.keystore.getAddress()!, password: password)
但我得到的总是一个 Web3ConnectionError。我猜一定没有正确的方式。那么,获取 web3.Personal 的可用实例并调用 signPersonalMessage 方法的任何提示?谢谢 :)
顺便说一句,Web3.Utils.signPersonalMessage 方法不是我要找的。
解决方案
请检查您是否有一个附加到 web3 对象的密钥库。如果没有本地密钥库,则将消息发送到远程节点进行签名,但 Infura 节点不包含任何私钥。
如果问题仍然存在,请 在 gitHub repo 上打开一个问题。
PS 我是 web3swift 的作者,所以将所有问题都保留在 github 上可以让我更好地响应
推荐阅读
- tensorflow - 变分自动编码器损失未显示正确?
- javascript - 如何在 JS/TS 中将数据设置为对象?
- c# - XML 文件被其他应用程序损坏
- java - 如何使用spring boot抛出自定义异常而不是500
- python - valueerror:无法将字符串转换为浮点熊猫
- imagemagick - 复合在 imagemagick7 与 imagemagick6 中不传输颜色
- firebase - 在 Firestore SDK 代码段中找不到 databaseURL
- php - Laravel - 变量为空但不为空?
- python - 如何按类别分组,然后使用 Pandas 计算单词的频率
- android - 当适配器正在生成视图并且用户在另一个片段上时,小部件为空