ios - 如何使用web3的个人分机签署个人消息?

标签 ios ethereum web3swift

我正在使用 Matter Inc. 的 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方法不是我正在寻找的。

最佳答案

请检查您是否有一个 keystore 附加到 web3 对象。如果没有本地 keystore ,则消息将发送到远程节点进行签名,但 Infura 节点不包含任何私钥。

如果问题仍然存在,请打开一个问题 on gitHub repo .

附言我是 web3swift 的作者,因此将所有问题保留在 github 上可以让我更好地响应

关于ios - 如何使用web3的个人分机签署个人消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50794445/

相关文章:

ios - 第一次加载时不显示按钮文本

ios - 使用用户的私钥签署任何消息并在以太坊上验证签名

web3swift - 如何通过 web3swift 使用自定义 json 合约

ios - 尝试导入 web3swift 时编译错误

ios - DetailViewController 中的保留周期 - 启用 ARC

iphone - 保存/重新加载图像,以及删除旧图像

javascript - IOS设备隐藏 "Play Store"图片,Android设备隐藏 "App Store"图片

ethereum - 将用户地址与数组中定义的地址相匹配的可靠方法

javascript - 使用 ethers.utils.FormatTypes.full 返回对象而不是字符串

javascript - 为什么estimateGas总是返回null或零?