Contract Overview
Balance:
60.735248978990876895 CELO
CELO Value:
$46.86 (@ $0.77/CELO)
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
AxelarGasServiceProxy
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at celoscan.io on 2023-02-01 */ /** *Submitted for verification at moonbeam.moonscan.io on 2022-09-02 */ /** *Submitted for verification at Etherscan.io on 2022-08-31 */ // Sources flattened with hardhat v2.9.9 https://hardhat.org // File contracts/interfaces/IUpgradable.sol // SPDX-License-Identifier: MIT pragma solidity 0.8.9; // General interface for upgradable contracts interface IUpgradable { error NotOwner(); error InvalidOwner(); error InvalidCodeHash(); error InvalidImplementation(); error SetupFailed(); error NotProxy(); event Upgraded(address indexed newImplementation); event OwnershipTransferred(address indexed newOwner); // Get current owner function owner() external view returns (address); function contractId() external pure returns (bytes32); function implementation() external view returns (address); function upgrade( address newImplementation, bytes32 newImplementationCodeHash, bytes calldata params ) external; function setup(bytes calldata data) external; } // File contracts/util/Proxy.sol contract Proxy { error InvalidImplementation(); error SetupFailed(); error EtherNotAccepted(); error NotOwner(); error AlreadyInitialized(); // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1) bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; // keccak256('owner') bytes32 internal constant _OWNER_SLOT = 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0; constructor() { // solhint-disable-next-line no-inline-assembly assembly { sstore(_OWNER_SLOT, caller()) } } function init( address implementationAddress, address newOwner, bytes memory params ) external { address owner; // solhint-disable-next-line no-inline-assembly assembly { owner := sload(_OWNER_SLOT) } if (msg.sender != owner) revert NotOwner(); if (implementation() != address(0)) revert AlreadyInitialized(); if (IUpgradable(implementationAddress).contractId() != contractId()) revert InvalidImplementation(); // solhint-disable-next-line no-inline-assembly assembly { sstore(_IMPLEMENTATION_SLOT, implementationAddress) sstore(_OWNER_SLOT, newOwner) } // solhint-disable-next-line avoid-low-level-calls (bool success, ) = implementationAddress.delegatecall( // keccak('setup(bytes)') selector abi.encodeWithSelector(0x9ded06df, params) ); if (!success) revert SetupFailed(); } // solhint-disable-next-line no-empty-blocks function contractId() internal pure virtual returns (bytes32) {} function implementation() public view returns (address implementation_) { // solhint-disable-next-line no-inline-assembly assembly { implementation_ := sload(_IMPLEMENTATION_SLOT) } } // solhint-disable-next-line no-empty-blocks function setup(bytes calldata data) public {} // solhint-disable-next-line no-complex-fallback fallback() external payable { address implementaion_ = implementation(); // solhint-disable-next-line no-inline-assembly assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), implementaion_, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } receive() external payable virtual { revert EtherNotAccepted(); } } // File contracts/gas-service/AxelarGasServiceProxy.sol contract AxelarGasServiceProxy is Proxy { function contractId() internal pure override returns (bytes32) { return keccak256('axelar-gas-service'); } }
[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"EtherNotAccepted","type":"error"},{"inputs":[],"name":"InvalidImplementation","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SetupFailed","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50337f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c055610677806100436000396000f3fe6080604052600436106100385760003560e01c8063378dfd8e146100bf5780635c60da1b146100e15780639ded06df1461012c5761006f565b3661006f576040517f3733483400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006100997f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90503660008037600080366000845af43d6000803e8080156100ba573d6000f35b3d6000fd5b3480156100cb57600080fd5b506100df6100da366004610465565b61014b565b005b3480156100ed57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516001600160a01b03909116815260200160405180910390f35b34801561013857600080fd5b506100df610147366004610537565b5050565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c054336001600160a01b038216146101af576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101d97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031614610219576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ffaa2f015f2ce5aee225904728de2def86eb8837491efd21f1a04fc20d8e923f6846001600160a01b0316638291286c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561027357600080fd5b505afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab91906105a9565b146102e2576040517f68155f9a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55827f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0556000846001600160a01b0316639ded06df8460405160240161034a91906105f2565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103989190610625565b600060405180830381855af49150503d80600081146103d3576040519150601f19603f3d011682016040523d82523d6000602084013e6103d8565b606091505b5050905080610413576040517f97905dfb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b80356001600160a01b038116811461043157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561047a57600080fd5b6104838461041a565b92506104916020850161041a565b9150604084013567ffffffffffffffff808211156104ae57600080fd5b818601915086601f8301126104c257600080fd5b8135818111156104d4576104d4610436565b604051601f8201601f19908116603f011681019083821181831017156104fc576104fc610436565b8160405282815289602084870101111561051557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000806020838503121561054a57600080fd5b823567ffffffffffffffff8082111561056257600080fd5b818501915085601f83011261057657600080fd5b81358181111561058557600080fd5b86602082850101111561059757600080fd5b60209290920196919550909350505050565b6000602082840312156105bb57600080fd5b5051919050565b60005b838110156105dd5781810151838201526020016105c5565b838111156105ec576000848401525b50505050565b60208152600082518060208401526106118160408501602087016105c2565b601f01601f19169190910160400192915050565b600082516106378184602087016105c2565b919091019291505056fea2646970667358221220651952c349510bec880aaba14c95732e193a934d9454dc378b340fc36d6ef99c64736f6c63430008090033
Deployed ByteCode Sourcemap
4053:170:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3959:18;;;;;;;;;;;;;;4053:170;3377:22;3402:16;3134:20;3128:27;;2945:228;3402:16;3377:41;;3529:14;3526:1;3523;3510:34;3632:1;3629;3613:14;3610:1;3594:14;3587:5;3574:60;3669:16;3666:1;3663;3648:38;3709:6;3729:68;;;;3848:16;3845:1;3838:27;3729:68;3765:16;3762:1;3755:27;1807:1008;;;;;;;;;;-1:-1:-1;1807:1008:0;;;;;:::i;:::-;;:::i;:::-;;2945:228;;;;;;;;;;-1:-1:-1;3134:20:0;3128:27;2945:228;;-1:-1:-1;;;;;1642:55:1;;;1624:74;;1612:2;1597:18;2945:228:0;;;;;;;3231:45;;;;;;;;;;-1:-1:-1;3231:45:0;;;;;:::i;:::-;;;;1807:1008;2065:11;2059:18;2102:10;-1:-1:-1;;;;;2102:19:0;;;2098:42;;2130:10;;;;;;;;;;;;;;2098:42;2183:1;2155:16;3134:20;3128:27;;2945:228;2155:16;-1:-1:-1;;;;;2155:30:0;;2151:63;;2194:20;;;;;;;;;;;;;;2151:63;4181:31;2241:21;-1:-1:-1;;;;;2229:45:0;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;2225:99;;2301:23;;;;;;;;;;;;;;2225:99;2447:21;2425:20;2418:51;2503:8;2490:11;2483:29;2594:12;2612:21;-1:-1:-1;;;;;2612:34:0;2732:10;2744:6;2709:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2612:150;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2593:169;;;2778:7;2773:34;;2794:13;;;;;;;;;;;;;;2773:34;1934:881;;1807:1008;;;:::o;14:196:1:-;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:184::-;267:77;264:1;257:88;364:4;361:1;354:15;388:4;385:1;378:15;404:1069;490:6;498;506;559:2;547:9;538:7;534:23;530:32;527:52;;;575:1;572;565:12;527:52;598:29;617:9;598:29;:::i;:::-;588:39;;646:38;680:2;669:9;665:18;646:38;:::i;:::-;636:48;;735:2;724:9;720:18;707:32;758:18;799:2;791:6;788:14;785:34;;;815:1;812;805:12;785:34;853:6;842:9;838:22;828:32;;898:7;891:4;887:2;883:13;879:27;869:55;;920:1;917;910:12;869:55;956:2;943:16;978:2;974;971:10;968:36;;;984:18;;:::i;:::-;1059:2;1053:9;1027:2;1113:13;;-1:-1:-1;;1109:22:1;;;1133:2;1105:31;1101:40;1089:53;;;1157:18;;;1177:22;;;1154:46;1151:72;;;1203:18;;:::i;:::-;1243:10;1239:2;1232:22;1278:2;1270:6;1263:18;1318:7;1313:2;1308;1304;1300:11;1296:20;1293:33;1290:53;;;1339:1;1336;1329:12;1290:53;1395:2;1390;1386;1382:11;1377:2;1369:6;1365:15;1352:46;1440:1;1435:2;1430;1422:6;1418:15;1414:24;1407:35;1461:6;1451:16;;;;;;;404:1069;;;;;:::o;1709:591::-;1779:6;1787;1840:2;1828:9;1819:7;1815:23;1811:32;1808:52;;;1856:1;1853;1846:12;1808:52;1896:9;1883:23;1925:18;1966:2;1958:6;1955:14;1952:34;;;1982:1;1979;1972:12;1952:34;2020:6;2009:9;2005:22;1995:32;;2065:7;2058:4;2054:2;2050:13;2046:27;2036:55;;2087:1;2084;2077:12;2036:55;2127:2;2114:16;2153:2;2145:6;2142:14;2139:34;;;2169:1;2166;2159:12;2139:34;2214:7;2209:2;2200:6;2196:2;2192:15;2188:24;2185:37;2182:57;;;2235:1;2232;2225:12;2182:57;2266:2;2258:11;;;;;2288:6;;-1:-1:-1;1709:591:1;;-1:-1:-1;;;;1709:591:1:o;2305:184::-;2375:6;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;2467:16:1;;2305:184;-1:-1:-1;2305:184:1:o;2494:258::-;2566:1;2576:113;2590:6;2587:1;2584:13;2576:113;;;2666:11;;;2660:18;2647:11;;;2640:39;2612:2;2605:10;2576:113;;;2707:6;2704:1;2701:13;2698:48;;;2742:1;2733:6;2728:3;2724:16;2717:27;2698:48;;2494:258;;;:::o;2757:381::-;2904:2;2893:9;2886:21;2867:4;2936:6;2930:13;2979:6;2974:2;2963:9;2959:18;2952:34;2995:66;3054:6;3049:2;3038:9;3034:18;3029:2;3021:6;3017:15;2995:66;:::i;:::-;3122:2;3101:15;-1:-1:-1;;3097:29:1;3082:45;;;;3129:2;3078:54;;2757:381;-1:-1:-1;;2757:381:1:o;3143:274::-;3272:3;3310:6;3304:13;3326:53;3372:6;3367:3;3360:4;3352:6;3348:17;3326:53;:::i;:::-;3395:16;;;;;3143:274;-1:-1:-1;;3143:274:1:o
Swarm Source
ipfs://651952c349510bec880aaba14c95732e193a934d9454dc378b340fc36d6ef99c
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.