我试着遵循一些代码来测试在代码中实例化钱包。我硬编码私钥(显然不会这么做),只是看看一切是如何工作的。我得到了一个错误:
throw new Error('bad secret key size');
^
Error: bad secret key size
我的代码如下:
import { Connection, Keypair, Transaction } from '@solana/web3.js'
import fetch from 'cross-fetch'
import { Wallet } from '@project-serum/anchor'
import bs58 from 'bs58'
const connection = new Connection('https://ssc-dao.genesysgo.net')
const PRIVATE_KEY = 'my secret key is this very dumb long confusing and unnecessary string'
const wallet = new Wallet(Keypair.fromSecretKey(bs58.decode(process.env.PRIVATE_KEY || '')))
发布于 2022-07-20 16:23:23
这里的问题是编码。为了方便使用,最好使用幻影钱包。我试着把种子转换成bs58,但仍然没有成功。如果您坚持使用另一个钱包,并且正在使用Solana的.js web3库,那么您最好使用
const wallet = new Wallet(Keypair.fromSecretKey(new Uint8Array([1,2,3,4,5,6])))
,但这将要求您保持公开私钥数组,这是不建议的。
发布于 2022-07-08 02:14:15
我怀疑要么是:
PRIVATE_KEY
没有正确加载:您的代码在顶部缺少require("dotenv").config();
。PRIVATE_KEY
在您的.env
文件中没有正确的格式:您从何处以及如何导出它?你确定它是base58
编码的吗?https://stackoverflow.com/questions/72901226
复制相似问题