问题标签 [hardhat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
testing - 柴测试中的时间旅行
我正在用 chai 和 hardhat 测试我的合同,我想在Transactions
块测试中测试一个依赖于 if 语句的函数:bool(Date.now() < timestamp)。
我检查了:如何在 Mocha 测试中模拟时间的流逝,以便调用 setTimeout 回调?
我当然安装了 sinon:yarn add sinon
但我得到:
代码:
感谢帮助!
javascript - hardhat:将 NFT 部署到 rinkeby 网络时的问题
我开始了我的第一个区块链教程,它是:
- https://www.youtube.com/watch?v=9oERTH9Bkw0&t=696s
- 回购:https ://github.com/PatrickAlphaC/all-on-chain-generated-nft#about-svgs
我正在尝试使用安全帽在 Rinkeby 测试网中部署 NFT。以下是我为配置环境所做的步骤:
安装安全帽
在我的 .zshrc 中添加以下环境变量(RINKEBY_RPC_URL、PRIVATE_KEY、MAINNET_RPC_URL)
使用 infuria 创建了一个帐户以获取我的 RINKEBY_RPC_URL:'https://rinkeby.infura.io/v3/My_Project_Id'
从我的 Metamask 添加我的 PRIVATE_KEY
在https://www.alchemy.com/上创建一个帐户以获取我的 MAINNET_RPC_URL:'https://eth-mainnet.alchemyapi.io/v2/My_Project_Id'
我使用https://faucet.rinkeby.io/在我的元掩码(Rinkeby 测试网)上获取以太币。与 LINK 相同
然后当我想使用安全帽部署我的第一个 NFT 时 ->hh deploy --network rinkeby
我有这个错误:
错误信息说:
内在交易成本资金不足
这很奇怪,因为我在 Rinkeby 测试网上添加了一些 Eth 和链接。我错过了什么吗?
编辑(19/07/21)
我取消了 MNEMONIC 部分的注释,并添加了示例中设置的 gas / gasPrice 变量:
如您所见,它让我更进一步:
然后,当调用 Chainlink VRF 节点时,我遇到了一个新错误:
分配给 gas 和 gasPrice 的值有问题吗?
blockchain - 检查安全帽本地网上的交易
安全帽菜鸟在这里
所以我想在他们完成执行后检查我在安全帽 localnet 上运行的本地事务。就像使用交易哈希并稍后检查交易详细信息一样。有什么好的方法吗?或者这可能吗?
我需要为此使用甘纳许吗?或者安全帽本地节点是否hardhat node
足够?
编辑:可以看到元掩码钱包本身的交易。所以这是一个愚蠢的问题。谢谢。
proxy - 如何在已部署的智能合约上升级或添加新逻辑
我已经部署了一个智能合约,我想在这个合约上添加一些逻辑。
我正在搜索和学习有关升级智能合约的示例和教程,但我没有理解并给出一个清晰的例子。我只是想出了如何创建一个可升级的合约,这只是创建一个新的可升级合约的一个例子。
任何用于更新智能合约的教程或代码都已部署。
智能合约示例:币安智能链测试网上的 0x31d176A37E2EC3bc986f5D3b23CE76e48d963F29。testnet.bscscan.com/address/0x31d176A37E2EC3bc986f5D3b23CE76e48d963F29
我想在合约启动池上添加新逻辑。
有人可以帮助我吗?
node.js - 无法编译和运行 IPFS
我正在尝试使用 hardhat 和 minty 来编译项目,当我尝试编译它被编译但 IPFS 出现此错误的合同时,据我所知,我已经正确安装了 IPFS,因为在另一个 powershell 中我可以调用 ipfs 守护进程和它得到innecialized,请让我现在做什么,我正在尝试基于Yuesef开发的minty项目做项目。 https://github.com/yusefnapora/minty
项目清单
npm - 智能合约构造函数中的解析错误
智能合约构造函数中的解析错误,有人可以帮我看看我在做什么,以及为什么这个错误甚至被认为从外面看起来一切都很好。
solidity - 使用 Uniswap 的 ISwapRouter 将 ETH 交换为 DAI
我正在尝试开始使用 Uniswap V3。作为一个例子,我举了一个最基本的用例:给定 X 数量的 ETH 交换 DAI。不幸的是,我无法让它工作。
已经有一个非常相似的问题(没有答案)但略有不同,因为代码看起来不像我的。
我正在使用 Hardhat 来分叉主网,然后将 Remix 连接到localhost:8545
安全帽配置如下:
如您所见(最底部的完整合同),合同提供 3 个应付功能:
它们都失败了,甚至 getEstimatedETHforDAI,它相当简单且只读(几乎)。没有给定的理由,所以我是盲目的。当我从 Remix 执行函数时,我只得到一个通用错误"Returned error: Error: Transaction reverted without a reason string"
。当我查看安全帽控制台时,我看到了这个错误:
看起来合同无效,但我可以在 EtherScan报价器和路由器
任何想法?对此,我真的非常感激。
这是完整的合同
solidity - 无法验证与 Hardhat for Etherscan 的可靠性合约
我正在尝试使用安全帽验证并将我的合同源代码提交给 etherscan,但我遇到了以下错误,我不明白如何解决该错误。我已经阅读了代码,但我无法发现我做错了什么。请问有人可以建议吗?
我运行时遇到的错误:
npx hardhat verify --network ropsten 0xA16c8f9A5Ab944454D6404CE626E600AF0054aaa 'MyNFTPrice!
错误信息:
Error in plugin @nomiclabs/hardhat-etherscan: The constructor for contracts/MyNFTPrice.sol:MyNFTPrice has 0 parameters but 1 arguments were provided instead.
我的智能合约源文件(MyNFTPrice.sol):
我的脚本 MyNFTPrice.js:
solidity - 使用 Hardhat 在 EtherScan 上验证智能合约时出错
下面是我的智能合约(已经部署)。当我尝试验证它以将代码提交给 Etherscan 时,我收到以下错误,我真的不知道为什么。请问有人可以建议吗?
错误信息:
MyNFTContract.sol:
我的部署脚本 deploy.js: