0 txs
1 call
constructor
No constructor.
functions
swap
nonpayablefunction swap(tuple config)
events
RecurringSwapExecuted
event RecurringSwapExecuted(address indexed sender, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount)
errors
BadPrice
error BadPrice(bytes32 feedId)
NoPriceData
error NoPriceData(bytes32 feedId)
PriceExpired
error PriceExpired(bytes32 feedId, uint32 expiresAt, uint256 currentTime)
PriceNotYetValid
error PriceNotYetValid(bytes32 feedId, uint32 validFrom, uint256 currentTime)
ReentrantCall
error ReentrantCall()
SwapWindowClosed
error SwapWindowClosed(uint256 currentWindowStartTime, uint256 windowLength, uint256 currentTime)
SwapWindowNotOpen
error SwapWindowNotOpen(uint256 nextWindowStartTime, uint256 windowLength, uint256 currentTime)
creation bytecode
0x608060405234601c57600e6020565b611ebe61002b8239611ebe90f35b6026565b60405190565b5f80fdfe60806040526004361015610013575b6100b3565b61001d5f3561002c565b63419ed8ca0361000e57610080565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b90816101a09103126100575790565b610044565b906101a08282031261007657610073915f01610048565b90565b61003c565b5f0190565b346100ae5761009861009336600461005c565b6104ee565b6100a0610032565b806100aa8161007b565b0390f35b610038565b5f80fd5b5f90565b90565b90565b5f1b90565b6100da6100d56100df926100be565b6100c1565b6100bb565b90565b5f1c90565b90565b90565b6101016100fc610106926100e7565b6100ea565b6100e7565b90565b61011561011a916100e2565b6100ed565b90565b610126816100e7565b0361012d57565b5f80fd5b3561013b8161011d565b90565b610147906100e7565b9052565b60409061017461017b949695939661016a60608401985f85019061013e565b602083019061013e565b019061013e565b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6101b96101bf919392936100e7565b926100e7565b82039182116101ca57565b61017d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b61020861020e916100e7565b916100e7565b908115610219570490565b6101cf565b61022d610233919392936100e7565b926100e7565b9161023f8382026100e7565b92818404149015171561024e57565b61017d565b610262610268919392936100e7565b926100e7565b820180921161027357565b61017d565b61028c610287610291926100e7565b6100c1565b6100bb565b90565b90565b6102ab6102a66102b092610294565b6100ea565b6100e7565b90565b6102c4670de0b6b3a7640000610297565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6102e9906102c7565b90565b6102f5816102e0565b036102fc57565b5f80fd5b3561030a816102ec565b90565b61032161031c610326926102c7565b6100ea565b6102c7565b90565b6103329061030d565b90565b61033e90610329565b90565b61034a9061030d565b90565b61035690610341565b90565b6103629061030d565b90565b61036e90610359565b90565b601f801991011690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b906103b290610371565b810190811067ffffffffffffffff8211176103cc57604052565b61037b565b60e01b90565b905051906103e48261011d565b565b906020828203126103ff576103fc915f016103d7565b90565b61003c565b61040d906102e0565b9052565b91946104596104639298979561044f60a09661044561046a9a61043b60c08a019e5f8b0190610404565b6020890190610404565b604087019061013e565b606085019061013e565b608083019061013e565b0190610404565b565b610474610032565b3d5f823e3d90fd5b61049061048b610495926100be565b6100ea565b6100e7565b90565b6104a190610359565b90565b6104ad90610359565b90565b6104e56104ec946104db6060949897956104d1608086019a5f870190610404565b6020850190610404565b604083019061013e565b019061013e565b565b6104f781610afe565b6104ff6100b7565b5061050981610b47565b61051b6105155f6100c6565b916100bb565b145f146108925761052f5f80840101610131565b5b4261054361053d836100e7565b916100e7565b1061084b57506105a561057a610566426105605f80880101610131565b906101aa565b61057460205f870101610131565b906101fc565b61059f61058a5f80870101610131565b9161059960205f880101610131565b9061021e565b90610253565b906105be826105b860205f870101610131565b90610253565b91426105e96105e36105de846105d860405f8b0101610131565b90610253565b6100e7565b916100e7565b116108045750906105fd6106039291610278565b90610b66565b61060f60608201610c68565b602061064761063f6106318461062b6101206060890101610131565b9061021e565b6106396102b3565b906101fc565b9283906101aa565b61068361066061065b606080880101610300565b610335565b61066e5f6060880101610300565b61067d60a06060890101610131565b91610f3d565b6106a161069c6106975f6060880101610300565b61034d565b610365565b6107025f636a33d28e61070d6106bb6060808b0101610300565b95896106cc60806060830101610300565b996106ed61010060606106e360a082870101610131565b9593940101610300565b926106f6610032565b9b8c9a8b998a986103d1565b885260048801610411565b03925af19081156107ff575f916107d1575b509061075761073a610735606080850101610300565b610335565b6107485f6060850101610300565b6107515f61047c565b91610f3d565b61076030610498565b9061076f606080830101610300565b6107cc61078f60a06060610787608082880101610300565b950101610131565b946107ba7f3d1a432f701c5c32156c13fc00c347bf742542d128299b0aafd7b05bc7414ea0956104a4565b956107c3610032565b948594856104b0565b0390a2565b6107f2915060203d81116107f8575b6107ea81836103a8565b8101906103e6565b5f61071f565b503d6107e0565b61046c565b61081260405f860101610131565b90610847425f9384937feb41249f0000000000000000000000000000000000000000000000000000000085526004850161014b565b0390fd5b61085960405f850101610131565b9061088e425f9384937f35d9a8810000000000000000000000000000000000000000000000000000000085526004850161014b565b0390fd5b6108a361089e82610b47565b610109565b610530565b5f90565b5090565b905035906108bd8261011d565b565b506108ce9060208101906108b0565b90565b6108da906100e7565b9052565b90604061092361092b936109006108f75f8301836108bf565b5f8601906108d1565b61091a61091060208301836108bf565b60208601906108d1565b828101906108bf565b9101906108d1565b565b5090565b9050359061093e826102ec565b565b5061094f906020810190610931565b90565b61095b906102e0565b9052565b610968816100bb565b0361096f57565b5f80fd5b905035906109808261095f565b565b50610991906020810190610973565b90565b61099d906100bb565b9052565b90610120610a9f610aa7936109c46109bb5f830183610940565b5f860190610952565b6109de6109d46020830183610940565b6020860190610952565b6109f86109ee6040830183610940565b6040860190610952565b610a12610a086060830183610940565b6060860190610952565b610a2c610a226080830183610940565b6080860190610952565b610a46610a3c60a08301836108bf565b60a08601906108d1565b610a60610a5660c0830183610982565b60c0860190610994565b610a7a610a7060e0830183610982565b60e0860190610994565b610a96610a8b610100830183610940565b610100860190610952565b828101906108bf565b9101906108d1565b565b906060610ad4610adc93610acb610ac25f8301836108ac565b5f8601906108de565b8281019061092d565b9101906109a1565b565b9190610af2905f6101a08501940190610aa9565b565b60200190565b5190565b610b31610b2291610b0d6108a8565b50610b16610032565b92839160208301610ade565b602082018103825203826103a8565b610b43610b3d82610afa565b91610af4565b2090565b610b6290610b536108a8565b50610b5c6108a8565b5061102d565b5490565b610b6f9061102d565b55565b35610b7c8161095f565b90565b610b889061030d565b90565b610b9490610b7f565b90565b610ba090610359565b90565b60ff1690565b610bb281610ba3565b03610bb957565b5f80fd5b90505190610bca82610ba9565b565b90602082820312610be557610be2915f01610bbd565b90565b61003c565b610bfe610bf9610c0392610ba3565b6100ea565b6100e7565b90565b610c0f906100e7565b604d8111610c1d57600a0a90565b61017d565b610c33670de0b6b3a7640000610297565b90565b90565b610c4d610c48610c5292610c36565b6100ea565b6100e7565b90565b610c656611c37937e08000610c39565b90565b610c706100b7565b50610c9e610c8060c08301610b72565b610c8c60408401610300565b610c9860208501610300565b916114de565b610ccb610cad60e08401610b72565b610cb960408501610300565b610cc560208601610300565b916114de565b91610d036020610ced610ce8610ce360608601610300565b610b8b565b610b97565b63313ce56790610cfb610032565b9384926103d1565b82528180610d136004820161007b565b03915afa8015610e6e57610d2e915f91610e40575b50610bea565b92610d666020610d50610d4b610d4660808701610300565b610b8b565b610b97565b63313ce56790610d5e610032565b9384926103d1565b82528180610d766004820161007b565b03915afa948515610e3b57610dd1610dca610ddd95610dc4610dbe610dfc99610db960a0610db2610e0a9e610dd79b5f91610e0d575b50610bea565b9501610131565b61021e565b91610c06565b9061021e565b9391610c06565b9061021e565b906101fc565b610df6610de8610c22565b610df0610c55565b906101aa565b9061021e565b610e04610c22565b906101fc565b90565b610e2e915060203d8111610e34575b610e2681836103a8565b810190610bcc565b5f610dac565b503d610e1c565b61046c565b610e61915060203d8111610e67575b610e5981836103a8565b810190610bcc565b5f610d28565b503d610e4f565b61046c565b610e7c90610359565b90565b63ffffffff1690565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b610ec1610ebc610ec692610e7f565b6103d1565b610e88565b90565b916020610eea929493610ee360408201965f830190610404565b019061013e565b565b151590565b610f05610f00610f0a926100be565b6100ea565b610ba3565b90565b610f1690610ef1565b9052565b916020610f3b929493610f3460408201965f830190610404565b0190610f0d565b565b9091610f7e600491610f6f610f5563095ea7b3610ead565b9186610f5f610032565b9586946020860190815201610ec9565b602082018103825203826103a8565b90610f93610f8d828490611856565b15610eec565b610f9d575b505050565b610fea6004610fef94610fe58491610fd6610fbb63095ea7b3610ead565b915f90610fc6610032565b9687946020860190815201610f1a565b602082018103825203836103a8565b611a48565b611a48565b5f8080610f98565b90565b61100661100b916100bb565b610ff7565b9052565b60208161102161102993839695610ffa565b018092610ffa565b0190565b6110356108a8565b50611067611041611b1a565b61105861104c610032565b9384926020840161100f565b602082018103825203826103a8565b61107961107382610afa565b91610af4565b2090565b6110869061030d565b90565b6110929061107d565b90565b61109e90610359565b90565b6110ad81602093610ffa565b0190565b5f80fd5b5f80fd5b906110cc6110c5610032565b92836103a8565b565b67ffffffffffffffff81116110ec576110e8602091610371565b0190565b61037b565b90825f9392825e0152565b9092919261111161110c826110ce565b6110b9565b9381855260208501908284011161112d5761112b926110f1565b565b6110b5565b9080601f830112156111505781602061114d935191016110fc565b90565b6110b1565b90602082820312611185575f82015167ffffffffffffffff81116111805761117d9201611132565b90565b610040565b61003c565b60209181520190565b6111b26111bb6020936111c0936111a981610afa565b9384809361118a565b958691016110f1565b610371565b0190565b6111d99160208201915f818403910152611193565b90565b6111e5906100bb565b9052565b91906111fc905f602085019401906111dc565b565b6112079061030d565b90565b611213906111fe565b90565b61121f90610359565b90565b61122d5f809261118a565b0190565b6112496112579260408301908382035f850152611193565b906020818303910152611222565b90565b61ffff1690565b61126a8161125a565b0361127157565b5f80fd5b9050519061128282611261565b565b5f80fd5b905051906112958261095f565b565b6112a081610e7f565b036112a757565b5f80fd5b905051906112b882611297565b565b77ffffffffffffffffffffffffffffffffffffffffffffffff1690565b6112e0816112ba565b036112e757565b5f80fd5b905051906112f8826112d7565b565b60170b90565b611309816112fa565b0361131057565b5f80fd5b9050519061132182611300565b565b9190610120838203126113df576113d79061133f6101206110b9565b9361134c825f8301611288565b5f86015261135d82602083016112ab565b602086015261136f82604083016112ab565b604086015261138182606083016112eb565b606086015261139382608083016112eb565b60808601526113a58260a083016112ab565b60a08601526113b78260c08301611314565b60c08601526113c98260e08301611314565b60e086015261010001611314565b610100830152565b611284565b91906101408382031261140d578061140161140a925f8601611275565b93602001611323565b90565b61003c565b61141c90516112fa565b90565b61143361142e611438926100be565b6100ea565b6112fa565b90565b6114459051610e7f565b90565b61145c61145761146192610e7f565b6100ea565b6100e7565b90565b61146d90610e7f565b9052565b60409061149a6114a1949695939661149060608401985f8501906111dc565b6020830190611464565b019061013e565b565b90565b6114ba6114b56114bf926112fa565b6100ea565b6114a3565b90565b6114d66114d16114db926114a3565b6100ea565b6100e7565b90565b915f6115286115006114fb611556946114f56100b7565b50611089565b611095565b61154b63d6d7d52561153761151489611b5c565b61151c610032565b958691602083016110a1565b602082018103825203856103a8565b61153f610032565b958694859384936103d1565b8352600483016111c4565b03915afa9081156117c7575f916117a5575b509061157382610afa565b61158561157f5f61047c565b916100e7565b1461176d576115c8916115a061159b5f9361120a565b611216565b6115bd8363f7e83aee6115b1610032565b968795869485936103d1565b835260048301611231565b03925af18015611768576115f4915f91611746575b5060206115e982610afa565b8183010191016113e4565b90509061160360c08301611412565b61161561160f5f61141f565b916112fa565b131561170e576116276020830161143b565b611639611633426100e7565b91611448565b116116c8574261165c61165661165160a0860161143b565b611448565b916100e7565b1015611682575061167a61167560c061167f9301611412565b6114a6565b6114c2565b90565b60a061168f91920161143b565b906116c4425f9384937f157108b700000000000000000000000000000000000000000000000000000000855260048501611471565b0390fd5b60206116d591920161143b565b9061170a425f9384937fae2f0b7c00000000000000000000000000000000000000000000000000000000855260048501611471565b0390fd5b611742905f9182917f17a804cd000000000000000000000000000000000000000000000000000000008352600483016111e9565b0390fd5b61176291503d805f833e61175a81836103a8565b810190611155565b5f6115dd565b61046c565b6117a1835f9182917f794969d4000000000000000000000000000000000000000000000000000000008352600483016111e9565b0390fd5b6117c191503d805f833e6117b981836103a8565b810190611155565b5f611568565b61046c565b5f90565b906117e26117dd836110ce565b6110b9565b918252565b606090565b3d5f14611807576117fc3d6117d0565b903d5f602084013e5b565b61180f6117e7565b90611805565b61181e81610eec565b0361182557565b5f80fd5b9050519061183682611815565b565b906020828203126118515761184e915f01611829565b90565b61003c565b905f80916118626117cc565b5061186c84610e73565b9082602082019151925af161187f6117ec565b816118aa575b509081611891575b5090565b6118a4915061189f90610e73565b611bac565b5f61188d565b90506118b581610afa565b6118c76118c15f61047c565b916100e7565b149081156118d7575b505f611885565b6118f2915060206118e782610afa565b818301019101611838565b5f6118d0565b67ffffffffffffffff811161191657611912602091610371565b0190565b61037b565b9061192d611928836118f8565b6110b9565b918252565b5f7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564910152565b611963602061191b565b9061197060208301611932565b565b61197a611959565b90565b60209181520190565b60207f6f74207375636365656400000000000000000000000000000000000000000000917f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201520152565b6119e0602a60409261197d565b6119e981611986565b0190565b611a029060208101905f8183039101526119d3565b90565b15611a0c57565b611a14610032565b7f08c379a000000000000000000000000000000000000000000000000000000000815280611a44600482016119ed565b0390fd5b611a9191611a58611a6792610e73565b90611a61611972565b91611bcc565b611a7081610afa565b611a82611a7c5f61047c565b916100e7565b14908115611a93575b50611a05565b565b611aae91506020611aa382610afa565b818301019101611838565b5f611a8b565b90565b611acb611ac6611ad092611ab4565b6100ea565b6100e7565b90565b611b17611b12611b027fbc19af8a435a812779238b5beb2837d7c6d3cfc15997614e65288e2b0598eefb610109565b611b0c6001611ab7565b906101aa565b610278565b90565b611b226108a8565b50611b2b611ad3565b611b336108a8565b505c90565b7f01bfed65a52ada18043b5af8eccb71f398adf525b75cb52e0905e2e3faab5ccf90565b611b646108a8565b50611b96611b70611b38565b611b87611b7b610032565b9384926020840161100f565b602082018103825203826103a8565b611ba8611ba282610afa565b91610af4565b2090565b611bb46117cc565b503b611bc8611bc25f61047c565b916100e7565b1190565b90611beb9291611bda6117e7565b5090611be55f61047c565b91611cbc565b90565b611bf790610359565b90565b60207f722063616c6c0000000000000000000000000000000000000000000000000000917f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201520152565b611c54602660409261197d565b611c5d81611bfa565b0190565b611c769060208101905f818303910152611c47565b90565b15611c8057565b611c88610032565b7f08c379a000000000000000000000000000000000000000000000000000000000815280611cb860048201611c61565b0390fd5b915f8091611d129593611ccd6117e7565b50611cf4611cda30611bee565b31611ced611ce7856100e7565b916100e7565b1015611c79565b8591602082019151925af191611d086117ec565b9092909192611db1565b90565b5f7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000910152565b611d49601d60209261197d565b611d5281611d15565b0190565b611d6b9060208101905f818303910152611d3c565b90565b15611d7557565b611d7d610032565b7f08c379a000000000000000000000000000000000000000000000000000000000815280611dad60048201611d56565b0390fd5b919290611dbc6117e7565b505f14611e005750611dcd82610afa565b611ddf611dd95f61047c565b916100e7565b14611de9575b5090565b611df5611dfa91611bac565b611d6e565b5f611de5565b82611e53565b5190565b611e29611e32602093611e3793611e2081611e06565b9384809361197d565b958691016110f1565b610371565b0190565b611e509160208201915f818403910152611e0a565b90565b90611e5d82610afa565b611e6f611e695f61047c565b916100e7565b115f14611e7f5750805190602001fd5b611eba90611e8b610032565b9182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301611e3b565b0390fd