BlockChain(45)
-
Solidity 문법 - (15) struct (타입)
목차 1. Struct( 구조체 ) 2. Struct 예제코드 1. Struct ( 구조체 ) struct 타입은 구조체를 새로 만드는 것이다. typescript의 인터페이스와 같이 미리 객체 형태의 구조를 설정하여 타입을 명시해주는 것이다. struct를 사용하는 문법은 다음의 예시를 보도록 하자. struct Person { string name; uint256 age; uint256 height; } 컨트랙트 전역에 선언하여 함수에서 Person이라는 타입으로 사용이 가능하다. https://char1ey.tistory.com/134 Solidity 문법 - (2) 솔리디티 타입 목차 1. 솔리디티 타입 2. 타입 예제 코드 1. 솔리디티 타입 Solidity에서 쓰이는 타입들에 대해서 알아보자...
2023.06.01 -
Solidity 문법 - (14) Array
목차 1. Array 2. Array 예제코드 1. Array 다른 언어들과 마찬가지로 length를 구할 수 있고, 또한 for loop문을 통해 배열안의 값들을 순회할 수 있다. 솔리디티에서는 Array보다는 mapping을 선호하는데, for loop문을 통해서 디도스 공격과 같은 것들이 들어올 수 있기 떄문이다. Array는 다음과 같이 정의할 수 있다. [타입] [ ] [접근 제한자] [변수명]; 컨트랙트의 가장위의 변수로도 값을 넣어줄 수 있다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ArrayExam { // 배열에 1, 2, 3, 4, 5를 넣어놓는 것. uint256[] public numArr = [1, 2, ..
2023.05.30 -
Solidity 문법 - (13) Mapping
목차 1. Mapping 2. Mapping 예제코드 1. Mapping 솔리디티에는 Mapping이라는 타입이 있다. Mapping 타입은 키와 값의 형태로 데이터를 저장한다. Mapping은 키와 값으로 이루어져 있기 때문에 length를 구할 수가 없다. Mapping 타입을 선언하는 방법은 다음과 같다. mapping( [ 타입 ] => [ 타입 ] ) [ 접근제한자 ] [변수명] ; 2. Mapping 예제코드 아래의 코드는 이름과 점수를 입력하여, 이름을 입력하면 점수를 값으로 불러오는 코드이다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract MapExam { mapping(string => uint256) private r..
2023.05.30 -
Solidity 문법 - (12) 상속의 순서와 super
목차 1. 상속의 순서 2. super 3. 예제코드 1. 상속의 순서 솔리디티에서는 상속을 할 때 복수의 컨트랙트를 상속 할 수가 있다. 복수의 컨트랙트를 상속할 때는 어려울 것 없이, 상속 키워드인 is 뒤에 연속해서 적어주면 상속이 된다. 상속에는 순서가 있는데, 만약 복수의 컨트랙트에서 같은 함수를 내보내 상속받은 컨트랙트가 오버라이딩할 경우에 어떤 컨트랙트를 오버라이딩 하는지 알아야 하는데, 이를 알아보기 전에 super에 대해서 먼저 알고 예제 코드를 보도록하자. 2. super super는 컨트랙트가 부모 컨트랙트의 함수를 오버라이딩할 때, 함수의 로직이 길어서 다시 똑같이 쓰는 비효울적인 일을 해소해준다. 사용방법은 다음과 같다. super.[함수명]( ); 위의 메서드를 사용하게 되면 기..
2023.05.30 -
Solidity 문법 - (11) Event
목차 1. Event 2. Event 예제코드 1. Event 솔리디티에는 콘솔로그, 프린트와 같은 기능이 존재하지 않는다. 대신에 event라는 것이 존재하는데, event를 이용하면 블록체인 네트워크의 블록에 저장된다. 저장된 값은 블록에 저장되어 언제든지 꺼내서 사용할 수 있다. 이벤트를 선언하는 방법은 다음과 같다. contract Event { event [이벤트명](타입 [매개변수 명]); function 함수명 () public { emit [이벤트명](인자); } } event를 선언하고 이벤트명을 지정해준뒤 타입과 매개변수명을 지정하고, 사용할 때에는 emit을 이용해서 사용한다. 2. Event 예제코드 // SPDX-License-Identifier: MIT pragma solidit..
2023.05.30 -
Solidity 문법 - (10) 상속과 오버라이딩
목차 1. 상속 2. 상속 예제 코드 3. 오버라이딩 4. 오버라이딩 예제 코드 1. 상속 한 컨트랙트에서 다른 컨트랙트에 있는 기능들을 사용할 수 있는 기능이다. 자바스크립트의 상속과 비슷하다. 상속을 받는 방식은 다음과 같다. contract [상속받을 컨트랙트명(자식)] is [상속할 컨트랙트명(부모)] { // 코드 작성 } 만약 상속할 컨트랙트에 생성자 함수가 있다면 다음과 같이 사용해야한다. contract [상속받을 컨트랙트명] is [상속할 컨트랙트명]("생성자 인수") { } // 또는 contract [상속받을 컨트랙트명] is [상속할 컨트랙트명] { constructor() [상속할 컨트랙트명]("생성자 인수"){ } } 2. 상속 예제 코드 // SPDX-License-Identi..
2023.05.30