编译Solidity智能合约时使用Hardhat.config.js在Hedera网络上并使用ArkhiaJSON-RPC转发时出错
创始人
2024-12-09 05:00:12
0次

在 Hardhat.config.js 中配置 Hedera 网络和 Arkhia JSON-RPC 转发,并在 Solidity 代码中添加适当的 import 语句和网络连接信息。

解法示例:

在 Hardhat.config.js 中添加如下代码:

const { privateKey } = require('path/to/private/key');
const { JsonRpc } = require('arkhia-json-rpc');
const { InfuraProvider, JsonRpcProvider } = require('@ethersproject/providers');

...

networks: {
  hedera: {
    url: 'https://api.hedera.com:443',
    chainId: 0,
    gas: 2000000,
    gasPrice: 1000000000,
    accounts: [privateKey],
    provider: () => {
      const rpc = new JsonRpc('https://jsonrpc-arkhia.wing.finance');
      const provider = new JsonRpcProvider({
        url: 'https://jsonrpc-arkhia.wing.finance',
        engine: {
          async send(method, params) {
            return rpc.request(method, params);
          },
        },
      });
      return provider;
    },
  },
},

...

在 Solidity 代码中添加如下 import 语句:

pragma solidity >=0.7.0 <0.9.0;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

在 Solidity 代码中添加如下网络连接信息:

contract MyContract is Ownable, ERC721 {
  constructor() ERC721("MyToken", "MTK") {
    // Connect to Hedera network through Arkhia JSON-RPC relay
    _setBaseURI("https://{{API_DOMAIN}}/api/token/");
    _safeMint(msg.sender, 1);
  }
}

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...