0

nodejsブロックチェーンに接続するために、バックエンドでウォレットシードを使用しようとしています。「@solana/web3.js」ライブラリのKeypairモジュールには、ニーモニックをシードに変換するbip39ライブラリの別のメソッドからの入力で使用するメソッドがあります。この私のコードfromSeed

const mnemonic = <My-mnemonic>
console.log(bip39.validateMnemonic(mnemonic)) // true
bip39.mnemonicToSeed(mnemonic).then(buffer => Keypair.fromSeed(buffer)).catch(err => console.log(err))

これは私のエラーです

Error: bad seed size
    at Function.nacl.sign.keyPair.fromSeed (/home/diazrock/Carrera/Elasbit/NFT's/mint-nft-solana/node_modules/tweetnacl/nacl-fast.js:2329:11)
    at Function.fromSeed (/home/diazrock/Carrera/Elasbit/NFT's/mint-nft-solana/node_modules/@solana/web3.js/lib/index.cjs.js:5625:53)
    at bip39.mnemonicToSeed.then.buffer (repl:1:55)
4

1 に答える 1

1

Keypair.fromSeed()Unit8Arrayチェックを行います

buffer.toJSON().dataこれは長さ 64 の配列を返すため、これにはそれぞれ公開鍵と秘密鍵の両方が含まれます。これをチェック

let a = new Uint8Array(buffer.toJSON().data.slice(0,32))
const key = Keypair.fromSeed(a);

上記を試してみましたが、これでうまくいきます。 key公開鍵と秘密鍵のコンポーネントがあります。

于 2021-09-10T14:36:13.163 に答える