标签: hardhat

ethers.js 合约实例中没有 safeTransferFrom 函数?

我在安全帽控制台中创建了一个合约实例,如下所示:

\n
const contract_fac = await ethers.getContractFactory("ContractName");\nconst contract = await contract_fac.attach("CONTRACTADDR...");\n
Run Code Online (Sandbox Code Playgroud)\n

合约对象具有除 之外的所有公共/外部函数safeTransferFrom。为什么?

\n

当我用它调用它时,它contract.safeTransferFrom(\xe2\x80\xa6)会抛出 JavaScript 错误 \xe2\x80\x9csafeTransferFrom 不是函数\xe2\x80\x9d。这是一个错误还是我不明白什么?safeTransferFrom函数在 ABI 中列出。

\n

我使用未做任何更改的 OpenZeppelin (v. 4.2) 721 令牌模板、Ethers.js (v. 5.4.1) 和 Hardhat (v. 2.4.1)。

\n

更新: \n问题已解决。safeTransferFrom 是一个重载函数。在 ethers 中,调用重载合约函数的语法与非重载函数不同。\n Ethers.js doc

\n

错误的:

\n
contract.safeTransferFrom(addr1, addr2, 1);\n
Run Code Online (Sandbox Code Playgroud)\n

正确的:

\n
contract["safeTransferFrom(address,address,uint256)"](addr1, addr2, 1);\n
Run Code Online (Sandbox Code Playgroud)\n

ethereum solidity openzeppelin ethers.js hardhat

28
推荐指数
1
解决办法
5233
查看次数

如何使用不同的地址来调用 Hardhat 测试和脚本中的函数?

运行测试和脚本时,所有函数均由 Hardhat 提供的第一个地址调用。

我想知道是否有办法在同一测试或脚本中更改调用地址。

提前致谢!

ethereum solidity smartcontracts ethers.js hardhat

18
推荐指数
1
解决办法
6039
查看次数

无法编译多个 Solidity 版本

我正在尝试编译(通过 Hardhat)一个合约,该合约导入具有不同 Solidity 版本的多个接口,但出现以下错误:

Error HH606: The project cannot be compiled, see reasons below.

These files and its dependencies cannot be compiled with your config. This can happen because they have incompatible Solidity pragmas, or don't match any of your configured Solidity compilers.

  * contracts/FlashLoaner.sol
Run Code Online (Sandbox Code Playgroud)

闪贷者.sol:

Error HH606: The project cannot be compiled, see reasons below.

These files and its dependencies cannot be compiled with your config. This can happen because they have incompatible Solidity pragmas, or don't match any …
Run Code Online (Sandbox Code Playgroud)

compiler-errors ethereum solidity hardhat

17
推荐指数
3
解决办法
2万
查看次数

错误 HH12:尝试使用不受支持的 Hardhat 非本地安装。请使用 npm 或 Yarn 在本地安装 Hardhat,然后重试

我从事 Hardhat 项目已经有一段时间了。
一段时间后,当我运行 npx hardhat node 启动 HH 服务器时,出现以下错误:

这是错误的图像

我尝试研究该错误并在安全帽网站上找到了这个

   HH12: Hardhat is not installed or installed globally
    You tried to run Hardhat from a global installation or not installing it at all. This is not supported.

Please install Hardhat locally using npm or Yarn, and try again.
Run Code Online (Sandbox Code Playgroud)

有趣的是,我创建了一个新的 HH 项目并重新安装了所有内容
,然后将我的代码导入到新项目中,这似乎解决了问题......
但过了一段时间,问题又开始了。
我不能每次发生这种情况时都创建一个新项目。
我已经被困了好几天了,非常感谢任何帮助。

操作系统:windows10

ethereum chainlink hardhat

17
推荐指数
1
解决办法
3万
查看次数

Ethers.js“错误:未知帐户#0(操作=“getAddress”,代码= UNSUPPORTED_OPERATION)”

我尝试使用 Ethers.js 从 KyberSwap 获取 ETH 的价格,但收到以下错误:

Error: unknown account #0 (operation="getAddress", code=UNSUPPORTED_OPERATION, version=providers/5.5.3)
Run Code Online (Sandbox Code Playgroud)

我已连接到 Infura Web 套接字来获取数据。这是我的脚本:

Error: unknown account #0 (operation="getAddress", code=UNSUPPORTED_OPERATION, version=providers/5.5.3)
Run Code Online (Sandbox Code Playgroud)

