Documentation Index
Fetch the complete documentation index at: https://injectivelabs-mintlify-jp-native-developers-first-half.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
このページでは、CosmosのADR-036仕様に基づいて任意のデータに署名・検証する方法の例を提供します。
@injectivelabs/sdk-tsのgenerateArbitrarySignDoc関数を使用してADR-36互換のsignDocを生成できます。生成したsignDocをブラウザウォレットまたはCLI環境での署名・検証に使用できます。最新のパッケージバージョンを使用していることを確認してください。
Keplrのようなブラウザウォレットを使用して署名と検証を行う
(async () => {
const message = "Offline Sign Message Example";
const signer = 'inj1...'
const chainId = 'injective-1'
// Sign Arbitrary Data
const signature = await window.keplr.signArbitrary(chainId, signer, message)
// Verify Arbitrary Data
const result = await window.keplr.verifyArbitrary(chainId, signer, message, signature)
if (result) {
console.log("Signature is valid");
}
})();
CLI環境でPrivateKeyを使用して署名と検証を行う
import { config } from "dotenv";
import { PrivateKey } from "@injectivelabs/sdk-ts/core/accounts";
import { generateArbitrarySignDoc } from "@injectivelabs/sdk-ts/core/tx";
config();
(async () => {
const { privateKey } = PrivateKey.generate();
const injectiveAddress = privateKey.toBech32();
const publicKey = privateKey.toPublicKey();
const message = "Offline Sign Message Example";
const { signDocBuff } = generateArbitrarySignDoc(message, injectiveAddress);
const signature = await privateKey.sign(signDocBuff);
const signatureInHex = Buffer.from(signature).toString("hex");
if (
PrivateKey.verifyArbitrarySignature({
signature: signatureInHex,
signDoc: signDocBuff,
publicKey: publicKey.toHex(),
})
) {
console.log("Signature is valid");
}
})();