问题标签 [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 - 无法解码交易数据
我正在尝试使用 Ethers.js 文档中的说明对智能合约测试中的交易数据进行解码,但我一直认为第一个参数(片段)无效:
Ethers.js
ABI
:
Interface
:
AddLiquidityETH function on UniswapV2Router02.sol
:
Main snippet on my test
:
我试过:
- 函数名称:
"addLiquidityETH"
. - 函数签名:
"addLiquidityETH(address,uint,uint,uint,address,uint)"
和"addLiquidityETH(address,uint,uint,uint,address,uint) external payable returns (uint,uint,uint)"
- 两个签名的叹息:
"0x1a3042d8"
和"0x251511cc"
interface.decodeFunctionResult( fragment , data )
...但错误仍然出现。
Error
:
谢谢您的帮助!
Full test
:
ethereum - 如何使用不同的地址来调用 Hardhat 测试和脚本中的函数?
运行测试和脚本时,所有函数都由 Hardhat 提供的第一个地址调用。
我想知道是否有办法在同一个测试或脚本中更改调用地址。
提前致谢!
debugging - 在 WebStorm 中调试安全帽可靠性测试
在控制台中运行 Hardhat 测试后,npx hardhat test
我决定能够设置断点将帮助我更快地迭代。
我怎样才能让 Webstorm 运行启动的底层函数,npx hardhat test
以便我可以使用内置的调试器?
hardhat - 如何测试将以太币发送到具有“应付”功能的合约?
我正在为我编写的 Solidity 合约编写安全帽测试。合约包含一个receive() external payable { ... }
函数。我怎么能从一个有以太量的测试中调用它?
ethereum - 当`require`评估为false时如何继续执行函数
我有一个关于修饰符、需求和功能流程的问题。
这是我的观点的一个简单示例。
假设我用addNumbers([11, 12, 13, 8, 20, 21, 5, 22, 23]);
当它达到 8 时,我会收到错误消息。
有没有办法继续运行具有以下值的函数?
我之前曾想过添加一个if
“捕获”错误,但也许有更好的方法。
提前致谢!
compiler-errors - 无法编译多个 Solidity 版本
我正在尝试(通过 Hardhat)编译一个合同,该合同导入了几个具有不同 Solidity 版本的接口,但我收到以下错误:
Flashloaner.sol:
问题出在@aave/protocol-v2/contracts/interfaces/ILendingPool.sol
. 如果我把它注释掉,我的合同就很好了。
IlendingPool.sol:pragma solidity 0.6.12;
IERC20.sol:pragma solidity ^0.5.0;
IWETH.sol:pragma solidity >=0.5.0;
安全帽配置:
javascript - 如何在 node.js 应用程序中使用 ethers.js contract.on() 监听来自智能合约的事件?
我正在尝试在 node.js 应用程序中使用 ethers.js(不是 web3)监听 USDT 合约传输函数发出的事件。
当我运行脚本时,代码运行没有错误,然后快速退出。我希望得到事件日志。我不确定我错过了哪一步。
我已经通过调用 getOwner() 方法和控制台记录该结果来测试这个脚本,这工作正常,所以我与主网的连接是好的。
我正在使用炼金术 websocket。
我的 index.js 文件
我的 hardhat.config.js 文件
typescript - 使用 @nomiclabs/hardhat-waffle 实现夹具
在官方 waffle 文档中,您可能会找到实现固定装置的下一种方法:
但是,在安全帽上使用插件时,这将不起作用。插件文档中没有给出官方说明。
下面回答。
javascript - 为什么即使我不导入/需要顶部的模块,我的节点文件的依赖项也能工作?
我正在浏览炼金术/hardhat 教程(https://docs.alchemy.com/alchemy/tutorials/hello-world-smart-contract)和“第 15 步:编写我们的部署脚本”deploy.js 能够使用 ethers 框架,即使它在文件顶部没有 require 语句。这是如何运作的?
ethereum - ethers.js 合约实例中没有 safeTransferFrom 函数?
我在安全帽控制台中创建了一个合约实例,如下所示:
合同对象具有所有公共/外部功能,除了safeTransferFrom
. 为什么?
当我用contract.safeTransferFrom(…)
它调用它时,会抛出 JavaScript 错误“safeTransferFrom 不是函数”。这是一个错误还是我不明白什么?safeTransferFrom
功能在 ABI 中列出。
我使用 OpenZeppelin (v. 4.2) 721 令牌模板,Ethers.js (v. 5.4.1) 和 hardhat (v. 2.4.1)。
更新: 问题解决了。safeTransferFrom 是一个重载函数。在 ethers 中,调用重载合约函数的语法与非重载函数不同。 Ethers.js 文档
错误的:
正确的: