[ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "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" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": "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" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Power", "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": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getPower", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasPower", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": [], "name": "renounceOwnership", "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": "account", "type": "address" } ], "name": "unGetPower", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801562000010575f80fd5b506040516200206838038062002068833981810160405281019062000036919062000577565b806040518060400160405280601281526020017f594f444120464f5220505245534944454e5400000000000000000000000000008152506040518060400160405280600481526020017f594f4441000000000000000000000000000000000000000000000000000000008152508160039081620000b491906200080b565b508060049081620000c691906200080b565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013c575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000133919062000900565b60405180910390fd5b6200014d816200019960201b60201c565b506200019281620001636200025c60201b60201c565b60ff16600a62000174919062000a98565b64012a05f20062000186919062000ae8565b6200026460201b60201c565b5062000bd3565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002d7575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002ce919062000900565b60405180910390fd5b620002ea5f8383620002ee60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000342578060025f82825462000335919062000b32565b9250508190555062000413565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015620003ce578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620003c59392919062000b7d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200045c578060025f8282540392505081905550620004a6565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000505919062000bb8565b60405180910390a3505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005418262000516565b9050919050565b620005538162000535565b81146200055e575f80fd5b50565b5f81519050620005718162000548565b92915050565b5f602082840312156200058f576200058e62000512565b5b5f6200059e8482850162000561565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200062357607f821691505b602082108103620006395762000638620005de565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200069d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000660565b620006a9868362000660565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006f3620006ed620006e784620006c1565b620006ca565b620006c1565b9050919050565b5f819050919050565b6200070e83620006d3565b620007266200071d82620006fa565b8484546200066c565b825550505050565b5f90565b6200073c6200072e565b6200074981848462000703565b505050565b5b818110156200077057620007645f8262000732565b6001810190506200074f565b5050565b601f821115620007bf5762000789816200063f565b620007948462000651565b81016020851015620007a4578190505b620007bc620007b38562000651565b8301826200074e565b50505b505050565b5f82821c905092915050565b5f620007e15f1984600802620007c4565b1980831691505092915050565b5f620007fb8383620007d0565b9150826002028217905092915050565b6200081682620005a7565b67ffffffffffffffff811115620008325762000831620005b1565b5b6200083e82546200060b565b6200084b82828562000774565b5f60209050601f83116001811462000881575f84156200086c578287015190505b620008788582620007ee565b865550620008e7565b601f19841662000891866200063f565b5f5b82811015620008ba5784890151825560018201915060208501945060208101905062000893565b86831015620008da5784890151620008d6601f891682620007d0565b8355505b6001600288020188555050505b505050505050565b620008fa8162000535565b82525050565b5f602082019050620009155f830184620008ef565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620009a5578086048111156200097d576200097c6200091b565b5b60018516156200098d5780820291505b80810290506200099d8562000948565b94506200095d565b94509492505050565b5f82620009bf576001905062000a91565b81620009ce575f905062000a91565b8160018114620009e75760028114620009f25762000a28565b600191505062000a91565b60ff84111562000a075762000a066200091b565b5b8360020a91508482111562000a215762000a206200091b565b5b5062000a91565b5060208310610133831016604e8410600b841016171562000a625782820a90508381111562000a5c5762000a5b6200091b565b5b62000a91565b62000a71848484600162000954565b9250905081840481111562000a8b5762000a8a6200091b565b5b81810290505b9392505050565b5f62000aa482620006c1565b915062000ab183620006c1565b925062000ae07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009ae565b905092915050565b5f62000af482620006c1565b915062000b0183620006c1565b925082820262000b1181620006c1565b9150828204841483151762000b2b5762000b2a6200091b565b5b5092915050565b5f62000b3e82620006c1565b915062000b4b83620006c1565b925082820190508082111562000b665762000b656200091b565b5b92915050565b62000b7781620006c1565b82525050565b5f60608201905062000b925f830186620008ef565b62000ba1602083018562000b6c565b62000bb0604083018462000b6c565b949350505050565b5f60208201905062000bcd5f83018462000b6c565b92915050565b6114878062000be15f395ff3fe608060405234801561000f575f80fd5b50600436106100fe575f3560e01c8063715018a611610095578063c9d266e811610064578063c9d266e8146102ae578063dd62ed3e146102ca578063f2fde38b146102fa578063fac4efbc14610316576100fe565b8063715018a6146102385780638da5cb5b1461024257806395d89b4114610260578063a9059cbb1461027e576100fe565b8063313ce567116100d1578063313ce5671461019e57806348443478146101bc5780635dd9147c146101ec57806370a0823114610208576100fe565b806306fdde0314610102578063095ea7b31461012057806318160ddd1461015057806323b872dd1461016e575b5f80fd5b61010a610332565b6040516101179190611030565b60405180910390f35b61013a600480360381019061013591906110e1565b6103c2565b6040516101479190611139565b60405180910390f35b6101586103e4565b6040516101659190611161565b60405180910390f35b6101886004803603810190610183919061117a565b6103ed565b6040516101959190611139565b60405180910390f35b6101a661040c565b6040516101b391906111e5565b60405180910390f35b6101d660048036038101906101d191906111fe565b610414565b6040516101e39190611139565b60405180910390f35b610206600480360381019061020191906111fe565b610425565b005b610222600480360381019061021d91906111fe565b61043b565b60405161022f9190611161565b60405180910390f35b610240610480565b005b61024a610493565b6040516102579190611238565b60405180910390f35b6102686104bb565b6040516102759190611030565b60405180910390f35b610298600480360381019061029391906110e1565b61054b565b6040516102a59190611139565b60405180910390f35b6102c860048036038101906102c391906110e1565b61056f565b005b6102e460048036038101906102df9190611251565b610585565b6040516102f19190611161565b60405180910390f35b610314600480360381019061030f91906111fe565b610607565b005b610330600480360381019061032b91906111fe565b61068b565b005b606060038054610341906112bc565b80601f016020809104026020016040519081016040528092919081815260200182805461036d906112bc565b80156103b85780601f1061038f576101008083540402835291602001916103b8565b820191905f5260205f20905b81548152906001019060200180831161039b57829003601f168201915b5050505050905090565b5f806103cc6106a0565b90506103d98185856106a7565b600191505092915050565b5f600254905090565b5f6103f884846106b9565b61040384848461074f565b90509392505050565b5f6012905090565b5f61041e8261077d565b9050919050565b61042d6107cf565b610438816001610856565b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104886107cf565b6104915f6108ae565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104ca906112bc565b80601f01602080910402602001604051908101604052809291908181526020018280546104f6906112bc565b80156105415780601f1061051857610100808354040283529160200191610541565b820191905f5260205f20905b81548152906001019060200180831161052457829003601f168201915b5050505050905090565b5f61055d6105576106a0565b846106b9565b6105678383610971565b905092915050565b6105776107cf565b6105818282610993565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61060f6107cf565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361067f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106769190611238565b60405180910390fd5b610688816108ae565b50565b6106936107cf565b61069d815f610856565b50565b5f33905090565b6106b483838360016109a1565b505050565b6106c28261077d565b15610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990611336565b60405180910390fd5b61070b8161077d565b1561074b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107429061139e565b60405180910390fd5b5050565b5f806107596106a0565b9050610766858285610b70565b610771858585610c02565b60019150509392505050565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6107d76106a0565b73ffffffffffffffffffffffffffffffffffffffff166107f5610493565b73ffffffffffffffffffffffffffffffffffffffff1614610854576108186106a0565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161084b9190611238565b60405180910390fd5b565b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8061097b6106a0565b9050610988818585610c02565b600191505092915050565b61099d8282610cf2565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a11575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a089190611238565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a789190611238565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b6a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b619190611161565b60405180910390a35b50505050565b5f610b7b8484610585565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bfc5781811015610bed578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610be4939291906113bc565b60405180910390fd5b610bfb84848484035f6109a1565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c72575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610c699190611238565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce2575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610cd99190611238565b60405180910390fd5b610ced838383610d00565b505050565b610cfc8282610f19565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d50578060025f828254610d44919061141e565b92505081905550610e1e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610dd9578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610dd0939291906113bc565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e65578060025f8282540392505081905550610eaf565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f0c9190611161565b60405180910390a3505050565b610f238282610f27565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f97575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f8e9190611238565b60405180910390fd5b610fa25f8383610d00565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610fdd578082015181840152602081019050610fc2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61100282610fa6565b61100c8185610fb0565b935061101c818560208601610fc0565b61102581610fe8565b840191505092915050565b5f6020820190508181035f8301526110488184610ff8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61107d82611054565b9050919050565b61108d81611073565b8114611097575f80fd5b50565b5f813590506110a881611084565b92915050565b5f819050919050565b6110c0816110ae565b81146110ca575f80fd5b50565b5f813590506110db816110b7565b92915050565b5f80604083850312156110f7576110f6611050565b5b5f6111048582860161109a565b9250506020611115858286016110cd565b9150509250929050565b5f8115159050919050565b6111338161111f565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b61115b816110ae565b82525050565b5f6020820190506111745f830184611152565b92915050565b5f805f6060848603121561119157611190611050565b5b5f61119e8682870161109a565b93505060206111af8682870161109a565b92505060406111c0868287016110cd565b9150509250925092565b5f60ff82169050919050565b6111df816111ca565b82525050565b5f6020820190506111f85f8301846111d6565b92915050565b5f6020828403121561121357611212611050565b5b5f6112208482850161109a565b91505092915050565b61123281611073565b82525050565b5f60208201905061124b5f830184611229565b92915050565b5f806040838503121561126757611266611050565b5b5f6112748582860161109a565b92505060206112858582860161109a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806112d357607f821691505b6020821081036112e6576112e561128f565b5b50919050565b7f5472616e736665722066726f6d207265737472696374656420616464726573735f82015250565b5f611320602083610fb0565b915061132b826112ec565b602082019050919050565b5f6020820190508181035f83015261134d81611314565b9050919050565b7f5472616e7366657220746f2072657374726963746564206164647265737300005f82015250565b5f611388601e83610fb0565b915061139382611354565b602082019050919050565b5f6020820190508181035f8301526113b58161137c565b9050919050565b5f6060820190506113cf5f830186611229565b6113dc6020830185611152565b6113e96040830184611152565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611428826110ae565b9150611433836110ae565b925082820190508082111561144b5761144a6113f1565b5b9291505056fea264697066735822122048e73436c3c443b3c17288e2b8022652d6e91f2063e28954cc7baa9697c9047564736f6c6343000814003300000000000000000000000064d46bd659eec42408070be3fda9346e891d3b01