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

问题描述 投票:0回答:6

尝试使用 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",
};`

部署.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);
    });
reactjs solidity
6个回答
1
投票

必须安装dotenv文件:

npm i dotenv

  1. 检查您的 .env 文件

    GOERLI_URL_API=d6164sbshdfkjsnkfj6515 WALLET_PRIVATE_KEY = “hb5154sdhbasd5651sdfsdbf54sf54ss5465F”

  2. 检查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.然后部署运行并构建

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

1
投票

大多数配置文件不会注册您的私钥。如果您已将其放入 .env 文件中,则应检查是否已安装 dotenv 并将其导入到 Hardhat.config.ts 中,如下所示:

1- 安装

dotenv
依赖项 2-导入:require('dotenv').config()到你的
hardhat.config.ts


0
投票

改变这个

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

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

0
投票

将网络配置部分中的

accounts:
更改为
account:
结果你应该:

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

0
投票

我假设只有一个帐户,因此私钥是一个。 对下面给出的行进行一些小的更改,

accounts: ['0x${process.env.PRIVATE_KEY}']

不要写账户,只写账户。即:

account: ['0x${process.env.PRIVATE_KEY}']


0
投票

该问题可能与您在 .env 文件中的私钥字符串附加逗号有关。

代替:

PRIV_KEY = "privatekey123",

做:

PRIV_KEY = "privatekey123"
© www.soinside.com 2019 - 2024. All rights reserved.