⛓️ 시리즈 2024.01.30 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2ERC20 2024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Factory 2024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Pair 2024.02.05 - [Solidity/DeFi] - [Uniswap] V2 Core 보충 자료 - 백서 읽기 🦄 Router 라우터는 코어 컨트랙트의 기능을 하나의 트랜잭션으로 손쉽게 호출할 수 있도록 편의성을 제공하는 함수들을 정의합니다. Uniswap V2에는 2 종류의 라우터가 정의되어 있습니다. 각각 01, 02를 붙여서 구분하는데..
전체 코드 solidity 8.23 버전 사용 https://github.com/piatoss3612/dig-solidity/blob/main/yul-erc20/src/ERC20A.sol 더보기 // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {IERC20} from "./interfaces/IERC20.sol"; import {IERC20Metadata} from "./interfaces/IERC20Metadata.sol"; import {IERC20Errors} from "./interfaces/IERC20Errors.sol"; contract ERC20A is IERC20, IERC20Metadata, IERC20Erro..
1. 문제 The Ethernaut The Ethernaut is a Web3/Solidity based wargame played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'. The game is 100% open source and all levels are contributions made by other players. ethernaut.openzeppelin.com To solve this level, you only need to provide the Ethernaut with a Solver, a contract that responds to whatIsTheMeaningOf..
문제 https://app.web3oj.com/app/problem/21 컨트랙트 코드도 없고 ABI도 없는 상황에서 특정 함수를 호출하고 싶은 경우에 바이트 코드를 활용하는 방법. 바이트코드 foundry cast cli를 통해 런타임 바이트코드 불러오기 $ cast code 0x9843A771650a28de6d9ba52C38ca37F8870989c2 --rpc-url mumbai 0x608060405234801561001057600080fd5b50600436106100415760003560e01c806338cc483114610046578063a146bf7a14610064578063da17c60514610082575b600080fd5b61004e6100b2565b60405161005b91906101aa..
전체 코드 dig-solidity/hyperlane-v3 at main · piatoss3612/dig-solidity Contribute to piatoss3612/dig-solidity development by creating an account on GitHub. github.com 1. Foundry 프로젝트 초기화 forge init hyperlane-v3 2. 라이브러리 설치 $ forge install hyperlane-xyz/hyperlane-monorepo@main $ forge install OpenZeppelin/openzeppelin-contracts@release-v4.9 $ forge install OpenZeppelin/openzeppelin-contracts-upgradea..
1. 문제 The Ethernaut The Ethernaut is a Web3/Solidity based wargame played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'. The game is 100% open source and all levels are contributions made by other players. ethernaut.openzeppelin.com Just have to flip the switch. Can't be that hard, right? Things that might help: Understanding how CALLDATA is encoded. /..
컨트랙트 ABI란? 컨트랙트 ABI(Application Binary Interface)는 이더리움 생태계에서 컨트랙트와의 상호작용을 위한 표준방식이다. ABI는 스마트 컨트랙트의 함수명, 매개 변수의 타입 및 반환 값의 타입을 설명한다. 일반적으로 solidity로 작성된 코드가 컴파일될 때 ABI가 생성되며, 이는 오프체인에서 컨트랙트로의 상호작용 또는 컨트랙트에서 컨트랙트로의 상호작용에 사용된다. 컨트랙트의 호출에 사용되는 calldata가 바로 ABI 형식으로 인코딩 된 데이터다. 타입별 ABI 인코딩 컨트랙트와 상호작용하기 위해 데이터는 ABI 형식에 맞춰 인코딩이 필요하다. solidity의 내장 함수인 abi.encode를 사용해 인코딩이 어떻게 이루어지는지 알아보자. 정적 타입 32바이트 ..
1. 문제 The Ethernaut The Ethernaut is a Web3/Solidity based wargame played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'. The game is 100% open source and all levels are contributions made by other players. ethernaut.openzeppelin.com Cope with gates and become an entrant. Things that might help: - Recall return values of low-level functions. - Be attent..
⛓️ 시리즈2024.01.30 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2ERC202024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Factory2024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Pair🔢112 부호가 없는 고정 소수점 타입을 선택한 이유 추적된 토큰 보유량은 각각 112비트로 저장된다. 이는 스토리지 슬롯의 224비트를 사용하고 32비트가 남는다는 뜻인데, 이 남는 공간에 32비트 타임스탬프 저장함으로써 스토리지 비용을 절약할 수 있다. 그런데, 누적된 가격의 합은 224비트로는 부족할 수 있다. 따라서 256비트 크기로 스토리..
1. 문제 The Ethernaut The Ethernaut is a Web3/Solidity based wargame played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'. The game is 100% open source and all levels are contributions made by other players. ethernaut.openzeppelin.com This instance represents a Good Samaritan that is wealthy and ready to donate some coins to anyone requesting it. Would y..