我跟随本教程学习如何使用“硬帽子”在多边形测试网上部署智能契约(而且它工作得很好)。
现在,我想在本地多边形块链实例上运行一些测试,该实例在本地计算机上运行并正常工作(有4个节点)。我知道它有效,因为我可以通过jsonRPC和gRPG、咨询余额、状态等操作它。
因此,在我的hardhat.config.js中,我有以下设置:
require("@nomiclabs/hardhat-ethers");
module.exports = {
defaultNetwork: "matic",
networks: {
hardhat: {
},
matic: {
url: "http://localhost:10002"
}
},
solidity: {
version: "0.8.0",
settings: {
optimizer: {
enabled: true,
runs: 200
}
}
},
paths: {
sources: "./contracts",
tests: "./test",
cache: "./cache",
artifacts: "./artifacts"
},
mocha: {
timeout: 20000
}
}然后,我编译并尝试部署Hardhat的示例脚本:
$ npx hardhat compile
>Downloading compiler 0.8.0
>Compiled 2 Solidity files successfully
$ npx hardhat run scripts/sample-script.js --network matic
>ProviderError: the method eth_accounts does not exist/is not available
> at HttpProvider.request (/home/edu/projects/test-hardhat->polygon/node_modules/hardhat/src/internal/core/providers/http.ts:74:19)
> at GanacheGasMultiplierProvider.request (/home/edu/projects/test-hardhat->polygon/node_modules/hardhat/src/internal/core/providers/gas-providers.ts:312:34)似乎硬帽子正在调用方法eth_accounts,这是不存在于我的多边形-边缘局部区块链。
我做错了什么?
提前感谢
发布于 2022-04-13 04:14:47
问得好..。在解决同一问题时遇到了您的问题。我正在运行polygon-edge server --dev...,并且无法部署带有硬帽子或松露的智能合同。另一种选择是根据项目的Web3讨论,使用Remix和您的钱包通过注入的多边形边缘支持智能契约吗?#411进行部署。
在Remix IDE中部署和运行事务,并通过部署via事务处理所选择的环境。
一旦完成,您将能够审查和批准您的钱包内的交易,这反过来通过事务部署合同。暂停一下,要警惕骗子,伪造的混合IDE克隆,或者顺便说一句,使用真正的资金将这个交易部署到一个实时网络中!说:如果你还没有这么做的话,如何将网络导入到Metamask。如果你需要一个有资金的帐户,对我起作用的是通过私钥导入Metamask帐户,其中包括预购的货币。为了检索私钥,我参考了我的验证器节点的数据文件夹,其中包含了$data-dir/consensus/validator.key文件中的私钥。
关于实际错误和web3js..。错误信息是准确的。如果您重新访问引用JSON RPC命令的多边形边缘文档,请注意缺少eth_accounts方法调用。这对于依赖web3.eth.getAccounts()调用设置进行契约部署的底层节点模块来说是有问题的,反过来也会影响松露和硬帽子。
https://stackoverflow.com/questions/71622904
复制相似问题