如何让私钥不写入智能合约:dotevn

如何让私钥不写入智能合约:dotevn


​ 大家想一个问题,我们的智能合约上链都是公开透明,如果我们直接把部署时候的私钥写进部署代码里面,只要有人看到了我的部署代码,那岂不是谁都可以看到我的钱包了?

​ 有一个办法可以不直接写入部署合约的js中,我们把私钥设置为项目环境变量,然后通过响应的工具对它进行引入到代码里面,dotenv便是这样一个模块。

安装dotenv

npm install dotenv --save

创建一个.env文件

在项目根路径创建.env。(我们继续以hardhat的案例项目进行演示)

touch .env
vim .env

在这里插入图片描述

按照这种格式输入你想不写入部署代码中的数据

PRIVATE_KEY=020626
MY_API=123456789

在这里插入图片描述

在部署代码中引入dotenv

现在我们继续去修改script目录下面的sample-script.js的代码

导入dotenv

require('dotenv').config()

引用环境变量

	const PRIVATE_KEY = process.env.PRIVATE_KEY;
    const MY_API = process.env.MY_API;
    console.log("私钥为:",PRIVATE_KEY);
    console.log(`MY_API为:${MY_API}`);

在这里插入图片描述

运行部署的代码

项目根目录运行部署代码

npx hardhat run scripts/sample-script.js

在这里插入图片描述

​ 看,我们能正确引用环境变量到js中了,不用再直接将私钥写入代码了

这样上传到区块链的就只是环境变量的名称,而具体的密钥已经在部署的时候运行了

对文章满意的话欢迎点赞收藏,哈哈,谢谢你

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值