【问题标题】:how to generate keypair from secret phrase (mnemonic) SOLANA如何从秘密短语(助记符)SOLANA 生成密钥对
【发布时间】:2022-02-11 01:29:29
【问题描述】:

大家好,我正在使用 solana 和幻像钱包我有一个带有公钥的钱包,我有一个由 12 个单词组成的秘密短语。 当我从我使用的秘密短语生成密钥对时:

const getKeyPair = (mnemomic) => {
  const seed = bip39.mnemonicToSeedSync(mnemomic).slice(0, 32);
  const Keypair = web3.Keypair.fromSeed(seed);
  return Keypair;
};

生成的密钥对有 publicKey 和 privateKey ,但是当我使用生成的公钥检查我的余额时,我发现它始终为 0,即使我尝试使用我的代码空投 sols,它也没有进入帐户。 但是,如果我使用幻像钱包中的公钥进行检查,我会得到我拥有的 sols,如果我想空投 sols,它们也会正常进行。 请帮助我需要知道发生了什么为什么生成的公钥与幻像钱包中的不一样。

【问题讨论】:

    标签: javascript node.js reactjs blockchain solana


    【解决方案1】:

    solana-keygen recover 'prompt:?key=0/0' -o phantom_wallet.json

    【讨论】:

    • 谢谢兄弟,这是解决方案,我不知道为什么它使用 bip39 和 web3.Keypair.fromSeed 生成不同的密钥,但现在我使用 SOLANA CLI 生成它们并且它正在工作,非常感谢兄弟.
    【解决方案2】:

    大家好,我想出了解决问题的方法,首先正如“Frank C”所说,我们需要从 生成 publicKeyprivateKey >种子短语使用这个命令:

    solana-keygen recover 'prompt:?key=0/0' -o phantom_wallet.json

    备注:我们的账户可能有很多钱包,上面的命令可以访问 第一个钱包,例如如果我们需要访问 10 号钱包 我们需要将 'prompt:?key=0/0' 更改为 'prompt:?key=10/0' “只有第一个 0 在变化”

    接下来,这将生成公钥“将写入控制台”,并且带有密钥的 json 文件包含一个 64 元素 数组,即 密钥现在在 solana web3 javascript SDK 中生成密钥对 我们执行以下操作:

     let seed = Uint8Array.from(
        process.env.REACT_APP_OUR_SECRET_KEY.split(",")
      ).slice(0, 32);
    
      // create keypairs
      let KEYPAIRS = web3.Keypair.fromSeed(seed);
    

    **

    重要提示:在 .env 文件中,REACT_APP_OUR_SECRET_KEY 存储时不带括号 [ ] 示例:15,320,52,... 正如我们看到的没有括号 []

    的表格

    **

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-24
      • 2017-08-14
      • 2013-02-18
      • 2022-11-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      相关资源
      最近更新 更多