[개발]Solidity Testnet/Mainnet 배포 방법

지난달

오늘은 오래간만에 개발 이야기 입니다.!! 독거형님 죄송!! 패쓰!!

메모성 자료로 남겨봅니다.


Solidity를 Testnet/Mainnet에 배포하는 방법을 한번 남겨봅니다.
이더리움은 수수료가 비싸서!! 일단 HODLs 가 배포될 BSC를 타겟으로 잡아보았습니다.

배포방법은 truffle을 이용하여 작성하였습니다.


truffle-config.js

  • .secret 파일을 만들어서 mnemonic 12단어를 입력해야 합니다.(아주 중요!!! 꼭 .secret 파일은 .gitignore에 추가해야합니다!! 아니면 지갑 다 털려요!!)
  • network_id ==> 97:BSC Testnet, 56:BSC Mainnet
  • @truffle/hdwallet-provider 모듈 설치 필요
// 바이낸스 배포용 설정/////////////////////////
const HDWalletProvider = require("@truffle/hdwallet-provider");
const fs = require("fs");
const mnemonic = fs.readFileSync(".secret").toString().trim();

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1", // Localhost (default: none)
      port: 8545, // Standard BSC port (default: none)
      network_id: "*", // Any network (default: none)
    },
    testnet: {
      provider: () =>
        new HDWalletProvider(
          mnemonic,
          `https://data-seed-prebsc-1-s1.binance.org:8545`
        ),
      network_id: 97, // 97:BSC Testnet, 56:BSC Mainnet
      confirmations: 10,
      timeoutBlocks: 200,
      skipDryRun: true,
    },
    bsc: {
      provider: () =>
        new HDWalletProvider(mnemonic, `https://bsc-dataseed1.binance.org`),
      network_id: 56,
      confirmations: 10,
      timeoutBlocks: 200,
      skipDryRun: true,
    },
  },

  // Set default mocha options here, use special reporters etc.
  mocha: {
    // timeout: 100000
  },

  // Configure your compilers
  compilers: {
    solc: {
      // version: "0.6.12", // Fetch exact version from solc-bin (default: truffle's version)
      // version: "^0.8.0", // Fetch exact version from solc-bin (default: truffle's version)
      version: "v0.8.5+commit.a4f2e591", // Fetch exact version from solc-bin (default: truffle's version)
      // version: "0.6.12+commit.27d51765", // Fetch exact version from solc-bin (default: truffle's version)
      // docker: true,        // Use "0.5.1" you've installed locally with docker (default: false)
      // settings: {          // See the solidity docs for advice about optimization and evmVersion
      //  optimizer: {
      //    enabled: false,
      //    runs: 200
      //  },
      //  evmVersion: "byzantium"
      // }
    },
  },
};

위와 같이 truffle-config.js 가 설정된 경우 네트워크를 선택해서 solidity 배포가 가능합니다.
truffle migrate 방식을 이용하여 바로 배포도 가능하지만 저는 truffle console로 console로 접근 후 배포하는 방식을 더 선호합니다. 이유는 배포 후 제대로 반영 되었는지 바로 테스트가 가능한 부분이 있기 때문입니다.

// truffle console로 접속
truffle console --network testnet
// migrate 명령어를 바로 사용하는 경우 자동으로 먼저 compile를 하게 되므로 migrate로 바로 하곤 합니다.(저는요!!)
// migrate의 경우 migrations에 정의된 Sol 파일들만 배포가 되므로 잘 확인하고 배포를 해야합니다.
migrate --reset

deploy_smart_contract.js sample

const SimpleStorage = artifacts.require("./SimpleStorage.sol");

module.exports = function (deployer) {
  deployer.deploy(SimpleStorage);
};

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT
Sort Order:  trending

start success go! go! go!

잘.. 모르겠습니다...

독거형님 죄송!! 패쓰!!

ㅋㅋㅋㅋㅋㅋㅋ 죄송까지야!! 즐거운 불금 보내세요^^

@happyberrysboy transfered 50 KRWP to @krwp.burn. voting percent : 65.98%, voting power : 59.20%, steem power : 1791104.42, STU KRW : 1200.
@happyberrysboy staking status : 11840 KRWP
@happyberrysboy limit for KRWP voting service : 11.84 KRWP (rate : 0.001)
What you sent : 50 KRWP
Refund balance : 38.16 KRWP [54747302 - abef66ca4b593e46d67481ca7cf62e580e8a14d8]