[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "ticker", "type": "string" }, { "internalType": "uint256", "name": "supply", "type": "uint256" }, { "internalType": "bool", "name": "vistaOnly", "type": "bool" } ], "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" }, { "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": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "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": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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" }, { "inputs": [], "name": "vistaOnly", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
6080604052600580546001600160a01b031916739a27cb5ae0b2cee0bb71f9a85c0d60f3920757b4179055348015610035575f80fd5b50604051610d94380380610d94833981016040819052610054916102c2565b838382600361006384826103ca565b50600461007083826103ca565b5060058054911515600160a01b0260ff60a01b19909216919091179055506100b990503261009c601290565b6100aa9060ff16600a61057d565b6100b4908561058f565b6100c2565b505050506105b9565b6001600160a01b0382166100f05760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6100fb5f83836100ff565b5050565b6001600160a01b038316610129578060025f82825461011e91906105a6565b909155506101999050565b6001600160a01b0383165f908152602081905260409020548181101561017b5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100e7565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166101b5576002805482900390556101d3565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161021891815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610248575f80fd5b81516001600160401b0381111561026157610261610225565b604051601f8201601f19908116603f011681016001600160401b038111828210171561028f5761028f610225565b6040528181528382016020018510156102a6575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f805f80608085870312156102d5575f80fd5b84516001600160401b038111156102ea575f80fd5b6102f687828801610239565b602087015190955090506001600160401b03811115610313575f80fd5b61031f87828801610239565b935050604085015191506060850151801515811461033b575f80fd5b939692955090935050565b600181811c9082168061035a57607f821691505b60208210810361037857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103c557805f5260205f20601f840160051c810160208510156103a35750805b601f840160051c820191505b818110156103c2575f81556001016103af565b50505b505050565b81516001600160401b038111156103e3576103e3610225565b6103f7816103f18454610346565b8461037e565b6020601f821160018114610429575f83156104125750848201515b5f19600385901b1c1916600184901b1784556103c2565b5f84815260208120601f198516915b828110156104585787850151825560209485019460019092019101610438565b508482101561047557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156104d3578085048111156104b7576104b7610484565b60018416156104c557908102905b60019390931c92800261049c565b935093915050565b5f826104e957506001610577565b816104f557505f610577565b816001811461050b576002811461051557610531565b6001915050610577565b60ff84111561052657610526610484565b50506001821b610577565b5060208310610133831016604e8410600b8410161715610554575081810a610577565b6105605f198484610498565b805f190482111561057357610573610484565b0290505b92915050565b5f61058883836104db565b9392505050565b808202811582820484141761057757610577610484565b8082018082111561057757610577610484565b6107ce806105c65f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c806370a082311161006357806370a0823114610114578063956b956a1461013c57806395d89b4114610150578063a9059cbb14610158578063dd62ed3e1461016b575f80fd5b806306fdde031461009f578063095ea7b3146100bd57806318160ddd146100e057806323b872dd146100f2578063313ce56714610105575b5f80fd5b6100a76101a3565b6040516100b49190610619565b60405180910390f35b6100d06100cb366004610665565b610233565b60405190151581526020016100b4565b6002545b6040519081526020016100b4565b6100d061010036600461068f565b6102f3565b604051601281526020016100b4565b6100e46101223660046106cd565b6001600160a01b03165f9081526020819052604090205490565b6005546100d090600160a01b900460ff1681565b6100a7610316565b6100d0610166366004610665565b610325565b6100e46101793660046106ef565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101b290610726565b80601f01602080910402602001604051908101604052809291908181526020018280546101de90610726565b80156102295780601f1061020057610100808354040283529160200191610229565b820191905f5260205f20905b81548152906001019060200180831161020c57829003601f168201915b5050505050905090565b6005545f90600160a01b900460ff1615156001036102db5760055f9054906101000a90046001600160a01b03166001600160a01b031663f887ea406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bf919061075e565b6001600160a01b0316836001600160a01b0316146102db575f80fd5b336102e7818585610332565b60019150505b92915050565b5f33610300858285610344565b61030b8585856103c4565b506001949350505050565b6060600480546101b290610726565b5f336102e78185856103c4565b61033f8383836001610421565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146103be57818110156103b057604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6103be84848484035f610421565b50505050565b6001600160a01b0383166103ed57604051634b637e8f60e11b81525f60048201526024016103a7565b6001600160a01b0382166104165760405163ec442f0560e01b81525f60048201526024016103a7565b61033f8383836104f3565b6001600160a01b03841661044a5760405163e602df0560e01b81525f60048201526024016103a7565b6001600160a01b03831661047357604051634a1406b160e11b81525f60048201526024016103a7565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103be57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104e591815260200190565b60405180910390a350505050565b6001600160a01b03831661051d578060025f8282546105129190610779565b9091555061058d9050565b6001600160a01b0383165f908152602081905260409020548181101561056f5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103a7565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166105a9576002805482900390556105c7565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161060c91815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610662575f80fd5b50565b5f8060408385031215610676575f80fd5b82356106818161064e565b946020939093013593505050565b5f805f606084860312156106a1575f80fd5b83356106ac8161064e565b925060208401356106bc8161064e565b929592945050506040919091013590565b5f602082840312156106dd575f80fd5b81356106e88161064e565b9392505050565b5f8060408385031215610700575f80fd5b823561070b8161064e565b9150602083013561071b8161064e565b809150509250929050565b600181811c9082168061073a57607f821691505b60208210810361075857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561076e575f80fd5b81516106e88161064e565b808201808211156102ed57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f76a23f0409ff15f7f2e108abb713bb10dede081535b5573764bfad98b5e0a1364736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000104e65726f204275726e696e6720524f4d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e45524f00000000000000000000000000000000000000000000000000000000