solidity3 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] 임의의 이름으로 토큰 만들기 일단 solidity을 이용하여 기본적인 기능을 하는 컨트랙트를 만들었고, react(리액트)와 연동하여 구현했다. 이제 이 코드에 변형을 하여 내 이름으로 토큰을 만들어 볼려고 한다. constructor 일단 contructor(생성자)를 사용해야 하는 것 같다. constructor (string memory name_, string memory symbol_) public { _name = name_; _symbol = symbol_; _decimals = 18; } 생성자는 처음 컨트랙트가 만들어질 때 호출된다. 함수의 매개변수는 [_] 이다. constructor 사용시 주의해야 할점 계약에는 생성자가 하나만 있을 수 있다. 생성자 코드는 계약이 생성될 때 한 번 실행되며 계약 상태를 초기화하.. 2022. 7. 27. [Solidity] event란? 쓰는 이유는? event 란 무엇일까? 봐도봐도 헷갈려서 나 혼자만에 정리를 해볼려고 한다. event - 이벤트란 솔리디티 튜토리얼 문서에 따르면 이벤트는 계약의 상속 가능한 구성원입니다. 이벤트가 발생하고 트랜잭션 로그에 전달된 인수를 저장합니다. 이러한 로그는 블록체인에 저장되며 블록체인에 계약이 존재할 때까지 계약 주소를 사용하여 액세스할 수 있습니다. 생성된 이벤트는 계약 내에서 액세스할 수 없으며 이를 생성하고 내보낸 이벤트도 마찬가지입니다. 라고 하는데 이해가 되는 부분도 있고, 추상적인 부분도 있다. 이벤트가 필요한 이유는 무엇일까? 이벤트는 블록체인에서 어떤 일이 발생했음을 외부 사용자에게 알리는 데 사용된다. 따라서, smart contract 자체는 이벤트를 수신할 수 없습니다. 왜냐? 외부 사용.. 2022. 7. 27. 이전 1 다음