[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "DollarBurned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "DollarMinted", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "treasury", "type": "address" } ], "name": "TreasuryAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "treasury", "type": "address" } ], "name": "TreasuryRemoved", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "treasury_address", "type": "address" } ], "name": "addTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "controller", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "controllerBurnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "controllerMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "genesis_supply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "poolBurnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "poolMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "treasury_address", "type": "address" } ], "name": "removeTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_controller", "type": "address" } ], "name": "setController", "outputs": [], "stateMutability": "nonpayable", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "treasuries", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "treasuries_array", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561001057600080fd5b50600380546001600160a01b0319163390811790915560405181906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350611a72806100636000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e146103d4578063e7f388621461040d578063f2fde38b14610420578063f77c47911461043357600080fd5b8063a9059cbb1461039b578063b35ee931146103ae578063c8cb3834146103c157600080fd5b80638da5cb5b116100d35780638da5cb5b1461034857806392eefe9b1461036d57806395d89b4114610380578063a457c2d71461038857600080fd5b8063715018a61461031a57806379cc679014610322578063816cadab1461033557600080fd5b8063313ce567116101665780634cd88b76116101405780634cd88b76146102ba57806351e238e3146102cd5780635d7b0758146102de57806370a08231146102f157600080fd5b8063313ce5671461027a578063395093511461029457806342966c68146102a757600080fd5b80630a0c165a116101a25780630a0c165a1461022d5780630c407d561461024257806318160ddd1461025557806323b872dd1461026757600080fd5b806306fdde03146101c95780630849b234146101e7578063095ea7b31461021a575b600080fd5b6101d1610446565b6040516101de919061184a565b60405180910390f35b61020a6101f5366004611701565b60076020526000908152604090205460ff1681565b60405190151581526020016101de565b61020a610228366004611788565b6104d4565b61024061023b366004611788565b6104ea565b005b610240610250366004611788565b610693565b6002545b6040519081526020016101de565b61020a61027536600461174d565b61082e565b610282601281565b60405160ff90911681526020016101de565b61020a6102a2366004611788565b6108a8565b6102406102b5366004611832565b6108de565b6102406102c83660046117d1565b6108eb565b61025969010f0cf064dd5920000081565b6102406102ec366004611788565b610a19565b6102596102ff366004611701565b6001600160a01b031660009081526020819052604090205490565b610240610ab0565b610240610330366004611788565b610b24565b610240610343366004611788565b610b6b565b6003546001600160a01b03165b6040516001600160a01b0390911681526020016101de565b61024061037b366004611701565b610bfa565b6101d1610c8e565b61020a610396366004611788565b610c9b565b61020a6103a9366004611788565b610cea565b6102406103bc366004611701565b610cf7565b6102406103cf366004611701565b610e8b565b6102596103e236600461171b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61035561041b366004611832565b610f9c565b61024061042e366004611701565b610fc6565b600854610355906001600160a01b031681565b6005805461045390611901565b80601f016020809104026020016040519081016040528092919081815260200182805461047f90611901565b80156104cc5780601f106104a1576101008083540402835291602001916104cc565b820191906000526020600020905b8154815290600101906020018083116104af57829003601f168201915b505050505081565b60006104e13384846110b1565b50600192915050565b6000805b6006548110156106075760006001600160a01b03166006828154811061052457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316148015906105e757506006818154811061056357634e487b7160e01b600052603260045260246000fd5b600091825260209091200154604051631246dbf560e01b81523360048201526001600160a01b0390911690631246dbf59060240160206040518083038186803b1580156105af57600080fd5b505afa1580156105c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e791906117b1565b156105f55760019150610607565b806105ff8161193c565b9150506104ee565b50806106435760405162461bcd60e51b815260206004820152600660248201526521706f6f6c7360d01b60448201526064015b60405180910390fd5b61064d83836111cd565b60405182815233906001600160a01b038516907fb53a8a5aa66e96b4627a60632ff728cd6991e142988ea8f28215fae565fe8ad0906020015b60405180910390a3505050565b6000805b6006548110156107b05760006001600160a01b0316600682815481106106cd57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161480159061079057506006818154811061070c57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154604051631246dbf560e01b81523360048201526001600160a01b0390911690631246dbf59060240160206040518083038186803b15801561075857600080fd5b505afa15801561076c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079091906117b1565b1561079e57600191506107b0565b806107a88161193c565b915050610697565b50806107e75760405162461bcd60e51b815260206004820152600660248201526521706f6f6c7360d01b604482015260640161063a565b6107f1838361121c565b6040518281526001600160a01b0384169033907f0c0f5df55f02a0601bce877b4f87152a1e95aa77aa55a08f16a8852fcf1f2bf990602001610686565b600061083b8484846112f3565b61089e8433610899856040518060600160405280602881526020016119cc602891396001600160a01b038a16600090815260016020526040812090335b6001600160a01b031681526020810191909152604001600020549190611476565b6110b1565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104e191859061089990866114a2565b6108e833826114b5565b50565b600354600160a81b900460ff168061090d5750600354600160a01b900460ff16155b6109705760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161063a565b600354600160a81b900460ff1615801561099a576003805461ffff60a01b191661010160a01b1790555b6003546001600160a01b031633146109c45760405162461bcd60e51b815260040161063a9061189d565b82516109d79060059060208601906115c5565b5081516109eb9060049060208501906115c5565b50610a003369010f0cf064dd5920000061121c565b8015610a14576003805460ff60a81b191690555b505050565b6008546001600160a01b03163314610a615760405162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015260640161063a565b610a6b828261121c565b6040518181526001600160a01b0383169033907f0c0f5df55f02a0601bce877b4f87152a1e95aa77aa55a08f16a8852fcf1f2bf9906020015b60405180910390a35050565b6003546001600160a01b03163314610ada5760405162461bcd60e51b815260040161063a9061189d565b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b6000610b54826040518060600160405280602481526020016119f460249139610b4d86336103e2565b9190611476565b9050610b618333836110b1565b610a1483836114b5565b6008546001600160a01b03163314610bb35760405162461bcd60e51b815260206004820152600b60248201526a10b1b7b73a3937b63632b960a91b604482015260640161063a565b610bbd82826111cd565b60405181815233906001600160a01b038416907fb53a8a5aa66e96b4627a60632ff728cd6991e142988ea8f28215fae565fe8ad090602001610aa4565b6003546001600160a01b03163314610c245760405162461bcd60e51b815260040161063a9061189d565b6001600160a01b038116610c6c5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161063a565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6004805461045390611901565b60006104e1338461089985604051806060016040528060258152602001611a18602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611476565b60006104e13384846112f3565b6003546001600160a01b03163314610d215760405162461bcd60e51b815260040161063a9061189d565b6001600160a01b03811660009081526007602052604090205460ff161515600114610d7a5760405162461bcd60e51b815260206004820152600960248201526821747265617375727960b81b604482015260640161063a565b6001600160a01b0381166000908152600760205260408120805460ff191690555b600654811015610e5357816001600160a01b031660068281548110610dd057634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610e4157600060068281548110610e0e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610e53565b80610e4b8161193c565b915050610d9b565b506040516001600160a01b038216907f0820ed7a122a6fc9da8baebd1b26fd87a75060c4d45f69af14c3bfc5f697a4ae90600090a250565b6003546001600160a01b03163314610eb55760405162461bcd60e51b815260040161063a9061189d565b6001600160a01b03811660009081526007602052604090205460ff1615610f105760405162461bcd60e51b815260206004820152600f60248201526e1d1c99585cdd5c9e515e1a5cdd1959608a1b604482015260640161063a565b6001600160a01b038116600081815260076020526040808220805460ff1916600190811790915560068054918201815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191684179055517fedfa2f73691730ba0803543209339afdd054637240c6ff0a7ae0dad3c191648c9190a250565b60068181548110610fac57600080fd5b6000918252602090912001546001600160a01b0316905081565b6003546001600160a01b03163314610ff05760405162461bcd60e51b815260040161063a9061189d565b6001600160a01b0381166110555760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063a565b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111135760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161063a565b6001600160a01b0382166111745760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161063a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610686565b6111d782826114b5565b6112188233610899846040518060600160405280602481526020016119f4602491396001600160a01b03881660009081526001602052604081209033610878565b5050565b6001600160a01b0382166112725760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161063a565b60025461127f90826114a2565b6002556001600160a01b0382166000908152602081905260409020546112a590826114a2565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610aa4565b6001600160a01b0383166113575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063a565b6001600160a01b0382166113b95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063a565b6113f6816040518060600160405280602681526020016119a6602691396001600160a01b0386166000908152602081905260409020549190611476565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461142590826114a2565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610686565b6000818484111561149a5760405162461bcd60e51b815260040161063a919061184a565b505050900390565b60006114ae82846118d2565b9392505050565b6001600160a01b0382166115155760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161063a565b61155281604051806060016040528060228152602001611984602291396001600160a01b0385166000908152602081905260409020549190611476565b6001600160a01b03831660009081526020819052604090205560025461157890826115b9565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610aa4565b60006114ae82846118ea565b8280546115d190611901565b90600052602060002090601f0160209004810192826115f35760008555611639565b82601f1061160c57805160ff1916838001178555611639565b82800160010185558215611639579182015b8281111561163957825182559160200191906001019061161e565b50611645929150611649565b5090565b5b80821115611645576000815560010161164a565b80356001600160a01b038116811461167557600080fd5b919050565b600082601f83011261168a578081fd5b813567ffffffffffffffff808211156116a5576116a561196d565b604051601f8301601f19908116603f011681019082821181831017156116cd576116cd61196d565b816040528381528660208588010111156116e5578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611712578081fd5b6114ae8261165e565b6000806040838503121561172d578081fd5b6117368361165e565b91506117446020840161165e565b90509250929050565b600080600060608486031215611761578081fd5b61176a8461165e565b92506117786020850161165e565b9150604084013590509250925092565b6000806040838503121561179a578182fd5b6117a38361165e565b946020939093013593505050565b6000602082840312156117c2578081fd5b815180151581146114ae578182fd5b600080604083850312156117e3578182fd5b823567ffffffffffffffff808211156117fa578384fd5b6118068683870161167a565b9350602085013591508082111561181b578283fd5b506118288582860161167a565b9150509250929050565b600060208284031215611843578081fd5b5035919050565b6000602080835283518082850152825b818110156118765785810183015185820160400152820161185a565b818111156118875783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156118e5576118e5611957565b500190565b6000828210156118fc576118fc611957565b500390565b600181811c9082168061191557607f821691505b6020821081141561193657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561195057611950611957565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b3a39a7cda4ff98bba9e981d1e1b1a9176170c388a8d16d13ab821eb8705dad364736f6c63430008040033