我尝试在这里学习NFT教程。我已经在Alchemy上建立了帐户,Metamask创建了.sol文件。我在根目录中有一个.env文件,看起来像这样:
API_URL = "https://eth-ropsten.alchemyapi.io/v2/your-api-key"
PRIVATE_KEY = "your-metamask-private-key"
我的安全帽配置文件如下:
/**
* @type import('hardhat/config').HardhatUserConfig
*/
require('dotenv').config();
require("@nomiclabs/hardhat-ethers");
const { API_URL, PRIVATE_KEY } = process.env;
module.exports = {
solidity: {
compilers: [
{
version: "0.5.7"
},
{
version: "0.8.0"
},
{
version: "0.6.12"
}
]
},
defaultNetwork: "ropsten",
networks: {
hardhat: {},
ropsten: {
url: API_KEY,
accounts: [`0x${PRIVATE_KEY}`]
}
},
}
然而,当我试图编译时,我不断地得到这个错误:
无效值{"url":;https://eth-ropsten.alchemyapi.io/v2/your-api-key"quot;账户":["0xyour元任务私钥"]}for HardhatConfig.networks.ropsten-应为类型的值HttpNetworkConfig。
我似乎不明白为什么这不是HttpNetworkConfig的有效值。我所拥有的url是一个字符串,accounts是一个数组,这似乎符合网络配置文档中的内容。这是一个编译错误,所以看起来实际的url或私钥不会有问题,但也许我错了。我很乐意承认自己是这里的一个角落,对安全帽、坚固性甚至js等只有粗略的了解。任何帮助都很感激。
事实证明,问题出在我的私钥上。仔细检查。
您可能正在localhost:8545
工作。我认为问题是mainnet
上存在资产的价值和您上下文中使用的一些帐户。要解决这个问题,您需要将hardfork
和mainnet
发送到本地。
请查看本指南。https://hardhat.org/hardhat-network/guides/mainnet-forking.html
我没有将privateKey
设置为accounts
元素。
原来我的LIVE_PRIVATE_KEY
缺少一个值,因为我还有一个DEV_PRIVATE_KEY