# truffle

[DApp] DEX superswap 구현하기
0. Overview DEX superswap 프로젝트를 진행하면서 틈틈히 작성했던 내용들을 정리하는 글입니다. 프로젝트 진행 중 주요 기능 개발 내용을 순서대로 나열했고, 작성한 코드를 중점으로 기능 설명을 추가했습니다. 따라서, 환경 설정과 관련된 기초 자료들은 해당 Velog에서 작성된 참고자료 링크로 대체했습니다. 개발 환경 Proivder - Infura, Metamask (Wallet) Blockchain Network - Etherum Goerli Testnet UI - React, Tailwind Framework - Node.js, Truffle Language - Typescript, Javscript, Solidity etc. - Web3.js, Ehters.js, OpenZeppelin, UniswapSDK 1. Infura - Provider Endpoint Infura 회원가입 후 API Key, Goerli Testnet Endpoint 생

Truffle - 스마트 컨트랙트 배포 및 에러 정리
Truffle init으로 프로젝트를 생성하고 스마트 컨트랙트를 배포하는 과정 중 발생하는 에러를 정리해본다. 1. HDWalletProvider is not defined > ReferenceError: HDWalletProvider is not defined truffle-config.js node_modules에 생성된 truffle-hdwallet-provider 경로로 재설정 2. ReferenceError: MNEMONIC is not defined > ReferenceError: MNEMONIC is not defined 프로젝트 .env에 MNEMONIC, INFURAENDPOINTURL 설정해도 인식을 못해서 발생한 에러 메타마스크 비밀키 확인 방법은 다음 공식 사이트의 설명에 따르면 된다. https://support.metamask.io/hc/en-us/articles/360015290032 종속성 설치하고, tru
Truffle 설치하기
Truffle이란? 이더리움 가상 머신(EVM)을 활용한 블록체인용 테스트 프레임워크이자 자산 파이프라인 이더리움 및 이더리움 기반 블록체인 네트워크에서 스마트 계약을 개발, 컴파일, 배포 및 테스트하기 위한 개발 도구 세트 Truffle 테스트 실행, Truffle 콘솔 활용, 이전(migration; 스마트계약을 블록체인 상으로 배포한다는 의미), 블록체인 구성 설정 등을 할 수 있다. Truffle 전역 설치하기 문제가 발생하면 npm 앞에 sudo를 넣어 설치한다.
[TIL]23.06.09 Truffle
https://web3js.readthedocs.io/en/v3.0.0-rc.5/ > mkdir web3 cd web3 npm init ls // package.json 확인 cat package.json npm install web3 cat package.json // dependencies 추가 확인 ls // node_modules 생성 확인 > var {Web3} = require('web3') var web3 = new Web3('https://cloudflare-eth.com') >const {Web3} = require('web3') const web3 = new Web3('INFURAAPIKEY') const privatekey = 'YOUR PRIVATE KEY' // 1번 지갑 게인키 const account = web3.eth.accounts.privateKeyToAccount(privatekey) web3.eth.defaultAccount = a

[멋쟁이 사자처럼 블록체인 스쿨 3기] 23-06-08
Ganache & Truffle Ganache 가나슈는 가상의 이더리움 네트워크를 만들어 놓은 프로그램으로, 스마트 컨트랙트 실행이 가능하다. 이러한 개발 환경을 test RPC 라고 한다. Truffle NodeJs 기반으로 만들어진 이더리움 개발 프레임워크이다. 트러플 내에서 일어나는 일은 실제 이더리움 체인에서도 일어날 수 있다. 트러플은 js 문법을 사용해서 Remix IDE 내에서는 할 수 없던 것들을 처리를 할 수 있다. 한마디로 컨트랙트의 활용도가 크게 늘어난다고 볼 수 있겠다. Truffle 사용 > 1. truffle initialize. vscode 에서 처음 트러플을 initialize 할때, 위 명령어를 사용. 명령어를 입력하면 터미널에는 아래와 같이 표시된다.  기준으로 solc 버전이 0.8.18 이하일 때만 컴파일한 파일을 배포할 때 오류가 나지 않는다. build/contracts에 생긴 Counter.json, Hello.json 확인 컴파일을 진행하면 contract 마다 json 파일이 생성된다. 이 파일에 배포할 때 필요한 것들이 들어있다. 배포 truffle network 설정 배포를 하기 위해 truffle-config.js에서 networks를 설정해줘야 한다. ganache를 이용해서 로컬 환경에서 배포를 진행하기 위해 development 부분을 주석해제를 해준다. migration 파일 작성

