add test-cases

This commit is contained in:
0xacedia
2022-08-01 13:49:39 +01:00
parent fbd80ad44f
commit 5cedd5be4b
31 changed files with 849 additions and 203 deletions
+377 -113
View File
@@ -2,16 +2,16 @@ ExponentialCurveTest:test_getBuyInfoExample() (gas: 9089)
ExponentialCurveTest:test_getSellInfoExample() (gas: 9022)
LinearCurveTest:test_getBuyInfoExample() (gas: 8628)
LinearCurveTest:test_getSellInfoExample() (gas: 8477)
XykCurveTest:test_getBuyInfoCalculatesProtocolFee() (gas: 1816770)
XykCurveTest:test_getBuyInfoCalculatesProtocolFee() (gas: 1816776)
XykCurveTest:test_getBuyInfoCannotHave0NumItems() (gas: 6571)
XykCurveTest:test_getBuyInfoReturnsInputValue() (gas: 1792449)
XykCurveTest:test_getBuyInfoReturnsNewReserves() (gas: 1792490)
XykCurveTest:test_getBuyInfoReturnsInputValue() (gas: 1792455)
XykCurveTest:test_getBuyInfoReturnsNewReserves() (gas: 1792496)
XykCurveTest:test_getSellInfoCalculatesProtocolFee() (gas: 1816653)
XykCurveTest:test_getSellInfoCannotHave0NumItems() (gas: 6558)
XykCurveTest:test_getSellInfoReturnsNewReserves() (gas: 1792381)
XykCurveTest:test_getSellInfoReturnsOutputValue() (gas: 1792388)
XykCurveTest:test_swapNFTsForToken() (gas: 2059311)
XykCurveTest:test_swapTokenForAnyNFTs() (gas: 1830476)
XykCurveTest:test_swapNFTsForToken() (gas: 2061826)
XykCurveTest:test_swapTokenForAnyNFTs() (gas: 1833003)
PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 19205)
PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18603)
@@ -252,6 +252,126 @@ PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40991)
PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 18916)
PAFLinearCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61535)
PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192178)
PAFXykCurveEnumerableERC20Test:testFail_callMint721() (gas: 19205)
PAFXykCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFXykCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18603)
PAFXykCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754)
PAFXykCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18609)
PAFXykCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18603)
PAFXykCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22652)
PAFXykCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFXykCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27717)
PAFXykCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33332)
PAFXykCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63441)
PAFXykCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756)
PAFXykCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10733)
PAFXykCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18624)
PAFXykCurveEnumerableERC20Test:testFail_withdraw() (gas: 26389)
PAFXykCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244908)
PAFXykCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15712)
PAFXykCurveEnumerableERC20Test:test_callMint721() (gas: 173689)
PAFXykCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651)
PAFXykCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12186)
PAFXykCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28878)
PAFXykCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52311)
PAFXykCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55516)
PAFXykCurveEnumerableERC20Test:test_rescueTokens() (gas: 162071)
PAFXykCurveEnumerableERC20Test:test_transferCallback() (gas: 43265)
PAFXykCurveEnumerableERC20Test:test_transferOwnership() (gas: 16099)
PAFXykCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48457)
PAFXykCurveEnumerableERC20Test:test_withdraw() (gas: 26781)
PAFXykCurveEnumerableERC20Test:test_withdraw1155() (gas: 61642)
PAFXykCurveEnumerableERC20Test:test_withdrawFees() (gas: 245049)
PAFXykCurveEnumerableETHTest:testFail_callMint721() (gas: 19202)
PAFXykCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10776)
PAFXykCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18619)
PAFXykCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751)
PAFXykCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18625)
PAFXykCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18619)
PAFXykCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22665)
PAFXykCurveEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFXykCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27733)
PAFXykCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40029)
PAFXykCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57794)
PAFXykCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775)
PAFXykCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10730)
PAFXykCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18662)
PAFXykCurveEnumerableETHTest:testFail_withdraw() (gas: 18450)
PAFXykCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181871)
PAFXykCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15761)
PAFXykCurveEnumerableETHTest:test_callMint721() (gas: 173686)
PAFXykCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651)
PAFXykCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12186)
PAFXykCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28875)
PAFXykCurveEnumerableETHTest:test_modifyPairParams() (gas: 52282)
PAFXykCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55495)
PAFXykCurveEnumerableETHTest:test_rescueTokens() (gas: 161953)
PAFXykCurveEnumerableETHTest:test_transferCallback() (gas: 43284)
PAFXykCurveEnumerableETHTest:test_transferOwnership() (gas: 16093)
PAFXykCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41020)
PAFXykCurveEnumerableETHTest:test_withdraw() (gas: 18916)
PAFXykCurveEnumerableETHTest:test_withdraw1155() (gas: 61535)
PAFXykCurveEnumerableETHTest:test_withdrawFees() (gas: 223943)
PAFXykCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19205)
PAFXykCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFXykCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18603)
PAFXykCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754)
PAFXykCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18609)
PAFXykCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18603)
PAFXykCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22652)
PAFXykCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFXykCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27717)
PAFXykCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33323)
PAFXykCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63534)
PAFXykCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756)
PAFXykCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10733)
PAFXykCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18624)
PAFXykCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26389)
PAFXykCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 245011)
PAFXykCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15712)
PAFXykCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99278)
PAFXykCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651)
PAFXykCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12186)
PAFXykCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23473)
PAFXykCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52311)
PAFXykCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55516)
PAFXykCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 113128)
PAFXykCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43265)
PAFXykCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16099)
PAFXykCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48428)
PAFXykCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26781)
PAFXykCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61642)
PAFXykCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 174859)
PAFXykCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19202)
PAFXykCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10776)
PAFXykCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18619)
PAFXykCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751)
PAFXykCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18625)
PAFXykCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18619)
PAFXykCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22665)
PAFXykCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFXykCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27733)
PAFXykCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40020)
PAFXykCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57887)
PAFXykCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775)
PAFXykCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10730)
PAFXykCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18662)
PAFXykCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18450)
PAFXykCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 181974)
PAFXykCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15761)
PAFXykCurveMissingEnumerableETHTest:test_callMint721() (gas: 99275)
PAFXykCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651)
PAFXykCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12186)
PAFXykCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23470)
PAFXykCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52282)
PAFXykCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55495)
PAFXykCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 113033)
PAFXykCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43284)
PAFXykCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16093)
PAFXykCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40991)
PAFXykCurveMissingEnumerableETHTest:test_withdraw() (gas: 18916)
PAFXykCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61535)
PAFXykCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 153753)
RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 538353)
RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 644090)
RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 635794)
@@ -276,46 +396,58 @@ RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas:
RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 610550)
RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 374474)
RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 377189)
RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 417644)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 385036)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 261854)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 433828)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 372380)
RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 391637)
RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 368492)
RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 234188)
RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 406091)
RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 344767)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 450802)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 393896)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 278389)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 330018)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 266512)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 424795)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 377180)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 250723)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 301937)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 238543)
RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 407873)
RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 379795)
RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 256789)
RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 432476)
RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 371020)
RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 381850)
RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 363233)
RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 229107)
RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 404723)
RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 343407)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 441031)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 388655)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 273324)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 328666)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 265152)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 415008)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 371921)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 245642)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 300569)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 237183)
RMPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 563788)
RMPXykCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 645455)
RMPXykCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 637159)
RMPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 542098)
RMPXykCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 615106)
RMPXykCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 608700)
RMPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 654495)
RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 414865)
RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 416044)
RMPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 632805)
RMPXykCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 389874)
RMPXykCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 392589)
RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 429206)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 396500)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 267750)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 445980)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 384460)
RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 403185)
RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 372823)
RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 240073)
RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 418224)
RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 356836)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 462364)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 405360)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 284285)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 342170)
RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 278592)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 436343)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 381511)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 256608)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 314070)
RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 250612)
RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 418693)
RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 390611)
RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 262310)
RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 444076)
RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 382556)
RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 392672)
RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 366934)
RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 234633)
RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 416320)
RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 354932)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 451851)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 399471)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 278845)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 340266)
RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 276688)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 425830)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 375622)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 251168)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 312166)
RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 248708)
RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 169789)
RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195637)
RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196976)
@@ -340,16 +472,48 @@ RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs(
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 127449)
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 152760)
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 155937)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 174094)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195114)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196453)
RRSWARXykCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 165609)
RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 202695)
RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 203912)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 139795)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 148810)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 152103)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131310)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156213)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159390)
RRSXykCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 426710)
RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 398617)
RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 266171)
RRSXykCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 451379)
RRSXykCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 389859)
RRSXykCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 400689)
RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 374940)
RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 238494)
RRSXykCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 423623)
RRSXykCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 362235)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 459868)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 407477)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 282706)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 347569)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 283991)
RRSXykCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 433847)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 383628)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 255029)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 319469)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 256011)
RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189353)
RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38024)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 50020)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48823)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44862)
RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 498699)
RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 410314)
RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 525906)
RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 416207)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 198188)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 209668)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 171504)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 176944)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 161739)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182569)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353627)
@@ -359,11 +523,11 @@ RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList
RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76567)
RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58495)
RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60251)
RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 496244)
RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 383051)
RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 523436)
RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 388941)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 193178)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 203801)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143813)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149250)
RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140286)
RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161481)
RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 332622)
@@ -373,11 +537,11 @@ RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWith
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49923)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48814)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44862)
RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 520824)
RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 432463)
RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 548031)
RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 438356)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 171405)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 198237)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 169929)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175369)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137335)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148013)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215190)
@@ -387,11 +551,11 @@ RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEm
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76470)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58495)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60251)
RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 518369)
RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 405200)
RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 545561)
RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 411090)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 166252)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 192198)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 142238)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 147675)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115704)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126753)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 194008)
@@ -401,11 +565,11 @@ RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList()
RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49289)
RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48821)
RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44860)
RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 489559)
RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 405797)
RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 516286)
RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411145)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 194933)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 204907)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 167436)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 172780)
RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 157765)
RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178595)
RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348755)
@@ -415,11 +579,11 @@ RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (g
RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75105)
RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58493)
RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60249)
RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 487104)
RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 378534)
RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 513816)
RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 383879)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 189922)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 200212)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 139745)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 145086)
RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 136311)
RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 157506)
RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 327300)
@@ -429,11 +593,11 @@ RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmpty
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49192)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48812)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44860)
RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 511684)
RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 427946)
RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 538411)
RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 433294)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 168150)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 191368)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 165861)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 171205)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133361)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144039)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210318)
@@ -443,100 +607,200 @@ RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyLi
RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75008)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58493)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60249)
RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 509229)
RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 400683)
RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 535941)
RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 406028)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 162996)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 188128)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 138170)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143511)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 111729)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 122778)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 188686)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 241560)
RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 406017)
RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411844)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 252736)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 251097)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 186477)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 196321)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 191840)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201680)
RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162113)
RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210694)
RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182986)
RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231590)
RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353917)
RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411576)
RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 398027)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 266831)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 265599)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 178047)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 165661)
RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 403843)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 266830)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 265597)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183399)
RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171009)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168468)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202192)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189695)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223475)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189694)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223474)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 360720)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 418782)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 220620)
RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 418781)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 226447)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 216833)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 217148)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 146076)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 164866)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151439)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170225)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137709)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186290)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148430)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197034)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215480)
RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267912)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 212630)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 230750)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231478)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 137646)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 134206)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 218446)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 230749)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231476)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 142998)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139554)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143886)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177610)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154967)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188747)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154966)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188746)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 222106)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 274946)
RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 401500)
RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 274945)
RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 406782)
RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 241894)
RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 240255)
RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 182409)
RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 192253)
RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 187676)
RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 197516)
RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 158139)
RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 206720)
RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 179012)
RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 227616)
RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 349045)
RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406704)
RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 393510)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 258788)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 257556)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 173979)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 161593)
RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 398781)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 258787)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 257554)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 179235)
RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 166845)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 164493)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 198217)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 185720)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 219500)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 185719)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 219499)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 355398)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 413460)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 216103)
RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 413459)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 221385)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 205991)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 206306)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 142008)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 160798)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 147275)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 166061)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133735)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 182316)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144456)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 193060)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210608)
RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 263040)
RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 208113)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 222707)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 223435)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 133578)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 130138)
RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 213384)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 222706)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 223433)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 138834)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 135390)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 139911)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 173635)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 150992)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 184772)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 150991)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 184771)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 216784)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 269624)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 269623)
RSPWARXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411233)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253687)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 252048)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 192127)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201967)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162386)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210967)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 183259)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231863)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353292)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410951)
RSPWARXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 403232)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 267383)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 266150)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183686)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171296)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168343)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202067)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189569)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223349)
RSPWARXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 359248)
RSPWARXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 417309)
RSPWARXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 225836)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 217784)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 218099)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151726)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170512)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137982)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186563)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148703)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197307)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214855)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267287)
RSPWARXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 217835)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 231302)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 232029)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143285)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139841)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143761)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177485)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154841)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188621)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 220634)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 273473)
RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189640)
RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37633)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 31086)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48027)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44066)
RSPXykCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 527341)
RSPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 415596)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 200205)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 210179)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 177231)
RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162012)
RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182842)
RSPXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353002)
RSPXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410684)
RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161946)
RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37584)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 31083)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57699)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59455)
RSPXykCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 524871)
RSPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 388330)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 194876)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 205167)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149537)
RSPXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140161)
RSPXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161356)
RSPXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 331150)
RSPXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 389246)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178465)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37633)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 30998)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48018)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44066)
RSPXykCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 549466)
RSPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 437745)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 173422)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 195158)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175656)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137608)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148286)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214565)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267020)
RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150771)
RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37584)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 30995)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57699)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59455)
RSPXykCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 546996)
RSPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 410479)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 167951)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 191521)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 147962)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115579)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126628)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 192536)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 245410)
+9 -9
View File
@@ -13,7 +13,7 @@ import {ILSSVMPairFactoryLike} from "../LSSVMPairFactory.sol";
/*
@author 0xacedia
@notice Bonding curve logic for an x*y=k curve using virtual reserves.
@dev The virtual token reserve is stored in `delta` and the virtual nft reserve is stored in `spotPrice`.
@dev The virtual token reserve is stored in `spotPrice` and the virtual nft reserve is stored in `delta`.
*/
contract XykCurve is ICurve, CurveErrorCodes {
using FixedPointMathLib for uint256;
@@ -70,8 +70,8 @@ contract XykCurve is ICurve, CurveErrorCodes {
}
// get the pair's virtual nft and eth/erc20 reserves
uint256 tokenBalance = delta;
uint256 nftBalance = spotPrice;
uint256 tokenBalance = spotPrice;
uint256 nftBalance = delta;
// calculate the amount to send in
inputValue = (numItems * tokenBalance) / (nftBalance - numItems);
@@ -85,8 +85,8 @@ contract XykCurve is ICurve, CurveErrorCodes {
inputValue += fee + protocolFee;
// set the new virtual reserves
newDelta = uint128(delta + inputValue - protocolFee); // token reserves
newSpotPrice = uint128(nftBalance - numItems); // nft reserves
newSpotPrice = uint128(spotPrice + inputValue - protocolFee); // token reserves
newDelta = uint128(nftBalance - numItems); // nft reserves
// If we got all the way here, no math error happened
error = Error.OK;
@@ -118,8 +118,8 @@ contract XykCurve is ICurve, CurveErrorCodes {
}
// get the pair's virtual nft and eth/erc20 balance
uint256 tokenBalance = delta;
uint256 nftBalance = spotPrice;
uint256 tokenBalance = spotPrice;
uint256 nftBalance = delta;
// calculate the amount to send out
outputValue = (numItems * tokenBalance) / (nftBalance + numItems);
@@ -133,8 +133,8 @@ contract XykCurve is ICurve, CurveErrorCodes {
outputValue -= fee + protocolFee;
// set the new virtual reserves
newDelta = uint128(delta - (outputValue + protocolFee)); // token reserves
newSpotPrice = uint128(nftBalance + numItems); // nft reserves
newSpotPrice = uint128(spotPrice - (outputValue + protocolFee)); // token reserves
newDelta = uint128(nftBalance + numItems); // nft reserves
// If we got all the way here, no math error happened
error = Error.OK;
+67 -61
View File
@@ -141,45 +141,48 @@ abstract contract RouterRobustSwap is
function test_robustSwapTokenForAny2NFTs() public {
LSSVMRouter.RobustPairSwapAny[]
memory swapList = new LSSVMRouter.RobustPairSwapAny[](3);
(, , , uint256 pair1InputAmount, ) = pair1.getBuyNFTQuote(2);
(, , , uint256 pair2InputAmount, ) = pair2.getBuyNFTQuote(2);
swapList[0] = LSSVMRouter.RobustPairSwapAny({
swapInfo: LSSVMRouter.PairSwapAny({pair: pair1, numItems: 2}),
maxCost: 0.44 ether
maxCost: pair2InputAmount
});
swapList[1] = LSSVMRouter.RobustPairSwapAny({
swapInfo: LSSVMRouter.PairSwapAny({pair: pair2, numItems: 2}),
maxCost: 0.44 ether
maxCost: pair2InputAmount
});
swapList[2] = LSSVMRouter.RobustPairSwapAny({
swapInfo: LSSVMRouter.PairSwapAny({pair: pair3, numItems: 2}),
maxCost: 0.44 ether
maxCost: pair2InputAmount
});
uint256 beforeNFTBalance = test721.balanceOf(address(this));
// Expect to have the first two swapPairs succeed, and the last one silently fail
// with 10% protocol fee:
// the first swapPair costs 0.22 tokens
// the second swapPair costs 0.44 tokens
// the third swapPair costs 0.66 tokens
uint256 remainingValue = this.robustSwapTokenForAnyNFTs{
value: modifyInputAmount(1.32 ether)
value: modifyInputAmount(pair2InputAmount * 3)
}(
router,
swapList,
payable(address(this)),
address(this),
block.timestamp,
1.32 ether
pair2InputAmount * 3
);
uint256 afterNFTBalance = test721.balanceOf(address(this));
// If the first two swap pairs succeed, we pay 0.6 tokens and gain 4 NFTs
require(
(afterNFTBalance - beforeNFTBalance) == 4,
"Incorrect NFT swap"
// If the first two swap pairs succeed, we gain 4 NFTs
assertEq((afterNFTBalance - beforeNFTBalance), 4, "Incorrect NFT swap");
assertEq(
remainingValue,
pair2InputAmount * 3 - (pair1InputAmount + pair2InputAmount),
"Incorrect refund"
);
require(remainingValue == 0.66 ether, "Incorrect refund");
}
// Test where pair 1 and pair 2 swap tokens for NFT succeed but pair 3 fails
@@ -196,6 +199,9 @@ abstract contract RouterRobustSwap is
nftIds3[0] = 20;
nftIds3[1] = 21;
(, , , uint256 pair1InputAmount, ) = pair1.getBuyNFTQuote(2);
(, , , uint256 pair2InputAmount, ) = pair2.getBuyNFTQuote(2);
LSSVMRouter.RobustPairSwapSpecific[]
memory swapList = new LSSVMRouter.RobustPairSwapSpecific[](3);
swapList[0] = LSSVMRouter.RobustPairSwapSpecific({
@@ -203,49 +209,47 @@ abstract contract RouterRobustSwap is
pair: pair1,
nftIds: nftIds1
}),
maxCost: 0.44 ether
maxCost: pair2InputAmount
});
swapList[1] = LSSVMRouter.RobustPairSwapSpecific({
swapInfo: LSSVMRouter.PairSwapSpecific({
pair: pair2,
nftIds: nftIds2
}),
maxCost: 0.44 ether
maxCost: pair2InputAmount
});
swapList[2] = LSSVMRouter.RobustPairSwapSpecific({
swapInfo: LSSVMRouter.PairSwapSpecific({
pair: pair3,
nftIds: nftIds3
}),
maxCost: 0.44 ether
maxCost: pair2InputAmount
});
uint256 beforeNFTBalance = test721.balanceOf(address(this));
// Expect to have the first two swapPairs succeed, and the last one silently fail
// with 10% protocol fee:
// the first swapPair costs 0.22 ETH
// the second swapPair costs 0.44 ETH
// the third swapPair costs 0.66 ETH
uint256 remainingValue = this.robustSwapTokenForSpecificNFTs{
value: modifyInputAmount(1.32 ether)
value: modifyInputAmount(pair2InputAmount * 3)
}(
router,
swapList,
payable(address(this)),
address(this),
block.timestamp,
1.32 ether
pair2InputAmount * 3
);
uint256 afterNFTBalance = test721.balanceOf(address(this));
// If the first two swap pairs succeed, we pay 0.6 eth and gain 4 NFTs
require(
(afterNFTBalance - beforeNFTBalance) == 4,
"Incorrect NFT swap"
// If the first two swap pairs succeed we gain 4 NFTs
assertEq((afterNFTBalance - beforeNFTBalance), 4, "Incorrect NFT swap");
assertEq(
remainingValue,
pair2InputAmount * 3 - (pair1InputAmount + pair2InputAmount),
"Incorrect ETH refund"
);
require(remainingValue == 0.66 ether, "Incorrect ETH refund");
}
// Test where selling to pair 2 and pair 3 succeeds, but selling to pair 1 fails
@@ -262,6 +266,9 @@ abstract contract RouterRobustSwap is
nftIds3[0] = 34;
nftIds3[1] = 35;
(, , , uint256 pair2OutputAmount, ) = pair2.getSellNFTQuote(2);
(, , , uint256 pair3OutputAmount, ) = pair3.getSellNFTQuote(2);
LSSVMRouter.RobustPairSwapSpecificForToken[]
memory swapList = new LSSVMRouter.RobustPairSwapSpecificForToken[](
3
@@ -271,30 +278,27 @@ abstract contract RouterRobustSwap is
pair: pair1,
nftIds: nftIds1
}),
minOutput: 0.3 ether
minOutput: pair2OutputAmount
});
swapList[1] = LSSVMRouter.RobustPairSwapSpecificForToken({
swapInfo: LSSVMRouter.PairSwapSpecific({
pair: pair2,
nftIds: nftIds2
}),
minOutput: 0.3 ether
minOutput: pair2OutputAmount
});
swapList[2] = LSSVMRouter.RobustPairSwapSpecificForToken({
swapInfo: LSSVMRouter.PairSwapSpecific({
pair: pair3,
nftIds: nftIds3
}),
minOutput: 0.3 ether
minOutput: pair2OutputAmount
});
uint256 beforeNFTBalance = test721.balanceOf(address(this));
// Expect to have the last two swapPairs succeed, and the first one silently fail
// with 10% protocol fee:
// the first swapPair gives 0.18 ETH
// the second swapPair gives 0.36 ETH
// the third swapPair gives 0.54 ETH
uint256 remainingValue = router.robustSwapNFTsForToken(
swapList,
payable(address(this)),
@@ -303,11 +307,12 @@ abstract contract RouterRobustSwap is
uint256 afterNFTBalance = test721.balanceOf(address(this));
require(
(beforeNFTBalance - afterNFTBalance) == 4,
"Incorrect NFT swap"
assertEq((beforeNFTBalance - afterNFTBalance), 4, "Incorrect NFT swap");
assertEq(
remainingValue,
pair3OutputAmount + pair2OutputAmount,
"Incorrect ETH received"
);
require(remainingValue == 0.9 ether, "Incorrect ETH received");
}
// Test where selling to pair 2 succeeds,
@@ -324,6 +329,8 @@ abstract contract RouterRobustSwap is
uint256[] memory nftIds3 = new uint256[](0);
(, , , uint256 pair2OutputAmount, ) = pair2.getSellNFTQuote(2);
LSSVMRouter.RobustPairSwapSpecificForToken[]
memory swapList = new LSSVMRouter.RobustPairSwapSpecificForToken[](
3
@@ -333,30 +340,27 @@ abstract contract RouterRobustSwap is
pair: pair1,
nftIds: nftIds1
}),
minOutput: 0.3 ether
minOutput: pair2OutputAmount
});
swapList[1] = LSSVMRouter.RobustPairSwapSpecificForToken({
swapInfo: LSSVMRouter.PairSwapSpecific({
pair: pair2,
nftIds: nftIds2
}),
minOutput: 0.3 ether
minOutput: pair2OutputAmount
});
swapList[2] = LSSVMRouter.RobustPairSwapSpecificForToken({
swapInfo: LSSVMRouter.PairSwapSpecific({
pair: pair3,
nftIds: nftIds3
}),
minOutput: 0.3 ether
minOutput: pair2OutputAmount
});
uint256 beforeNFTBalance = test721.balanceOf(address(this));
// Expect to have the last two swapPairs succeed, and the first one silently fail
// with 10% protocol fee:
// the first swapPair gives 0.18 ETH
// the second swapPair gives 0.36 ETH
// the third swapPair gives 0.54 ETH
uint256 remainingValue = router.robustSwapNFTsForToken(
swapList,
payable(address(this)),
@@ -365,22 +369,21 @@ abstract contract RouterRobustSwap is
uint256 afterNFTBalance = test721.balanceOf(address(this));
require(
(beforeNFTBalance - afterNFTBalance) == 2,
"Incorrect NFT swap"
);
require(remainingValue == 0.36 ether, "Incorrect ETH received");
assertEq((beforeNFTBalance - afterNFTBalance), 2, "Incorrect NFT swap");
assertEq(remainingValue, pair2OutputAmount, "Incorrect ETH received");
}
// Test where we buy and sell in the same tx
function test_robustSwapNFTsForTokenAndTokenForNFTs() public {
// Check that we own #0 and #1, and that we don't own #32 and #33
assertEq(test721.ownerOf(0), address(pair1));
assertEq(test721.ownerOf(1), address(pair1));
assertEq(test721.ownerOf(32), address(this));
assertEq(test721.ownerOf(33), address(this));
(, , , uint256 pair1InputAmount, ) = pair1.getBuyNFTQuote(2);
(, , , uint256 pair2OutputAmount, ) = pair2.getSellNFTQuote(2);
uint256[] memory nftIds1 = new uint256[](2);
nftIds1[0] = 0;
nftIds1[1] = 1;
@@ -393,10 +396,10 @@ abstract contract RouterRobustSwap is
pair: pair1,
nftIds: nftIds1
}),
maxCost: 0.44 ether
maxCost: pair1InputAmount
});
// We queue up a NFT->Token swap that should work
// We queue up a NFT->Token swap that should work
uint256[] memory nftIds2 = new uint256[](2);
nftIds2[0] = 32;
nftIds2[1] = 33;
@@ -409,20 +412,23 @@ abstract contract RouterRobustSwap is
pair: pair2,
nftIds: nftIds2
}),
minOutput: 0.3 ether
minOutput: pair2OutputAmount
});
// Do the swap
uint256 inputAmount = 0.44 ether;
this.robustSwapTokenForSpecificNFTsAndNFTsForTokens{value: modifyInputAmount(inputAmount)}(
router,
LSSVMRouter.RobustPairNFTsFoTokenAndTokenforNFTsTrade({
nftToTokenTrades: nftToTokenSwapList,
tokenToNFTTrades: tokenToNFTSwapList,
inputAmount: inputAmount,
tokenRecipient: payable(address(this)),
nftRecipient: address(this)
}));
uint256 inputAmount = pair1InputAmount;
this.robustSwapTokenForSpecificNFTsAndNFTsForTokens{
value: modifyInputAmount(inputAmount)
}(
router,
LSSVMRouter.RobustPairNFTsFoTokenAndTokenforNFTsTrade({
nftToTokenTrades: nftToTokenSwapList,
tokenToNFTTrades: tokenToNFTSwapList,
inputAmount: inputAmount,
tokenRecipient: payable(address(this)),
nftRecipient: address(this)
})
);
// Check that we own #0 and #1, and that we don't own #32 and #33
assertEq(test721.ownerOf(0), address(this));
+6 -3
View File
@@ -125,6 +125,7 @@ abstract contract RouterSinglePool is
}
function test_swapSingleNFTForToken() public {
(, , , uint256 outputAmount, ) = pair.getSellNFTQuote(1);
uint256[] memory nftIds = new uint256[](1);
nftIds[0] = numInitialNFTs + 1;
LSSVMRouter.PairSwapSpecific[]
@@ -135,7 +136,7 @@ abstract contract RouterSinglePool is
});
router.swapNFTsForToken(
swapList,
0.9 ether,
outputAmount,
payable(address(this)),
block.timestamp
);
@@ -143,6 +144,7 @@ abstract contract RouterSinglePool is
function testGas_swapSingleNFTForToken5Times() public {
for (uint256 i = 1; i <= 5; i++) {
(, , , uint256 outputAmount, ) = pair.getSellNFTQuote(1);
uint256[] memory nftIds = new uint256[](1);
nftIds[0] = numInitialNFTs + i;
LSSVMRouter.PairSwapSpecific[]
@@ -153,7 +155,7 @@ abstract contract RouterSinglePool is
});
router.swapNFTsForToken(
swapList,
0.9 ether,
outputAmount,
payable(address(this)),
block.timestamp
);
@@ -284,6 +286,7 @@ abstract contract RouterSinglePool is
}
function test_swap5NFTsForToken() public {
(, , , uint256 outputAmount, ) = pair.getSellNFTQuote(5);
uint256[] memory nftIds = new uint256[](5);
for (uint256 i = 0; i < 5; i++) {
nftIds[i] = numInitialNFTs + i + 1;
@@ -296,7 +299,7 @@ abstract contract RouterSinglePool is
});
router.swapNFTsForToken(
swapList,
0.9 ether,
outputAmount,
payable(address(this)),
block.timestamp
);
@@ -152,6 +152,7 @@ abstract contract RouterSinglePoolWithAssetRecipient is
}
function test_swapSingleNFTForToken() public {
(, , , uint256 outputAmount, ) = buyPair.getSellNFTQuote(1);
uint256 beforeBuyPairNFTBalance = test721.balanceOf(address(buyPair));
uint256[] memory nftIds = new uint256[](1);
nftIds[0] = numInitialNFTs * 2 + 1;
@@ -163,7 +164,7 @@ abstract contract RouterSinglePoolWithAssetRecipient is
});
router.swapNFTsForToken(
swapList,
0.9 ether,
outputAmount,
payable(address(this)),
block.timestamp
);
@@ -194,7 +195,7 @@ abstract contract RouterSinglePoolWithAssetRecipient is
uint256 sellAmount;
(, , , sellAmount, ) = sellPair.getBuyNFTQuote(1);
// Note: we send a little bit of tokens with the call because the exponential curve increases price ever so slightly
uint256 inputAmount = 0.01 ether;
uint256 inputAmount = 0.1 ether;
this.swapNFTsForAnyNFTsThroughToken{
value: modifyInputAmount(inputAmount)
}(
@@ -236,7 +237,7 @@ abstract contract RouterSinglePoolWithAssetRecipient is
uint256 sellAmount;
(, , , sellAmount, ) = sellPair.getBuyNFTQuote(1);
// Note: we send a little bit of tokens with the call because the exponential curve increases price ever so slightly
uint256 inputAmount = 0.01 ether;
uint256 inputAmount = 0.1 ether;
this.swapNFTsForSpecificNFTsThroughToken{
value: modifyInputAmount(inputAmount)
}(
@@ -305,6 +306,7 @@ abstract contract RouterSinglePoolWithAssetRecipient is
}
function test_swap5NFTsForToken() public {
(, , , uint256 outputAmount, ) = buyPair.getSellNFTQuote(5);
uint256 beforeBuyPairNFTBalance = test721.balanceOf(address(buyPair));
uint256[] memory nftIds = new uint256[](5);
for (uint256 i = 0; i < 5; i++) {
@@ -318,7 +320,7 @@ abstract contract RouterSinglePoolWithAssetRecipient is
});
router.swapNFTsForToken(
swapList,
0.9 ether,
outputAmount,
payable(address(this)),
block.timestamp
);
@@ -340,9 +342,10 @@ abstract contract RouterSinglePoolWithAssetRecipient is
pair: buyPair,
nftIds: nftIds
});
(, , , uint256 outputAmount, ) = buyPair.getSellNFTQuote(1);
uint256 output = router.swapNFTsForToken(
swapList,
0.9 ether,
outputAmount,
payable(address(this)),
block.timestamp
);
+20 -10
View File
@@ -69,9 +69,9 @@ contract XykCurveTest is DSTest, ERC721Holder {
curve,
payable(0),
LSSVMPair.PoolType.TRADE,
uint128(value),
0,
uint128(numNfts),
0,
uint128(value),
idList
);
}
@@ -141,12 +141,12 @@ contract XykCurveTest is DSTest, ERC721Holder {
"Should not have errored"
);
assertEq(
newSpotPrice,
newDelta,
numNfts - numItemsToBuy,
"Should have updated virtual nft reserve"
);
assertEq(
newDelta,
newSpotPrice,
inputValue + value,
"Should have updated virtual eth reserve"
);
@@ -175,12 +175,12 @@ contract XykCurveTest is DSTest, ERC721Holder {
"Should not have errored"
);
assertEq(
newSpotPrice,
newDelta,
numNfts + numItemsToSell,
"Should have updated virtual nft reserve"
);
assertEq(
newDelta,
newSpotPrice,
value - inputValue,
"Should have updated virtual eth reserve"
);
@@ -333,9 +333,14 @@ contract XykCurveTest is DSTest, ERC721Holder {
"Should have received NFTs"
);
assertEq(
ethPair.delta(),
ethPair.spotPrice(),
uint128(address(ethPair).balance),
"Delta should match eth balance after swap"
"Spot price should match eth balance after swap"
);
assertEq(
ethPair.delta(),
nft.balanceOf(address(ethPair)),
"Delta should match nft balance after swap"
);
}
@@ -388,9 +393,14 @@ contract XykCurveTest is DSTest, ERC721Holder {
"Should have sent NFTs"
);
assertEq(
ethPair.delta(),
ethPair.spotPrice(),
uint128(address(ethPair).balance),
"Delta should match eth balance after swap"
"Spot price should match eth balance after swap"
);
assertEq(
ethPair.delta(),
nft.balanceOf(address(ethPair)),
"Delta should match nft balance after swap"
);
}
}
+2 -2
View File
@@ -14,7 +14,7 @@ abstract contract UsingXykCurve is Configurable {
}
function modifyDelta(uint64 delta) public pure override returns (uint64) {
return 0.1 ether;
return 11;
}
function modifySpotPrice(uint56 spotPrice)
@@ -23,6 +23,6 @@ abstract contract UsingXykCurve is Configurable {
override
returns (uint56)
{
return 5;
return 0.01 ether;
}
}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {PairAndFactory} from "../base/PairAndFactory.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract PAFXykCurveEnumerableERC20Test is
PairAndFactory,
UsingXykCurve,
UsingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {PairAndFactory} from "../base/PairAndFactory.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract PAFXykCurveEnumerableETHTest is
PairAndFactory,
UsingXykCurve,
UsingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {PairAndFactory} from "../base/PairAndFactory.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract PAFXykCurveMissingEnumerableERC20Test is
PairAndFactory,
UsingXykCurve,
UsingMissingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {PairAndFactory} from "../base/PairAndFactory.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract PAFXykCurveMissingEnumerableETHTest is
PairAndFactory,
UsingXykCurve,
UsingMissingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterMultiPool} from "../base/RouterMultiPool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RMPXykCurveEnumerableERC20Test is
RouterMultiPool,
UsingXykCurve,
UsingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterMultiPool} from "../base/RouterMultiPool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RMPXykCurveEnumerableETHTest is
RouterMultiPool,
UsingXykCurve,
UsingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterMultiPool} from "../base/RouterMultiPool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RMPXykCurveMissingEnumerableERC20Test is
RouterMultiPool,
UsingXykCurve,
UsingMissingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterMultiPool} from "../base/RouterMultiPool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RMPXykCurveMissingEnumerableETHTest is
RouterMultiPool,
UsingXykCurve,
UsingMissingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwapWithAssetRecipient} from "../base/RouterRobustSwapWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RRSWARXykCurveEnumerableERC20Test is
RouterRobustSwapWithAssetRecipient,
UsingXykCurve,
UsingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwapWithAssetRecipient} from "../base/RouterRobustSwapWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RRSWARXykCurveEnumerableETHTest is
RouterRobustSwapWithAssetRecipient,
UsingXykCurve,
UsingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwapWithAssetRecipient} from "../base/RouterRobustSwapWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RRSWARXykCurveMissingEnumerableERC20Test is
RouterRobustSwapWithAssetRecipient,
UsingXykCurve,
UsingMissingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwapWithAssetRecipient} from "../base/RouterRobustSwapWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RRSWARXykCurveMissingEnumerableETHTest is
RouterRobustSwapWithAssetRecipient,
UsingXykCurve,
UsingMissingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwap} from "../base/RouterRobustSwap.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RRSXykCurveEnumerableERC20Test is
RouterRobustSwap,
UsingXykCurve,
UsingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwap} from "../base/RouterRobustSwap.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RRSXykCurveEnumerableETHTest is
RouterRobustSwap,
UsingXykCurve,
UsingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwap} from "../base/RouterRobustSwap.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RRSXykCurveMissingEnumerableERC20Test is
RouterRobustSwap,
UsingXykCurve,
UsingMissingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterRobustSwap} from "../base/RouterRobustSwap.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RRSXykCurveMissingEnumerableETHTest is
RouterRobustSwap,
UsingXykCurve,
UsingMissingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePoolWithAssetRecipient} from "../base/RouterSinglePoolWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RSPWARXykCurveEnumerableERC20Test is
RouterSinglePoolWithAssetRecipient,
UsingXykCurve,
UsingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePoolWithAssetRecipient} from "../base/RouterSinglePoolWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RSPWARXykCurveEnumerableETHTest is
RouterSinglePoolWithAssetRecipient,
UsingXykCurve,
UsingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePoolWithAssetRecipient} from "../base/RouterSinglePoolWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RSPWARXykCurveMissingEnumerableERC20Test is
RouterSinglePoolWithAssetRecipient,
UsingXykCurve,
UsingMissingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePoolWithAssetRecipient} from "../base/RouterSinglePoolWithAssetRecipient.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RSPWARXykCurveMissingEnumerableETHTest is
RouterSinglePoolWithAssetRecipient,
UsingXykCurve,
UsingMissingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePool} from "../base/RouterSinglePool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RSPXykCurveEnumerableERC20Test is
RouterSinglePool,
UsingXykCurve,
UsingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePool} from "../base/RouterSinglePool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingEnumerable} from "../mixins/UsingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RSPXykCurveEnumerableETHTest is
RouterSinglePool,
UsingXykCurve,
UsingEnumerable,
UsingETH
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePool} from "../base/RouterSinglePool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingERC20} from "../mixins/UsingERC20.sol";
contract RSPXykCurveMissingEnumerableERC20Test is
RouterSinglePool,
UsingXykCurve,
UsingMissingEnumerable,
UsingERC20
{}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {RouterSinglePool} from "../base/RouterSinglePool.sol";
import {UsingXykCurve} from "../mixins/UsingXykCurve.sol";
import {UsingMissingEnumerable} from "../mixins/UsingMissingEnumerable.sol";
import {UsingETH} from "../mixins/UsingETH.sol";
contract RSPXykCurveMissingEnumerableETHTest is
RouterSinglePool,
UsingXykCurve,
UsingMissingEnumerable,
UsingETH
{}