Hardhat.config 설정 값 문의

안녕하세요

제가 사용하고있는 config와 deploy 스크립트 전달드립니다.

hardhat.config.ts

import "dotenv/config";
import "@typechain/hardhat";
import "@nomiclabs/hardhat-ethers";
import "@nomiclabs/hardhat-waffle";

import { HardhatUserConfig } from 'hardhat/types';

const config: HardhatUserConfig = {
  solidity: {
    version: '0.5.6',
    settings: {
      optimizer: {
        enabled: true,
        runs: 200,
      }
    }
  },
  namedAccounts: {
    deployer: 0,
  },
  networks: {
    hardhat: {},
    cypress: {
      url: process.env.CYPRESS_URL,
      httpHeaders: {
        'Authorization': 'Basic ' + Buffer.from(process.env.ACCESS_KEY_ID + ':' + process.env.SECRET_ACCESS_KEY).toString('base64'),
        'x-chain-id': '8217',
      },
      accounts: [
        process.env.DEPLOYER || ''
      ],
      chainId: 8217,
      gas: 8500000,
    },
    baobab: {
      url: process.env.BAOBAB_URL,
      httpHeaders: {
        'Authorization': 'Basic ' + Buffer.from(process.env.ACCESS_KEY_ID + ':' + process.env.SECRET_ACCESS_KEY).toString('base64'),
        'x-chain-id': '1001',
      },
      accounts: [
        process.env.DEPLOYER || ''
      ],
      chainId: 1001,
      gas: 8500000,
    },
  },
  mocha: {
    timeout: 100000
  }
}

export default config;

deploy.ts

import "@nomiclabs/hardhat-ethers";
import "@nomiclabs/hardhat-waffle";
import { getNamedAccounts, config } from 'hardhat';
import { HttpNetworkUserConfig } from "hardhat/src/types/config";
import Caver from 'caver-js'

async function main() {
  const { deployer } = await getNamedAccounts();

  console.log("Deploying contracts with the account:", deployer);

  const network = config.networks[process.env.HARDHAT_NETWORK as string] as HttpNetworkUserConfig;

  const caver = new Caver(new Caver.providers.HttpProvider(network.url!, {
    headers: [
      { name: 'Authorization', value: 'Basic ' + Buffer.from(process.env.ACCESS_KEY_ID + ':' + process.env.SECRET_ACCESS_KEY).toString('base64') },
      { name: 'x-chain-id', value: network.chainId!.toString() }
    ]
  }));

  caver.klay.accounts.wallet.add(caver.klay.accounts.privateKeyToAccount(process.env.DEPLOYER!));

  const transaction = await caver.klay.sendTransaction({
    type: 'SMART_CONTRACT_DEPLOY',
    from: deployer,
    data: '', /* bytecode */
    gas: '50000000',
    value: 0,
  });

  console.log(transaction);
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });

dependencies

"@klaytn/contracts": "^0.9.0",
"@nomiclabs/hardhat-ethers": "^2.0.0",
"@nomiclabs/hardhat-truffle5": "^2.0.3",
"@nomiclabs/hardhat-waffle": "^2.0.0",
"@openzeppelin/contracts": "2.5.1",
"@typechain/ethers-v5": "^7.2.0",
"@typechain/hardhat": "^3.0.0",
"@types/chai-as-promised": "^7.1.4",
"@types/mocha": "^9.0.0",
"caver-js": "^1.6.5",
"chai": "^3.4.0",
"chai-as-promised": "^7.1.1",
"dotenv": "^10.0.0",
"ethereum-waffle": "^3.0.0",
"ethers": "5.0.32",
"hardhat": "^2.8.0",
"hardhat-deploy": "^0.9.14",
"rimraf": "^3.0.2",
"ts-node": "^10.4.0",
"typechain": "^6.0.5",
"typescript": "^4.5.4"
3개의 좋아요