这是关于sui钱包的验证。
import {useWallet} from '@suiet/wallet-kit'
import * as tweetnacl from 'tweetnacl'
function App() {
const wallet = useWallet();
async function handleSignMsg() {
try {
const msg = 'Hello world!'
// convert string to Uint8Array
const msgBytes = new TextEncoder().encode(msg)
// call wallet's signMessage function
const result = await wallet.signMessage({
message: msgBytes
})
// verify signature with publicKey and SignedMessage (params are all included in result)
const verifyResult = await wallet.verifySignedMessage(result, wallet.account.publicKey)
if (!verifyResult) {
console.log('signMessage succeed, but verify signedMessage failed')
} else {
console.log('signMessage succeed, and verify signedMessage succeed!')
}
} catch (e) {
console.error('signMessage failed', e)
}
}
return (
<button onClick={handleSignMsg}> Sign Message </button>
)
}
使用js wallet.signMessage,可以查看两条数据,如下。
APr0hJEXc9s9FKHeubNzLkiOJd03thIJs9dnvL4M5dzEfPmzUXWrV57AM1w2k4xHdk6+R+GebKyK30Ob5oFMJQQv/sC0XycR6VEJ+JMYVNj00LdzN2XnylAv6rLwUDov/g==
messageBytes: "SGVsbG8gd29ybGQh"
使用钱包。 verifySignedMessage来验证这两个数据是否正确。因为我是golang开发人员,所以在golang中如何验证。我只是想验证golang中wallet.signMessage的结果。
嘿,你知道该怎么做了吗?