본문 바로가기

Block Chain/Solidity13

[Solidity] Event || emit | indexed | ethers | Solidity 0.8 || EVM의 Solidity는 데이터를 저장할 때, 두 가지 방법이 있습니다. Data Storage Layout : uint256, array, mapping 등 전역 변수를 만들어 Storage에 저장하는 방법 Event : Event emit을 활용하여 트랜잭션 로그(Logs)에 담아 블록에 저장하는 방법 이번 게시글에서 예제 코드를 통해 Solidity Event 사용방법과 이더스캔 그리고 JacaScript를 통해 트랜잭션 로그(Logs)를 조회하는 방법에 대해 알아보겠습니다. 📜 Solidity Event 란? Event는 Solidity의 문법 중 하나입니다. Event를 이용하여 블록에 데이터를 저장할 수 있고, EVM Logging 기능을 사용하여 저장된 트랜잭션에 저장된 데이터를 호출할 수.. 2022. 11. 21.
[Solidity] 가스비(gas fee) 줄이는 코딩 방법 || Solidity 0.8 || KR Solidity 개발자가 스마트컨트렉트를 개발할 때, 어떤 설계와 코딩 방법을 사용하냐에 따라 가스비가 달라집니다. 회사에서는 개발비용을 줄여주는 개발자를 찾고, 사용자는 자신의 가스비 소비를 줄여주는 Dapp을 선호합니다. 스마트컨트렉트 개발자가 어떻게 코딩했냐에 따라, 즉 개발자의 역량에 따라 모두가 만족할 수 있는 Dapp이 개발될 수 있습니다. 그 역량중 하나가 바로 가스비 줄이는 스마트컨트렉트 코딩 방법이라고 생각합니다. 지금부터 사용자가 트랜잭션 시, 가스비를 효율적으러 발생할 수 있도록 하는 코딩에 대해 배워보겠습니다. Example Code 📑 // SPDX-License-Identifier: MIT pragma solidity ^0.8.13; contract DownsizeGasFee {.. 2022. 10. 6.
[Solidity] Access Control 구현 || Grant & Revoke Role | Solidity 0.8 || KR Access Control 이란? Solidity에서 Access Control이란 권한을 부여받은 account만 function을 실행시킬 수 있도록 Contract에 제어 및 관리 기능을 적용하는 방법론입니다. ERC20 Mint 기능은 다른 사람들이 함부로 실행시켜선 안 되는 함수임으로, 주로 Owner만 실행시킬 수 있습니다. 하지만 여기에 Access Control를 적용하여, Owenr 외 지정된 account도 실행 시킬 수 있도록 권한을 부여할 수 있습니다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppe.. 2022. 10. 1.
[Solidity] ABI 인코딩(encoding) || Solidity 0.8 || KR ABI (Application Binary Interface) 란 ABI는 블록체인 외부와 Contract 간 상호 작용을 위해 EVM의 Contract와 상호작용하는 표준 방법입니다. Solidity로 코딩 후 Compile 시키면 위 사진처럼 json형태의 abi 데이터를 얻을 수 있습니다. json의 형태는 사람이 알아볼 수 있는 데이터의 형태입니다. low-level 언어를 사용하는 블록체인 네트워크는 abi.json 형태의 데이터를 해석할 수 없습니다. 때문에 네트워크가 이해할 수 있는 형태로 인코딩을 해야 합니다. 블록체인 네트워크가 이해할 수 있도록 EVM은 ABI를 32바이트로 변환 후, 네트워크로 전달하는 방법을 정의했습니다. 이때 address , uint256 또는 bytes32 같은.. 2022. 9. 26.
반응형