0 txs
134.6k calls
constructor
constructor()
functions
accruedInterest
nonpayablefunction accruedInterest()
afterSwap
nonpayablefunction afterSwap(address asset, uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256 deltaXt)
createOrder
nonpayablefunction createOrder(address market, tuple params) returns (address order)
dealBadDebt
nonpayablefunction dealBadDebt(address recipient, address collateral, uint256 amount) returns (uint256 collateralOut)
depositAssets
nonpayablefunction depositAssets(address asset, uint256 amount)
redeemOrder
nonpayablefunction redeemOrder(address asset, address order) returns (uint256 badDebt, uint256 deliveryCollateral)
removeLiquidityFromOrders
nonpayablefunction removeLiquidityFromOrders(address asset, address[] orders, uint256[] removedLiquidities)
updateOrdersConfiguration
nonpayablefunction updateOrdersConfiguration(address[] orders, tuple[] orderConfigs)
withdrawAssets
nonpayablefunction withdrawAssets(address asset, address recipient, uint256 amount)
withdrawFts
nonpayablefunction withdrawFts(address order, uint256 amount, address recipient)
withdrawPerformanceFee
nonpayablefunction withdrawPerformanceFee(address asset, address recipient, uint256 amount)
events
AccruedInterest
event AccruedInterest(uint256 newAccretingPrincipal, uint256 newPerformanceFee)
NewOrderCreated
event NewOrderCreated(address indexed caller, address indexed market, address indexed order)
OrdersConfigurationUpdated
event OrdersConfigurationUpdated(address indexed caller, address[] orders)
OrdersLiquidityRemoved
event OrdersLiquidityRemoved(address indexed caller, address[] orders, uint256[] removedLiquidities)
RedeemOrder
event RedeemOrder(address indexed caller, address indexed order, uint256 badDebt, uint256 diliveryAmount)
WithdrawPerformanceFee
event WithdrawPerformanceFee(address indexed caller, address indexed recipient, uint256 amount)
errors
ApyTooLow
error ApyTooLow(uint256 apy, uint256 minApy)
ArrayLengthMismatch
error ArrayLengthMismatch()
CanNotTransferUintMax
error CanNotTransferUintMax()
InsufficientFunds
error InsufficientFunds(uint256 maxWithdraw, uint256 expectedWithdraw)
LockedFtGreaterThanTotalFt
error LockedFtGreaterThanTotalFt()
MarketNotWhitelisted
error MarketNotWhitelisted(address market)
NoBadDebt
error NoBadDebt(address collateral)
OnlyCallableThroughProxy
error OnlyCallableThroughProxy()
OrderHasNegativeInterest
error OrderHasNegativeInterest()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeCastOverflowedUintToInt
error SafeCastOverflowedUintToInt(uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnauthorizedOrder
error UnauthorizedOrder(address orderAddress)
creation bytecode
0x60c0806040523461007357306080523060a05261219a9081610078823960805181818161012f01528181610322015281816104be0152818161094101528181610ad201528181610b7101528181610f6401528181610fb50152818161107f0152818161114701526112c9015260a051815050f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630c911247146112a65780630edc3c64146110b557806345fe329f1461106d57806359f8d1e214610fa45780637bd58ea914610f535780637f98f3c514610b4d57806393989d7a14610ab4578063a729d68614610919578063a7ebda9714610477578063dc6808b4146102ed5763ee862b6414610092575f80fd5b34610230576060366003190112610230576100ab61156b565b6024356001600160401b038111610230576100ca903690600401611620565b90604435916001600160401b0383116102305736602384011215610230578260040135916100f783611609565b9361010560405195866115e8565b838552602085016024819560051b8301019136831161023057602401905b8282106102dd575050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce5781518451036102bf5761016e611ad5565b5f915f5b8151811015610234576001600160a01b0361018d82846118b8565b511661019982886118b8565b516101a382611a36565b806101b3575b5050600101610172565b819295913b15610230576040516323fede4760e11b81526001600160a01b038616600482015260248101829052306044820152925f908490606490829084905af19182156102255760019361020d93610215575b506118ab565b93905f6101a9565b5f61021f916115e8565b5f610207565b6040513d5f823e3d90fd5b5f80fd5b50929391806102af575b5050602061025760405193604085526040850190611958565b918383038285015251918281520192905f5b81811061029957337f818dae0a90001e12b4ee29846d364bea4ea36d9037c173b4c05b88a050a8c71e85870386a2005b8251855260209485019490920191600101610269565b6102b891611a5c565b5f8061023e565b63512509d360e11b5f5260045ffd5b6302f3451d60e21b5f5260045ffd5b8135815260209182019101610123565b346102305760603660031901126102305761030661156b565b602435906044356001600160a01b0381169190829003610230577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce5761035981611a36565b61036283611d0e565b6040516380f5560560e01b815291906001600160a01b0316602083600481845afa9283156102255760049360a0915f91610448575b50604051634eb1c24560e11b815294859182905f196001861b01165afa928315610225575f93610413575b50803b15610230575f92836064926040519687958694637bd58ea960e01b865260018060a01b03166004860152602485015260448401525af180156102255761040757005b5f610411916115e8565b005b61043691935060a03d60a011610441575b61042e81836115e8565b81019061184d565b5050505091846103c2565b503d610424565b61046a915060203d602011610470575b61046281836115e8565b81019061181a565b86610397565b503d610458565b34610230576040366003190112610230576004356001600160a01b03811690819003610230576024356001600160401b038111610230576104bc903690600401611719565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce576104f4611ad5565b815f52600260205260ff60405f20541615610906576040519061012082018281106001600160401b038211176108f2576040525f8252602082015f815260408301925f8452606081015f815260808201905f825260a083015f815260c084015f815260e08501915f83526101008601946040519460a086018681106001600160401b038211176108f25760209a6001600160401b039760609260405260405161059c81611597565b838152838e82015281525f8d82015260408101905f82525f848201526040516105c4816115b2565b5f81525f8f8201525f60408201525f858201525f60808201525f60a082015260808201528a528c8201518652308b526040820151905230828a51015201518751526040519a8b998a996352f919a960e01b8b528c60048c015260018060a01b0390511660248b015260018060a01b0390511660448a015260018060a01b03905116606489015260018060a01b03905116608488015260018060a01b0390511660a48701525160c486015260018060a01b0390511660e485015251166101048301525161012061012483015263ffffffff60a060806106b1845161014061014488015261028487019061192b565b93878101516101648701526040810151610184870152600180841b036060820151166101a48701520151828151166101c48601528287820151166101e486015282604082015116610204860152826060820151166102248601528260808201511661024486015201511661026483015203815f865af1908115610225575f916108b0575b506040516379502c5560e01b815291906001600160a01b031661010083600481855afa928315610225575f936107b9575b5061078b6001600160401b0360208095015116825f52601185528060405f2055611e94565b8060405192337f3ca4bef6cb680238d8c3dcdcca83a5aadcadff2571d3a2c67ee85b2750944b975f80a48152f35b8093506101003d81116108a9575b6107d181836115e8565b81010392610100841261023057604051936107eb856115cd565b6107f482611839565b85526020820151906001600160401b03821682036102305760c0916020870152603f190112610230576001600160401b036020809561078b9361089660e06040519261083f846115b2565b61084b60408201611a25565b845261085960608201611a25565b8685015261086960808201611a25565b604085015261087a60a08201611a25565b606085015261088b60c08201611a25565b608085015201611a25565b60a0820152604082015295505050610766565b503d6107c7565b90506020813d6020116108ea575b816108cb602093836115e8565b8101031261023057516001600160a01b03811681036102305782610735565b3d91506108be565b634e487b7160e01b5f52604160045260245ffd5b5063b8893e4160e01b5f5260045260245ffd5b346102305760603660031901126102305761093261156b565b61093a611581565b60443591907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce57610977611ad5565b6001600160a01b03165f818152601060205260409020548015610aa157808411610a8b576040516370a0823160e01b8152306004820152602081602481865afa908115610225575f91610a57575b506109e4916109d76109dc92876119cc565b6119ec565b809383611e19565b5f52601060205260405f206109fa8382546119df565b9055662386f26fc10000820291808304662386f26fc100001490151715610a4357610a3882610a2d602094600c546119df565b600c55600b546119df565b600b55604051908152f35b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610a83575b81610a72602093836115e8565b8101031261023057516109e46109c5565b3d9150610a65565b839062fae2d560e21b5f5260045260245260445ffd5b50630e7c89db60e01b5f5260045260245ffd5b3461023057604036600319011261023057610acd61156b565b6024357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce57610b08611ad5565b662386f26fc10000810291818304662386f26fc100001482151715610a4357610b4583610b3a61041195600b546118ab565b600b55600c546118ab565b600c55611a5c565b346102305760a036600319011261023057610b6661156b565b6064356084356044357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce57335f52601160205260405f205490610bb933831515611994565b610bc1611ad5565b5f841315610dda57662386f26fc10000840293808504662386f26fc100001481151715610a43576942c7b329bf1c5380000090610c0086600b546118ab565b600b5502938085046301e133801490151715610a4357610c66610c6e926001600160401b03610c45610c3f610c7398610c3942866119df565b906119ec565b92611dc5565b165f52601360205260405f20610c5c8282546118ab565b9055600e546118ab565b600e55611df6565b611a0a565b5f8112610ca6575b50505b610c8d600c54600d54906118ab565b600b5410610c9757005b63142ec14f60e11b5f5260045ffd5b610caf906119bc565b600f549091906001600160a01b031680610d70575b506040516380f5560560e01b8152602081600481335afa90811561022557610d019184915f91610d51575b506001600160a01b0316928390611f51565b803b15610230576040516340c10f1960e01b815233600482015260248101929092525f908290604490829084905af1801561022557610d41575b80610c7b565b5f610d4b916115e8565b80610d3b565b610d6a915060203d6020116104705761046281836115e8565b85610cef565b604051632d182be560e21b8152600481018490523060248201819052604482015290602090829060649082905f905af180156102255715610cc457610dcc9060203d602011610dd3575b610dc481836115e8565b81019061180b565b5082610cc4565b503d610dba565b9350610de78392936119bc565b662386f26fc10000810290808204662386f26fc100001481151715610a43576942c7b329bf1c5380000090610e1e83600b546119df565b600b5502908082046301e133801490151715610a4357610e4290610c3942846119df565b6001600160401b03610e5383611dc5565b165f52601360205260405f2054918183108015610f48575b610edc576001600160401b03610e8483610e9a956119df565b91165f52601360205260405f2055600e546119df565b80600e55601454906001600160401b038260801c169182610eeb575b50505090610c6e610ecf610ed593610c6e602435611df6565b93611df6565b1315610c7e575b630622fe8d60e51b5f5260045ffd5b600c549081610f1b575050505f5b818110610f065780610eb6565b633d0bc94960e01b5f5260045260245260445ffd5b6001600160401b03166305f5e10003916305f5e1008311610a4357610f43926109d7916119cc565b610ef9565b5081600e5410610e6b565b3461023057610f61366117d1565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce5761041192610f9f83611d0e565b611d55565b3461023057610fb2366117d1565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce57610feb611ad5565b662386f26fc10000830290838204662386f26fc100001484151715610a435782849161102b8461102061103396600d546119df565b600d55600b546119df565b600b55611d55565b6040519182526001600160a01b03169033907f17fc3257c85d4b51ab5f8cef25cd4fbd198216881010fb69c917393e099eb2c190602090a3005b34610230575f366003190112610230577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce57610411611ad5565b34610230576040366003190112610230576004356001600160401b038111610230576110e5903690600401611620565b602435906001600160401b038211610230573660238301121561023057816004013561111081611609565b9261111e60405194856115e8565b8184526024602085019260051b820101903682116102305760248101925b8284106112775785857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce5780518251036102bf57611186611ad5565b5f5b8151811015611239576001600160a01b036111a382846118b8565b5116906111b081856118b8565b516111ba83611a36565b8051906020810151936060604083015192015194813b15610230575f809461120f60405198899687958694635585161b60e11b865260048601526024850152604484015260806064840152608483019061192b565b03925af191821561022557600192611229575b5001611188565b5f611233916115e8565b84611222565b507f81a6021383128d9eab20b2fda75d38ac180cbc43febc8a75f36e67b07a2e8947604051602081528061127233946020830190611958565b0390a2005b83356001600160401b0381116102305760209161129b839260243691870101611719565b81520193019261113c565b34610230576040366003190112610230576112bf61156b565b6112c7611581565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146102ce5761130081611a36565b60405163be399be560e01b8152306004820152906001600160a01b03165f8260248183855af18015610225575f925f916114db575b50805190816114c35750505f905b82611405575b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610225575f916113d2575b5061138990604095611a5c565b805f5260116020525f8481205583518381528260208201527f21f71f6609f50b01dbe90a67add86958b134ef6fa7e8c668df45730004806242853392a382519182526020820152f35b90506020813d6020116113fd575b816113ed602093836115e8565b810103126102305751604061137c565b3d91506113e0565b6040516380f5560560e01b8152602081600481855afa9081156102255760049160a0915f916114a4575b50604051634eb1c24560e11b815292839182905f196001861b01165afa908115610225575f91611480575b5060018060a01b03165f52601060205260405f206114798482546118ab565b9055611349565b611499915060a03d60a0116104415761042e81836115e8565b50925050508561145a565b6114bd915060203d6020116104705761046281836115e8565b8761142f565b60208082019282019190910312610230575190611343565b9250503d805f843e6114ed81846115e8565b820191604081840312610230578051906020810151906001600160401b038211610230570183601f82011215610230578051906001600160401b0382116108f25760405194611546601f8401601f1916602001876115e8565b8286526020838301011161023057815f9260208093018388015e850101529184611335565b600435906001600160a01b038216820361023057565b602435906001600160a01b038216820361023057565b604081019081106001600160401b038211176108f257604052565b60c081019081106001600160401b038211176108f257604052565b606081019081106001600160401b038211176108f257604052565b90601f801991011681019081106001600160401b038211176108f257604052565b6001600160401b0381116108f25760051b60200190565b9080601f830112156102305781359061163882611609565b9261164660405194856115e8565b82845260208085019360051b82010191821161023057602001915b81831061166e5750505090565b82356001600160a01b038116810361023057815260209283019201611661565b81601f82011215610230578035906116a582611609565b926116b360405194856115e8565b8284526020606081860194028301019181831161023057602001925b8284106116dd575050505090565b6060848303126102305760206060916040516116f8816115cd565b863581528287013583820152604087013560408201528152019301926116cf565b91906080838203126102305760405190608082018281106001600160401b038211176108f25760405281938035835260208101356020840152604081013560408401526060810135906001600160401b038211610230570191604083830312610230576040519261178984611597565b80356001600160401b03811161023057836117a591830161168e565b84526020810135926001600160401b038411610230576060936117c8920161168e565b60208401520152565b6060906003190112610230576004356001600160a01b038116810361023057906024356001600160a01b0381168103610230579060443590565b90816020910312610230575190565b9081602091031261023057516001600160a01b03811681036102305790565b51906001600160a01b038216820361023057565b908160a09103126102305761186181611839565b9161186e60208301611839565b60408301519092906001600160a01b03811681036102305791608061189560608401611839565b9201516001600160a01b03811681036102305790565b91908201809211610a4357565b80518210156118cc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90602080835192838152019201905f5b8181106118fd5750505090565b90919260206060600192604087518051835284810151858401520151604082015201940191019190916118f0565b61195591602061194483516040845260408401906118e0565b9201519060208184039101526118e0565b90565b90602080835192838152019201905f5b8181106119755750505090565b82516001600160a01b0316845260209384019390920191600101611968565b1561199c5750565b6310dacb5d60e01b5f9081526001600160a01b0391909116600452602490fd5b600160ff1b8114610a43575f0390565b81810292918115918404141715610a4357565b91908203918211610a4357565b81156119f6570490565b634e487b7160e01b5f52601260045260245ffd5b9190915f8382019384129112908015821691151617610a4357565b519063ffffffff8216820361023057565b6001600160a01b0381165f90815260116020526040902054611a5a91901515611994565b565b908015611ad157600f546001600160a01b031680611a7957505050565b604482611a8a602094845f97611f51565b6040519485938492636e553f6560e01b845260048401523060248401525af1801561022557611ab65750565b611ace9060203d602011610dd357610dc481836115e8565b50565b5050565b611ade42611dc5565b906001600160401b0360145460401c16906001600160401b03831692828414611d08575f805260126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b546001600160401b0316938415611d015793925b6001600160401b0384169384151580611cf7575b15611c7257505f805260126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b54611b9d9185916001600160401b031680611be2575b506120b1565b82805f526013602052611bb660405f2054600e546119df565b600e555f5260136020525f60408120555f805260126020526001600160401b0360405f20541692611b3e565b806001600160401b03611c09611c5d936001600160401b03165f52601260205260405f2090565b5460126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b805467ffffffffffffffff19166001600160401b03939092168316919091179055165f9081526040902090565b805467ffffffffffffffff191690555f611b97565b9294919350916001600160401b031615611cec57611c8f916120b1565b7fb29ad6cbba4f47a8ecfc7221e7fd954ca8535874f8229fa7a344fb0cb22dd3a56040600c54600d5482519182526020820152a167ffffffffffffffff60401b6014549160401b169067ffffffffffffffff60401b191617601455565b50505f600e55611c8f565b5085851115611b52565b5050915050565b50915050565b611d16611ad5565b662386f26fc10000810290808204662386f26fc100001490151715610a435780611d45611d5092600b546119df565b600b55600c546119df565b600c55565b91908115611dc057600f546001600160a01b0316928315611db65750604051632d182be560e21b815260048101929092526001600160a01b0316602482015230604482015290602090829060649082905f905af1801561022557611ab65750565b611a5a9350611e19565b505050565b6001600160401b038111611ddf576001600160401b031690565b6306dfcc6560e41b5f52604060045260245260445ffd5b6001600160ff1b038111611e075790565b63123baf0360e11b5f5260045260245ffd5b9091905f198214611e85576001600160a01b03831630148015611e7d575b611dc05760405163a9059cbb60e01b60208201526001600160a01b03939093166024840152604480840192909252908252611a5a9190611e786064836115e8565b61210c565b508115611e37565b630d550c3b60e11b5f5260045ffd5b905f905f805260126020526001600160401b0360405f2054165b6001600160401b0381169283151580611f3f575b15611ee35750915f5260126020526001600160401b0360405f205416611eae565b925090926001600160401b031691826001600160401b03831614611dc0576001600160401b0391835f5260126020528260405f2091168319825416179055165f52601260205260405f20906001600160401b0319825416179055565b506001600160401b0385168410611ec2565b8215801561209f575b611dc057604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa908115610225575f9161206b575b50611fe794611ff5611fb46020945f946118ab565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f1981018852876115e8565b85519082865af1903d5f51908361204c575b5050501561201457505050565b611e78611a5a936040519063095ea7b360e01b602083015260248201525f6044820152604481526120466064826115e8565b8261210c565b9192509061206157503b15155b5f8080612007565b6001915014612059565b90506020813d602011612097575b81612086602093836115e8565b810103126102305751611fe7611f9f565b3d9150612079565b506001600160a01b0382163014611f5a565b6301e133806120d3611d50936120cd61210494600e54926119df565b906119cc565b046305f5e1006120ee6001600160401b0360145416836119cc565b04906120fc82600d546118ab565b600d556119df565b600c546118ab565b905f602091828151910182855af115610225575f513d61215b57506001600160a01b0381163b155b61213b5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561213456fea2646970667358221220b4d0d404e01697f29956d77fd53c56291a4da301be55f4f49aeae65b4b8c716a64736f6c634300081d0033