본문 바로가기

solidity

Solidity(솔리디티) v0.8.7 릴리즈 발표 2021년 8월 11일, Solidity 개발팀이 v0.8.7을 발표했습니다. 먼저 런던 하드 포크에 포함된 EIP-1559 사항인 Base Fee 부분을 지원하기 위해 Global 변수 형태로 block.basefee를, EVM bytecode로 변환 전 언어인 Yul에서는 builtin basefee()로 현재 블록의 basefee를 알 수 있습니다. 다음은 Solidity 팀에서 제공한 관련 예제입니다. contract Basefee { function basefee_global() external view returns (uint) { return block.basefee; } function basefee_inline_assembly() external view returns (uint ret).. 더보기
ERC-20 토큰(Fungible Token) 직접 만드는 방법 EIP(Ethereum Improvement Proposal)-20에 의해 다음과 같은 함수와 이벤트를 구현한 스마트 컨트랙트를 ERC-20 컨트랙트라고 합니다. function name() public view returns (string) function symbol() public view returns (string) function decimals() public view returns (uint8) function totalSupply() public view returns (uint256) function balanceOf(address _owner) public view returns (uint256 balance) function transfer(address _to, uint256 _v.. 더보기
Solidity(솔리디티): 이벤트(event) 방출(emit) 하고 안하고 차이? Solidity 개발을 처음 시작할 때 궁금한 것들 중 하나는 이벤트(event)에 대한 것일 텐데요. 이벤트가 왜 있는지, 이벤트를 발생시키면 어떤 차이가 발생하는지를 간단한 예제로 알아보도록 하겠습니다. 다음은 이벤트에 대해 알아보기 위한 예제 컨트랙트입니다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.6; contract EventTestContract { mapping(address => uint256) private _counts; event Increase(address indexed addr, uint256 oldValue, uint256 newValue); function increaseWithEvent() public returns (b.. 더보기
ERC-721 (NFT, non-fungible token) 직접 만드는 방법 이번 포스팅에서는 NFT를 직접 만드는 방법을 간단한 예제를 사용해 설명해보려고 합니다. 예제를 단순히 따라 하는 것만으로도 스마트 컨트랙트의 구현 흐름을 이해하는 데 도움이 되리라 생각됩니다 (Metamask는 설치되어 있다고 가정하겠습니다.) 먼저 NFT로 만들 대상을 특정 이미지로 선정하고, 이미지를 IPFS에 올려서 보관합니다. IPFS 설치 방법은 운영체제 별로 다르기에 문서를 확인해주시기 바랍니다. 이미 설치가 되어 있다면 이 부분은 지나가실 수 있습니다. 먼저 다음 명령어로 IPFS를 초기화해주고, 실행합니다. $ ipfs init generating ED25519 keypair...done peer identity: 12D3KooWDPLoBZpCPXXuYBv9FsfA1sFWNphfSto4q.. 더보기