签署消息
当 Web 应用连接到 OneKey 时,它还可以请求用户签署给定的消息。应用可以自由编写自己的消息,这些消息将在 OneKey 的签名提示中显示给用户。消息签名不涉及网络费用,是应用验证地址所有权的便捷方式。
要发送消息让用户签署,Web 应用必须:
- 提供一个 hex 或 UTF-8 编码的字符串作为 Uint8Array。
- 请求通过用户的 OneKey 钱包签署编码后的消息。
使用 signMessage 方法
const provider = getProvider();
const message = `为防止数字资产被盗,请在下方签名以通过 CryptoCorgis 进行身份验证`;
const encodedMessage = new TextEncoder().encode(message);
const signedMessage = await provider.signMessage(encodedMessage, "utf8");使用 request 方法
const provider = getProvider();
const message = `为防止数字资产被盗,请在下方签名以通过 CryptoCorgis 进行身份验证`;
const encodedMessage = new TextEncoder().encode(message);
const signedMessage = await provider.request({
method: "signMessage",
params: {
message: encodedMessage,
display: "hex",
},
});签署链下消息
用于签署支持版本的链下消息(适用于身份验证和验证):
使用 solSignOffchainMessage 方法
const provider = getProvider();
const message = "签署此消息以验证您的身份";
const signedMessage = await provider.request({
method: "solSignOffchainMessage",
params: {
message: message,
version: 0, // 可选的版本号
},
});
console.log({
signature: signedMessage.signature,
publicKey: signedMessage.publicKey,
});Last updated on