Truffle (23/05/24)
Truffle 소개 Truffle 은 이더리움 디앱 개발을 위해 사용되는 프레임워크입니다 스마트 컨트랙트 컴파일부터 배포와 테스트까지 가능한 올인원 툴로써 디앱 개발에 많은 편의성을 제공합니다 (특히 calll과 send를 날리는 과정이 크게 단축됩니다) 간편한 툴인 만큼 솔리디티와 블록체인 네트워크의 기본원리를 알고 쓰는 것이 중요합니다 설치 & 실행 터미널에 명령어를 입력하면 컨피그 파일 생성과 함께 위와 같은 디렉토리 구조가 형성됩니다
Truffle Suite에 있는거 다해보기(2): Marketplace
https://trufflesuite.com/guides/nft-marketplace/ 위 링크에서는 optimism-goerli 네트워크에서 테스트를 진행했지만 이 글에서는 Ganache 로컬 네트워크에서 진행합니다. 기본 세팅 및 환경 설정은 위 페이지를 참고하시면 됩니다. > ERC-721은 NFT의 표준입니다. NFT는 대체불가 토큰의 약자로 모두 제 각각의 가치를 갖고 있습니다. 이를 통해 디지털 자산에 대한 소유권을 보장합니다 https://docs.openzeppelin.com/contracts/2.x/api/token/erc721 민팅하는 스마트 계약 작성 마켓플레이스 스마트 계약 배포하기 truffle-config.js의 development부분을 ganache 네트워크에 맞게(http://127.0.0.1:7545) 수정한 뒤 truffle migrate를 하면 가나시 거래 내역에서 스마트 계약 2개가 배포된 것을 확인할 수
Truffle 배포 문제
Truffle을 통해서 배포를 진행해보던 도중 아무리 배포를 진행해도 Contract가 배포되지 않는 현상이 발생하였다. 이유는 파일명에 있었다. Truffle의 배포 스크립트 파일 명은 숫자로 시작해야한다. 1MyContractdeploy.js 1MyContractDeploy.js 1MyContract.js 어떤 방식이든 제일 앞에는 숫자가 와야하고 그 뒤에 설명을 붙어야한다. 만약 숫자가 없다면 컴파일만 진행되고 배포는 진행되지 않는다.

