블록체인 스터디 [13주차]

개발새발·2021년 8월 9일
0

블록체인 스터디

목록 보기
9/25

블록체인 스터디 [13주차]

스터디를 두 번이나 빠져서 생각한만큼 진도를 많이 못 나갔다. 이번주는 저번주에 못다한 cryptozombies lesson5를 마무리 했다. 라이브러리 사용방법과 컨트랙트 보안 강화를 위해 오버플로우 및 언더플로우 방지가 주된 내용이었다.

오버플로우와 언더플로우를 막기위해, OpenZeppelinSafeMath 라이브러리를 사용했다. SafeMath 라이브러리는 add, sub, mal, div 4개의 함수를 가지고 있고 이 함수들에 접근 방법은 다음과 같다 :

using SafeMath for uint256;

uint256 a = 5;
uint256 b = a.add(3); // 5 + 3 = 8
uint256 c = a.mul(2); // 5 * 2 = 10

라이브러리는 contract와 비슷하지만 조금 다른 점이 있다. 우리의 경우에 라이브러리는 우리가 using키워드를 사용할 수 있게 해준다. 이를 통해 라이브러리의 메소드들을 다른 데이터 타입에 적용할 수 있다.

SafeMathadd 함수의 내용 :

function add(uint256 a, uint256 b) internal pure returns (uint256) {
	uint256 c = a + b;
	assert(c >= a);
	return c;
}

assert는 조건을 만족하지 않으면 에러를 발생시킨다는 점에서 require와 비슷하다. assertrequire의 차이점은, require는 함수 실행이 실패하면 남은 가스를 사용자에게 되돌려 주지만, assert는 그렇지 않다는 것이다. assert는 일반적으로 코드가 심각하게 잘못 실행될 때 사용한다.

주석의 사용법에 관해서도 학습했고 아래 블로그에 학습한 모든 내용들을 정리해 두었다.

https://velog.io/@dogfootbirdfoot/Cryptozombies-lesson5

이제 초중급 solidity 문법은 다음주 lesson6만 하면 얼추 마무리된다. 다음주는 lesson6학습 및 전체적으로 복습을 해야겠다.

profile
블록체인 개발 어때요

0개의 댓글