차이점을 명확하게 알아야 한다.주어진 조건이 참인지 확인하는 것에 사용한다. 주로 입력값의 유효성 검사나 사전 조건 확인에 쓰인다. require 조건이 참이 아닌 경우, 현재 함수는 오류 메세지와 함께 종료되고 상태변경은 모두 롤백된다. 이를 통해서, 예기치 못한 오
Invariants는 소프트웨어 공학 용어로서, 프로그램의 실행 도중에 항상 참이어야 하는 조건을 의미합니다.다시 말해서, 프로그램의 특정 부분에서 값이나 상태가 변경되더라도 해당 불변성(invariants)은 항상 유지되어야 합니다.예를 들어서 학생의 나이는 항상 0
storage는 블록체인 상에 영구적으로 저장되는 데이터를 다루는 공간입니다. 상태변수(State Variables)는 항상 storage에 저장되며, 이 데이터는 트랜잭션 간에 영구히 유지됩니다. 그렇기 때문에 storage는 가스비가 많이 드는 편입니다.메모리는 임
Function Modifier는 함수에 미리 정의된 로직을 적용할 수 있게 해주는 기능입니다. 이를 통해 반복적인 코드를 줄이고 가독성을 높일 수 있습니다. 다음은 onlyOwner라는 Function Modifier를 사용한 예시입니다.위의 onlyOwner Mod
msg는 솔리디티에서 제공하는 전역 변수로서, 현재 함수호출에 대한 정보를 담고 있습니다.현재 함수를 호출한 주소를 나타냅니다. 주로 컨트랙트의 특정함수가 특정 사용자만 호출할 수 있게 제한할 때 사용됩니다.처음에 많이 헷깔렸던 내용입니다.예를 들어서 Contract
재진입 공격은 외부 호출이 현재 함수의 실행을 방해하거나 변경할 수 있는 상황을 이용하는 것이다. modifier 키워드를 사용해 noReEntrancy 라는 modifier를 정의하였습니다. noReEntrancy modifier는 locked 라는 상태 변수를 사용
getTwo() : 2getThree() : 3getTwo() 같은 경우는 3 / 2를 해서 반올림한다. 그럼 1이다. 이후에 1 \* 2를 하면 2를 리턴하게 된다.getThree() 같은 경우는 정수리터럴이므로 3 / 2 해서 1.5이다. 이후에 1.5 \* 2를
스칼라 타입이란 단일 값만 저장할 수 있는 데이터타입을 의미합니다. 스칼라 타입에는 정수, 부동 소수점 수, 문자, 불리언 등이 포함됩니다.솔리디티에서 주로 사용되는 스칼라 타입은 다음과 같습니다.불 타입으로 true 또는 false 중 하나의 값을 가집니다.부호 없는
Nonce는 Number used once의 약자로, 특정 목적을 위해서 한번만 사용되는 숫자를 의미합니다. 크립토그래피와 블록체인 컨텍스트에서 nonce는 중요한 역할을 합니다. 블록체인에서의 nonce블록체인에서 nonce는 블록을 생성하는 과정에서 중요한 역할을
튜링 완전성(Turing completeness)은 계산 이론에서 언어나 시스템이 튜링 머신과 동일한 계산 능력을 가지고 있음을 의미합니다. 다시 말해서, 언어나 시스템이 튜링 완전하다면 그것으로 모든 계산 가능한 문제를 풀 수 있다는 것입니다.기본적인 연산덧셈, 뺄셈
일단 이 두 개는 매우 중요한 역할을 합니다. 디파이 만들때 거의 필수로 알아야하는 것 같습니다. 이 두 함수는 컨트랙트가 이더리움을 직접 받거나, 일치하는 함수 서명이 없을때 호출되는 기능을 제공합니다.receive함수는 솔리디티 0.6.0버전부터 도입되었습니다.컨트
컨트랙트를 짜다가 디버깅을 해야하는데, 당연히 트랜잭션 정보를 볼 줄 알아야하는데, 잘 볼줄을 몰라서 이 참에 한번 공부해보려고 합니다. from: 0x5B3...eddC4to: QVEcore.sendNftToContract(uint256) 0x7EF...8CB47va
test 디렉토리에 있는 모든 테스트 파일을 실행합니다.예를 들어 test/token-test.js 파일만 실행하고 싶다면, npx hardhat test/token-test.js 를 입력하면 됩니다.여기서 네트워크명 은 hardhat.config.js에 설정된 네트워