TIL 37 - Truffle, JS 테스트 프레임워크(mocha)
truffle 테스트 test는 javascript 기반 테스트 프레임 워크인 mocha를 사용한다. 기본 구조 컨트랙트 불러오기 컨트랙트 배포 기본적으로 account[0]으로 contract를 배포한다. 설명을 위한 부분 describe 테스트들을 구분짓고 테스트에 대해 설명하는 함수. 주로 Object 명이나 function 명을 작성한다. describe안에 describe를 중첩하여 사용할 수 있다. 하나의 테스트 코드 시작 it 어떤 결과가 나와야하는지 명시한다. 보통 어떤 함수의 결과로 기대되는 값(예측값)을 작성 인스턴스 생성 Counter Contract가 배포된 Instance를 가져온다. get() 실행하기 비교하기 assert node.js
Truffle 테스트 방법
truffle 테스트 test는 javascript 기반 테스트 프레임 워크인 mocha를 사용한다. 기본 구조 컨트랙트 불러오기 컨트랙트 배포 기본적으로 account[0]으로 contract를 배포한다. 설명을 위한 부분 describe 테스트들을 구분짓고 테스트에 대해 설명하는 함수. 주로 Object 명이나 function 명을 작성한다. describe안에 describe를 중첩하여 사용할 수 있다. 하나의 테스트 코드 시작 it 어떤 결과가 나와야하는지 명시한다. 보통 어떤 함수의 결과로 기대되는 값(예측값)을 작성 인스턴스 생성 Counter Contract가 배포된 Instance를 가져온다. get() 실행하기 비교하기 assert node.js
Truffle 실습2 ( local 다른 컨트랙트 import, Goerli 테스트넷에 베포하기)
다른 컨트랙트 import해보기 A.sol, B.sol을 각각 만든후 상태변수 선언 후 C.sol에서 둘의 상태변수 더한값 리턴하기 A.sol, B.sol 작성 후 C.sol작성 이때 constructor에 들어갈 두 주소는 Deploy용 js파일에서 작성한다. 3Csol.js 먼저 A, B를 Deploy한후 C를 Migrate하면 된다. 그럼 A, B만 Migrate하는 방법은 > truffle migrate --f n --to m 하면 n번부터 m번까지 Migrate하겠다는 뜻. 그래서 deploy용 js파일을 작성할때는 접두어로 순서를 쓰라고 공식문서에도 나와있다고 한다. 만약 주소를 저렇게 하드코딩으로 쓰지 않고 자동으로 불러오고 싶으면? 이런식으로 require로 정보를 가져와서 deployed된 아리를 가져와 .address로 작성하면 된다. 마지막 return deployer.deploy(C, a.address, b.address); 이나 a

Truffle 실습
truffle 실습 Remix에서만 solidity를 진행 하다가 드디어 truffle을 시작하게 되었다. Truffle이란? > Truffle은 스마트 컨트랙트 개발, 컴파일, 배포 그리고 테스팅을 쉽게 할 수 있도록 도와주는 프레임워크입니다. 실습 시작전 체크사항 Node.js Truffle vsCode Ganache Node.js는 설치가 되있어서 패스. truffle부터 설치하자. 참고로 본인은 윈도우 환경이다. PowerShell을 이용 해서 명령어 입력(관리자 권한으로 실행) Truffle 설치 truffle 설치 명령어 truffle 설치가 완료되면 명령어로 확인할 수 있다. 여기서 설치는 잘되는데 트러플 버젼을 확인하려고 하면 계속 다음과 같은 오류가나서 엄청 해맸다. 천천히 오류를 읽어봐서 https://go.microsoft.com/fwlink/?LinkID=135170 요 사이트에서 읽어보면 > PowerS

Truffle
🍄 What is Truffle? > Truffle은 블록체인 네트워크에 작성한 contract를 배포해주는 도구라고 생각하면 된다. > 물론 remix를 통해서도 배포할 수 있다. 이런 경우 truffle은 필요가 없다. 하지만 배포할 contract가 많은 경우, 한 번에 배포 가능한 truffle이 더 편하다. 💡 Ready(사전작업) Truffle 프로젝트 생성(truffle이 npm으로 설치되어있다고 가정한다.) 다음 명령어를 통해 Truffle Sample Project를 만들어보자. 🗂️ 폴더설명 정상적으로 완

Hardhat 사용하기
Hardhat npm install --save-dev hardhat npx hardhat Truffle과 유사한 EVM용 스마트 컨트랙트 통합 개발툴 특징 Truffle과 달리 로컬 블록체인도 같이 제공 프로젝트 내의 로컬 패키지로 설치하여 사용 이는 개발 환경을 재현 가능하게 해주고 버전 충돌을 방지함 console.sol 라이브러리 파일 제공 컨트랙트 개발 시 중간중간에 값을 출력해보는 용도로 유용하게 사용됨 구조

