blockchain15 [Ethernaut] Magic Animal Carousel 풀이 이를 풂으로써 이더넛의 모든 문제를 다 풀었다 ㅎㅎInstance// SPDX-License-Identifier: MITpragma solidity ^0.8.28;contract MagicAnimalCarousel { uint16 constant public MAX_CAPACITY = type(uint16).max; uint256 constant ANIMAL_MASK = uint256(type(uint80).max) uint256 animalInside) public carousel; error AnimalNameTooLong(); constructor() { carousel[0] ^= 1 > 16;// 2바이트만큼 시프트함 uint256 nextCrate.. 2025. 1. 18. [Ethernaut] Impersonator 풀이 // SPDX-License-Identifier: MITpragma solidity ^0.8.28;import "openzeppelin-contracts-08/access/Ownable.sol";// SlockDotIt ECLocker factorycontract Impersonator is Ownable { uint256 public lockCounter; ECLocker[] public lockers; event NewLock(address indexed lockAddress, uint256 lockId, uint256 timestamp, bytes signature); constructor(uint256 _lockCounter) { lockCounter = _loc.. 2025. 1. 18. [Ethernaut] Puzzle Wallet 풀이 이더넛 문제 중 제일 인상에 남는 문제고 어렵게 푼 문제이다.그만큼 재밌게 푼 것 같다. Instance// SPDX-License-Identifier: MITpragma solidity ^0.8.0;pragma experimental ABIEncoderV2;import "../helpers/UpgradeableProxy-08.sol";contract PuzzleProxy is UpgradeableProxy { address public pendingAdmin; address public admin; constructor(address _admin, address _implementation, bytes memory _initData) UpgradeableProxy(_impl.. 2025. 1. 18. [Ethernaut] Stake 풀이 Instance// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract Stake { uint256 public totalStaked; mapping(address => uint256) public UserStake; mapping(address => bool) public Stakers; address public WETH; constructor(address _weth) payable{ totalStaked += msg.value; WETH = _weth; } function StakeETH() public payable { require(msg.value > 0.001 .. 2025. 1. 18. 이전 1 2 3 4 다음