Overview
CELO Balance
CELO Value
$0.00Multichain Info
Latest 5 from a total of 5 transactions
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xca685060...838023AA6 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Source Code (Solidity)
/** *Submitted for verification at celoscan.io on 2025-07-15 */ pragma solidity ^0.8.0; // Author: Louis Holbrook <[email protected]> 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 // SPDX-License-Identifier: AGPL-3.0-or-later // File-Version: 1 // Description: Registry of allowed ERC20 balance limits per-token and per-holder. contract Limiter { address public owner; mapping ( address => mapping ( address => uint256 ) ) limit; // EIP173 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // EIP173 event LimitSet(address indexed token, address indexed holder, uint256 value); constructor() { owner = msg.sender; } function limitOf(address _token, address _holder) public view returns (uint256) { return limit[_token][_holder]; } function setLimit(address _token, uint256 _value) public { limit[_token][msg.sender] = _value; emit LimitSet(_token, msg.sender, _value); } function setLimitFor(address _token, address _holder, uint256 _value) public { uint256 sz; require(msg.sender == owner || msg.sender == _holder, 'ERR_AXX'); assembly { sz := extcodesize(_holder) } require(sz > 0, 'ERR_ACCOUNT'); limit[_token][_holder] = _value; emit LimitSet(_token, _holder, _value); } // Implements EIP173 function transferOwnership(address _newOwner) public returns (bool) { address oldOwner; require(msg.sender == owner); oldOwner = owner; owner = _newOwner; emit OwnershipTransferred(oldOwner, owner); return true; } // Implements EIP165 function supportsInterface(bytes4 _sum) public pure returns (bool) { if (_sum == 0x01ffc9a7) { // ERC165 return true; } if (_sum == 0x9493f8b2) { // ERC173 return true; } if (_sum == 0x23778613) { // TokenLimit return true; } return false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"LimitSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_holder","type":"address"}],"name":"limitOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_holder","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setLimitFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
0x6080604052348015600e575f5ffd5b505f80546001600160a01b031916331790556104908061002d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806301ffc9a714610064578063237786131461008c57806336db43b5146100d25780638da5cb5b146100e7578063bdd5544014610111578063f2fde38b14610124575b5f5ffd5b610077610072366004610365565b610137565b60405190151581526020015b60405180910390f35b6100c461009a3660046103ae565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b604051908152602001610083565b6100e56100e03660046103df565b61019f565b005b5f546100f9906001600160a01b031681565b6040516001600160a01b039091168152602001610083565b6100e561011f366004610407565b6101fd565b610077610132366004610441565b6102f8565b5f6001600160e01b031982166301ffc9a760e01b0361015857506001919050565b6001600160e01b03198216634a49fc5960e11b0361017857506001919050565b6001600160e01b03198216632377861360e01b0361019857506001919050565b505f919050565b6001600160a01b0382165f8181526001602090815260408083203380855290835292819020859055518481529192917f8aa6856e3197c997992720c057a925dff13f6893a75f1a7228a2d4eafe117b84910160405180910390a35050565b5f80546001600160a01b031633148061021e5750336001600160a01b038416145b6102595760405162461bcd60e51b815260206004820152600760248201526608aa4a4be82b0b60cb1b60448201526064015b60405180910390fd5b50813b806102975760405162461bcd60e51b815260206004820152600b60248201526a11549497d050d0d3d5539560aa1b6044820152606401610250565b6001600160a01b038481165f8181526001602090815260408083209488168084529482529182902086905590518581527f8aa6856e3197c997992720c057a925dff13f6893a75f1a7228a2d4eafe117b84910160405180910390a350505050565b5f805481906001600160a01b03163314610310575f5ffd5b505f80546001600160a01b038481166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350600192915050565b5f60208284031215610375575f5ffd5b81356001600160e01b03198116811461038c575f5ffd5b9392505050565b80356001600160a01b03811681146103a9575f5ffd5b919050565b5f5f604083850312156103bf575f5ffd5b6103c883610393565b91506103d660208401610393565b90509250929050565b5f5f604083850312156103f0575f5ffd5b6103f983610393565b946020939093013593505050565b5f5f5f60608486031215610419575f5ffd5b61042284610393565b925061043060208501610393565b929592945050506040919091013590565b5f60208284031215610451575f5ffd5b61038c8261039356fea2646970667358221220b96149a79dc1a073bdc6d1baf3491daaabe7087927c6692d0cf4d160037d3b1d64736f6c634300081e00336decb85d010080000000000000000000000000d08913a93c2c28b2bf6717264378c57083a5ef5c0000000000000000000000005523058cdffe5f3c1eadadd5015e55c6e00fb43900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806301ffc9a714610064578063237786131461008c57806336db43b5146100d25780638da5cb5b146100e7578063bdd5544014610111578063f2fde38b14610124575b5f5ffd5b610077610072366004610365565b610137565b60405190151581526020015b60405180910390f35b6100c461009a3660046103ae565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b604051908152602001610083565b6100e56100e03660046103df565b61019f565b005b5f546100f9906001600160a01b031681565b6040516001600160a01b039091168152602001610083565b6100e561011f366004610407565b6101fd565b610077610132366004610441565b6102f8565b5f6001600160e01b031982166301ffc9a760e01b0361015857506001919050565b6001600160e01b03198216634a49fc5960e11b0361017857506001919050565b6001600160e01b03198216632377861360e01b0361019857506001919050565b505f919050565b6001600160a01b0382165f8181526001602090815260408083203380855290835292819020859055518481529192917f8aa6856e3197c997992720c057a925dff13f6893a75f1a7228a2d4eafe117b84910160405180910390a35050565b5f80546001600160a01b031633148061021e5750336001600160a01b038416145b6102595760405162461bcd60e51b815260206004820152600760248201526608aa4a4be82b0b60cb1b60448201526064015b60405180910390fd5b50813b806102975760405162461bcd60e51b815260206004820152600b60248201526a11549497d050d0d3d5539560aa1b6044820152606401610250565b6001600160a01b038481165f8181526001602090815260408083209488168084529482529182902086905590518581527f8aa6856e3197c997992720c057a925dff13f6893a75f1a7228a2d4eafe117b84910160405180910390a350505050565b5f805481906001600160a01b03163314610310575f5ffd5b505f80546001600160a01b038481166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350600192915050565b5f60208284031215610375575f5ffd5b81356001600160e01b03198116811461038c575f5ffd5b9392505050565b80356001600160a01b03811681146103a9575f5ffd5b919050565b5f5f604083850312156103bf575f5ffd5b6103c883610393565b91506103d660208401610393565b90509250929050565b5f5f604083850312156103f0575f5ffd5b6103f983610393565b946020939093013593505050565b5f5f5f60608486031215610419575f5ffd5b61042284610393565b925061043060208501610393565b929592945050506040919091013590565b5f60208284031215610451575f5ffd5b61038c8261039356fea2646970667358221220b96149a79dc1a073bdc6d1baf3491daaabe7087927c6692d0cf4d160037d3b1d64736f6c634300081e0033
Deployed Bytecode Sourcemap
266:1532:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1519:276;;;;;;:::i;:::-;;:::i;:::-;;;470:14:1;;463:22;445:41;;433:2;418:18;1519:276:0;;;;;;;;619:119;;;;;;:::i;:::-;-1:-1:-1;;;;;711:13:0;;;690:7;711:13;;;:5;:13;;;;;;;;:22;;;;;;;;;;;;;619:119;;;;1086:25:1;;;1074:2;1059:18;619:119:0;940:177:1;743:147:0;;;;;;:::i;:::-;;:::i;:::-;;287:20;;;;;-1:-1:-1;;;;;287:20:0;;;;;;-1:-1:-1;;;;;1591:32:1;;;1573:51;;1561:2;1546:18;287:20:0;1427:203:1;895:331:0;;;;;;:::i;:::-;;:::i;1254:237::-;;;;;;:::i;:::-;;:::i;1519:276::-;1580:4;-1:-1:-1;;;;;;1595:18:0;;-1:-1:-1;;;1595:18:0;1591:57;;-1:-1:-1;1638:4:0;;1519:276;-1:-1:-1;1519:276:0:o;1591:57::-;-1:-1:-1;;;;;;1656:18:0;;-1:-1:-1;;;1656:18:0;1652:57;;-1:-1:-1;1699:4:0;;1519:276;-1:-1:-1;1519:276:0:o;1652:57::-;-1:-1:-1;;;;;;1717:18:0;;-1:-1:-1;;;1717:18:0;1713:61;;-1:-1:-1;1764:4:0;;1519:276;-1:-1:-1;1519:276:0:o;1713:61::-;-1:-1:-1;1785:5:0;;1519:276;-1:-1:-1;1519:276:0:o;743:147::-;-1:-1:-1;;;;;805:13:0;;;;;;:5;:13;;;;;;;;819:10;805:25;;;;;;;;;;:34;;;849:36;1086:25:1;;;819:10:0;;805:13;849:36;;1059:18:1;849:36:0;;;;;;;743:147;;:::o;895:331::-;977:10;1014:5;;-1:-1:-1;;;;;1014:5:0;1000:10;:19;;:45;;-1:-1:-1;1024:10:0;-1:-1:-1;;;;;1024:21:0;;;1000:45;992:65;;;;-1:-1:-1;;;992:65:0;;2407:2:1;992:65:0;;;2389:21:1;2446:1;2426:18;;;2419:29;-1:-1:-1;;;2464:18:1;;;2457:37;2511:18;;992:65:0;;;;;;;;;-1:-1:-1;1083:20:0;;1120:6;1112:30;;;;-1:-1:-1;;;1112:30:0;;2742:2:1;1112:30:0;;;2724:21:1;2781:2;2761:18;;;2754:30;-1:-1:-1;;;2800:18:1;;;2793:41;2851:18;;1112:30:0;2540:335:1;1112:30:0;-1:-1:-1;;;;;1147:13:0;;;;;;;:5;:13;;;;;;;;:22;;;;;;;;;;;;;:31;;;1188:33;;1086:25:1;;;1188:33:0;;1059:18:1;1188:33:0;;;;;;;972:254;895:331;;;:::o;1254:237::-;1316:4;1372:5;;1316:4;;-1:-1:-1;;;;;1372:5:0;1358:10;:19;1350:28;;;;;;-1:-1:-1;1394:5:0;;;-1:-1:-1;;;;;1404:17:0;;;-1:-1:-1;;;;;;1404:17:0;;;;;;1433:37;;1394:5;;;;;;;1433:37;;1394:5;1433:37;-1:-1:-1;1482:4:0;;1254:237;-1:-1:-1;;1254:237:0:o;14:286:1:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:1;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:1:o;497:173::-;565:20;;-1:-1:-1;;;;;614:31:1;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:260::-;743:6;751;804:2;792:9;783:7;779:23;775:32;772:52;;;820:1;817;810:12;772:52;843:29;862:9;843:29;:::i;:::-;833:39;;891:38;925:2;914:9;910:18;891:38;:::i;:::-;881:48;;675:260;;;;;:::o;1122:300::-;1190:6;1198;1251:2;1239:9;1230:7;1226:23;1222:32;1219:52;;;1267:1;1264;1257:12;1219:52;1290:29;1309:9;1290:29;:::i;:::-;1280:39;1388:2;1373:18;;;;1360:32;;-1:-1:-1;;;1122:300:1:o;1635:374::-;1712:6;1720;1728;1781:2;1769:9;1760:7;1756:23;1752:32;1749:52;;;1797:1;1794;1787:12;1749:52;1820:29;1839:9;1820:29;:::i;:::-;1810:39;;1868:38;1902:2;1891:9;1887:18;1868:38;:::i;:::-;1635:374;;1858:48;;-1:-1:-1;;;1975:2:1;1960:18;;;;1947:32;;1635:374::o;2014:186::-;2073:6;2126:2;2114:9;2105:7;2101:23;2097:32;2094:52;;;2142:1;2139;2132:12;2094:52;2165:29;2184:9;2165:29;:::i
Swarm Source
ipfs://b96149a79dc1a073bdc6d1baf3491daaabe7087927c6692d0cf4d160037d3b1d
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.