[ { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "increasedSupply", "type": "uint256" }, { "internalType": "uint256", "name": "cap", "type": "uint256" } ], "name": "ERC20ExceededCap", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "cap", "type": "uint256" } ], "name": "ERC20InvalidCap", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "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": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "contracts", "type": "address[]" } ], "name": "addMinters", "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": "value", "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": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "contracts", "type": "address[]" } ], "name": "removeMinters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60a034620003f057620014fb90813803601f1990601f93828583011684019160018060401b039285811084821117620003da57859282916040528339602094859181010312620003d557519260018060a01b0384168403620003d05762000065620003f5565b600681527f53706161636500000000000000000000000000000000000000000000000000008282015262000098620003f5565b95600687527f535041414345000000000000000000000000000000000000000000000000000083880152815192848411620003ba5760039384546001948582811c92168015620003af575b84831014620003995781858493116200033e575b508390858311600114620002d257600092620002c5575b505081851b9160001990871b1c19161784555b8751948511620002af5760049586548481811c91168015620002a4575b838210146200028f5783811162000242575b5081928611600114620001d45750508392918391620001a498600095620001c5575b50501b92600019911b1c19161790555b6b033b2e3c9fd0803ce80000006080526200019d816200042a565b50620004aa565b50604051610fae90816200054d823960805181818161055c015261065c0152f35b90919450015192388062000172565b85949291939516978660005283600020936000905b8a82106200022a57505084620001a499106200020f575b50505050811b01905562000182565b01519060f884600019921b161c191690553880808062000200565b808885978294968601518155019601930190620001e9565b87600052826000208480890160051c820192858a1062000285575b908792910160051c01915b8281106200027857505062000150565b6000815501859062000268565b925081926200025d565b602288634e487b7160e01b6000525260246000fd5b90607f16906200013e565b634e487b7160e01b600052604160045260246000fd5b909150015138806200010e565b90898794169188600052856000209260005b878282106200031e575050841162000305575b505050811b01845562000121565b015160001960f8848a1b161c19169055388080620002f7565b9192939596829195878601518155019501930190889594939291620002e4565b90915086600052836000208580850160051c8201928686106200038f575b918891869594930160051c01915b8281106200037a575050620000f7565b9091929350600081550190868493926200036a565b925081926200035c565b634e487b7160e01b600052602260045260246000fd5b91607f1691620000e3565b634e487b7160e01b600052604160045260246000fd5b600080fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b604051906040820182811060018060401b038211176200041457604052565b634e487b7160e01b600052604160045260246000fd5b6000908180526005602052604082209060018060a01b03169081835260205260ff60408320541615600014620004a65781805260056020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5090565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc9906000918083526005602052604083209160018060a01b03169182845260205260ff60408420541615600014620005475780835260056020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b50509056fe6080604081815260049182361015610017575b600080fd5b600092833560e01c91826301ffc9a714610a295750816306fdde03146108f6578163095ea7b31461084757816318160ddd1461082057816323b872dd14610726578163248a9ca3146106f35781632f2ff15d146106ab578163313ce56714610687578163355274ea1461064457816336568abe146105f357816340c10f19146104a25781635fc1964f1461045157816370a082311461041457816371e2a657146103c357816391d148541461037657816395d89b4114610245578163a217fddf14610221578163a9059cbb146101e8578163d5391393146101a5578163d547741f1461015d575063dd62ed3e1461010e5780610012565b346101595780600319360112610155578060209261012a610ad3565b610132610aed565b9060018060a01b0380911683526001865283832091168252845220549051908152f35b5080fd5b5080fd5b919050346101a1578060031936011261019d5761019991356101946001610182610aed565b93838752600560205286200154610baf565b610db1565b5080f35b8280fd5b8280fd5b5050346101e457816003193601126101e057602090517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b5080fd5b5080fd5b50503461021d578060031936011261021957602090610212610208610ad3565b6024359033610e2d565b5160018152f35b5080fd5b5080fd5b505034610241578160031936011261023d579060209151908152f35b5080fd5b5080fd5b838334610372578160031936011261036e57805190828454600181811c90808316928315610364575b602093848410811461035157838852908160001461033357506001146102d7575b505050601f8381199203011682019282841067ffffffffffffffff8511176102c457508291826102c0925282610a88565b0390f35b602490604186634e487b7160e01b835252fd5b9192508686527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b918387935b838510610319575050505083010185808061028f565b9182819495935483858b0101520191019291908490610303565b92939450505060ff191682850152151560051b83010185808061028f565b60248960228c634e487b7160e01b835252fd5b91607f169161026e565b5080fd5b5080fd5b9050346103bf57816003193601126103bb578160209360ff92610397610aed565b90358252600586528282209060018060a01b03168252855220541690519015158152f35b8280fd5b8280fd5b8334610411576103d236610b07565b6103da610b6d565b825b8181106103e7578380f35b806104066104016103fc61040c948688610f3a565b610f60565b610bf3565b50610f15565b6103dc565b80fd5b50503461044d576020600319360112610449578060209260018060a01b0361043a610ad3565b16815280845220549051908152f35b5080fd5b5080fd5b833461049f5761046036610b07565b610468610b6d565b825b818110610475578380f35b8061049461048f61048a61049a948688610f3a565b610f60565b610d14565b50610f15565b61046a565b80fd5b919050346105ef57806003193601126105eb576104bd610ad3565b602435907ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc9808652600560205283862033875260205260ff8487205416156105ce575060018060a01b03169081156105b8576002548181018091116105a557602086927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926002558484528382528584208181540190558551908152a37f0000000000000000000000000000000000000000000000000000000000000000906002549082821161058b578480f35b60449450519263279e7e1560e21b84528301526024820152fd5b602486601187634e487b7160e01b835252fd5b6024848685519163ec442f0560e01b8352820152fd5b8460449185519163e2517d3f60e01b835233908301526024820152fd5b8280fd5b8280fd5b838334610640578060031936011261063c5761060d610aed565b903360018060a01b0383160361062d5750610629919235610db1565b5080f35b83905163334bd91960e11b8152fd5b5080fd5b5080fd5b505034610683578160031936011261067f57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b5080fd5b5050346106a757816003193601126106a3576020905160128152f35b5080fd5b5080fd5b919050346106ef57806003193601126106eb576106e791356106e260016106d0610aed565b93838752600560205286200154610baf565b610c94565b5080f35b8280fd5b8280fd5b90503461072257602060031936011261071e5781602093600192358152600585522001549051908152f35b8280fd5b8280fd5b9050823461081d57606060031936011261081a57610742610ad3565b61074a610aed565b916044359360018060a01b03831680835260016020528683203384526020528683205491600019830361078d575b602088610786898989610e2d565b5160018152f35b8683106107f85781156107e25733156107cc57509186866020989795936107869795845260018a528284203385528a5203912055919394819387610778565b60249084895191634a1406b160e11b8352820152fd5b6024908489519163e602df0560e01b8352820152fd5b9050610816868851938493637dc7a0d960e11b855233908501610ef7565b0390fd5b80fd5b80fd5b505034610843578160031936011261083f576020906002549051908152f35b5080fd5b5080fd5b9050346108f257816003193601126108ee57610861610ad3565b6024359033156108d85760018060a01b03169182156108c257508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b60249085855191634a1406b160e11b8352820152fd5b6024838686519163e602df0560e01b8352820152fd5b8280fd5b8280fd5b838334610a255781600319360112610a215780519082600354600181811c90808316928315610a17575b6020938484108114610a045783885290816000146109e65750600114610989575b505050601f8381199203011682019282841067ffffffffffffffff8511176109765750829182610972925282610a88565b0390f35b602490604186634e487b7160e01b835252fd5b919250600386527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918387935b8385106109cc5750505050830101858080610941565b9182819495935483858b01015201910192919084906109b6565b92939450505060ff191682850152151560051b830101858080610941565b60248960228c634e487b7160e01b835252fd5b91607f1691610920565b5080fd5b5080fd5b849134610a84576020600319360112610a80573563ffffffff60e01b8116809103610a7c5760209250637965db0b60e01b8114908115610a6b575b5015158152f35b90506301ffc9a760e01b1483610a64565b8280fd5b8280fd5b8280fd5b919091602092838252805190818584015260005b828110610abe57505060409293506000838284010152601f8019910116010190565b80868092840101516040828701015201610a9c565b6004359060018060a01b0382168203610ae857565b600080fd5b6024359060018060a01b0382168203610b0257565b600080fd5b906020600319830112610b685760043567ffffffffffffffff92838211610b635780602383011215610b5e578160040135938411610b595760248460051b83010111610b54576024019190565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080805260056020526040812033825260205260ff60408220541615610b915750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600560205260406000203360005260205260ff6040600020541615610bd55750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc9906000918083526005602052604083209160018060a01b03169182845260205260ff60408420541615600014610c8f5780835260056020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b906000918083526005602052604083209160018060a01b03169182845260205260ff60408420541615600014610d0f5780835260056020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc9906000918083526005602052604083209160018060a01b03169182845260205260ff604084205416600014610dac578083526005602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b505090565b906000918083526005602052604083209160018060a01b03169182845260205260ff604084205416600014610e28578083526005602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b505090565b9160018060a01b03808416928315610edf5716928315610ec75760009083825281602052604082205490838210610ea6575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b610ec38460405193849363391434e360e21b855260048501610ef7565b0390fd5b602460405163ec442f0560e01b815260006004820152fd5b6024604051634b637e8f60e11b815260006004820152fd5b604091949392606082019560018060a01b0316825260208201520152565b6000198114610f245760010190565b634e487b7160e01b600052601160045260246000fd5b9190811015610f4a5760051b0190565b634e487b7160e01b600052603260045260246000fd5b3560018060a01b0381168103610f735790565b600080fdfea2646970667358221220fe1821fdca4c3f486f7e3c8801d9df83dc811aa5d2cd812dfbaaca70ef91dce764736f6c63430008140033000000000000000000000000c9a6c261766704a90fdc92fc3b530ddedfb0b7b9