{ "address": "0x232fb2B87CAce92B2438054A7eB79B4081E3E11a", "name": "WEGAZ", "compilerVersion": "0.8.26+commit.8a97fa7a", "optimizer": { "enabled": true, "runs": 1000000 }, "evmVersion": "paris", "sources": { "src/swap/WEGAZ.sol": { "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.26;\n\n/// @title Wrapped EGAZ\n/// @notice ERC20 wrapper over the native EGAZ gas token — equivalent to WETH9.\n/// Deposit EGAZ to mint WEGAZ 1:1; burn WEGAZ to withdraw EGAZ.\ncontract WEGAZ {\n string public constant name = \"Wrapped EGAZ\";\n string public constant symbol = \"WEGAZ\";\n uint8 public constant decimals = 18;\n\n event Approval(address indexed src, address indexed guy, uint256 wad);\n event Transfer(address indexed src, address indexed dst, uint256 wad);\n event Deposit(address indexed dst, uint256 wad);\n event Withdrawal(address indexed src, uint256 wad);\n\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n receive() external payable {\n deposit();\n }\n\n function deposit() public payable {\n balanceOf[msg.sender] += msg.value;\n emit Deposit(msg.sender, msg.value);\n }\n\n function withdraw(uint256 wad) external {\n require(balanceOf[msg.sender] >= wad, \"WEGAZ: INSUFFICIENT_BALANCE\");\n balanceOf[msg.sender] -= wad;\n (bool ok,) = msg.sender.call{value: wad}(\"\");\n require(ok, \"WEGAZ: EGAZ_TRANSFER_FAILED\");\n emit Withdrawal(msg.sender, wad);\n }\n\n function totalSupply() external view returns (uint256) {\n return address(this).balance;\n }\n\n function approve(address guy, uint256 wad) external returns (bool) {\n allowance[msg.sender][guy] = wad;\n emit Approval(msg.sender, guy, wad);\n return true;\n }\n\n function transfer(address dst, uint256 wad) external returns (bool) {\n return transferFrom(msg.sender, dst, wad);\n }\n\n function transferFrom(address src, address dst, uint256 wad) public returns (bool) {\n require(balanceOf[src] >= wad, \"WEGAZ: INSUFFICIENT_BALANCE\");\n\n if (src != msg.sender && allowance[src][msg.sender] != type(uint256).max) {\n require(allowance[src][msg.sender] >= wad, \"WEGAZ: INSUFFICIENT_ALLOWANCE\");\n allowance[src][msg.sender] -= wad;\n }\n\n balanceOf[src] -= wad;\n balanceOf[dst] += wad;\n emit Transfer(src, dst, wad);\n return true;\n }\n}\n" } }, "abi": [ { "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "allowance", "inputs": [ { "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "address", "internalType": "address" } ], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "approve", "inputs": [ { "name": "guy", "type": "address", "internalType": "address" }, { "name": "wad", "type": "uint256", "internalType": "uint256" } ], "outputs": [ { "name": "", "type": "bool", "internalType": "bool" } ], "stateMutability": "nonpayable" }, { "type": "function", "name": "balanceOf", "inputs": [ { "name": "", "type": "address", "internalType": "address" } ], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "decimals", "inputs": [], "outputs": [ { "name": "", "type": "uint8", "internalType": "uint8" } ], "stateMutability": "view" }, { "type": "function", "name": "deposit", "inputs": [], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { "name": "", "type": "string", "internalType": "string" } ], "stateMutability": "view" }, { "type": "function", "name": "symbol", "inputs": [], "outputs": [ { "name": "", "type": "string", "internalType": "string" } ], "stateMutability": "view" }, { "type": "function", "name": "totalSupply", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "transfer", "inputs": [ { "name": "dst", "type": "address", "internalType": "address" }, { "name": "wad", "type": "uint256", "internalType": "uint256" } ], "outputs": [ { "name": "", "type": "bool", "internalType": "bool" } ], "stateMutability": "nonpayable" }, { "type": "function", "name": "transferFrom", "inputs": [ { "name": "src", "type": "address", "internalType": "address" }, { "name": "dst", "type": "address", "internalType": "address" }, { "name": "wad", "type": "uint256", "internalType": "uint256" } ], "outputs": [ { "name": "", "type": "bool", "internalType": "bool" } ], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdraw", "inputs": [ { "name": "wad", "type": "uint256", "internalType": "uint256" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "Approval", "inputs": [ { "name": "src", "type": "address", "indexed": true, "internalType": "address" }, { "name": "guy", "type": "address", "indexed": true, "internalType": "address" }, { "name": "wad", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "Deposit", "inputs": [ { "name": "dst", "type": "address", "indexed": true, "internalType": "address" }, { "name": "wad", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "Transfer", "inputs": [ { "name": "src", "type": "address", "indexed": true, "internalType": "address" }, { "name": "dst", "type": "address", "indexed": true, "internalType": "address" }, { "name": "wad", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "Withdrawal", "inputs": [ { "name": "src", "type": "address", "indexed": true, "internalType": "address" }, { "name": "wad", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false } ], "verifiedAt": "2026-04-22T03:35:56.596Z", "bytecodeMatch": "exact" }