이더리움/솔리디티 20

[솔리디티] 19. 메타마스크, 테스트넷 배포

이전글 [솔리디티] 18. ERC-721 NFT 이전글 [솔리디티] 17. ERC-20 토큰 이전글 [솔리디티] 16. import, 라이브러리 이전글 [솔리디티] 15. 인터페이스 이전글 [솔리디티] 14. 상속, 오버라이딩, 다중 상속 이전글 [솔리디티] 13. receive, fallback, kwjdnjs.tistory.com 메타마스크, 테스트넷 배포 이번 글에서는 메타마스크를 이용하여 컨트랙트를 테스트넷에 배포하는 방법에 대해 알아보겠습니다. 1. 메타마스크 지금까지 컨트랙트를 내장 블록체인에서만 배포하여 테스트했습니다. 하지만 메인넷에 컨트랙트를 배포하기 위해서는 실제로 운용 중인 테스트용 블록체인인 테스트넷에서도 컨트랙트를 배포하여 테스트할 필요가 있습니다. 테스트넷에 컨트랙트를 배포하기 ..

[솔리디티] 18. ERC-721 NFT

이전글 [솔리디티] 17. ERC-20 토큰 이전글 [솔리디티] 16. import, 라이브러리 이전글 [솔리디티] 15. 인터페이스 이전글 [솔리디티] 14. 상속, 오버라이딩, 다중 상속 이전글 [솔리디티] 13. receive, fallback, delegatecall 이전글 [솔리디티] 12. kwjdnjs.tistory.com ERC-721 NFT 이번 글에서는 NFT 표준인 ERC-721에 대해 알아보겠습니다. 1. NFT NFT는 대체 불가능한 토큰(Non-fungible token)의 약자입니다. NFT에 대한 보다 자세한 내용은 아래 글을 참조해 주세요. [이더리움과 월드 컴퓨터] 3-2. NFT 이전글 [이더리움과 월드 컴퓨터] 3-1. 토큰 이전글 [이더리움과 월드 컴퓨터] 2-5. ..

[솔리디티] 17. ERC-20 토큰

