BlockChain/solidity9 [Solidity] 전역변수 알아보기 전역 변수 일단적으로 전역 변수는 어떤 변수 영역 내에서도 접근할 수 있는 변수를 의미합니다. Solidity에서 전역변수는 블록체인 안에 있는 변수로, 블록체인 및 트랜잭션에 대한 속성을 가져올 수 있습니다. block 블록에 대한 정보를 가지고 있습니다. block.blockhash(uint blockNumber) returns (bytes32) 주어진 블록의 해시 block.coinbase(address) 현재 블록 채굴자의 주소 block.difficulty(uint) 현재 블록 난이도 block.gaslimit(uint) 현재 블록 gaslimit block.number(uint) 현재 블록 번호 block.timestamp(uint) || now(uint) unix epoch 이후의 현재 블록.. 2022. 5. 21. [Solidity] OpenZeppelin - Ownable Ownable 컨트랙트가 한번 배포가 되면 더 이상 바꿀 수 없습니다. 하지만 특정 상황에서 내용을 변경해야 하는 경우들이 있습니다. 예를 들어 다른 컨트랙트에서 정보를 받아오는 소스가 있는데 해당 컨트랙트에 문제가 생겨 정보를 받아 오지 못할 수 있습니다. 이러한 경우 컨트랙트 주소를 변경해줘야 합니다. 개발자는 컨트랙트에서는 결점을 보안하기 위해 정보를 수정할 수 있는 함수를 만듭니다. 그러면 컨트랙트를 배포한 이후에도 해당 함수를 통해 업데이트를 할 수 있습니다. 하지만 이러한 함수가 있다면 누구나 정보를 업데이트할 수 있다는 문제가 생깁니다. 누구나 컨트랙트를 업데이트할 수 있는 문제는 컨트랙트를 소유 가능하게 만듦으로써 해결할 수 있습니다. OpenZeppelin의 Ownable 컨트랙트를 이용.. 2022. 5. 20. [Solidity] 함수 접근 제어자 알아보기 함수 접근 제어자 함수 접근 제어자는 함수를 외부에서 접근하는 것을 제어합니다. Solidity에는 public, private, internal, external의 접근 제어자가 있습니다. public public은 어디서나 함수에 접근이 가능합니다. private private는 함수가 정의된 컨트랙트 내에서만 접근이 가능합니다. internal internal은 함수가 정의된 컨트랙트와 컨트랙트를 상속하는 컨트랜트에 서 접근이 가능합니다. 디폴트 값으로 internal이 적용됩니다. external external은 함수가 정의된 컨트랙트 밖에서만 접근이 가능합니다. 함수가 정의된 컨트랙트 내의 다른 함수에 의해 호출될 수 없습니다. 인터페이스를 작성할 때 사용합니다. 2022. 5. 20. [Solidity] require 알아보기 require require은 특정 조건이 참이 아닐 때 함수가 에러는 발생하고 실행을 종료됩니다. require 사용법 uint val = 10; // val의 값이 10이면 반으로 나누고 10이 아니면 에러를 출력 function half(uint val){ require(val == 10); val = val/10; } 2022. 5. 20. 이전 1 2 3 다음