본문 바로가기

BlockChain/Solidity6

proxy contract & upgradable contract 이란? proxy contract의 기본 구조 Delegatecall and Proxy Pattern 하지만 만약 transferFrom()을 호출하되, 해당 함수의 로직만 이용하고 관련 스토리지 변경은 CallERC20 컨트랙트에 적용하고 싶다면? 이를 가능하게 하는것이 바로 delegatecall 이다. 솔리디티는 다른 컨트랙트를 호출할 때, 크게 두가지 EVM opcode중 하나를 사용할 수 있도록 한다. 바로 call과 delegatecall 이다. call이 바로 우리가 통상적으로 컨트랙트를 호출할 때 사용하는 opcode이다. 바로 위의 CallERC20 예시 또한 내부적으로는 call opcode를 통해 transferFrom()을 호출한다. 이외에도 staticcall 이라는 친구가 있는데, 상태.. 2023. 3. 12.
[Solidity] Wolfgame은 왜 ERC-1155를 사용하지 않았을까? 1. ERC-1155란? ERC-1155는 동일한 계약에서 여러 유형의 토큰을 생성할 수 있는 이더리움 블록체인의 가상 항목을 나타내는 새로운 표준입니다. 게임에 사용되는 항목에 특히 유용하며, 그 중 다수는 숫자로 표시됩니다. 공급량이 1인 ERC-1155 토큰도 특정 소유자가 있는 ERC-721로 볼 수 있습니다. 따라서 ERC-1155 배치 전송을 통해 작동할 수 있을 뿐만 아니라 ERC-721의 모든 상호 운용성 이점을 얻을 수 있습니다. ERC-1155 토큰 소유자(공급량 > 1)가 토큰을 ERC-721로 변환할 수 있습니다. 이렇게 하면 원래 ERC-1155 토큰의 공급이 1 감소하는 동시에 새로 발행된 토큰에 다른 NFT처럼 개인화할 수 있는 용량이 제공됩니다. 또 다른 중요한 요구 사항은 .. 2023. 3. 12.
[blockchain] view 함수는 정말 가스비가 무료일까? (view function cost?) 0. intro 처음에 솔리디티를 배우게 되면 view라는 예약어를 배우게 된다. 함수에 사용하면 가스가 소모되지 않는다고 보통 배울 것이다. 하지만 한 층 더 깊은 블록체인 개발자가 되기 위해서는 정확히 어떤 상황에서 가스가 소모되지 않는지 명확히 알 필요가 있다. 1. view 함수 솔리디티에서, "view" 키워드는 스토리지를 변경하거나 할당하지 않는 기능에 사용됩니다. 즉, "읽기 전용"입니다. 2. Gas consumption 일반적으로 'view' 함수는 가스 소모가 없는 것으로 알려져 있습니다. 결과적으로 틀린 말은 아닙니다. 그러나 우리는 더 명확하게 알아야 합니다. 'view' 함수는 자체 블록체인 사본을 사용하여 로컬 노드의 하드웨어에서 실행됩니다. 이렇게 하면 작업이 실제로 네트워크에.. 2023. 3. 12.
[Solidity] CA, EOA 계약 계정(Contract Account)(CA) 이더리움 블록체인 안에 있는 계정 private key 없음 코드가 이 계정을 관리함. 직접 트랜잭션을 개시하는 것은 불가. Externally Owned Account (EOA) private key가 있는 계정 자금 송금, 트랜잭션 게시 역할 블록체인에 접근할 수 있는 있지만 배포는 불가. 블록체인은 어느 주소에 얼마가 들어있는지 저장하는 데이터베이스 2022. 8. 4.