반응형 블록체인/WEB3 개발42 모든 언어의 시작은 "Hello World" 부터! 솔리디티로 헬로우월드 찍어보기 💡Hello World! 모든 언어의 시작은 Hello World 찍어보기부터! 오늘은 솔리디티 언어로 간단하게 Hello World를 반환하는 컨트랙트를 작성해보고자 한다. ➤ Step 1. http://remix.ethereum.org/ 에 접속한다. ➤ Step 2. helloWorld.sol 파일을 생성한다. ➤ Step 3. SPDX 라이센스와 pragma를 설정한다. // SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.7; ➤ Step 4. contract 키워드를 사용해 helloWorld 컨트랙트를 만든다. // SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.7; contract helloWor.. 2022. 7. 13. Ropsten 테스트넷에 컨트랙트 배포하기 💡 Ropsten 테스트넷에 컨트랙트 배포하기 1. Remix 에는 MetaMask를 통해 Ropsten 테스트넷에 연동되어 있는 상태이다. 연동이 잘 되어 있다면 Deploy 버튼을 누른다. Remix에 Metamask 연결하는 방법 2. 다음과 같은 팝업창이 뜨는데, 예상되는 gas 수수료를 확인할 수 있다. 여기서 주의할 점은 메인넷이 아닌 테스트 네트워크가 맞는지 꼭 확인해야한다. 3. 확인을 누르면 Ropsten 테스트 네트워크에 스마트 컨트랙트를 배포하는 트랜잭션이 실행되고, 트랜잭션 정보가 터미널에 출력된다. 배포 끝! ✓ 이더스캔에서 컨트랙트 검증 및 등록하기 1. 트랜잭션 정보 중 transaction hash값으로 우리가 컨트랙트를 배포한 트랜잭션을 식별할 수 있다. 이더스캔에 접속해 .. 2022. 7. 12. Remix에 메타마스크(MetaMask) 연결하기 💡 Remix에 MetaMask 연결하기 Remix에 MetaMask 를 연결하여, 웹 브라우저로 스마트 컨트랙트를 빌드하고 배포할 수 있다. Remix에 Metamask를 연결해보자. 메타마스크를 연결하기 위해서는 메타마스크 확장 프로그램에 로그인된 상태여야 한다. Step 1. 리믹스에 접속한 다음, 왼쪽 탭에서 Deploy & run transactions 탭을 선택한다. Step 2. 왼쪽 상단의 ENVIRONMENT를 선택하고, Injected Web3를 선택한다. Step 3. 팝업창으로 실행된 MetaMask에서 연결하려는 지갑을 선택하고 다음을 누르고 연결을 누른다. Step 4. Remix의 계좌와 연결하려는 계좌가 같다면 성공적으로 연결된 것이다. 2022. 7. 12. 로컬 컴퓨터에 Remix 코드 저장하기 - Remixd 💡 Remixd Remix IDE는 웹 브라우저에서 동작하는 IDE이기 때문에, 브라우저 캐시가 지워지는 경우 작성된 파일도 함께 삭제될 수 있습니다. Remixd는 이러한 불편함을 해소시켜줍니다. Remixd는 로컬 컴퓨터에 저장되어 있는 소스 코드 파일 또는 폴더를 Remix IDE와 로컬호스트에서 웹소켓 통신으로 연결합니다. Remix IDE에서 연결된 파일 또는 폴더가 변경될 경우, 로컬 컴퓨터에도 자동으로 저장합니다. Remixd를 이용해서 편리하게 코드를 백업할 수 있게 됩니다. ➤ Remixd Github : https://github.com/ethereum/remix-project/tree/master/libs/remixd 💻 Remixd 사용법 Step 1. Visual Studio Co.. 2022. 7. 12. Remixd 문제 해결 : Cannot connect to the remixd daemon. Please make sure you have the remixd running in the background. 💡Remixd alert 해결하기 remixd를 이용하여 remix IDE를 로컬 파일과 연결하려고 시도하는 중에 위와 같은 에러를 만났다. Cannot connect to the remixd daemon. Please make sure you have the remixd running in the background. https://www.npmjs.com/package/@remix-project/remixd @remix-project/remixd remix server: allow accessing file system from remix.ethereum.org and start a dev environment (see help section). Latest version: 0.6.3, last pu.. 2022. 7. 12. 스마트 컨트랙트의 동작 방식 💡 스마트 컨트랙트의 동작 방식 스마트 컨트랙트는 블록체인 위에 올라가서 거래 이외의 것들을 할 수 있게 만들어 줍니다. 이 스마트 컨트랙트는 어떻게 만들고 어떻게 사용될까요? 스마트 컨트랙트의 동작 방식과 전반적인 흐름에 대해 살펴보도록 하겠습니다. 💻 스마트 컨트랙트 코딩 블록체인에 올라갈 스마트 컨트랙트를 구현해보도록 하겠습니다. 스마트 컨트랙트는 스마트 컨프랙트를 구현할 수 있는 언어로 코드를 작성합니다. 다양한 IDE에서 작성할 수 있지만 테스트할 수 있는 IDE는 제한적입니다. IDE란 Integrated Development Environment 우리말로는 통합 개발 환경입니다. 이는 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리할 수 있는.. 2022. 7. 12. 이더리움 개발 환경 구성하기 - Remix, 스마트 컨트랙트 코드 작성해서 컴파일해보고 배포까지 해보자! 💡 Remix - 이더리움 개발 환경 구성하기 이더리움 스마트 컨트랙트 코드를 작성하는 데는 다양한 IDE가 있습니다. 우리가 지금까지 사용한 VSCode는 데스크톱 IDE로, solidity 언어 익스텐션을 설치하여 컴파일을 할 수 있습니다. 하지만, VSCode를 비롯한 Atom, IntelliJ 등은 자체적으로 솔리디티 코드를 디버깅하거나 컴파일하는 기능이 없기 때문에 솔리디티 코드를 컴파일, 배포, 테스트, 디버깅 해주는 Truffle과 로컬 환경에 블록체인 테스트넷을 사용할 수 있게 해주는 Ganache를 함께 사용해야 합니다. Remix를 이용하면 이러한 불편함을 해소시킬 수 있습니다. 웹 기반 IDE인 Remix는 솔리디티 개발을 위한 IDE입니다. 자체적으로 솔리디티 개발을 위한 컴파일,.. 2022. 7. 12. 솔리디티 컴파일러(solc) 설치하고 컴파일해보기 💡솔리디티 컴파일러 설치하기 이더리움에서 스마트 컨트랙트를 실행하기 위해서는 솔리디티 코드를 작성하고, solc 라는 솔리디티 컴파일러로 컴파일하여 이더리움 블ㄹ록체인에 배포해야 합니다. 솔리디티 컴파일러(solc)를 설치해보고, 코드를 컴파일 해보도록 하겠습니다. 아래 명령어를 입력하여 솔리디티 컴파일러를 설치해주시면 됩니다. 저는 현재 MAC OS를 사용하고 있으니, 이 점 유의해서 봐주시면 좋을 것 같습니다. 💻 우분투 OS sudo add-apt-repository ppa:ethereum/ethereum sudo apt update sudp apt install solc 💻 맥 OS brew update brew tap ethereum/ethereum brew install solidity 설치가.. 2022. 7. 12. 솔리디티 기본 문법 - 반복문 💡솔리디티 기본 문법 - 반복문 (loop) 반복문은 특정한 작업을 계속해서 수행해야 할 때 사용한다. ✓ while문 while 문은 가장 기본적인 반복문이다. 조건식이 참일 때 중괄호 안의 코드를 반복적으로 시행하고, 조건식이 거짓이 되면 박복문을 종료한다. while (조건식){ 조건식이 참이면 여기있는 코드 수행 } // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.14; import "./UIntFuncstions.sol"; contract WhileLoop { uint[] data; uint8 j = 0; function loop() public returns (uint[] memory) { while (j 2022. 7. 11. 솔리디티 기본 문법 - 조건문 💡솔리디티 기본 문법 - 조건문 "조건문과 반복문 두 개면 뭐든지 만들 수 있다." 는 말이 과언이 아닐 정도로 이 둘은 중요한 문법이다. 프로그램은 주어진 조건에 따라 반복하면서 다양한 작업을 수행하기 때문이다. 그럼 조건문에 대해 알아보자! ✓ 조건문 (conditional statements) if 문의 사용법은 다음과 같다. (조건식)과 같이 괄호 안에 특정한 조건을 정의하고, 그 조건이 참이라면 {코드} 를 수행한다. 1. 첫 번째 if 문은 괄호 안에 있는 조건식 A 가 참일 경우 해당 내용을 수행하고 아닐 경우는 수행하지 않는다. 2. 두 번째 if / else 문은 if 문 안의 조건식 A가 참일 경우네는 해당 내용을 수행하고 아닐 경우 else 문의 내용을 수행한다. 3. 세 번째 if .. 2022. 7. 11. 솔리디티 기본 문법 - 상속 및 라이브러리 💡솔리디티 기본 문법 - 상속 및 라이브러리 ✓ 상속 솔리디티의 contract 객체는 상속을 지원한다. 상속을 통해 컨트랙트에 기능을 추가하고 확장할 수 있다. 상속을 사용하려면 부모 컨트랙트에 is 키워드를 지정해준다. contract ChildContract is ParentContract { // ... } 솔리디티는 다중 상속도 지원한다. contract ChildContract is ParentContract1, ParentContract2, ParentContract3 { // ... } ✓ 라이브러리 라이브러리의 목적은 "코드를 공유" 하기 위함이다. 컨트랙트 간에 코드를 공유하거나 공통적인 기능을 재사용하고자 할 때 우리는 라이브러리를 활용한다. 외부 라이브러리를 호출할 시에는 기존 컨트.. 2022. 7. 8. 솔리디티 기본 문법 - 이벤트 및 에러 핸들링 💡솔리디티 기본 문법 - 이벤트 및 에러 핸들링 ✓ 이벤트 이벤트는 어떤 결과가 발생했을 때 해당 컨트랙트에서 dApp 클라이언트 또는 다른 컨트랙트에게 전달한다. 컨트랙트는 event 키워드를 사용해 이벤트를 설정하고, 경우에 따라 emit 키워드를 사용해 이벤트를 실행한다. 이벤트가 실행된 경우, 트랜잭션에 기록된다. contract coinTransfer { // event 이벤트명(파라미터 유형1 파라미터1, 파라미터 유형2 파라미터2, ...) event Transfer(address from, address to, uint256 value); function transfer(address to, address amount) { // ... // emit 이벤트명(인자1, 인자2, ...) em.. 2022. 7. 8. 이전 1 2 3 4 다음 728x90