블록체인 truffle react box로 시작하기
💡 블록체인 리액트 프로젝트 만들기 시작 📥 먼저 node.js 설치 yarn을 설치 빈 폴더를 만들고, 해당 폴더에서 터미널을 연다. 윈도우에서 터미널에서 열기를 클릭하면 윈도우의 파워셀이 열릴 것이다. 맥과 리눅스에서는 터미널을 열어준다. node.js 와 yarn 을 설치한다 node.js 설치링크로 들어가서 설치를 하는데, 최신버전 말고 LTS 버전을 설치해준다. LTS 는 Long Term Support 의 줄임말로 노드에서 안전성과
[solidity] ERC-721 NFT 만들기
solidity를 활용하여 이더리움 ERC-721 NFT를 만들어서 배포해보자 Solidity = 이더리움 정적 컨트랙트 지향 언어 > **IDE : vscode FRAMEWORK : truffle** openzeppelin api 사용 extension 설치 solidity solidity Extended solidity Contract Flattener truffle 설치 sudo npm install -g truffle truffle init (스마트 컨트랙트를 만들기 위한 구조가 자동 생성 됨) 스마트 컨트랙트 구조 >#### contracts (solidity 파일) migration (개발한 스마트컨트랙트를 배포할 때 필요한 파일 저장) test (테스트 케이스 작성) truffle-config.js (트러플 설정 파일) contract

Truffle로 SmartContract 배포하기
시작하며 간단한 스마트 컨트랙트를 작성하고 Truffle을 사용하여 컴파일한 다음 Ropsten 네트워크에 배포하는 방법을 다뤄보겠습니다. 시작하기 앞서 3가지가 준비되어 있어야합니다. infura의 이더리움 프로젝트 Node.js 설치 테스트용 이더리움 지갑 단계 1. 트러플(Truffle) 설치 트러플은 블록체인 네트워크를 위한 스마트 계약 개발 도구이자 테스트 프레임워크입니다. Node.js 패키지 매니저를 사용하여 Truffle을 전역으로 설치합니다. 2. 이더리움 지갑에 잔고 추가 배포를 위해서는 약간의 가스비가 필요합니다. 따라서 Ropsten 네트워크의 이더리움 계정에 테스트넷 ETH를 추가합니다. [https://faucet.dimensions.network](http

Truffle을 사용해 Ropsten Testnet에 ERC-721 NFT 배포하기 (Opensea 클론코딩)
목표 👉 OpenSea 클론코딩에 사용되는 NFT Create 기능을 위한 Solidity 컨트랙트 코드 Truffle에서 Infura API를 이용해 Ropsten 네트워크에 컨트랙트를 배포 NFT Recipient Address / ENDPOINT URL을 입력받아 NFT가 민팅되는 함수를 구현 개발 흐름도 Truffle 개발환경 설정 (Ropsten testnet과의 연결) Solidity 컨트랙트 코드 작성 Truffle만을 사용하여 네트워크에 배포, verify, publish까지 진행 컨트랙트 코드를 사용해 이더스캔에서 NFT 민팅을 진행 1. Truffle 개발 환경 설정 1) 프로젝트 루트 디렉토리에서 contract 폴더를 생성하고, truffle 개발 환경을 세팅한다 2) truffle-config.js 설정 truffle-config.js 파일에서 Infura를 사용하기 위한 설정을
[블록체인 개발] Truffle 사용시 오류 해결
Truffle 버전과 노드js버전 및 솔리디티 버전이 안맞아서 생기는 문제가 많다. > npm install -g truffle 이렇게 버전을 지정하지 않고 설치하면 truffle 최신 버전으로 설치되기 때문에 node.js와 솔리디티 버전 등과 호환이 되는 버전으로 설치를 해야 된다. > npm install -g truffle@5.0.4 위와 같이 버전을 지정해서 설치를 하자!(솔리디티와 node.js도 마찬가지) 참고 블로그 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=emmaeunji&logNo=221884251952