我该如何修复这个错误?

ethereum ethers.js hardhat

13
推荐指数
2
解决办法
1万
查看次数

如何使用 Hardhat 将以太币添加到我的本地主机 Metamask 钱包?

我已将元掩码连接到使用安全帽创建的节点http://localhost:8545设置链 id 以匹配安全帽网络链 id 后,我可以在元掩码中连接到网络上的此节点(31337)

如何将以太币发送到本地主机网络上的帐户/地址,以便这些帐户有足够的以太币来部署合约?

localhost metamask ether hardhat

12
推荐指数
1
解决办法
9091
查看次数

错误 HH604:运行 JSON-RPC 服务器时出错:错误:0308010C:数字信封例程::不受支持

我正在 Linux 中设置安全帽。我首先使用这些命令设置了反应应用程序。

npx create-react-app react-dapp

cd react-dapp 
Run Code Online (Sandbox Code Playgroud)

然后我使用此命令安装了一些安全帽依赖项。

npm install ethers hardhat @nomiclabs/hardhat-waffle \
        ethereum-waffle chai \
        @nomiclabs/hardhat-ether
Run Code Online (Sandbox Code Playgroud)

这一切都做得正确。然后我创建了安全帽配置和设置。

npx hardhat 
Run Code Online (Sandbox Code Playgroud)

然后我编辑了hardhat.config.js文件。我有这样的地方。

module.exports = {
solidity: "0.8.4",
paths: {                         
   artifacts: './src/artifacts',  
},
networks: {                 
  hardhat: {
   chainId: 1337                
 }
Run Code Online (Sandbox Code Playgroud)

} }; 之后我创建了节点。

npx hardhat node 
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

错误 HH604:运行 JSON-RPC 服务器时出错:错误:0308010C:数字信封例程::不受支持

linux api blockchain metamask hardhat

12
推荐指数
2
解决办法
8575
查看次数

“npx Hardhat 帐户”在 Hardhat 最新版本 2.9.9 中不可用

我已经安装了最新版本的安全帽。它安装得很好。

设置安全帽并安装所有必需的软件包后,当我运行时:

npx hardhat accounts
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误:

Error HH303: Unrecognized task accounts
Run Code Online (Sandbox Code Playgroud)

似乎“帐户”任务已在最新版本的安全帽中删除。我现在的问题是获取安全帽生成的钱包帐户列表?

ethereum hardhat

12
推荐指数
2
解决办法
5344
查看次数

从安全帽中的交易收据中获取事件

我有一份ethers与之进行交易的合同:

const randomSVG = new ethers.Contract(RandomSVG.address, RandomSVGContract.interface, signer)
let tx = await randomSVG.create()
Run Code Online (Sandbox Code Playgroud)

我有一个与此交易有关的事件:

function create() public returns (bytes32 requestId) {
        requestId = requestRandomness(keyHash, fee);
        emit requestedRandomSVG(requestId);
    }
Run Code Online (Sandbox Code Playgroud)

但是,我看不到交易收据中的日志。]( https://docs.ethers.io/v5/api/providers/types/#providers-TransactionReceipt )

// This returns undefined
console.log(tx.logs)
Run Code Online (Sandbox Code Playgroud)

javascript solidity ethers.js hardhat

11
推荐指数
1
解决办法
2万
查看次数

插件@nomiclabs/hardhat-etherscan 中出现错误:合约验证失败。原因:失败 - 无法验证 - 带参数

我试图用参数验证我的合同,但收到此错误:

Error in plugin @nomiclabs/hardhat-etherscan: The contract verification failed.
Reason: Fail - Unable to verify

Run Code Online (Sandbox Code Playgroud)

我还导入Open Zeppelin合同ERC721EnumerableOwnable.

这是我的NFTCollectible.sol


pragma solidity 0.8.10;

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "hardhat/console.sol";

contract NFTCollectible is ERC721Enumerable, Ownable {
    using Strings for uint256;

    string public baseURI;
    string public baseExtension = ".json";
    uint256 public cost = 0.08 ether;
    uint256 public maxSupply = 5000;
    uint256 public maxMintAmount = 25;
    mapping(address => uint256) public addressMintedBalance;

    constructor(
        string memory _name,
        string memory _symbol, …
Run Code Online (Sandbox Code Playgroud)

solidity openzeppelin etherscan ethers.js hardhat

11
推荐指数
2
解决办法
2万
查看次数