TruffleGanache local에서 Goerli testnet Contract creation 실습

심재원·2024년 1월 12일
0

Truffle에 goerli folder 생성

Terminal

truffle create contract ABC
truffle init
npm install dotenv
sudo npm i @truffle/hdwallet-provider@next

goerli-contracts folder

ABC.sol file 생성

contract ABC {
    uint public A;
    
    function setA(uint _a) public {
        A = _a;
    }

    function getA() public view returns(uint) {
        return A;
    }

    function cal(uint _a, uint _b) public pure returns(uint, uint) {
        return (_a+_b, _a*_b);
    }
}
  1. infura api key
  2. metamask recovery phrase (mneomonic) 준비

goerli-Terminal

truffle compile

goerli-migrations folder

폴더 안에 1_ABC.js file 생성

1_abc.js file

const abc = artifacts.require("ABC")

module.exports = function (deployer) {
deployer.deploy(abc);

.env 생성 후

MNEMONIC = 각자 메타마스크 복구 문구
PROJECT_ID = 각자 infura api key
추가

truffle-config.js 이동

44번줄 require 3줄 주석해제

require('dotenv').config();
const { MNEMONIC, PROJECT_ID } = process.env;

const HDWalletProvider = require('@truffle/hdwallet-provider');

85번줄 goerli 3줄 주석해제

goerli: {
      provider: () =>
        new HDWalletProvider(
          MNEMONIC,
          `https://goerli.infura.io/v3/${PROJECT_ID}`
        ),
      network_id: 5, // Goerli's id
      confirmations: 2, // # of confirmations to wait between deployments. (default: 0)
      timeoutBlocks: 200, // # of blocks before a deployment times out  (minimum/default: 50)
      skipDryRun: true, // Skip dry run before migrations? (default: false for public nets )
    },

goerli는 network_id가 5
체인 아이디가 각자 다 다름(ex : sepolia, optimism)

Terminal

truffle compile
truffle migrate --network goerli

goerli.etherscan

contract address 복사해서 Contract creation 됐는지 확인

Terminal

goerli console 확인

truffle console --network goerli

add 작동 확인

let abc = await ABC.deployed()

abc.methods
abc.cal(1, 5) -> 돈이 안 드니까 이거 먼저 하고 그 다음에 setA
abc.getA()
abc.setA(1)

npm install web3
node
var {Web3} = require('web3')
var web3 = new Web3('https://goerli.infura.io/v3/apikey')

//주석

await 
web3.eth.getStorageAt('0xf89fa7b50c07cb55d505c89d4bfa1b8b484db0b2','0')

# 팔로업 해야되는 부분
오른쪽 터미널에 web3 설정 완료’
?
변수 바뀐 것 확인
?

이후 ethers.js로 확인

0개의 댓글