reactjs * 无效帐户:#0网络:rinkeby -私钥太短,应为32字节

ar5n3qh5  于 2023-06-29  发布在  React
关注(0)|答案(5)|浏览(98)

尝试使用在Rinkeby测试网络上启动DApp
npx hardhat run scripts/deploy.js --network rinkeby
但是每当我尝试启动合约时,它都会返回一个错误,当我将私钥复制到环境变量中时,它会说私钥大小太短。
当我将私钥直接传递到我的module.exports上的帐户时,它会抛出一个错误,说我的私钥太长了!无论我是否在${}之前附加了0x前缀。
hardhat.config.js

require("@nomicfoundation/hardhat-toolbox");

const PRIVATE_KEY = "privateKeyjdhsbcidsjhnc"
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
  solidity: "0.8.4",
  paths: {
    artifacts: './src/artifacts',
  },
  networks: {
    hardhat: {
      chainId: 1337
    },
    rinkeby: {
      url: "https://eth-rinkeby.alchemyapi.io/v2/_YGPVs4UBSWtFxp-fpynFRcF34oU7WUI",
      accounts: ['0x${process.env.PRIVATE_KEY}']
    }
  },
  solidity: "0.8.4",
};`

deploy.js

const hre = require("hardhat");

async function main() {
    const Greeter = await hre.ethers.getContractFactory("Greeter");
    const greeter = await Greeter.deploy("Hello,Hardhat!");

    await greeter.deployed();

    console.log("Greeter deployed to:", greeter.address)
}

main()
    .then(() => process.exit(0))
    .catch(error => {
        console.error(error);
        process.exit(1);
    });
tf7tbtn2

tf7tbtn21#

必须安装dotenv文件:npm i dotenv
1.检查你的.env文件
GOERLI_URL_API= d6164sbshdfkjsnkfj6515 WALLET_PRIVATE_KEY =“hb5154sdhbasd5651sdfsdbf54sf54ss5465F”
1.检查hardhat/config.js

然后需要DOTENV文件

require('dotenv').config()

//添加网络连接

networks: {
    hardhat: {},
     goerli: {
      url: `https://goerli.infura.io/v3/${process.env.GOERLI_URL_API}`,
      accounts: [process.env.WALLET_PRIVATE_KEY.toString()]
    }
  }

4.然后Deploy运行和构建

npx hardhat run scripts/deploy.js --show-stack-traces
3bygqnnd

3bygqnnd2#

大多数情况下,配置文件不会重新配置您的私钥。如果你已经把它放到你的.env文件中,你应该检查你是否已经安装了dotenv,并把它导入到你的hardhat.config.ts中,如下所示:
1-安装dotenv依赖项2- import:require('dotenv').config()到您的hardhat.config.ts

b5buobof

b5buobof3#

更改此内容

'0x${process.env.PRIVATE_KEY}'

`0x${process.env.PRIVATE_KEY}`
s71maibg

s71maibg4#

将网络配置部分中的accounts:更改为account:,结果应该是:

account: [`{process.env.PRIVATE_KEY}`]
gjmwrych

gjmwrych5#

此问题可能与您在.env文件中的私钥字符串前面加上逗号有关。
而不是:

PRIV_KEY = "privatekey123",

执行:

PRIV_KEY = "privatekey123"

相关问题