[ { "inputs": [ { "internalType": "address", "name": "beacon_", "type": "address" }, { "internalType": "address", "name": "backToken_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccountBalanceOverflow", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "JeetPoolRegistry_NoTokens", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "JeetPoolRegistry_PoolDoesNotExist", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "positionId", "type": "uint256" } ], "name": "JeetPoolRegistry_PositionDoesNotExist", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "positionId", "type": "uint256" } ], "name": "JeetPoolRegistry_SenderIsNotOwnerOfPosition", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "JeetPoolRegistry_TokenIsNotAllowed", "type": "error" }, { "inputs": [], "name": "NewOwnerIsZeroAddress", "type": "error" }, { "inputs": [], "name": "NoHandoverRequest", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TokenAlreadyExists", "type": "error" }, { "inputs": [], "name": "TokenDoesNotExist", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnauthorizedCallContext", "type": "error" }, { "inputs": [], "name": "UpgradeFailed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "pool", "type": "address" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" } ], "name": "PoolCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "addAllowedToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "beacon", "outputs": [ { "internalType": "address", "name": "beacon_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "buyBackAndBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cancelOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOracle", "type": "address" } ], "name": "changeBackOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "newOracle", "type": "address" } ], "name": "changePoolOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "positionId", "type": "uint256" }, { "internalType": "bool", "name": "burnBack", "type": "bool" }, { "internalType": "bool", "name": "above", "type": "bool" } ], "name": "closePosition", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "completeOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "oracle", "type": "address" } ], "name": "createPool", "outputs": [ { "internalType": "contract IJeetPool", "name": "newPool", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "targetPrice", "type": "uint256" } ], "name": "createPosition", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBackOracle", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBackToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "getBuyBackBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getJeetPoolImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNextPositionId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "getPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "positionId", "type": "uint256" } ], "name": "getPosition", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pool", "type": "address" } ], "name": "getToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getUserPositionIds", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getUserPositionIdsLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "isAllowedToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "result", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "removeAllowedToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "requestOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "startNewEpoch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "result", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "update", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" } ]
60e0604052306080523480156200001557600080fd5b5060405162002849380380620028498339810160408190526200003891620000de565b6001600160a01b0380831660a052811660c052620000556200005d565b505062000116565b63409feecd19805460018116156200007d5763f92ee8a96000526004601cfd5b8160c01c808260011c14620000bc578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b80516001600160a01b0381168114620000d957600080fd5b919050565b60008060408385031215620000f257600080fd5b620000fd83620000c1565b91506200010d60208401620000c1565b90509250929050565b60805160a05160c0516126d2620001776000396000818161059201528181610f92015281816110e20152611539015260008181610480015281816109610152818161136e0152611797015260008181610c0d0152610cf101526126d26000f3fe6080604052600436106102725760003560e01c80637e5617891161014f578063c87b56dd116100c1578063eb02c3011161007a578063eb02c301146107fa578063eddf757014610851578063ef6761631461087e578063f04e283e14610893578063f2fde38b146108a6578063fee81cf4146108b957600080fd5b8063c87b56dd146106e7578063cbe230c314610715578063de151e7f1461074e578063e343361514610784578063e985e9c5146107a4578063ea614159146107da57600080fd5b806395d89b411161011357806395d89b411461060f578063a22cb4651461063b578063accf06be1461065b578063b88d4fde1461067b578063bbe4f6db1461068e578063c4d66de8146106c757600080fd5b80637e561789146105635780638028525d146105835780638da5cb5b146105b65780638e2b6dcd146105cf57806390469a9d146105ef57600080fd5b806342842e0e116101e857806359770438116101ac57806359770438146104a45780636352211e146104dd57806370a08231146104fd578063715018a61461051d57806375a08cce146105255780637893b6201461054557600080fd5b806342842e0e1461042e5780634f1ef2861461044157806352d1902d1461045457806354d1f13d1461046957806359659e901461047157600080fd5b80631c1b87721161023a5780631c1b87721461039357806323b872dd146103b357806325692962146103c65780633729b98a146103ce5780634178617f146103ee57806342327bbf1461040e57600080fd5b806301ffc9a714610277578063067f4ddd146102c957806306fdde03146102f7578063081812fc14610346578063095ea7b31461037e575b600080fd5b34801561028357600080fd5b506102b46102923660046122ce565b6301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b60405190151581526020015b60405180910390f35b3480156102d557600080fd5b5060075460016001600160b01b0391821601165b6040519081526020016102c0565b34801561030357600080fd5b5060408051808201909152601a81527f4e6f6e66756e6769626c65506f736974696f6e4d616e6167657200000000000060208201525b6040516102c091906122f8565b34801561035257600080fd5b50610366610361366004612346565b6108ec565b6040516001600160a01b0390911681526020016102c0565b61039161038c366004612374565b61092b565b005b34801561039f57600080fd5b506103916103ae3660046123a0565b61093a565b6103916103c13660046123bd565b6109c0565b610391610acb565b3480156103da57600080fd5b506103916103e93660046123a0565b610b1b565b3480156103fa57600080fd5b506103916104093660046123a0565b610b45565b34801561041a57600080fd5b506103916104293660046123a0565b610b71565b61039161043c3660046123bd565b610bde565b61039161044f366004612447565b610c0b565b34801561046057600080fd5b506102e9610ced565b610391610d4c565b34801561047d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b3480156104b057600080fd5b506103666104bf3660046123a0565b6001600160a01b039081166000908152600360205260409020541690565b3480156104e957600080fd5b506103666104f8366004612346565b610d88565b34801561050957600080fd5b506102e96105183660046123a0565b610dad565b610391610de8565b34801561053157600080fd5b5061039161054036600461249c565b610dfc565b34801561055157600080fd5b506001546001600160a01b0316610366565b34801561056f57600080fd5b5061039161057e3660046123a0565b61100b565b34801561058f57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b3480156105c257600080fd5b50638b78c6d81954610366565b3480156105db57600080fd5b506103916105ea3660046124d1565b61115a565b3480156105fb57600080fd5b5061039161060a3660046123a0565b6111da565b34801561061b57600080fd5b506040805180820190915260038152624e504d60e81b6020820152610339565b34801561064757600080fd5b5061039161065636600461251a565b611203565b34801561066757600080fd5b506102e96106763660046123a0565b611259565b61039161068936600461254f565b611280565b34801561069a57600080fd5b506103666106a93660046123a0565b6001600160a01b039081166000908152600260205260409020541690565b3480156106d357600080fd5b506103916106e23660046123a0565b6112d4565b3480156106f357600080fd5b50610339610702366004612346565b5060408051602081019091526000815290565b34801561072157600080fd5b506102b46107303660046123a0565b6001600160a01b031660009081526020819052604090205460ff1690565b34801561075a57600080fd5b506102e96107693660046123a0565b6001600160a01b031660009081526004602052604090205490565b34801561079057600080fd5b5061036661079f3660046124d1565b61134d565b3480156107b057600080fd5b506102b46107bf3660046124d1565b601c52670a5a2e7a000000006008526000526030600c205490565b3480156107e657600080fd5b506103916107f53660046125c2565b61147e565b34801561080657600080fd5b5061081a610815366004612346565b611726565b604080516001600160a01b0390971687526020870195909552938501929092526060840152608083015260a082015260c0016102c0565b34801561085d57600080fd5b5061087161086c3660046123a0565b61176f565b6040516102c091906125fe565b34801561088a57600080fd5b50610366611793565b6103916108a13660046123a0565b61181c565b6103916108b43660046123a0565b61185c565b3480156108c557600080fd5b506102e96108d43660046123a0565b63389a75e1600c908152600091909152602090205490565b600081600052673ec412a9852d173d60c11b601c52602060002082018201805460601b6109215763ceea21b66000526004601cfd5b6001015492915050565b610936338383611883565b5050565b610942611924565b604051631b2ce7f360e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690633659cfe690602401600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b5050505050565b6000818152673ec412a9852d173d60c11b3317601c52602090208101810180546001600160a01b039485169493841693811691908286148302610a125767ceea21b6a1148100831560021b526004601cfd5b856000528160010154925082331486331417610a40576030600c2054610a4057634b6e7f186000526004601cfd5b8215610a4e57600082600101555b85851818905550601c600c8181208054600019019055600084905220805460010163ffffffff81168402610a915767ea553b3401336cea841560021b526004601cfd5b90558082847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a4610ac683838361193f565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b610b23611924565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610b4d611924565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b610b7a816119e4565b6000610b8582611a28565b9050806001600160a01b0316633aab0a626040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050505050565b610be98383836109c0565b813b15610ac657610ac683838360405180602001604052806000815250611a6c565b7f0000000000000000000000000000000000000000000000000000000000000000308103610c4157639f03a0266000526004601cfd5b610c4a84611af0565b8360601b60601c93506352d1902d6001527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80602060016004601d895afa5114610c9c576355299b496001526004601dfd5b847fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600038a28490558115610ce757604051828482376000388483885af46109b9573d6000823e3d81fd5b50505050565b60007f0000000000000000000000000000000000000000000000000000000000000000308114610d2557639f03a0266000526004601cfd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91505090565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b6000610d9382611af8565b905080610da85763ceea21b66000526004601cfd5b919050565b600081610dc257638f4eb6046000526004601cfd5b673ec412a9852d173d60c11b601c528160005263ffffffff601c600c2054169050919050565b610df0611924565b610dfa6000611b20565b565b610e05836119e4565b6000610e1084611a28565b9050610e276001600160a01b038516338386611b5e565b600780546001600160b01b0319811660016001600160b01b0392831681019092169081179092555460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca9160048083019260209291908290030181865afa925050508015610eb2575060408051601f3d908101601f19168201909252610eaf91810190612642565b60015b15610eba5790505b604051634ab4d7ab60e01b81526004810186905260248101859052604481018290526064810183905260009081906001600160a01b03861690634ab4d7ab9060840160408051808303816000875af1158015610f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3e919061265b565b600086815260056020526040908190204260a01b8917815560808a901b84176001820155600281018b90556003810183905590516340c10f1960e01b815233600482015260248101839052929450909250907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f1990604401600060405180830381600087803b158015610fde57600080fd5b505af1158015610ff2573d6000803e3d6000fd5b505050506110003386611bb2565b505050505050505050565b611013611924565b6001600160a01b0381166000908152600460205260408120549081900361104c57604051625c168b60e01b815260040160405180910390fd5b6001546001600160a01b03908116906110689084168284611bcc565b600154604051623438dd60e41b81526001600160a01b038581166004830152909116906303438dd090602401600060405180830381600087803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b505050506001600160a01b038381166000908152600460205260408120557f0000000000000000000000000000000000000000000000000000000000000000169050639dc29fac306111148382611c12565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610bc257600080fd5b611162611924565b61116b826119e4565b600061117683611a28565b60405163e24c513f60e01b81526001600160a01b0384811660048301529192509082169063e24c513f90602401600060405180830381600087803b1580156111bd57600080fd5b505af11580156111d1573d6000803e3d6000fd5b50505050505050565b6111e2611924565b6001600160a01b03166000908152602081905260409020805460ff19169055565b801515905081601c52670a5a2e7a0000000060085233600052806030600c2055806000528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206000a35050565b6001600160a01b038116600090815260066020526040812061127a90611c3e565b92915050565b61128b8585856109c0565b833b156109b9576109b985858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6c92505050565b63409feecd19805460038255801561130b5760018160011c14303b106113025763f92ee8a96000526004601cfd5b818160ff1b1b91505b5061131582611c49565b8015610936576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15050565b6000611357611924565b611360836119e4565b6000838152602090206113937f000000000000000000000000000000000000000000000000000000000000000082611c85565b60405163485cc95560e01b81526001600160a01b03868116600483015285811660248301529193509083169063485cc95590604401600060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b505050506001600160a01b03848116600081815260026020908152604080832080549588166001600160a01b0319968716811790915580845260038352928190208054909516841790945583519182528101919091527f4f2ce4e40f623ca765fc0167a25cb7842ceaafb8d82d3dec26ca0d0e0d2d4896910160405180910390a15092915050565b61148783611af8565b6001600160a01b0316336001600160a01b0316146114c05760405163b5f3716560e01b8152600481018490526024015b60405180910390fd5b6000806000806114cf87611c9a565b6001600160a01b03808816600090815260036020526040902054979b509399509097509550509290921691506115069050816119e4565b600087156115a2578661151d5750666a94d74f4300005b604051632770a7eb60e21b8152336004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639dc29fac90604401600060405180830381600087803b15801561158557600080fd5b505af1158015611599573d6000803e3d6000fd5b505050506115c2565b86156115b7575067016345785d8a00006115c2565b506703782dace9d900005b861561163b57604051637469c16f60e11b8152336004820152602481018a905260448101829052606481018690526001600160a01b0387169063e8d382de90608401600060405180830381600087803b15801561161e57600080fd5b505af1158015611632573d6000803e3d6000fd5b50505050611718565b60006116506001600160a01b03841630611c12565b604051637f9d91cb60e01b8152336004820152602481018c905260448101849052606481018890529091506000906001600160a01b03891690637f9d91cb906084016020604051808303816000875af11580156116b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d59190612642565b9050801561171557816116f16001600160a01b03861630611c12565b6001600160a01b038616600090815260046020526040902080549290910390910190555b50505b60008355611000338a611d16565b6000806000806000806000806000806000806117418d611c9a565b509550955095509550955095508585858585859b509b509b509b509b509b5050505050505091939550919395565b6001600160a01b038116600090815260066020526040902060609061127a90611deb565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611817919061267f565b905090565b611824611924565b63389a75e1600c52806000526020600c20805442111561184c57636f5e88186000526004601cfd5b6000905561185981611b20565b50565b611864611924565b8060601b61187a57637448fbae6000526004601cfd5b61185981611b20565b60001960601c828116925083811693508160005283673ec412a9852d173d60c11b17601c52602060002082018201805482169150816118ca5763ceea21b66000526004601cfd5b8185148515176118f057816000526030600c20546118f057634b6e7f186000526004601cfd5b6001018390558183827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a450505050565b638b78c6d819543314610dfa576382b429006000526004601cfd5b6001600160a01b03831661196f576001600160a01b0382166000908152600660205260409020610ce79082611dfc565b6001600160a01b03821661199f576001600160a01b0383166000908152600660205260409020610ce79082611e08565b6001600160a01b03831660009081526006602052604090206119c19082611e08565b506001600160a01b0382166000908152600660205260409020610ce79082611dfc565b6001600160a01b03811660009081526020819052604090205460ff166118595760405163e97ae61960e01b81526001600160a01b03821660048201526024016114b7565b6001600160a01b038082166000908152600260205260409020541680610da85760405163b60d865360e01b81526001600160a01b03831660048201526024016114b7565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a08401528015611ab3578060c08401826020870160045afa505b60208360a48301601c860160008a5af1611ad6573d15611ad6573d6000843e3d83fd5b508060e01b825114610bd65763d1a57ed66000526004601cfd5b611859611924565b6000818152673ec412a9852d173d60c11b601c5260209020810101546001600160a01b031690565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b60405181606052826040528360601b602c526323b872dd60601b600c52602060006064601c6000895af13d156001600051141716611ba457637939f4246000526004601cfd5b600060605260405250505050565b610936828260405180602001604052806000815250611e14565b816014528060345263a9059cbb60601b60005260206000604460106000875af13d156001600051141716611c08576390b8ec186000526004601cfd5b6000603452505050565b6000816014526370a0823160601b60005260208060246010865afa601f3d111660205102905092915050565b600061127a82611e32565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b6000611c9360008484611e82565b9392505050565b60008181526005602052604081208054829182918291829182919080611ccc57639a16fae4600052886020526024601cfd5b6001820154600283015460038401546001600160a01b0384169c60a09490941c9b506fffffffffffffffffffffffffffffffff83169a5060809290921c9850965094509092509050565b6000611d2182610d88565b90505060008181526001600160a01b03928316673ec412a9852d173d60c11b8117601c526020909120820182018054919382169182611d685763ceea21b66000526004601cfd5b82600052816001015480861484871417861517611d97576030600c2054611d9757634b6e7f186000526004601cfd5b8015611da557600083600101555b5082189055601c600c208054600019019055816000827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8238a4610ac68160008461193f565b606061127a611df983611f32565b90565b6000611c938383611fed565b6000611c93838361210e565b611e1e8383612225565b823b15610ac657610ac66000848484611a6c565b6318fb58646004526000818152602481208019548060011c925080611e7b5781546000935015611e7b57600192508282015415611e7b57600292508282015415611e7b57600392505b5050919050565b604080517fb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f36060527f1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c9091527660195155f3363d3d373d3d363d602036600436635c60da6020526860523d8160223d397360a01b6001600160a01b03841617600952600090826074600c87f5915081611f235763301164256000526004601cfd5b60405260006060529392505050565b6318fb5864600452600081815260249020801954604051919068fbb67fda52d4bfb8bf906020840181611fac5783548015611fa657808414150281526001848101549092508015611fa657808414150260208201526002848101549092508015611fa6576003925083811415810260408301525b50611fd8565b8160011c915060005b82811015611fd657848101548481141502600582901b830152600101611fb5565b505b8185528160051b810160405250505050919050565b6318fb586460045260008281526024812068fbb67fda52d4bfb8bf830361201c5763f5a267f16000526004601cfd5b8261202e5768fbb67fda52d4bfb8bf92505b80195481602052806120d35781548061204e578483556001935050612106565b84810361205b5750612106565b60018301548061207657856001850155600194505050612106565b858103612084575050612106565b6002840154806120a05786600286015560019550505050612106565b8681036120af57505050612106565b60009283526040808420600190559183528183206002905582529020600390555060075b836000526040600020805461210457600191821c8381018690558083019182905590821b8217831955909250612106565b505b505092915050565b6318fb586460045260008281526024812068fbb67fda52d4bfb8bf830361213d5763f5a267f16000526004601cfd5b8261214f5768fbb67fda52d4bfb8bf92505b801954806121bc57600192508382540361217d57600182018054835560028301805490915560009055612106565b8360018301540361219c57600282018054600184015560009055612106565b836002830154036121b35760006002830155612106565b60009250612106565b816020528360005260406000208054806121d7575050612106565b60018360011c039250826001820314612209578284015480600183038601556000848601558060005250806040600020555b5060018260011b17831955600081555060019250505092915050565b8160601b60601c915080600052673ec412a9852d173d60c11b601c5260206000208101810180548060601b156122635763c991cbb16000526004601cfd5b831790556000829052601c600c20805460010163ffffffff811684026122985767ea553b3401336cea841560021b526004601cfd5b9055808260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8138a46109366000838361193f565b6000602082840312156122e057600080fd5b81356001600160e01b031981168114611c9357600080fd5b600060208083528351808285015260005b8181101561232557858101830151858201604001528201612309565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561235857600080fd5b5035919050565b6001600160a01b038116811461185957600080fd5b6000806040838503121561238757600080fd5b82356123928161235f565b946020939093013593505050565b6000602082840312156123b257600080fd5b8135611c938161235f565b6000806000606084860312156123d257600080fd5b83356123dd8161235f565b925060208401356123ed8161235f565b929592945050506040919091013590565b60008083601f84011261241057600080fd5b50813567ffffffffffffffff81111561242857600080fd5b60208301915083602082850101111561244057600080fd5b9250929050565b60008060006040848603121561245c57600080fd5b83356124678161235f565b9250602084013567ffffffffffffffff81111561248357600080fd5b61248f868287016123fe565b9497909650939450505050565b6000806000606084860312156124b157600080fd5b83356124bc8161235f565b95602085013595506040909401359392505050565b600080604083850312156124e457600080fd5b82356124ef8161235f565b915060208301356124ff8161235f565b809150509250929050565b80358015158114610da857600080fd5b6000806040838503121561252d57600080fd5b82356125388161235f565b91506125466020840161250a565b90509250929050565b60008060008060006080868803121561256757600080fd5b85356125728161235f565b945060208601356125828161235f565b935060408601359250606086013567ffffffffffffffff8111156125a557600080fd5b6125b1888289016123fe565b969995985093965092949392505050565b6000806000606084860312156125d757600080fd5b833592506125e76020850161250a565b91506125f56040850161250a565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156126365783518352928401929184019160010161261a565b50909695505050505050565b60006020828403121561265457600080fd5b5051919050565b6000806040838503121561266e57600080fd5b505080516020909101519092909150565b60006020828403121561269157600080fd5b8151611c938161235f56fea2646970667358221220ffa96b64afd6193e5587d7e34edf867d3d809658f421922afb5734d9ec71c09164736f6c634300081300330000000000000000000000007667f78b7a5dddb279a2ffc62d75f77ce263f340000000000000000000000000d8bbb2970ccb8037d9c6a31f67d312e9b0c148e0
0x0000000000000000000000007667f78b7a5dddb279a2ffc62d75f77ce263f340000000000000000000000000d8bbb2970ccb8037d9c6a31f67d312e9b0c148e0
----Decoded View------------Arg [0] : beacon_ (address): 0x7667F78b7A5Dddb279a2fFc62d75F77CE263F340Arg [1] : backToken_ (address): 0xD8bBB2970CcB8037D9c6A31f67D312E9B0c148e0
----Encoded View------------Arg [0] : 0x0000000000000000000000007667f78b7a5dddb279a2ffc62d75f77ce263f340Arg [1] : 0x000000000000000000000000d8bbb2970ccb8037d9c6a31f67d312e9b0c148e0