[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usr", "type": "address" } ], "name": "AddMinter", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usr", "type": "address" } ], "name": "AddOwner", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usr", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" } ], "name": "Grace", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" } ], "name": "Lock", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usr", "type": "address" } ], "name": "RemoveMinter", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usr", "type": "address" } ], "name": "RemoveOwner", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" }, { "indexed": true, "internalType": "address", "name": "dst", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "src", "type": "address" } ], "name": "Unlock", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "LOCKED", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_INT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TIMELOCK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usr", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usr", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usr", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usr", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "grace", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "init", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "lock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usr", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "minters", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "owners", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usr", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usr", "type": "address" } ], "name": "removeOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "supply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "wad", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unlock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040525f805460ff191690553480156017575f5ffd5b50335f908152600360205260409020805460ff1916600117905561143d8061003e5f395ff3fe6080604052600436106101af575f3560e01c80637065cb48116100eb578063a69df4b511610089578063e1c7392a11610063578063e1c7392a146101be578063e3d670d7146104b2578063f46eccc4146104dd578063f83d08ba1461050b576101be565b8063a69df4b514610449578063a9059cbb1461045d578063dd62ed3e1461047c576101be565b80637aadef8b116100c55780637aadef8b146103fd57806395d89b411461022c578063983b2d5614610412578063a1422f6914610431576101be565b80637065cb481461038b57806370a08231146103aa57806379cc6790146103de576101be565b806318160ddd116101585780633092afd5116101325780633092afd51461031a578063313ce5671461033957806340c10f191461034d57806342966c681461036c576101be565b806318160ddd146102d35780631eefddb1146102e757806323b872dd146102fb576101be565b8063095ea7b311610189578063095ea7b314610281578063098d3228146102a0578063173825d9146102b4576101be565b8063022914a7146101c6578063047fc9aa1461020957806306fdde031461022c576101be565b366101be576101bc61051f565b005b6101bc61051f565b3480156101d1575f5ffd5b506101f46101e036600461129e565b60036020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610214575f5ffd5b5061021e60025481565b604051908152602001610200565b348015610237575f5ffd5b506102746040518060400160405280600481526020017f565344430000000000000000000000000000000000000000000000000000000081525081565b60405161020091906112b7565b34801561028c575f5ffd5b506101f461029b36600461130a565b610575565b3480156102ab575f5ffd5b5061021e5f1981565b3480156102bf575f5ffd5b506101bc6102ce36600461129e565b6105e1565b3480156102de575f5ffd5b5060025461021e565b3480156102f2575f5ffd5b506101bc6106f6565b348015610306575f5ffd5b506101f4610315366004611332565b6107f6565b348015610325575f5ffd5b506101bc61033436600461129e565b6109f9565b348015610344575f5ffd5b5061021e601281565b348015610358575f5ffd5b506101bc61036736600461130a565b610b0e565b348015610377575f5ffd5b506101bc61038636600461136c565b610bb4565b348015610396575f5ffd5b506101bc6103a536600461129e565b610bc1565b3480156103b5575f5ffd5b5061021e6103c436600461129e565b6001600160a01b03165f9081526005602052604090205490565b3480156103e9575f5ffd5b506101bc6103f836600461130a565b610cd9565b348015610408575f5ffd5b5061021e60015481565b34801561041d575f5ffd5b506101bc61042c36600461129e565b610ec9565b34801561043c575f5ffd5b505f546101f49060ff1681565b348015610454575f5ffd5b506101bc610fe1565b348015610468575f5ffd5b506101f461047736600461130a565b61114f565b348015610487575f5ffd5b5061021e610496366004611383565b600660209081525f928352604080842090915290825290205481565b3480156104bd575f5ffd5b5061021e6104cc36600461129e565b60056020525f908152604090205481565b3480156104e8575f5ffd5b506101f46104f736600461129e565b60046020525f908152604090205460ff1681565b348015610516575f5ffd5b506101bc611162565b5f34116105735760405162461bcd60e51b815260206004820152600860248201527f4e6f2076616c756500000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105cf9086815260200190565b60405180910390a35060015b92915050565b5f5460ff161561063f5760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161056a565b335f9081526003602052604090205460ff1615156001146106ad5760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161056a565b6001600160a01b0381165f81815260036020526040808220805460ff191690555133917fca273b61904dd225d0c1e905343c24040cecad0b4491337492c990845edb525791a350565b5f5460ff16151560011461074c5760405162461bcd60e51b815260206004820181905260248201527f4c6f636b206d757374206265206163746976652e204c6f636b2066697273742e604482015260640161056a565b335f9081526003602052604090205460ff1615156001146107ba5760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161056a565b6107c74262093a806113e1565b60015560405133907fc5e07850c92de322c5d3837d34ebac0893a6a21c8846aabf645230ba969b0cd2905f90a2565b6001600160a01b0383165f9081526005602052604081205482111561085d5760405162461bcd60e51b815260206004820152600a60248201527f4e6f2062616c616e636500000000000000000000000000000000000000000000604482015260640161056a565b6001600160a01b038416331480159061089957506001600160a01b0384165f9081526006602090815260408083203384529091529020545f1914155b15610948576001600160a01b0384165f9081526006602090815260408083203384529091529020548211156109105760405162461bcd60e51b815260206004820152600c60248201527f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000604482015260640161056a565b6001600160a01b0384165f908152600660209081526040808320338452909152812080548492906109429084906113f4565b90915550505b6001600160a01b0384165f908152600560205260408120805484929061096f9084906113f4565b90915550506001600160a01b0383165f908152600560205260408120805484929061099b9084906113e1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109e791815260200190565b60405180910390a35060019392505050565b5f5460ff1615610a575760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161056a565b335f9081526003602052604090205460ff161515600114610ac55760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161056a565b6001600160a01b0381165f81815260046020526040808220805460ff191690555133917fe4a9d76045628f9aac382acca48ced14781d1e98915453a55e277233a6ff7d7c91a350565b335f9081526004602052604090205460ff161515600114610b2d575f5ffd5b8060025f828254610b3e91906113e1565b90915550506001600160a01b0382165f9081526005602052604081208054839290610b6a9084906113e1565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b610bbe3382610cd9565b50565b5f5460ff1615610c1f5760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161056a565b335f9081526003602052604090205460ff161515600114610c8d5760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161056a565b6001600160a01b0381165f81815260036020526040808220805460ff191660011790555133917f91a3131740191cd3eb4fc72bf2cbcd5ab483dcdf168f2307451becc3e5dae55691a350565b335f9081526004602052604090205460ff161515600114610cf8575f5ffd5b6001600160a01b0382165f90815260056020526040902054811115610d5f5760405162461bcd60e51b815260206004820152600a60248201527f4e6f2062616c616e636500000000000000000000000000000000000000000000604482015260640161056a565b6001600160a01b0382163314801590610d9b57506001600160a01b0382165f9081526006602090815260408083203384529091529020545f1914155b15610e4a576001600160a01b0382165f908152600660209081526040808320338452909152902054811115610e125760405162461bcd60e51b815260206004820152600c60248201527f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000604482015260640161056a565b6001600160a01b0382165f90815260066020908152604080832033845290915281208054839290610e449084906113f4565b90915550505b8060025f828254610e5b91906113f4565b90915550506001600160a01b0382165f9081526005602052604081208054839290610e879084906113f4565b90915550506040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ba8565b5f5460ff1615610f275760405162461bcd60e51b8152602060048201526024808201527f4c6f636b206d75737420626520696e6163746976652e20556e6c6f636b2066696044820152633939ba1760e11b606482015260840161056a565b335f9081526003602052604090205460ff161515600114610f955760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161056a565b6001600160a01b0381165f81815260046020526040808220805460ff191660011790555133917f6f839fba2116fdb1b5fd547165fb18d0065e3ac6ec8402eaf15cf1c1a61ec79291a350565b5f5460ff1615156001146110375760405162461bcd60e51b815260206004820181905260248201527f4c6f636b206d757374206265206163746976652e204c6f636b2066697273742e604482015260640161056a565b335f9081526003602052604090205460ff1615156001146110a55760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161056a565b426001541061111c5760405162461bcd60e51b815260206004820152602360248201527f54696d656c6f636b207374696c6c206163746976652e2057616974206c6f6e6760448201527f65722e0000000000000000000000000000000000000000000000000000000000606482015260840161056a565b5f805460ff1916815560405133917f0be774851955c26a1d6a32b13b020663a069006b4a3b643ff0b809d31826057291a2565b5f61115b3384846107f6565b9392505050565b5f5460ff16156111da5760405162461bcd60e51b815260206004820152602260248201527f4c6f636b20616c7265616479206163746976652e20556e6c6f636b206669727360448201527f742e000000000000000000000000000000000000000000000000000000000000606482015260840161056a565b335f9081526003602052604090205460ff1615156001146112485760405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e20617661696c61626c6520746f206f776e657273206f6e6c6044820152613c9760f11b606482015260840161056a565b5f805460ff19166001908117825581905560405133917fc1b5f12cea7c200ad495a43bf2d4c7ba1a753343c06c339093937849de84d91391a2565b80356001600160a01b0381168114611299575f5ffd5b919050565b5f602082840312156112ae575f5ffd5b61115b82611283565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f5f6040838503121561131b575f5ffd5b61132483611283565b946020939093013593505050565b5f5f5f60608486031215611344575f5ffd5b61134d84611283565b925061135b60208501611283565b929592945050506040919091013590565b5f6020828403121561137c575f5ffd5b5035919050565b5f5f60408385031215611394575f5ffd5b61139d83611283565b91506113ab60208401611283565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156105db576105db6113b4565b818103818111156105db576105db6113b456fea26469706673582212200eb3d83e9278d8d1097830e4868b113e95b9584b0f460176b448d7d7b935d14a64736f6c634300081b0033