본문 바로가기

Block Chain40

[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.
메타마스크 리액트 지갑 연동 || React | Metamask | ethers.js || KR Metamask는 이더리움에서 만든 CA 관리 애플리케이션입니다. CA 생성뿐만 아니라, Coin 및 Token 관리, 트랜잭션 , 계좌 생성, private key 관리까지 블록체인 네트워크를 이용하기 위한 다양한 서비스를 제공합니다. 때문에 web3 dapp을 개발하는 사람은 필수적으로 프론트에 Metamask를 연결할 줄 알아야 합니다. 오늘은 가장 많이 사용하는 프론트 프레임워크 리액트와 Metamask를 연동시키는 방법을 ethers 모듈을 이용해 만들어 보겠습니다. ※ 본 게시글은 프론트엔드 개발 분야가 아닙니다. CSS와 디자인 요소는 다루지 않습니다. 원하시는 분은 Github에 올린 코드를 클론 하시면 됩니다. ※ 본 게시글은 리액트 강의 게시글이 아닙니다. 리액트에 대한 기본지식이 있는.. 2022. 9. 30.
블록체인 네트워크 ID별 데이터 리스트(List) || JavaScript || KR 블록체인 네트워크는 각자 자기만의 ID을 갖고 있습니다. 메타마스크나 지갑 어플에서 사용자가 연결된 네트워크를 ID로 데이터를 보내줍니다. 비개발자 및 Dapp 사용자들은 UI상으로 ID 값을 보여주면 이해하지 못합니다. 때문에 개발자들이 ID에 맞는 네트워크 이름과 심볼을 보여줘야 합니다. const chainIds = { 1 : {name : "Ethereum mainnet", symbol : "ETH"}, 3 : {name : "Ropsten", symbol : "RopstenETH"}, 4 : {name : "Rinkeby", symbol : "RinkebyETH"}, 5 : {name : "Goerli", symbol : "GoerliETH"}, 42 : {name : "Kovan", symbo.. 2022. 9. 29.
[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.
반응형