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

Sur*_*rma 5 ios swift ethereum web3swift

我正在尝试探索以太坊并创建一个应用程序,让用户签署消息并验证消息。我为此使用了 web3swift 框架,到目前为止我尝试过的如下-

    let web3Rinkeby = Web3.InfuraRinkebyWeb3()
    let msgStr = "This is my first Ethereum App";
    let data = msgStr.data(using: .utf8)
    let signMsg = web3Rinkeby.wallet.signPersonalMessage(data!, account: address);

    print(signMsg);
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否正确以及如何验证任何消息。请帮忙。

sky*_*der 1

看来您没有指定确切的地址。这是一个例子:

let web3Rinkeby = Web3.InfuraRinkebyWeb3()

/// 
    let keystore = try! EthereumKeystoreV3(password: "")
    let keystoreManager = KeystoreManager([keystore!])
    web3Rinkeby.addKeystoreManager(keystoreManager)
    let address = keystoreManager.addresses![0]
///

let msgStr = "This is my first Ethereum App";
let data = msgStr.data(using: .utf8)
let signMsg = web3Rinkeby.wallet.signPersonalMessage(data!, account: address);

print(signMsg);
Run Code Online (Sandbox Code Playgroud)

这是一个示例,如何在项目测试中签署交易: