Mik*_*nso 10 javascript seed mnemonics blockchain solana
我正在尝试在我的反应本机测试项目中使用solana-web3.js获取 Solana 钱包的正确公共地址
import { Keypair} from '@solana/web3.js';
import * as bip39 from 'bip39';
import * as bip32 from 'bip32';
const derivePath = "m/44'/501'/0'/0'";
const mnemonic = "...12 word phrase"
const seed: Buffer = yield bip39.mnemonicToSeed(mnemonic);
// also tried to slice seed.slice(0, 32);
const derivedSeed = bip32.fromSeed(seed).derivePath(derivePath).privateKey;
const keypair = Keypair.fromSeed(derivedSeed);
const publicKey = keypair.publicKey.toString();
Run Code Online (Sandbox Code Playgroud)
我采用了应该用于 Phantom 钱包的派生路径(并且可以在 Solflare 钱包中选择),但问题是 - 我没有获得与这些浏览器钱包相同的公钥。
那么我在上面的代码中可能在哪里犯了错误呢?
更新:当我使用“ed25519-hd-key”lib 而不是“bip32”来获取派生种子时,问题就消失了。
import * as ed25519 from 'ed25519-hd-key';
const derivedSeed = ed25519.derivePath(derivePath, seed.toString('hex')).key;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10576 次 |
最近记录: |