【02】隐藏私钥并导入代码

  • 董承泽
  • 更新于 2024-04-19 10:43
  • 阅读 1861

隐藏私钥并导入代码

配套视频教程: Bilibili:https://www.bilibili.com/video/BV1cz42167MD/?spm_id_from=333.788&vd_source=2979dcefbf505a6422797470b6fbbfad Youtube:https://www.youtube.com/watch?v=LPIPAHWW05w&list=PLMsVemdMJKNUSTsRpjQj7CTrm8O-luVxi&index=3 欢迎添加我的联系方式:Rico_Ruilabs

基础知识

两种Solana账户的私钥形式

  • 数组型:如使用 solana-keygen 创建的 id.json 文件

    [34,196,76,33,202,252,153,162,93,245,130,8,98,51,44,220,67,119,187,13,102,42,182,61,169,126,185,195,94,219,180,243,31,38,38,133,160,151,213,233,14,57,102,52,202,32,113,204,176,140,251,190,42,132,162,105,223,234,98,255,223,53,4,113]

  • 字符串型:更通用的,如hKKEqGS1xn2bUhZFtxueYW9CTM91edfdUxaxK743CtyjMdzgobAEBH5ZBkUiXvS2Drbcwp4wK8uHEXD5gbSUSmn

(演示钱包,请勿向该地址打入资产)

数组型 => base58格式编码 encode => 字符串型

字符串型 => base58格式解码 decode => 数组型

代码

提前下载好 Node,创建工程目录,执行

npm init -y

初始化空的 package.json文件,添加 "type": "module",执行 npm i 命令,依次下载 "@solana/web3.js","bs58","dotenv" 这三个库

image.png

package.json 文件最终状态: image.png

import { Keypair } from "@solana/web3.js"

// 从 id.json 生成账户
import { readFileSync } from 'fs'
const userKeypair1 = Keypair.fromSecretKey(
    Buffer.from(JSON.parse(readFileSync('./id.json', "utf-8")))
)
console.log(userKeypair1)
// 使用 base58 编码,得到字符串型
console.log(`The public key is:`,userKeypair1.publicKey.toBase58())
// 使用 base58 编码,得到字符串型
console.log(`The secret key is:`,base58.encode(userKeypair1.secretKey))

// 从 私钥字符串 生成账户,配合 .env 配置文件
import "dotenv/config"
import base58 from 'bs58'
const userKeypair2 =  Keypair.fromSecretKey(base58.decode(process.env.SECRET_KEY))
console.log(userKeypair2)
// 转换为Base58编码
console.log(`The public key is:`,userKeypair2.publicKey.toBase58())
// 处理私钥的打印格式
console.log(`The secret key is:`,base58.encode(userKeypair2.secretKey))
  • 原创
  • 学分: 6
  • 分类: Solana
  • 标签:
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。
该文章收录于 Solana 极简入门
61 订阅 10 篇文章

0 条评论

请先 登录 后评论
董承泽
董承泽
0x513D...fEC0
VX:ruichao_web3 bilibili :https://space.bilibili.com/434418210 youtube :https://www.youtube.com/channel/UCbVSj4aA2TAR9cUZuSoql5A