[ { "inputs": [ { "internalType": "address", "name": "assetAddress", "type": "address" }, { "internalType": "address", "name": "lpTokenAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "inputs": [], "name": "EnabledAutoRelock", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "MismatchUniswapPairToken", "type": "error" }, { "inputs": [], "name": "NoLPTokenOutstanding", "type": "error" }, { "inputs": [], "name": "NotOwner", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [], "name": "TooManyEntries", "type": "error" }, { "inputs": [], "name": "UnexpiredLockup", "type": "error" }, { "inputs": [], "name": "WrongDuration", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "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": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "addedBy", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "addedByOwner", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "resetStartTime", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "amountAsset", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountLpToken", "type": "uint256" }, { "indexed": false, "internalType": "uint64", "name": "effectiveDuration", "type": "uint64" }, { "indexed": false, "internalType": "uint256", "name": "lpTokenValuation", "type": "uint256" } ], "name": "AssetsAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint64", "name": "newDuration", "type": "uint64" }, { "indexed": false, "internalType": "bool", "name": "autoRelock", "type": "bool" } ], "name": "DurationChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "value", "type": "bytes" } ], "name": "KvUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountAsset", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountLpToken", "type": "uint256" }, { "indexed": false, "internalType": "uint64", "name": "durationSeconds", "type": "uint64" }, { "indexed": false, "internalType": "uint256", "name": "lpTokenValuation", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "autoRelock", "type": "bool" } ], "name": "LockupCreated", "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": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountAsset", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountLpToken", "type": "uint256" } ], "name": "Unlocked", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "lockupId", "type": "uint256" }, { "internalType": "uint256", "name": "assetToAdd", "type": "uint256" }, { "internalType": "uint256", "name": "lpTokenToAdd", "type": "uint256" }, { "internalType": "bool", "name": "resetStartTime", "type": "bool" }, { "components": [ { "internalType": "string", "name": "key", "type": "string" }, { "internalType": "bytes", "name": "val", "type": "bytes" } ], "internalType": "struct ILockBox.KeyVal[]", "name": "entriesToUpdate", "type": "tuple[]" } ], "name": "addAssets", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "assetContract", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "lockupId", "type": "uint256" }, { "internalType": "uint64", "name": "newDurationSeconds", "type": "uint64" }, { "internalType": "bool", "name": "autoRelock", "type": "bool" }, { "components": [ { "internalType": "string", "name": "key", "type": "string" }, { "internalType": "bytes", "name": "val", "type": "bytes" } ], "internalType": "struct ILockBox.KeyVal[]", "name": "entriesToUpdate", "type": "tuple[]" } ], "name": "changeDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "computeLpStats", "outputs": [ { "internalType": "uint256", "name": "currentLpTokens", "type": "uint256" }, { "internalType": "uint256", "name": "currentAsset", "type": "uint256" }, { "internalType": "uint256", "name": "averageLpTokens", "type": "uint256" }, { "internalType": "uint256", "name": "averageAsset", "type": "uint256" }, { "internalType": "uint32", "name": "timestamp", "type": "uint32" }, { "internalType": "bool", "name": "useAverage", "type": "bool" }, { "internalType": "bool", "name": "persistUpdate", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "computeUpdateLpStats", "outputs": [ { "internalType": "uint256", "name": "totalLpTokensOutstanding", "type": "uint256" }, { "internalType": "uint256", "name": "totalAssetUnitsStaked", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountAsset", "type": "uint256" }, { "internalType": "uint256", "name": "amountLpToken", "type": "uint256" }, { "internalType": "uint64", "name": "durationSeconds", "type": "uint64" }, { "internalType": "bool", "name": "autoRelock", "type": "bool" }, { "components": [ { "internalType": "string", "name": "key", "type": "string" }, { "internalType": "bytes", "name": "val", "type": "bytes" } ], "internalType": "struct ILockBox.KeyVal[]", "name": "entriesToUpdate", "type": "tuple[]" } ], "name": "createLockup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentLpStats", "outputs": [ { "internalType": "uint256", "name": "totalLpTokensOutstanding", "type": "uint256" }, { "internalType": "uint256", "name": "totalAssetUnitsStaked", "type": "uint256" }, { "internalType": "uint32", "name": "timestamp", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLpStats", "outputs": [ { "internalType": "uint112", "name": "averageLpTokens", "type": "uint112" }, { "internalType": "uint112", "name": "averageAsset", "type": "uint112" }, { "internalType": "uint32", "name": "timestamp", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "string", "name": "", "type": "string" } ], "name": "kvStore", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "lockups", "outputs": [ { "internalType": "uint256", "name": "amountAsset", "type": "uint256" }, { "internalType": "uint256", "name": "amountLpToken", "type": "uint256" }, { "internalType": "uint256", "name": "lpTokenValuation", "type": "uint256" }, { "internalType": "uint256", "name": "assetSecondsLocked", "type": "uint256" }, { "internalType": "uint256", "name": "lpSecondsLocked", "type": "uint256" }, { "internalType": "uint64", "name": "createTime", "type": "uint64" }, { "internalType": "uint64", "name": "durationSeconds", "type": "uint64" }, { "internalType": "bool", "name": "autoRelock", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpTokenContract", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "components": [ { "internalType": "string", "name": "key", "type": "string" }, { "internalType": "bytes", "name": "val", "type": "bytes" } ], "internalType": "struct ILockBox.KeyVal[]", "name": "entriesToUpdate", "type": "tuple[]" } ], "name": "setKvStore", "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": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAssetLocked", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalLpTokenLocked", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "lockupId", "type": "uint256" } ], "name": "unlock", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c06040523480156200001157600080fd5b506040516200387f3803806200387f8339810160408190526200003491620003f1565b60405180604001604052806007815260200166098dec6d684def60cb1b8152506040518060400160405280600381526020016209884b60eb1b8152508160009081620000819190620004d0565b506001620000908282620004d0565b5050506001600a819055506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010291906200059c565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016b91906200059c565b9050836001600160a01b0316826001600160a01b031614158015620001a25750836001600160a01b0316816001600160a01b031614155b15620001c157604051637cedc73b60e01b815260040160405180910390fd5b6001600160a01b03808516608052831660a05260008080620001e26200023a565b600c805463ffffffff909216600160e01b026001600160e01b036001600160701b03958616600160701b026001600160e01b031990941694909516939093179190911792909216179055506200064995505050505050565b60008060008060008060a0516001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000284573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002aa9190620005d9565b9250925092506080516001600160a01b031660a0516001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032391906200059c565b6001600160a01b03160362000336578291505b816001600160701b0316945060018510156200035157600194505b60a0516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b891906200062f565b95506001861015620003c957600195505b809350505050909192565b80516001600160a01b0381168114620003ec57600080fd5b919050565b600080604083850312156200040557600080fd5b6200041083620003d4565b91506200042060208401620003d4565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200045457607f821691505b6020821081036200047557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004cb576000816000526020600020601f850160051c81016020861015620004a65750805b601f850160051c820191505b81811015620004c757828155600101620004b2565b5050505b505050565b81516001600160401b03811115620004ec57620004ec62000429565b6200050481620004fd84546200043f565b846200047b565b602080601f8311600181146200053c5760008415620005235750858301515b600019600386901b1c1916600185901b178555620004c7565b600085815260208120601f198616915b828110156200056d578886015182559484019460019091019084016200054c565b50858210156200058c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005af57600080fd5b620005ba82620003d4565b9392505050565b80516001600160701b0381168114620003ec57600080fd5b600080600060608486031215620005ef57600080fd5b620005fa84620005c1565b92506200060a60208501620005c1565b9150604084015163ffffffff811681146200062457600080fd5b809150509250925092565b6000602082840312156200064257600080fd5b5051919050565b60805160a0516131ca620006b5600039600081816104df015281816106d2015281816107840152818161083901528181610c800152818161107001526116ff0152600081816102e90152818161075a01528181610c450152818161103601526116c401526131ca6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063abe0d903116100a2578063bc1d52e911610071578063bc1d52e914610514578063bfe07bb214610527578063c87b56dd1461056a578063e985e9c51461057d57600080fd5b8063abe0d903146104b4578063b80bc35a146104c7578063b8589d43146104da578063b88d4fde1461050157600080fd5b806395d89b41116100de57806395d89b411461047d5780639b03c3f0146104855780639f2355c114610498578063a22cb465146104a157600080fd5b80636352211e1461038b57806370a082311461039e5780637d47efea146103b15780638e6f4fb7146103ce57600080fd5b80632f745c59116101875780634f6ccce7116101565780634f6ccce71461030b57806355a741c41461031e5780635a04e0dc146103315780636198e3391461037857600080fd5b80632f745c59146102b557806337dc1f5e146102c857806342842e0e146102d15780634d16304f146102e457600080fd5b8063095ea7b3116101c3578063095ea7b31461025257806318160ddd14610267578063209233b61461027957806323b872dd146102a257600080fd5b806301ffc9a7146101ea57806306fdde0314610212578063081812fc14610227575b600080fd5b6101fd6101f8366004612826565b6105b9565b60405190151581526020015b60405180910390f35b61021a6105fd565b6040516102099190612893565b61023a6102353660046128a6565b61068f565b6040516001600160a01b039091168152602001610209565b6102656102603660046128d4565b6106b8565b005b6008545b604051908152602001610209565b6102816106c7565b60408051938452602084019290925263ffffffff1690820152606001610209565b6102656102b0366004612900565b6108d4565b61026b6102c33660046128d4565b61097d565b61026b60105481565b6102656102df366004612900565b6109e2565b61023a7f000000000000000000000000000000000000000000000000000000000000000081565b61026b6103193660046128a6565b610a02565b61026561032c366004612b29565b610a5b565b610339610d48565b60408051978852602088019690965294860193909352606085019190915263ffffffff166080840152151560a0830152151560c082015260e001610209565b6102656103863660046128a6565b610e78565b61023a6103993660046128a6565b6110e5565b61026b6103ac366004612b96565b6110f0565b6103b9611151565b60408051928352602083019190915201610209565b6104336103dc3660046128a6565b600d60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909167ffffffffffffffff80821691600160401b810490911690600160801b900460ff1688565b604080519889526020890197909752958701949094526060860192909252608085015267ffffffffffffffff90811660a08501521660c0830152151560e082015261010001610209565b61021a6111eb565b610265610493366004612bb3565b6111fa565b61026b600f5481565b6102656104af366004612bfa565b61120e565b61021a6104c2366004612c33565b611219565b6102656104d5366004612c8d565b6112cf565b61023a7f000000000000000000000000000000000000000000000000000000000000000081565b61026561050f366004612cf7565b611555565b61026b610522366004612d57565b61156c565b600c5460408051600160701b83046dffffffffffffffffffffffffffff908116825283166020820152600160e01b90920463ffffffff1690820152606001610209565b61021a6105783660046128a6565b611794565b6101fd61058b366004612d96565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982167f780e9d630000000000000000000000000000000000000000000000000000000014806105f757506105f782611809565b92915050565b60606000805461060c90612dc4565b80601f016020809104026020016040519081016040528092919081815260200182805461063890612dc4565b80156106855780601f1061065a57610100808354040283529160200191610685565b820191906000526020600020905b81548152906001019060200180831161066857829003601f168201915b5050505050905090565b600061069a826118a4565b506000828152600460205260409020546001600160a01b03166105f7565b6106c38282336118dd565b5050565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190612e1c565b9250925092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108049190612e6c565b6001600160a01b031603610816578291505b816dffffffffffffffffffffffffffff169450600185101561083757600194505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610895573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b99190612e89565b955060018610156108c957600195505b809350505050909192565b6001600160a01b03821661090357604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006109108383336118ea565b9050836001600160a01b0316816001600160a01b031614610977576040517f64283d7b0000000000000000000000000000000000000000000000000000000081526001600160a01b03808616600483015260248201849052821660448201526064016108fa565b50505050565b6000610988836110f0565b82106109b95760405163295f44f760e21b81526001600160a01b0384166004820152602481018390526044016108fa565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6109fd83838360405180602001604052806000815250611555565b505050565b6000610a0d60085490565b8210610a365760405163295f44f760e21b815260006004820152602481018390526044016108fa565b60088281548110610a4957610a49612ea2565b90600052602060002001549050919050565b610a636119bf565b6000858152600d6020526040812090610a7b85611a02565b905060008415610abf57610a8e88611a7d565b506005820180544267ffffffffffffffff90811667ffffffffffffffff19831617909255600160401b900416610b5a565b604080516101008101825284548152600185015460208201526002850154918101919091526003840154606082015260048401546080820152600584015467ffffffffffffffff80821660a0840152600160401b82041660c0830152600160801b900460ff16151560e0820152600090610b3890611acd565b905042811115610b5357610b4c4282612ece565b9150610b58565b600091505b505b86836000016000828254610b6e9190612ee1565b9250508190555086600f6000828254610b879190612ee1565b9250508190555085836001016000828254610ba29190612ee1565b925050819055508560106000828254610bbb9190612ee1565b9250508190555081836002016000828254610bd69190612ee1565b90915550610be690508188612ef4565b836003016000828254610bf99190612ee1565b90915550610c0990508183612ef4565b836004016000828254610c1c9190612ee1565b9091555050835115610c3257610c328885611af7565b8615610c6d57610c6d6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308a611c45565b8515610ca857610ca86001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333089611c45565b33887f919ec263b5b7abd0468cb4c29d5ce6a53e594bfd76f1d3417ed8036167aef956610cea826000908152600260205260409020546001600160a01b031690565b604080516001600160a01b039290921633148252891515602083015281018b9052606081018a905267ffffffffffffffff8516608082015260a0810186905260c00160405180910390a3505050610d416001600a55565b5050505050565b600080600080600080600080610d5c6106c7565b600c54929a509098506dffffffffffffffffffffffffffff600160701b8304811698508216965063ffffffff600160e01b9092048216955091508116841180610db55750610258610dad8583612f0b565b63ffffffff16115b15610e12576002610dd66dffffffffffffffffffffffffffff8a1688612ee1565b610de09190612f2f565b95506002610dfe6dffffffffffffffffffffffffffff891687612ee1565b610e089190612f2f565b9450809350600191505b600086118015610e225750600085115b15610e6e57600088610e3c89670de0b6b3a7640000612ef4565b610e469190612f2f565b9050600087610e5d88670de0b6b3a7640000612ef4565b610e679190612f2f565b9091119350505b5090919293949596565b610e806119bf565b80610e8a81611a7d565b6000828152600d602090815260409182902082516101008101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015467ffffffffffffffff80821660a0840152600160401b82041660c0830152600160801b900460ff16151560e0820152610f1381611acd565b421015610f4c576040517f37c2afd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060e0015115610f88576040517f9d28fb0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600f8054829190600090610f9f908490612ece565b9091555050602082015160108054829190600090610fbe908490612ece565b90915550506000858152600d60205260408120818155600181018290556002810182905560038101829055600481019190915560050180547fffffffffffffffffffffffffffffff000000000000000000000000000000000016905561102385611cc1565b811561105d5761105d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611cfc565b8015611097576110976001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611cfc565b6040805183815260208101839052339187917f264527c9df24015c81d07cee6ed0aaa3cb7dae31d37f68c16c15c9f8f89fba7b910160405180910390a3505050506110e26001600a55565b50565b60006105f7826118a4565b60006001600160a01b038216611135576040517f89c62b64000000000000000000000000000000000000000000000000000000008152600060048201526024016108fa565b506001600160a01b031660009081526003602052604090205490565b6000806000806000806000806000611167610d48565b965096509650965096509650965080156111c75763ffffffff8316600160e01b026dffffffffffffffffffffffffffff808716600160701b027bffffffffffffffffffffffffffff0000000000000000000000000000169086161717600c555b81156111dc5750929791965090945050505050565b50949793965092945050505050565b60606001805461060c90612dc4565b8161120481611a7d565b6109fd8383611af7565b6106c3338383611d2d565b600e60209081526000928352604090922081518083018401805192815290840192909301919091209152805461124e90612dc4565b80601f016020809104026020016040519081016040528092919081815260200182805461127a90612dc4565b80156112c75780601f1061129c576101008083540402835291602001916112c7565b820191906000526020600020905b8154815290600101906020018083116112aa57829003601f168201915b505050505081565b836112d981611a7d565b6000858152600d60209081526040808320815161010081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600581015467ffffffffffffffff80821660a0850152600160401b82041660c0840152600160801b900460ff16151560e0830152919061136290611acd565b905067ffffffffffffffff86161561143c57428111156113b0576113864282612ece565b8667ffffffffffffffff1610156113b05760405163226fc27f60e01b815260040160405180910390fd5b81546113c79067ffffffffffffffff881690612ef4565b600383015560028201546113e69067ffffffffffffffff881690612ef4565b60048301556005820180544267ffffffffffffffff9081166fffffffffffffffffffffffffffffffff1990921691909117600160401b918916919091021760ff60801b1916600160801b871515021790556114f5565b8160050160109054906101000a900460ff161515851515146114f557846114db57600582015467ffffffffffffffff600160401b82048116918291611482911642612ece565b61148c9190612f2f565b6114969190612f51565b6005830180546000906114b490849067ffffffffffffffff16612f7d565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b60058201805460ff60801b1916600160801b871515021790555b835115611506576115068785611af7565b6040805167ffffffffffffffff88168152861515602082015288917fbd7e634560f91117312a2583197fc8ea68ae712cace4ba1f3079b05586544c08910160405180910390a250505050505050565b6115608484846108d4565b61097784848484611de5565b60006115766119bf565b8367ffffffffffffffff166000036115a15760405163226fc27f60e01b815260040160405180910390fd5b600b8054600091826115b283612f9e565b91905055905060006115c387611a02565b6000838152600d602052604081208a8155600f805493945090928b92906115eb908490612ee1565b9091555050600181018890556010805489919060009061160c908490612ee1565b90915550506002810182905561162c67ffffffffffffffff88168a612ef4565b600382015561164567ffffffffffffffff881683612ef4565b60048201556005810180544267ffffffffffffffff9081166fffffffffffffffffffffffffffffffff1990921691909117600160401b918a16919091021760ff60801b1916600160801b881515021790558451156116a7576116a78386611af7565b6116b13384611f07565b88156116ec576116ec6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308c611c45565b8715611727576117276001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308b611c45565b604080518a8152602081018a905267ffffffffffffffff8916818301526060810184905287151560808201529051339185917ff0254b172b4cc1719f5bbe345cadead1517ecfcd680872bd5d987fe53537d6b09181900360a00190a350506001600a559695505050505050565b606061179f826118a4565b5060006117b760408051602081019091526000815290565b905060008151116117d75760405180602001604052806000815250611802565b806117e184611f21565b6040516020016117f2929190612fb7565b6040516020818303038152906040525b9392505050565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061186c57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806105f757507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146105f7565b6000818152600260205260408120546001600160a01b0316806105f757604051637e27328960e01b8152600481018490526024016108fa565b6109fd8383836001611fc1565b6000806118f885858561210c565b90506001600160a01b0381166119555761195084600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611978565b846001600160a01b0316816001600160a01b031614611978576119788185612212565b6001600160a01b0385166119945761198f846122a3565b6119b7565b846001600160a01b0316816001600160a01b0316146119b7576119b78585612352565b949350505050565b6002600a54036119fb576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600a55565b600081600003611a1457506000919050565b600080611a1f611151565b9150915081600003611a5d576040517f13bb0fab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81611a688583612ef4565b611a73906002612ef4565b6119b79190612f2f565b6000818152600260205260409020546001600160a01b031633146110e2576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160c0015167ffffffffffffffff168260a0015167ffffffffffffffff166105f79190612ee1565b600a815110611b32576040517f3f7f149c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81518110156109fd57818181518110611b5057611b50612ea2565b602002602001015160200151600e6000858152602001908152602001600020838381518110611b8157611b81612ea2565b602002602001015160000151604051611b9a9190612fe6565b90815260200160405180910390209081611bb49190613052565b50818181518110611bc757611bc7612ea2565b602002602001015160000151604051611be09190612fe6565b6040518091039020837f5c529052989c92748222700a151766ac3619c1c7a17ea26dc7380f01d9a82f0a848481518110611c1c57611c1c612ea2565b602002602001015160200151604051611c359190612893565b60405180910390a3600101611b35565b6040516001600160a01b0384811660248301528381166044830152606482018390526109779186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506123a2565b6000611cd060008360006118ea565b90506001600160a01b0381166106c357604051637e27328960e01b8152600481018390526024016108fa565b6040516001600160a01b038381166024830152604482018390526109fd91859182169063a9059cbb90606401611c7a565b6001600160a01b038216611d78576040517f5b08ba180000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016108fa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561097757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611e27903390889087908790600401613112565b6020604051808303816000875af1925050508015611e62575060408051601f3d908101601f19168201909252611e5f91810190613144565b60015b611ecb573d808015611e90576040519150601f19603f3d011682016040523d82523d6000602084013e611e95565b606091505b508051600003611ec357604051633250574960e11b81526001600160a01b03851660048201526024016108fa565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610d4157604051633250574960e11b81526001600160a01b03851660048201526024016108fa565b6106c382826040518060200160405280600081525061241e565b60606000611f2e83612435565b600101905060008167ffffffffffffffff811115611f4e57611f4e61294f565b6040519080825280601f01601f191660200182016040528015611f78576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611f8257509392505050565b8080611fd557506001600160a01b03821615155b156120cf576000611fe5846118a4565b90506001600160a01b038316158015906120115750826001600160a01b0316816001600160a01b031614155b801561204357506001600160a01b0380821660009081526005602090815260408083209387168352929052205460ff16155b15612085576040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108fa565b81156120cd5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50506000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000828152600260205260408120546001600160a01b039081169083161561213957612139818486612517565b6001600160a01b0381161561217757612156600085600080611fc1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156121a6576001600160a01b0385166000908152600360205260409020805460010190555b600084815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b600061221d836110f0565b600083815260076020526040902054909150808214612270576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906122b590600190612ece565b600083815260096020526040812054600880549394509092849081106122dd576122dd612ea2565b9060005260206000200154905080600883815481106122fe576122fe612ea2565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061233657612336613161565b6001900381819060005260206000200160009055905550505050565b6000600161235f846110f0565b6123699190612ece565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006123b76001600160a01b03841683612594565b905080516000141580156123dc5750808060200190518101906123da9190613177565b155b156109fd576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108fa565b61242883836125a2565b6109fd6000848484611de5565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061247e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106124aa576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106124c857662386f26fc10000830492506010015b6305f5e10083106124e0576305f5e100830492506008015b61271083106124f457612710830492506004015b60648310612506576064830492506002015b600a83106105f75760010192915050565b612522838383612620565b6109fd576001600160a01b03831661255057604051637e27328960e01b8152600481018290526024016108fa565b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602481018290526044016108fa565b6060611802838360006126a3565b6001600160a01b0382166125cc57604051633250574960e11b8152600060048201526024016108fa565b60006125da838360006118ea565b90506001600160a01b038116156109fd576040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600060048201526024016108fa565b60006001600160a01b038316158015906119b75750826001600160a01b0316846001600160a01b0316148061267a57506001600160a01b0380851660009081526005602090815260408083209387168352929052205460ff165b806119b75750506000908152600460205260409020546001600160a01b03908116911614919050565b6060814710156126e1576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016108fa565b600080856001600160a01b031684866040516126fd9190612fe6565b60006040518083038185875af1925050503d806000811461273a576040519150601f19603f3d011682016040523d82523d6000602084013e61273f565b606091505b509150915061274f868383612759565b9695505050505050565b60608261276e57612769826127ce565b611802565b815115801561278557506001600160a01b0384163b155b156127c7576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108fa565b5080611802565b8051156127de5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b0319811681146110e257600080fd5b60006020828403121561283857600080fd5b813561180281612810565b60005b8381101561285e578181015183820152602001612846565b50506000910152565b6000815180845261287f816020860160208601612843565b601f01601f19169290920160200192915050565b6020815260006118026020830184612867565b6000602082840312156128b857600080fd5b5035919050565b6001600160a01b03811681146110e257600080fd5b600080604083850312156128e757600080fd5b82356128f2816128bf565b946020939093013593505050565b60008060006060848603121561291557600080fd5b8335612920816128bf565b92506020840135612930816128bf565b929592945050506040919091013590565b80151581146110e257600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156129885761298861294f565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156129b7576129b761294f565b604052919050565b600082601f8301126129d057600080fd5b813567ffffffffffffffff8111156129ea576129ea61294f565b6129fd601f8201601f191660200161298e565b818152846020838601011115612a1257600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112612a4057600080fd5b8135602067ffffffffffffffff80831115612a5d57612a5d61294f565b8260051b612a6c83820161298e565b9384528581018301938381019088861115612a8657600080fd5b84880192505b85831015612b1d57823584811115612aa45760008081fd5b88016040818b03601f1901811315612abc5760008081fd5b612ac4612965565b8783013587811115612ad65760008081fd5b612ae48d8a838701016129bf565b825250908201359086821115612afa5760008081fd5b612b088c89848601016129bf565b81890152845250509184019190840190612a8c565b98975050505050505050565b600080600080600060a08688031215612b4157600080fd5b8535945060208601359350604086013592506060860135612b6181612941565b9150608086013567ffffffffffffffff811115612b7d57600080fd5b612b8988828901612a2f565b9150509295509295909350565b600060208284031215612ba857600080fd5b8135611802816128bf565b60008060408385031215612bc657600080fd5b82359150602083013567ffffffffffffffff811115612be457600080fd5b612bf085828601612a2f565b9150509250929050565b60008060408385031215612c0d57600080fd5b8235612c18816128bf565b91506020830135612c2881612941565b809150509250929050565b60008060408385031215612c4657600080fd5b82359150602083013567ffffffffffffffff811115612c6457600080fd5b612bf0858286016129bf565b803567ffffffffffffffff81168114612c8857600080fd5b919050565b60008060008060808587031215612ca357600080fd5b84359350612cb360208601612c70565b92506040850135612cc381612941565b9150606085013567ffffffffffffffff811115612cdf57600080fd5b612ceb87828801612a2f565b91505092959194509250565b60008060008060808587031215612d0d57600080fd5b8435612d18816128bf565b93506020850135612d28816128bf565b925060408501359150606085013567ffffffffffffffff811115612d4b57600080fd5b612ceb878288016129bf565b600080600080600060a08688031215612d6f57600080fd5b8535945060208601359350612d8660408701612c70565b92506060860135612b6181612941565b60008060408385031215612da957600080fd5b8235612db4816128bf565b91506020830135612c28816128bf565b600181811c90821680612dd857607f821691505b602082108103612df857634e487b7160e01b600052602260045260246000fd5b50919050565b80516dffffffffffffffffffffffffffff81168114612c8857600080fd5b600080600060608486031215612e3157600080fd5b612e3a84612dfe565b9250612e4860208501612dfe565b9150604084015163ffffffff81168114612e6157600080fd5b809150509250925092565b600060208284031215612e7e57600080fd5b8151611802816128bf565b600060208284031215612e9b57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156105f7576105f7612eb8565b808201808211156105f7576105f7612eb8565b80820281158282048414176105f7576105f7612eb8565b63ffffffff828116828216039080821115612f2857612f28612eb8565b5092915050565b600082612f4c57634e487b7160e01b600052601260045260246000fd5b500490565b67ffffffffffffffff818116838216028082169190828114612f7557612f75612eb8565b505092915050565b67ffffffffffffffff818116838216019080821115612f2857612f28612eb8565b600060018201612fb057612fb0612eb8565b5060010190565b60008351612fc9818460208801612843565b835190830190612fdd818360208801612843565b01949350505050565b60008251612ff8818460208701612843565b9190910192915050565b601f8211156109fd576000816000526020600020601f850160051c8101602086101561302b5750805b601f850160051c820191505b8181101561304a57828155600101613037565b505050505050565b815167ffffffffffffffff81111561306c5761306c61294f565b6130808161307a8454612dc4565b84613002565b602080601f8311600181146130b5576000841561309d5750858301515b600019600386901b1c1916600185901b17855561304a565b600085815260208120601f198616915b828110156130e4578886015182559484019460019091019084016130c5565b50858210156131025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261274f6080830184612867565b60006020828403121561315657600080fd5b815161180281612810565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561318957600080fd5b81516118028161294156fea26469706673582212207ae57a1ead31de192d20cefcd13e62bad393c578385fe83717d59d5719799e1b64736f6c63430008180033000000000000000000000000f897a542ab95354d42a997f2737cd14e14cd210f000000000000000000000000ef92795667dd355b7631de56db9491a806cc27b2
0x000000000000000000000000f897a542ab95354d42a997f2737cd14e14cd210f000000000000000000000000ef92795667dd355b7631de56db9491a806cc27b2
----Decoded View------------Arg [0] : assetAddress (address): 0xF897A542Ab95354D42A997F2737cD14e14cD210fArg [1] : lpTokenAddress (address): 0xEf92795667Dd355b7631DE56Db9491a806CC27b2
----Encoded View------------Arg [0] : 0x000000000000000000000000f897a542ab95354d42a997f2737cd14e14cd210fArg [1] : 0x000000000000000000000000ef92795667dd355b7631de56db9491a806cc27b2