이전글 [솔리디티] 16. import, 라이브러리 이전글 [솔리디티] 15. 인터페이스 이전글 [솔리디티] 14. 상속, 오버라이딩, 다중 상속 이전글 [솔리디티] 13. receive, fallback, delegatecall 이전글 [솔리디티] 12. Payable, Transfer, Send, Call 이전글 [솔리디티 kwjdnjs.tistory.com ERC-20 토큰 이번 글에서는 ERC-20 토큰에 대해 알아보겠습니다. 1. ERC-20 토큰 스마트 컨트랙트 기반 토큰은 이더리움의 스마트 컨트랙트를 통해 사용할 수 있는 암호화폐입니다. 솔리디티의 상태 변수와 함수를 이용하면 토큰을 만들 수 있습니다. 토큰에 대한 더 자세한 내용은 아래 글을 참고해 주세요. [이더리움과 월드 컴퓨터] 3-1..

[솔리디티] 16. import, 라이브러리

이전글 [솔리디티] 15. 인터페이스 이전글 [솔리디티] 14. 상속, 오버라이딩, 다중 상속 이전글 [솔리디티] 13. receive, fallback, delegatecall 이전글 [솔리디티] 12. Payable, Transfer, Send, Call 이전글 [솔리디티] 11. 에러 처리 이전글 [솔리디티] kwjdnjs.tistory.com import, 라이브러리 이번 글에서는 솔리디티의 import와 라이브러리에 대해 알아보겠습니다. 1. import 솔리디티에서는 다른 프로그래밍 언어들과 유사하게 외부 파일에 정의된 컨트랙트를 import로 불러올 수 있습니다. 실제로 워크스페이스에 두 개의 sol 파일을 생성해 하나의 sol 파일에서 다른 sol 파일의 컨트랙트를 불러와보겠습니다. 먼저 ..

[솔리디티] 15. 인터페이스

이전글 [솔리디티] 14. 상속, 오버라이딩, 다중 상속 이전글 [솔리디티] 13. receive, fallback, delegatecall 이전글 [솔리디티] 12. Payable, Transfer, Send, Call 이전글 [솔리디티] 11. 에러 처리 이전글 [솔리디티] 10. 이벤트 이전글 [솔리디티] 9. 조건문, 반복문 이 kwjdnjs.tistory.com 인터페이스 이번 글에서는 솔리디티의 인터페이스에 대해 알아보겠습니다. 인터페이스는 컨트랙트에 포함될 함수의 틀을 미리 정의하고, 다른 컨트랙트와 쉽게 상호작용 하기 위해 선언합니다. 인터페이스는 생성자와 상태 변수를 가질 수 없고, external 키워드를 가진 함수만 선언할 수 있습니다. // SPDX-License-Identifier..

[솔리디티] 14. 상속, 오버라이딩, 다중 상속

이전글 [솔리디티] 13. receive, fallback, delegatecall 이전글 [솔리디티] 12. Payable, Transfer, Send, Call 이전글 [솔리디티] 11. 에러 처리 이전글 [솔리디티] 10. 이벤트 이전글 [솔리디티] 9. 조건문, 반복문 이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 kwjdnjs.tistory.com 상속, 오버라이딩, 다중 상속 이번 글에서는 솔리디티의 상속, 오버라이딩, 다중 상속에 대해 알아보겠습니다. 1. 상속 솔리디티 컨트랙트는 객체와 유사하게 상속이 가능합니다. 다음과 같이 Parent와 Child 컨트랙트가 있을 경우, Child 컨트랙트에 is를 붙여 Parent 컨트랙트를 상속받을 수 있습니다. // SPDX-License..

[솔리디티] 13. receive, fallback, delegatecall

이전글 [솔리디티] 12. Payable, Transfer, Send, Call 이전글 [솔리디티] 11. 에러 처리 이전글 [솔리디티] 10. 이벤트 이전글 [솔리디티] 9. 조건문, 반복문 이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 [솔리디티] 7. view 함수, pure 함수, 모디파이 kwjdnjs.tistory.com receive, fallback, delegatecall 이번 글에서는 receive, fallback, delegatecall에 대해 알아보겠습니다. 1. 솔리디티 이더 송수신 정리 receive와 fallback에 대해 알아보기 전에 먼저 솔리디티에서의 이더 송수신을 정리해 보겠습니다. EOA에서 EOA로의 이더 전송은 스마트 컨트랙트를 거치지 않아도 됩니다. E..

[솔리디티] 12. Payable, Transfer, Send, Call

이전글 [솔리디티] 11. 에러 처리 이전글 [솔리디티] 10. 이벤트 이전글 [솔리디티] 9. 조건문, 반복문 이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 [솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩 이전글 [솔리디티] 6. kwjdnjs.tistory.com Payable, Transfer, Send, Call 이번 글에서는 payable, transfer, send, call에 대해 알아보겠습니다. 1. Payable payable이란 생성자나 함수에 붙일 수 있는 키워드입니다. 생성자에 payable을 붙일 경우 컨트랙트 배포 과정에서 컨트랙트 계정(CA)으로 이더를 보낼 수 있으며, 함수에 payable을 붙일 경우 함수 호출 과정에서 CA로 이더를 보낼 수..

[솔리디티] 11. 에러 처리

이전글 [솔리디티] 10. 이벤트 이전글 [솔리디티] 9. 조건문, 반복문 이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 [솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩 이전글 [솔리디티] 6. 함수, 가시성 지정자, 반환 kwjdnjs.tistory.com 에러 처리 이번 글에서는 솔리디티의 에러 처리에 대해 알아보겠습니다. 1. assert, revert, require 먼저 솔리디티에서 에러가 발생하는 상황을 만들어보겠습니다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.18; contract Err { uint8 n; function error(uint8 _n) public { n = _n - 1; } } 위 함수에..

[솔리디티] 10. 이벤트

이전글 [솔리디티] 9. 조건문, 반복문 이전글 [솔리디티] 8. 매핑, 구조체, 열거형 이전글 [솔리디티] 7. view 함수, pure 함수, 모디파이어, 오버로딩 이전글 [솔리디티] 6. 함수, 가시성 지정자, 반환 값, 지역 변수 이전글 [솔리디티] 5. 연 kwjdnjs.tistory.com 이벤트 이번 글에서는 이벤트에 대해 알아보겠습니다. 이벤트는 솔리디티에서 로그를 남기기 위해 사용하는 문법입니다. 이벤트를 사용하기 위해서는 먼저 event를 선언해 준 뒤 emit으로 호출해야 합니다. 예시 코드는 다음과 같습니다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.18; contract Event { uint n; string s; event ..