如何使用web3的个人扩展来签署个人消息?

时间:2018-06-11 09:27:43

标签: ios ethereum web3swift

我正在通过物质公司制作一个带有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方法不是我想要的。

1 个答案:

答案 0 :(得分:1)

请确保您已将密钥库附加到web3对象。如果没有本地密钥库,则消息将发送到远程节点进行签名,但是Infura节点不包含任何私钥。

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

P.S。我是web3swift的作者,因此将所有问题保留在github上可以使我做出更好的响应