⛓️ 시리즈 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 보충 자료 - 백서 읽기 2024.02.20 - [Solidity/DeFi] - [Uniswap] V2 Router 2024.02.21 - [Solidity/DeFi] - [Uniswap] V2 Oracle 예제 🦄 FlashSwap 플래시 스왑은 자산을 ..
⛓️ 시리즈 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 보충 자료 - 백서 읽기 2024.02.20 - [Solidity/DeFi] - [Uniswap] V2 Router 🦄 TWAP Uniswap V2는 새로운 블록에서 최초로 컨트랙트가 호출되어 트랜잭션이 실행될 때 이전 블록에서의 마지막 가격 price0 ..
안녕하세요, piatoss입니다. Ethernaut도 거의 다 풀었고 하니, 새로운 워게임을 시작해보려고 합니다. 이름하야 'Damn Vunerable DeFi'. 직역하면 'ㅈ나 취약한 DeFi'쯤 되겠네요. DeFi 컨트랙트의 취약점을 공격해 보고 '이런 식으로 코드를 짜면 안 되겠구나!' 하는 교훈을 얻는 게임입니다. 그런데 문제가 있습니다. 이 게임의 경우는 시나리오에 맞게 자바스크립트 테스트 코드를 작성해야 합니다. 이게 왜 문제냐고요? 제가 자바스크립트 알레르기가 있어서 그렇습니다. 자바스크립트만 보면 의욕이 뚝뚝 떨어지더라고요. 그래서 대체재가 없나 찾아보다가 foundry를 사용해 개정해 놓은 버전을 찾았습니다. 저는 이걸 사용해서 문제를 풀어보도록 하겠습니다. GitHub - piatos..
⛓️ 시리즈 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..
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. /..
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..