在 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);
}
}