[ { "inputs": [ { "internalType": "address payable", "name": "_demoAddr", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": false, "internalType": "uint32", "name": "err", "type": "uint32" } ], "name": "FetchPriceError", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes", "name": "err", "type": "bytes" } ], "name": "FetchPriceRet", "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": [], "name": "HA", "outputs": [ { "internalType": "contract HybridAccount", "name": "", "type": "address" } ], "stateMutability": "view", "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": [], "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": [ { "internalType": "string", "name": "token", "type": "string" } ], "name": "fetchPrice", "outputs": [], "stateMutability": "nonpayable", "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": [], "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": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "tokenPrices", "outputs": [ { "internalType": "string", "name": "price", "type": "string" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "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": "amount", "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": "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" } ]
60806040523480156200001157600080fd5b506040516200148738038062001487833981016040819052620000349162000132565b6040518060400160405280601081526020016f2a37b5b2b7283934b1b2902a37b5b2b760811b8152506040518060400160405280600381526020016215141560ea1b81525081600390816200008a919062000209565b50600462000099828262000209565b505050620000b6620000b0620000dc60201b60201c565b620000e0565b600780546001600160a01b0319166001600160a01b0392909216919091179055620002d5565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200014557600080fd5b81516001600160a01b03811681146200015d57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018f57607f821691505b602082108103620001b057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200020457600081815260208120601f850160051c81016020861015620001df5750805b601f850160051c820191505b818110156200020057828155600101620001eb565b5050505b505050565b81516001600160401b0381111562000225576200022562000164565b6200023d816200023684546200017a565b84620001b6565b602080601f8311600181146200027557600084156200025c5750858301515b600019600386901b1c1916600185901b17855562000200565b600085815260208120601f198616915b82811015620002a65788860151825594840194600190910190840162000285565b5085821015620002c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6111a280620002e56000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d714610222578063a9059cbb14610235578063dd62ed3e14610248578063e19cb3801461025b578063f2fde38b1461027c57600080fd5b8063715018a6146101ec5780638da5cb5b146101f657806395d89b41146102075780639782dd2a1461020f57600080fd5b806323b872dd116100de57806323b872dd1461018e578063313ce567146101a157806339509351146101b057806370a08231146101c357600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806320de1b2314610163575b600080fd5b61011861028f565b6040516101259190610c32565b60405180910390f35b61014161013c366004610c61565b610321565b6040519015158152602001610125565b6002545b604051908152602001610125565b600754610176906001600160a01b031681565b6040516001600160a01b039091168152602001610125565b61014161019c366004610c8b565b61033b565b60405160128152602001610125565b6101416101be366004610c61565b610361565b6101556101d1366004610cc7565b6001600160a01b031660009081526020819052604090205490565b6101f4610383565b005b6005546001600160a01b0316610176565b610118610397565b6101f461021d366004610ce2565b6103a6565b610141610230366004610c61565b610608565b610141610243366004610c61565b61068e565b610155610256366004610d54565b61069c565b61026e610269366004610df6565b6106c7565b604051610125929190610e76565b6101f461028a366004610cc7565b610776565b60606003805461029e90610e98565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e98565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60003361032f8185856107ef565b60019150505b92915050565b600033610349858285610913565b61035485858561098d565b60019150505b9392505050565b60003361032f818585610374838361069c565b61037e9190610ed2565b6107ef565b61038b610b31565b6103956000610b8b565b565b60606004805461029e90610e98565b6060600083836040516024016103bd929190610ef3565b60408051601f19818403018152918152602080830180516001600160e01b031663134f716b60e01b179052815133918101919091529192506000910160405160208183030381529060405261041190610f22565b60075460405163839f845760e01b815291925060009182916001600160a01b03169063839f8457906104499086908890600401610f46565b6000604051808303816000875af1158015610468573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104909190810190610f97565b915091508163ffffffff16600014610597576040805160808101825260058183019081526422a92927a960d91b6060830152815242602082015290516006906104dc908a908a90611005565b908152604051908190036020019020815181906104f99082611063565b5060209182015160019091015560405163ffffffff841681527fe171b8cda1fca4270db0209bfc6b47e18f2fe33c3abfaa2f0587f6ad7cdad140910160405180910390a17f1b889744d9666a6544fd67095b9068ff0360667d026cc3174b9e94ba1f1abfe28160405161056c9190610c32565b60405180910390a18060405162461bcd60e51b815260040161058e9190610c32565b60405180910390fd5b808060200190518101906105ab9190611123565b9450604051806040016040528086815260200142815250600688886040516105d4929190611005565b908152604051908190036020019020815181906105f19082611063565b506020820151816001015590505050505050505050565b60003381610616828661069c565b9050838110156106765760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161058e565b61068382868684036107ef565b506001949350505050565b60003361032f81858561098d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b80516020818301810180516006825292820191909301209152805481906106ed90610e98565b80601f016020809104026020016040519081016040528092919081815260200182805461071990610e98565b80156107665780601f1061073b57610100808354040283529160200191610766565b820191906000526020600020905b81548152906001019060200180831161074957829003601f168201915b5050505050908060010154905082565b61077e610b31565b6001600160a01b0381166107e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161058e565b6107ec81610b8b565b50565b6001600160a01b0383166108515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161058e565b6001600160a01b0382166108b25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161058e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061091f848461069c565b90506000198114610987578181101561097a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161058e565b61098784848484036107ef565b50505050565b6001600160a01b0383166109f15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161058e565b6001600160a01b038216610a535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161058e565b6001600160a01b03831660009081526020819052604090205481811015610acb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161058e565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610987565b6005546001600160a01b031633146103955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b505050565b60005b83811015610bfd578181015183820152602001610be5565b50506000910152565b60008151808452610c1e816020860160208601610be2565b601f01601f19169290920160200192915050565b60208152600061035a6020830184610c06565b80356001600160a01b0381168114610c5c57600080fd5b919050565b60008060408385031215610c7457600080fd5b610c7d83610c45565b946020939093013593505050565b600080600060608486031215610ca057600080fd5b610ca984610c45565b9250610cb760208501610c45565b9150604084013590509250925092565b600060208284031215610cd957600080fd5b61035a82610c45565b60008060208385031215610cf557600080fd5b823567ffffffffffffffff80821115610d0d57600080fd5b818501915085601f830112610d2157600080fd5b813581811115610d3057600080fd5b866020828501011115610d4257600080fd5b60209290920196919550909350505050565b60008060408385031215610d6757600080fd5b610d7083610c45565b9150610d7e60208401610c45565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610dc657610dc6610d87565b604052919050565b600067ffffffffffffffff821115610de857610de8610d87565b50601f01601f191660200190565b600060208284031215610e0857600080fd5b813567ffffffffffffffff811115610e1f57600080fd5b8201601f81018413610e3057600080fd5b8035610e43610e3e82610dce565b610d9d565b818152856020838501011115610e5857600080fd5b81602084016020830137600091810160200191909152949350505050565b604081526000610e896040830185610c06565b90508260208301529392505050565b600181811c90821680610eac57607f821691505b602082108103610ecc57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561033557634e487b7160e01b600052601160045260246000fd5b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b80516020808301519190811015610ecc5760001960209190910360031b1b16919050565b828152604060208201526000610f5f6040830184610c06565b949350505050565b6000610f75610e3e84610dce565b9050828152838383011115610f8957600080fd5b61035a836020830184610be2565b60008060408385031215610faa57600080fd5b825163ffffffff81168114610fbe57600080fd5b602084015190925067ffffffffffffffff811115610fdb57600080fd5b8301601f81018513610fec57600080fd5b610ffb85825160208401610f67565b9150509250929050565b8183823760009101908152919050565b601f821115610bdd57600081815260208120601f850160051c8101602086101561103c5750805b601f850160051c820191505b8181101561105b57828155600101611048565b505050505050565b815167ffffffffffffffff81111561107d5761107d610d87565b6110918161108b8454610e98565b84611015565b602080601f8311600181146110c657600084156110ae5750858301515b600019600386901b1c1916600185901b17855561105b565b600085815260208120601f198616915b828110156110f5578886015182559484019460019091019084016110d6565b50858210156111135787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561113557600080fd5b815167ffffffffffffffff81111561114c57600080fd5b8201601f8101841361115d57600080fd5b610f5f84825160208401610f6756fea2646970667358221220a1c11354c268d6b96a2f584f0706a2ad6b90de6c52fae91ccdf8bac9c11c69cd64736f6c63430008130033000000000000000000000000f04f555bd7408056ef07751ba1986f66ad541391