스마트 계약 개발을 시작하는 쉬운 방법

12063 단어 blockchaintooling
스마트 계약 개발 환경을 설정하는 것이 지겹습니까? 안전모와 트러플 구성에 지쳤습니까? 시도하십시오 create-smart-contract .

하나의 명령으로 Ethereum 스마트 계약 개발 환경 및 구성을 설정하는 데 도움이 됩니다.

빠른 시작




// prerequesite
npm install truffle -g
// quick start
npx create-smart-contract my-contract


무엇이 포함되어 있습니까?



이 스캐폴드는 몇 가지 유용한 프레임워크와 패키지를 설치하고 구성합니다.

포함된 프레임워크 및 플러그인



  • truffle
  • @truffle/hdwallet-provider
  • eth-gas-reporter
  • solidity-coverage
  • truffle-assertions


  • hardhat
  • @nomiclabs/hardhat-ethers
  • @nomiclabs/hardhat-truffle5
  • @nomiclabs/hardhat-waffle
  • @nomiclabs/hardhat-web3


  • 포함된 패키지


  • ethers
  • @openzeppelin/contracts
  • chai
  • solidity-docgen
  • mocha
  • prettier
  • prettier-plugin-solidity
  • solc
  • web3
  • ethereum-waffle

  • 구성 파일


  • .gitignore
  • .prettierrc
  • hardhat.config.js
  • slither.config.json
  • solcover.js
  • truffle-config.js

  • npm 스크립트


  • npm run test : /test 폴더에서 테스트를 실행합니다.
  • npm run doc : doxygen을 기반으로 문서를 생성합니다.
  • npm run coverage : .solcover.js에 의해 구성된 코드 커버리지 생성
  • npm run analyze slither.config.json에 의해 구성된 정적 분석 스마트 계약

  • 주르르 미끄러짐 사용자 정의



    개발 설정




    git clone https://github.com/glazec/create-smart-contract.git
    cd create-smart-contract
    npm link
    


    그런 다음 create-smart-contract는 로컬 버전을 가리킵니다.

    종속성 사용자 지정


    installPackages에서 index.js를 수정합니다.
    예를 들어, hardhat만 설치하려고 합니다.

    const installPackages = () => {
        return new Promise(resolve => {
            console.log("\nInstalling hardhat\n".cyan)
            shell.exec(`npm install --save-dev hardhat`, () => {
                console.log("\nFinished installing packages\n".green)
                resolve()
            })
        })
    }
    


    템플릿 사용자 정의



    템플릿을 templates/ 폴더에 추가합니다.
    그런 다음 템플릿을 templates/templates.js 에 추가하십시오.
    예를 들어 .env 를 추가하려고 합니다.
    먼저 .envtemplates/ 에 넣고 templates/templates.js 수정합니다. 내보낸 dict의 키는 파일 이름이 됩니다.

    let fs = require('fs')
    let path = require('path')
    const gitIgnore = fs.readFileSync(path.resolve(__dirname, './gitignore'))
    const solcover = fs.readFileSync(path.resolve(__dirname, './solcover.js'))
    const slither = fs.readFileSync(path.resolve(__dirname, './slither.config.json'))
    const hardhatConfig = fs.readFileSync(path.resolve(__dirname, './hardhat.config.js'))
    const truffleConfig = fs.readFileSync(path.resolve(__dirname, './truffle-config.js'))
    const prettier = fs.readFileSync(path.resolve(__dirname, './.prettierrc'))
    const package = fs.readFileSync(path.resolve(__dirname, 'package.json'))
    const env = fs.readFileSync(path.resolve(__dirname, '.env'))
    module.exports = {
        '.gitignore': gitIgnore,
        'solcover.js': solcover,
        'slither.config.json': slither,
        'truffle-config.js': truffleConfig,
        'hardhat.config.js': hardhatConfig,
        '.prettierrc': prettier,
        'package.json': package,
        '.env': env
    }
    
    

    좋은 웹페이지 즐겨찾기