From d6e1827cfbb4187c111d9e42a7016f8aae181a92 Mon Sep 17 00:00:00 2001 From: vasa Date: Mon, 2 Jan 2023 09:03:42 +0400 Subject: [PATCH] refactor: add robustSwapTokensForSpecificNFTsAndPartialFill to MultiRouter License: BUSL-1.1 Signed-off-by: Vaibhav Saini --- .gas-snapshot | 1724 +++++++++++++++++++++---------------------- src/MultiRouter.sol | 298 +++++++- 2 files changed, 1149 insertions(+), 873 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index ea0202e..71471eb 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,1098 +1,1098 @@ -ExponentialCurveTest:test_getBuyInfoExample() (gas: 9089) -ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 960, ~: 523) -ExponentialCurveTest:test_getSellInfoExample() (gas: 9022) -ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1856, ~: 604) -LinearCurveTest:test_getBuyInfoExample() (gas: 8628) -LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 7267, ~: 8800) -LinearCurveTest:test_getSellInfoExample() (gas: 8477) -LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 7503, ~: 8909) -XykCurveTest:test_getBuyInfoCalculatesProtocolFee() (gas: 1816716) +ExponentialCurveTest:test_getBuyInfoExample() (gas: 9113) +ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 996, ~: 523) +ExponentialCurveTest:test_getSellInfoExample() (gas: 9052) +ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1860, ~: 604) +LinearCurveTest:test_getBuyInfoExample() (gas: 8642) +LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 7249, ~: 8819) +LinearCurveTest:test_getSellInfoExample() (gas: 8503) +LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 7488, ~: 8927) +XykCurveTest:test_getBuyInfoCalculatesProtocolFee() (gas: 1808198) XykCurveTest:test_getBuyInfoCannotHave0NumItems() (gas: 6571) -XykCurveTest:test_getBuyInfoReturnsInputValue() (gas: 1792395) -XykCurveTest:test_getBuyInfoReturnsNewReserves() (gas: 1792436) -XykCurveTest:test_getSellInfoCalculatesProtocolFee() (gas: 1816573) +XykCurveTest:test_getBuyInfoReturnsInputValue() (gas: 1783878) +XykCurveTest:test_getBuyInfoReturnsNewReserves() (gas: 1783925) +XykCurveTest:test_getSellInfoCalculatesProtocolFee() (gas: 1808055) XykCurveTest:test_getSellInfoCannotHave0NumItems() (gas: 6558) -XykCurveTest:test_getSellInfoReturnsNewReserves() (gas: 1792301) -XykCurveTest:test_getSellInfoReturnsOutputValue() (gas: 1792308) -XykCurveTest:test_swapNFTsForToken() (gas: 2062094) -XykCurveTest:test_swapTokenForAnyNFTs() (gas: 1833311) -NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 837514, ~: 1259150) -NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 831582, ~: 1247979) -NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 338296, ~: 407745) -NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 316336, ~: 408211) -NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 819956, ~: 1267083) -NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 754908, ~: 1216925) -NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 291975, ~: 415678) -NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 246214, ~: 377157) -NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 853883, ~: 1260909) -NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 839778, ~: 1249738) -NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 310087, ~: 409504) -NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 296035, ~: 409970) -NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 849987, ~: 1268842) -NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 756583, ~: 1218684) -NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 316419, ~: 417437) -NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 269200, ~: 378916) -NoArbXykCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 861944, ~: 1261483) -NoArbXykCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 851760, ~: 1250312) -NoArbXykCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 313035, ~: 410078) -NoArbXykCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 306210, ~: 417544) -NoArbXykCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 793167, ~: 1269416) -NoArbXykCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 754601, ~: 1219258) -NoArbXykCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 292855, ~: 418011) -NoArbXykCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 259069, ~: 386490) -PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 19270) +XykCurveTest:test_getSellInfoReturnsNewReserves() (gas: 1783793) +XykCurveTest:test_getSellInfoReturnsOutputValue() (gas: 1783791) +XykCurveTest:test_swapNFTsForToken() (gas: 2053746) +XykCurveTest:test_swapTokenForAnyNFTs() (gas: 1824875) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 832090, ~: 1257232) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 832631, ~: 1246069) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 306180, ~: 407907) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 287935, ~: 408372) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 817319, ~: 1265233) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 771543, ~: 1215053) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 294752, ~: 415908) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 250843, ~: 377356) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 770471, ~: 1258953) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 843740, ~: 1247790) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 320801, ~: 409628) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 300051, ~: 410093) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 865661, ~: 1266954) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 761095, ~: 1216774) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 291987, ~: 417629) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 252752, ~: 379077) +NoArbXykCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 805923, ~: 1259565) +NoArbXykCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 801145, ~: 1248402) +NoArbXykCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 324331, ~: 410240) +NoArbXykCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 309238, ~: 417713) +NoArbXykCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 839653, ~: 1267566) +NoArbXykCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 797784, ~: 1217386) +NoArbXykCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 320663, ~: 418241) +NoArbXykCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 284274, ~: 386697) +PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 19248) PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10713) PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18581) PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754) PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18654) PAFExponentialCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18581) -PAFExponentialCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22630) +PAFExponentialCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22561) PAFExponentialCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11087) PAFExponentialCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27804) -PAFExponentialCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33989) -PAFExponentialCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95720) +PAFExponentialCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 34025) +PAFExponentialCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95801) PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756) PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10798) PAFExponentialCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18602) PAFExponentialCurveEnumerableERC20Test:testFail_withdraw() (gas: 26455) -PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 245006) +PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 245022) PAFExponentialCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFExponentialCurveEnumerableERC20Test:test_callMint721() (gas: 173667) +PAFExponentialCurveEnumerableERC20Test:test_callMint721() (gas: 173650) PAFExponentialCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651) PAFExponentialCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12142) PAFExponentialCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28856) PAFExponentialCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52364) -PAFExponentialCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55592) -PAFExponentialCurveEnumerableERC20Test:test_rescueTokens() (gas: 161961) +PAFExponentialCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55526) +PAFExponentialCurveEnumerableERC20Test:test_rescueTokens() (gas: 161982) PAFExponentialCurveEnumerableERC20Test:test_transferCallback() (gas: 43243) PAFExponentialCurveEnumerableERC20Test:test_transferOwnership() (gas: 16077) PAFExponentialCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48502) -PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 26847) -PAFExponentialCurveEnumerableERC20Test:test_withdraw1155() (gas: 61665) -PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 268882) -PAFExponentialCurveEnumerableETHTest:testFail_callMint721() (gas: 19267) +PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 26856) +PAFExponentialCurveEnumerableERC20Test:test_withdraw1155() (gas: 61671) +PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 268997) +PAFExponentialCurveEnumerableETHTest:testFail_callMint721() (gas: 19245) PAFExponentialCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10732) PAFExponentialCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18597) PAFExponentialCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751) PAFExponentialCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18670) PAFExponentialCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18597) -PAFExponentialCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22643) +PAFExponentialCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22574) PAFExponentialCurveEnumerableETHTest:testFail_reInitPool() (gas: 11084) PAFExponentialCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27820) -PAFExponentialCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40686) -PAFExponentialCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65799) +PAFExponentialCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40722) +PAFExponentialCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65856) PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775) PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10795) PAFExponentialCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18640) PAFExponentialCurveEnumerableETHTest:testFail_withdraw() (gas: 18516) -PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181969) +PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181985) PAFExponentialCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFExponentialCurveEnumerableETHTest:test_callMint721() (gas: 173664) +PAFExponentialCurveEnumerableETHTest:test_callMint721() (gas: 173647) PAFExponentialCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651) PAFExponentialCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12142) PAFExponentialCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28853) PAFExponentialCurveEnumerableETHTest:test_modifyPairParams() (gas: 52335) -PAFExponentialCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55571) -PAFExponentialCurveEnumerableETHTest:test_rescueTokens() (gas: 161843) +PAFExponentialCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55505) +PAFExponentialCurveEnumerableETHTest:test_rescueTokens() (gas: 161864) PAFExponentialCurveEnumerableETHTest:test_transferCallback() (gas: 43262) PAFExponentialCurveEnumerableETHTest:test_transferOwnership() (gas: 16071) PAFExponentialCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41065) PAFExponentialCurveEnumerableETHTest:test_withdraw() (gas: 18982) -PAFExponentialCurveEnumerableETHTest:test_withdraw1155() (gas: 61558) -PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 262802) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19270) +PAFExponentialCurveEnumerableETHTest:test_withdraw1155() (gas: 61564) +PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 262884) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19248) PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10713) PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18581) PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754) PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18654) PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18581) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22630) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22561) PAFExponentialCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11087) PAFExponentialCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27804) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33980) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95813) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 34016) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95894) PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756) PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10798) PAFExponentialCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18602) PAFExponentialCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26455) -PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 245109) +PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 245125) PAFExponentialCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFExponentialCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99256) +PAFExponentialCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99239) PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651) PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12142) PAFExponentialCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23451) PAFExponentialCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52364) -PAFExponentialCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55592) -PAFExponentialCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 113040) +PAFExponentialCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55526) +PAFExponentialCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 113069) PAFExponentialCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43243) PAFExponentialCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16077) PAFExponentialCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48473) -PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26847) -PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61665) -PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198692) -PAFExponentialCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19267) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26856) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61671) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198823) +PAFExponentialCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19245) PAFExponentialCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10732) PAFExponentialCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18597) PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751) PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18670) PAFExponentialCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18597) -PAFExponentialCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22643) +PAFExponentialCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22574) PAFExponentialCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11084) PAFExponentialCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27820) -PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40677) -PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65892) +PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40713) +PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65949) PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775) PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10795) PAFExponentialCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18640) PAFExponentialCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18516) -PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182072) +PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182088) PAFExponentialCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFExponentialCurveMissingEnumerableETHTest:test_callMint721() (gas: 99253) +PAFExponentialCurveMissingEnumerableETHTest:test_callMint721() (gas: 99236) PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651) PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12142) PAFExponentialCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23448) PAFExponentialCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52335) -PAFExponentialCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55571) -PAFExponentialCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112945) +PAFExponentialCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55505) +PAFExponentialCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112975) PAFExponentialCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43262) PAFExponentialCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16071) PAFExponentialCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 41036) PAFExponentialCurveMissingEnumerableETHTest:test_withdraw() (gas: 18982) -PAFExponentialCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61558) -PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192612) -PAFLinearCurveEnumerableERC20Test:testFail_callMint721() (gas: 19270) +PAFExponentialCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61564) +PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192710) +PAFLinearCurveEnumerableERC20Test:testFail_callMint721() (gas: 19248) PAFLinearCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10713) PAFLinearCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18581) PAFLinearCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754) PAFLinearCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18654) PAFLinearCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18581) -PAFLinearCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22630) +PAFLinearCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22561) PAFLinearCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11087) PAFLinearCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27804) -PAFLinearCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33707) -PAFLinearCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95437) +PAFLinearCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33733) +PAFLinearCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95498) PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756) PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10798) PAFLinearCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18602) PAFLinearCurveEnumerableERC20Test:testFail_withdraw() (gas: 26455) -PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244953) +PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244969) PAFLinearCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFLinearCurveEnumerableERC20Test:test_callMint721() (gas: 173667) +PAFLinearCurveEnumerableERC20Test:test_callMint721() (gas: 173650) PAFLinearCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651) PAFLinearCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12142) PAFLinearCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28856) PAFLinearCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52311) -PAFLinearCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55539) -PAFLinearCurveEnumerableERC20Test:test_rescueTokens() (gas: 161961) +PAFLinearCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55473) +PAFLinearCurveEnumerableERC20Test:test_rescueTokens() (gas: 161982) PAFLinearCurveEnumerableERC20Test:test_transferCallback() (gas: 43243) PAFLinearCurveEnumerableERC20Test:test_transferOwnership() (gas: 16077) PAFLinearCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48502) -PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 26847) -PAFLinearCurveEnumerableERC20Test:test_withdraw1155() (gas: 61665) -PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 268338) -PAFLinearCurveEnumerableETHTest:testFail_callMint721() (gas: 19267) +PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 26856) +PAFLinearCurveEnumerableERC20Test:test_withdraw1155() (gas: 61671) +PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 268433) +PAFLinearCurveEnumerableETHTest:testFail_callMint721() (gas: 19245) PAFLinearCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10732) PAFLinearCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18597) PAFLinearCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751) PAFLinearCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18670) PAFLinearCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18597) -PAFLinearCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22643) +PAFLinearCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22574) PAFLinearCurveEnumerableETHTest:testFail_reInitPool() (gas: 11084) PAFLinearCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27820) -PAFLinearCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40404) -PAFLinearCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65516) +PAFLinearCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40430) +PAFLinearCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65553) PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775) PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10795) PAFLinearCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18640) PAFLinearCurveEnumerableETHTest:testFail_withdraw() (gas: 18516) -PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181916) +PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181932) PAFLinearCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFLinearCurveEnumerableETHTest:test_callMint721() (gas: 173664) +PAFLinearCurveEnumerableETHTest:test_callMint721() (gas: 173647) PAFLinearCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651) PAFLinearCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12142) PAFLinearCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28853) PAFLinearCurveEnumerableETHTest:test_modifyPairParams() (gas: 52282) -PAFLinearCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55518) -PAFLinearCurveEnumerableETHTest:test_rescueTokens() (gas: 161843) +PAFLinearCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55452) +PAFLinearCurveEnumerableETHTest:test_rescueTokens() (gas: 161864) PAFLinearCurveEnumerableETHTest:test_transferCallback() (gas: 43262) PAFLinearCurveEnumerableETHTest:test_transferOwnership() (gas: 16071) PAFLinearCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41065) PAFLinearCurveEnumerableETHTest:test_withdraw() (gas: 18982) -PAFLinearCurveEnumerableETHTest:test_withdraw1155() (gas: 61558) -PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 262258) -PAFLinearCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19270) +PAFLinearCurveEnumerableETHTest:test_withdraw1155() (gas: 61564) +PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 262320) +PAFLinearCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19248) PAFLinearCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10713) PAFLinearCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18581) PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754) PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18654) PAFLinearCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18581) -PAFLinearCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22630) +PAFLinearCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22561) PAFLinearCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11087) PAFLinearCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27804) -PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33698) -PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95530) +PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33724) +PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95591) PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756) PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10798) PAFLinearCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18602) PAFLinearCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26455) -PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 245056) +PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 245072) PAFLinearCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFLinearCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99256) +PAFLinearCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99239) PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651) PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12142) PAFLinearCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23451) PAFLinearCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52311) -PAFLinearCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55539) -PAFLinearCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 113040) +PAFLinearCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55473) +PAFLinearCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 113069) PAFLinearCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43243) PAFLinearCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16077) PAFLinearCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48473) -PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26847) -PAFLinearCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61665) -PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198148) -PAFLinearCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19267) +PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26856) +PAFLinearCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61671) +PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198259) +PAFLinearCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19245) PAFLinearCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10732) PAFLinearCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18597) PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751) PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18670) PAFLinearCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18597) -PAFLinearCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22643) +PAFLinearCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22574) PAFLinearCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11084) PAFLinearCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27820) -PAFLinearCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40395) -PAFLinearCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65609) +PAFLinearCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40421) +PAFLinearCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65646) PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775) PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10795) PAFLinearCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18640) PAFLinearCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18516) -PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182019) +PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182035) PAFLinearCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFLinearCurveMissingEnumerableETHTest:test_callMint721() (gas: 99253) +PAFLinearCurveMissingEnumerableETHTest:test_callMint721() (gas: 99236) PAFLinearCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651) PAFLinearCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12142) PAFLinearCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23448) PAFLinearCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52282) -PAFLinearCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55518) -PAFLinearCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112945) +PAFLinearCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55452) +PAFLinearCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112975) PAFLinearCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43262) PAFLinearCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16071) PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 41036) PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 18982) -PAFLinearCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61558) -PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192068) -PAFXykCurveEnumerableERC20Test:testFail_callMint721() (gas: 19270) +PAFLinearCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61564) +PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192146) +PAFXykCurveEnumerableERC20Test:testFail_callMint721() (gas: 19248) PAFXykCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10713) PAFXykCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18581) PAFXykCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754) PAFXykCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18654) PAFXykCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18581) -PAFXykCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22630) +PAFXykCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22561) PAFXykCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11087) PAFXykCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27804) -PAFXykCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33271) -PAFXykCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63341) +PAFXykCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33311) +PAFXykCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63422) PAFXykCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756) PAFXykCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10798) PAFXykCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18602) PAFXykCurveEnumerableERC20Test:testFail_withdraw() (gas: 26455) -PAFXykCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244953) +PAFXykCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244969) PAFXykCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFXykCurveEnumerableERC20Test:test_callMint721() (gas: 173667) +PAFXykCurveEnumerableERC20Test:test_callMint721() (gas: 173650) PAFXykCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651) PAFXykCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12142) PAFXykCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28856) PAFXykCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52311) -PAFXykCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55539) -PAFXykCurveEnumerableERC20Test:test_rescueTokens() (gas: 161961) +PAFXykCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55473) +PAFXykCurveEnumerableERC20Test:test_rescueTokens() (gas: 161982) PAFXykCurveEnumerableERC20Test:test_transferCallback() (gas: 43243) PAFXykCurveEnumerableERC20Test:test_transferOwnership() (gas: 16077) PAFXykCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48502) -PAFXykCurveEnumerableERC20Test:test_withdraw() (gas: 26847) -PAFXykCurveEnumerableERC20Test:test_withdraw1155() (gas: 61665) -PAFXykCurveEnumerableERC20Test:test_withdrawFees() (gas: 244861) -PAFXykCurveEnumerableETHTest:testFail_callMint721() (gas: 19267) +PAFXykCurveEnumerableERC20Test:test_withdraw() (gas: 26856) +PAFXykCurveEnumerableERC20Test:test_withdraw1155() (gas: 61671) +PAFXykCurveEnumerableERC20Test:test_withdrawFees() (gas: 244976) +PAFXykCurveEnumerableETHTest:testFail_callMint721() (gas: 19245) PAFXykCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10732) PAFXykCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18597) PAFXykCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751) PAFXykCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18670) PAFXykCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18597) -PAFXykCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22643) +PAFXykCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22574) PAFXykCurveEnumerableETHTest:testFail_reInitPool() (gas: 11084) PAFXykCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27820) -PAFXykCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 39968) -PAFXykCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57694) +PAFXykCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40008) +PAFXykCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57759) PAFXykCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775) PAFXykCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10795) PAFXykCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18640) PAFXykCurveEnumerableETHTest:testFail_withdraw() (gas: 18516) -PAFXykCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181916) +PAFXykCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181932) PAFXykCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFXykCurveEnumerableETHTest:test_callMint721() (gas: 173664) +PAFXykCurveEnumerableETHTest:test_callMint721() (gas: 173647) PAFXykCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651) PAFXykCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12142) PAFXykCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28853) PAFXykCurveEnumerableETHTest:test_modifyPairParams() (gas: 52282) -PAFXykCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55518) -PAFXykCurveEnumerableETHTest:test_rescueTokens() (gas: 161843) +PAFXykCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55452) +PAFXykCurveEnumerableETHTest:test_rescueTokens() (gas: 161864) PAFXykCurveEnumerableETHTest:test_transferCallback() (gas: 43262) PAFXykCurveEnumerableETHTest:test_transferOwnership() (gas: 16071) PAFXykCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41065) PAFXykCurveEnumerableETHTest:test_withdraw() (gas: 18982) -PAFXykCurveEnumerableETHTest:test_withdraw1155() (gas: 61558) -PAFXykCurveEnumerableETHTest:test_withdrawFees() (gas: 223755) -PAFXykCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19270) +PAFXykCurveEnumerableETHTest:test_withdraw1155() (gas: 61564) +PAFXykCurveEnumerableETHTest:test_withdrawFees() (gas: 223845) +PAFXykCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19248) PAFXykCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10713) PAFXykCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18581) PAFXykCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10754) PAFXykCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18654) PAFXykCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18581) -PAFXykCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22630) +PAFXykCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22561) PAFXykCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11087) PAFXykCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27804) -PAFXykCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33262) -PAFXykCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63434) +PAFXykCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33302) +PAFXykCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63515) PAFXykCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756) PAFXykCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10798) PAFXykCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18602) PAFXykCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26455) -PAFXykCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 245056) +PAFXykCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 245072) PAFXykCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFXykCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99256) +PAFXykCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99239) PAFXykCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14651) PAFXykCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12142) PAFXykCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23451) PAFXykCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52311) -PAFXykCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55539) -PAFXykCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 113040) +PAFXykCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55473) +PAFXykCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 113069) PAFXykCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43243) PAFXykCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16077) PAFXykCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48473) -PAFXykCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26847) -PAFXykCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61665) -PAFXykCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 174671) -PAFXykCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19267) +PAFXykCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26856) +PAFXykCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61671) +PAFXykCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 174802) +PAFXykCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19245) PAFXykCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10732) PAFXykCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18597) PAFXykCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10751) PAFXykCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18670) PAFXykCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18597) -PAFXykCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22643) +PAFXykCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22574) PAFXykCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11084) PAFXykCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27820) -PAFXykCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 39959) -PAFXykCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57787) +PAFXykCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 39999) +PAFXykCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57852) PAFXykCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775) PAFXykCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10795) PAFXykCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18640) PAFXykCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18516) -PAFXykCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182019) +PAFXykCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182035) PAFXykCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFXykCurveMissingEnumerableETHTest:test_callMint721() (gas: 99253) +PAFXykCurveMissingEnumerableETHTest:test_callMint721() (gas: 99236) PAFXykCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14651) PAFXykCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12142) PAFXykCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23448) PAFXykCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52282) -PAFXykCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55518) -PAFXykCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112945) +PAFXykCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55452) +PAFXykCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112975) PAFXykCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43262) PAFXykCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16071) PAFXykCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 41036) PAFXykCurveMissingEnumerableETHTest:test_withdraw() (gas: 18982) -PAFXykCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61558) -PAFXykCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 153565) -RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 538309) -RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 644134) -RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 635794) -RMPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 540619) -RMPExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 615775) -RMPExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 609570) -RMPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 629016) -RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 413808) -RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 414952) -RMPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 631326) -RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 390409) -RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 393285) -RMPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 517489) -RMPLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 624264) -RMPLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 615924) -RMPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 519799) -RMPLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 595900) -RMPLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 589695) -RMPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 608196) -RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 397912) -RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 399056) -RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 610506) -RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 374509) -RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 377385) -RMPWRExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 665589) -RMPWRExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 742016) -RMPWRExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 732992) -RMPWRExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 697826) -RMPWRExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 726536) -RMPWRExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 718610) -RMPWRExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 756371) -RMPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 510483) -RMPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 511229) -RMPWRExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 788608) -RMPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 494113) -RMPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 495987) -RMPWRLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 646883) -RMPWRLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 722146) -RMPWRLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 713122) -RMPWRLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 677006) -RMPWRLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 706661) -RMPWRLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 698735) -RMPWRLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 735551) -RMPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 490613) -RMPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 491359) -RMPWRLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 767788) -RMPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 474238) -RMPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 476112) -RMPWRXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 690434) -RMPWRXykCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 742991) -RMPWRXykCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 733967) -RMPWRXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 698671) -RMPWRXykCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 725326) -RMPWRXykCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 717400) -RMPWRXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 781216) -RMPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 511458) -RMPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 512204) -RMPWRXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 789453) -RMPWRXykCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 492903) -RMPWRXykCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 494777) -RMPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 563154) -RMPXykCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 645109) -RMPXykCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 636769) -RMPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 541464) -RMPXykCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 614565) -RMPXykCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 608360) -RMPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 653861) -RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 414588) -RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 415732) -RMPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 632171) -RMPXykCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 389441) -RMPXykCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 392317) -RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 429176) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 396538) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 267720) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 445998) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 384508) -RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 403163) -RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 372968) -RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 240051) -RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 418397) -RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 356884) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 462334) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 405398) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 284255) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 342188) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 278640) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 436321) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 381656) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 256586) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 314243) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 250660) -RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 418663) -RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 390649) -RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 262280) -RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 444094) -RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 382604) -RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 392650) -RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 367079) -RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 234611) -RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 416493) -RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 354980) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 451821) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 399509) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 278815) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 340284) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 276736) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 425808) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 375767) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 251146) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 312339) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 248756) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 169812) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195682) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196984) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 166127) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 203263) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 204504) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 135513) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 149378) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 152634) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131828) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156781) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159982) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 165456) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 191706) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 193008) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 161771) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 199287) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 200528) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 131157) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 145402) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 148658) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 127472) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 152805) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 156006) -RRSWARXykCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 173881) -RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195003) -RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196305) -RRSWARXykCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 165396) -RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 202584) -RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 203825) -RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 139582) -RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 148699) -RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 151955) -RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131097) -RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156102) -RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159303) -RRSWRExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 506756) -RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 462191) -RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 328229) -RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 511410) -RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 450296) -RRSWRExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 493251) -RRSWRExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 447136) -RRSWRExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 307138) -RRSWRExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 490244) -RRSWRExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 429320) -RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 539959) -RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 471081) -RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 344794) -RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 407645) -RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 344473) -RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 526454) -RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 455854) -RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 323703) -RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 386135) -RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 323141) -RRSWRLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 496243) -RRSWRLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 456302) -RRSWRLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 322789) -RRSWRLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 509506) -RRSWRLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 448392) -RRSWRLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 482738) -RRSWRLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 441247) -RRSWRLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 301698) -RRSWRLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 488340) -RRSWRLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 427416) -RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 529446) -RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 465192) -RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 339354) -RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 405741) -RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 342569) -RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 515941) -RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 449965) -RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 318263) -RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 384231) -RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 321237) -RRSWRXykCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 503847) -RRSWRXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 464014) -RRSWRXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 326414) -RRSWRXykCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 516536) -RRSWRXykCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 455422) -RRSWRXykCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 490342) -RRSWRXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 448959) -RRSWRXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 305323) -RRSWRXykCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 495370) -RRSWRXykCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 434446) -RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 537050) -RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 472904) -RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 342979) -RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 412771) -RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 349599) -RRSWRXykCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 523545) -RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 457677) -RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 321888) -RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 391261) -RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 328267) -RRSXykCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 426267) -RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 398361) -RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 265905) -RRSXykCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 451124) -RRSXykCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 389634) -RRSXykCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 400254) -RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 374791) -RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 238236) -RRSXykCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 423523) -RRSXykCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 362010) -RRSXykCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 459425) -RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 407221) -RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 282440) -RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 347314) -RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 283766) -RRSXykCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 433412) -RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 383479) -RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 254771) -RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 319369) -RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 255786) -RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189353) -RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38089) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49954) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48757) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44862) -RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 525884) -RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 416274) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 198136) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 209712) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 177011) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 161784) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182547) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353583) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411287) -RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161659) -RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38040) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76501) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58429) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60300) -RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 523414) -RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 389008) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 193164) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 203943) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149317) -RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140331) -RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161508) -RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 332578) -RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 390745) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178178) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38089) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49857) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48748) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44862) -RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 548009) -RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 438423) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 171352) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 198281) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175436) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137380) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 147991) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215146) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267623) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150484) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38040) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76404) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58429) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60300) -RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 545539) -RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 411157) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 166239) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 192340) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 147742) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115749) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126780) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 193964) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 246909) -RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 185189) -RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37993) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49223) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48755) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44860) -RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 516264) -RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411212) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 194880) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 204942) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 172847) -RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 157810) -RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178573) -RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348711) -RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406415) -RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 157495) -RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37944) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75039) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58427) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60298) -RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 513794) -RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 383946) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 189908) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 200326) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 145153) -RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 136356) -RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 157533) -RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 327256) -RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 385423) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 174014) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37993) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49126) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48746) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44860) -RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 538389) -RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 433361) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 168097) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 191412) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 171272) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133406) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144017) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210274) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 262751) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 146320) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37944) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74942) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58427) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60298) -RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 535919) -RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 406095) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 162983) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 188270) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143578) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 111774) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 122805) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 188642) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 241587) -RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411844) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 252824) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 251075) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 191840) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201680) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162113) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210781) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182986) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231612) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353917) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411554) -RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 403843) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 266967) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 265673) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183399) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171009) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168468) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202279) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189743) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223545) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 360720) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 418808) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 226447) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 216921) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 217126) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151439) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170225) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137709) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186377) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148430) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197056) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215480) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267890) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 218446) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 230886) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231552) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 142998) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139554) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143886) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177697) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 155015) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188817) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 222106) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 274972) -RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 406782) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 241982) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 240233) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 187676) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 197516) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 158139) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 206807) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 179012) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 227638) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 349045) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406682) -RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 398781) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 258924) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 257630) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 179235) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 166845) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 164493) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 198304) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 185768) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 219570) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 355398) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 413486) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 221385) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 206079) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 206284) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 147275) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 166061) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133735) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 182403) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144456) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 193082) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210608) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 263018) -RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 213384) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 222843) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 223509) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 138834) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 135390) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 139911) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 173722) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 151040) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 184842) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 216784) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 269650) -RSPWARXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411115) -RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253638) -RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 251889) -RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 192009) -RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201849) -RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162308) -RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210976) -RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 183181) -RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231807) -RSPWARXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353214) -RSPWARXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410851) -RSPWARXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 403114) -RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 267344) -RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 266050) -RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183568) -RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171178) -RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168226) -RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202037) -RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189501) -RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223303) -RSPWARXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 359131) -RSPWARXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 417219) -RSPWARXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 225718) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 217735) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 217940) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151608) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170394) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137904) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186572) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148625) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197251) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214777) -RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267187) -RSPWARXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 217717) -RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 231263) -RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231929) -RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143167) -RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139723) -RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143644) -RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177455) -RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154773) -RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188575) -RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 220517) -RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 273383) -RSPWRExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 261965) -RSPWRExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38239) -RSPWRExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 50254) -RSPWRExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 214062) -RSPWRExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 239656) -RSPWRExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 652767) -RSPWRExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 471997) -RSPWRExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 278293) -RSPWRExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 289891) -RSPWRExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 232750) -RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 210029) -RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 230736) -RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 401654) -RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 459274) -RSPWRExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 223831) -RSPWRExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38190) -RSPWRExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76656) -RSPWRExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 197585) -RSPWRExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 223403) -RSPWRExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 680225) -RSPWRExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 451225) -RSPWRExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 275917) -RSPWRExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 291588) -RSPWRExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 211544) -RSPWRExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 193224) -RSPWRExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 214147) -RSPWRExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 385286) -RSPWRExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 443199) -RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 250805) -RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38239) -RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 50157) -RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 194473) -RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 205115) -RSPWRExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 674967) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 494161) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 251534) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 278490) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 231190) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 185640) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 196195) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 263232) -RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 315625) -RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 212671) -RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38190) -RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76559) -RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 177818) -RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 188690) -RSPWRExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 702425) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 473389) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 244290) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 280015) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 209984) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168657) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 179434) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 246687) -RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 299378) -RSPWRLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 257801) -RSPWRLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38143) -RSPWRLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49523) -RSPWRLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 210088) -RSPWRLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 235682) -RSPWRLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 643147) -RSPWRLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 466935) -RSPWRLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 274960) -RSPWRLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 284928) -RSPWRLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 228586) -RSPWRLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 206055) -RSPWRLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 226762) -RSPWRLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 396782) -RSPWRLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 454402) -RSPWRLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 219667) -RSPWRLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38094) -RSPWRLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75194) -RSPWRLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 193610) -RSPWRLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 219428) -RSPWRLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 670605) -RSPWRLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 446163) -RSPWRLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 271750) -RSPWRLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 287421) -RSPWRLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 207380) -RSPWRLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 189249) -RSPWRLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 210172) -RSPWRLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 379964) -RSPWRLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 437877) -RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 246641) -RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38143) -RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49426) -RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 190499) -RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 201141) -RSPWRLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 665347) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 489099) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 248201) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 271524) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 227026) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 181666) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 192221) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 258360) -RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 310753) -RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 208507) -RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38094) -RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75097) -RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 173843) -RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 184715) -RSPWRLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 692805) -RSPWRLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 468327) -RSPWRLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 240123) -RSPWRLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 275848) -RSPWRLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 205820) -RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 164682) -RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 175459) -RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 241365) -RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 294056) -RSPWRXykCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 262134) -RSPWRXykCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37789) -RSPWRXykCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 48368) -RSPWRXykCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 214257) -RSPWRXykCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 239851) -RSPWRXykCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 653612) -RSPWRXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 471268) -RSPWRXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 279522) -RSPWRXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 289489) -RSPWRXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 232919) -RSPWRXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 210224) -RSPWRXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 230931) -RSPWRXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 400951) -RSPWRXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 458571) -RSPWRXykCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 224000) -RSPWRXykCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37740) -RSPWRXykCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 58320) -RSPWRXykCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 197343) -RSPWRXykCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 223161) -RSPWRXykCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 681070) -RSPWRXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 450496) -RSPWRXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 274216) -RSPWRXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 289887) -RSPWRXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 211713) -RSPWRXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 192982) -RSPWRXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 213905) -RSPWRXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 383697) -RSPWRXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 441610) -RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 250974) -RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37789) -RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 48271) -RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 194668) -RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 205310) -RSPWRXykCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 675812) -RSPWRXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 493432) -RSPWRXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 252763) -RSPWRXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 274426) -RSPWRXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 231359) -RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 185835) -RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 196390) -RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 262529) -RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 314922) -RSPWRXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 212840) -RSPWRXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37740) -RSPWRXykCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 58232) -RSPWRXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 177576) -RSPWRXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 188448) -RSPWRXykCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 703270) -RSPWRXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 472660) -RSPWRXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 242589) -RSPWRXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 278314) -RSPWRXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 210153) -RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168415) -RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 179192) -RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 245098) -RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 297789) -RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189522) -RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37639) -RSPXykCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 48068) -RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 47883) -RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 43988) -RSPXykCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 526729) -RSPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 415545) -RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 200074) -RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 210136) -RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 177180) -RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 161979) -RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182742) -RSPXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 352880) -RSPXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410584) -RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161828) -RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37590) -RSPXykCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 58063) -RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57555) -RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59426) -RSPXykCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 524259) -RSPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 388279) -RSPXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 194753) -RSPXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 205171) -RSPXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149486) -RSPXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140089) -RSPXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161266) -RSPXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 330989) -RSPXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 389156) -RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178347) -RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37639) -RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 47971) -RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 47874) -RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 43988) -RSPXykCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 548854) -RSPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 437694) -RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 173291) -RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 195104) -RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175605) -RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137575) -RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148186) -RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214443) -RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 266920) -RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150653) -RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37590) -RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 57975) -RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57555) -RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59426) -RSPXykCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 546384) -RSPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 410428) -RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 167828) -RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 191526) -RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 147911) -RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115507) -RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126538) -RSPXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 192375) -RSPXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 245320) +PAFXykCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61564) +PAFXykCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 153671) +RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 538834) +RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 644787) +RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 636336) +RMPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 541054) +RMPExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 616358) +RMPExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 610042) +RMPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 629691) +RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 414363) +RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 415418) +RMPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 631911) +RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 390908) +RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 393695) +RMPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 517974) +RMPLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 624817) +RMPLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 616366) +RMPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 520194) +RMPLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 596333) +RMPLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 590017) +RMPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 608831) +RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 398387) +RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 399442) +RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 611051) +RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 374888) +RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 377675) +RMPWRExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 666302) +RMPWRExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 742774) +RMPWRExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 733642) +RMPWRExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 698351) +RMPWRExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 727184) +RMPWRExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 719182) +RMPWRExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 757234) +RMPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 511281) +RMPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 511919) +RMPWRExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 789283) +RMPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 494801) +RMPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 496599) +RMPWRLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 647421) +RMPWRLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 722804) +RMPWRLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 713672) +RMPWRLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 677491) +RMPWRLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 707159) +RMPWRLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 699157) +RMPWRLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 736374) +RMPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 491311) +RMPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 491949) +RMPWRLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 768423) +RMPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 474776) +RMPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 476574) +RMPWRXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 691157) +RMPWRXykCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 743789) +RMPWRXykCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 734657) +RMPWRXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 699206) +RMPWRXykCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 726034) +RMPWRXykCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 718032) +RMPWRXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 782089) +RMPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 512296) +RMPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 512934) +RMPWRXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 790138) +RMPWRXykCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 493651) +RMPWRXykCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 495449) +RMPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 563689) +RMPXykCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 645802) +RMPXykCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 637351) +RMPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 541909) +RMPXykCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 615208) +RMPXykCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 608892) +RMPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 654546) +RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 415175) +RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 416230) +RMPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 632766) +RMPXykCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 389988) +RMPXykCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 392775) +RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 429486) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 396782) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 267895) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 446275) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 384844) +RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 403429) +RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 373145) +RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 240200) +RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 418586) +RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 357140) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 462764) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 405718) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 284490) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 342497) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 279008) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 436707) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 381909) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 256795) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 314464) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 250948) +RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 418945) +RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 390851) +RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 262439) +RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 444301) +RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 382870) +RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 392888) +RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 367214) +RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 234744) +RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 416612) +RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 355166) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 452223) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 399787) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 279034) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 340523) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 277034) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 426166) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 375978) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 251339) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 312490) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 248974) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 169963) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195853) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 197113) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 166269) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 203402) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 204601) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 135694) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 149557) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 152771) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 132000) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156928) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 160087) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 165591) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 191837) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 193097) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 161897) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 199386) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 200585) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 131322) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 145541) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 148755) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 127628) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 152912) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 156071) +RRSWARXykCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 174036) +RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195190) +RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196450) +RRSWARXykCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 165542) +RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 202739) +RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 203938) +RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 139767) +RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 148894) +RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 152108) +RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131273) +RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156265) +RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159424) +RRSWRExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 507171) +RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 462500) +RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 328451) +RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 511744) +RRSWRExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 450694) +RRSWRExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 493569) +RRSWRExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 447355) +RRSWRExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 307299) +RRSWRExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 490457) +RRSWRExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 429622) +RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 540494) +RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 471466) +RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 345076) +RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 408011) +RRSWRExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 344903) +RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 526892) +RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 456149) +RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 323924) +RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 386380) +RRSWRExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 323475) +RRSWRLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 496630) +RRSWRLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 456569) +RRSWRLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 322995) +RRSWRLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 509770) +RRSWRLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 448720) +RRSWRLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 483028) +RRSWRLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 441424) +RRSWRLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 301843) +RRSWRLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 488483) +RRSWRLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 427648) +RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 529953) +RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 465535) +RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 339620) +RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 406037) +RRSWRLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 342929) +RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 516351) +RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 450218) +RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 318468) +RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 384406) +RRSWRLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 321501) +RRSWRXykCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 504269) +RRSWRXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 464338) +RRSWRXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 326640) +RRSWRXykCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 516898) +RRSWRXykCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 455848) +RRSWRXykCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 490667) +RRSWRXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 449193) +RRSWRXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 305488) +RRSWRXykCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 495611) +RRSWRXykCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 434776) +RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 537592) +RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 473304) +RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 343265) +RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 413165) +RRSWRXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 350057) +RRSWRXykCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 523990) +RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 457987) +RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 322113) +RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 391534) +RRSWRXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 328629) +RRSXykCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 426584) +RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 398620) +RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 266084) +RRSXykCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 451429) +RRSXykCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 389998) +RRSXykCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 400527) +RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 374983) +RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 238389) +RRSXykCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 423740) +RRSXykCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 362294) +RRSXykCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 459862) +RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 407556) +RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 282679) +RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 347651) +RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 284162) +RRSXykCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 433805) +RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 383747) +RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 254984) +RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 319618) +RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 256102) +RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189444) +RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38114) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 50000) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48817) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44898) +RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 526314) +RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 416437) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 198256) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 209834) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 177097) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 161898) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182629) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353729) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411401) +RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161732) +RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38065) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76573) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58489) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60336) +RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 523754) +RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 389153) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 193262) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 204033) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149385) +RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140431) +RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161576) +RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 332710) +RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 390845) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178299) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38114) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49903) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48808) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44898) +RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 548589) +RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 438736) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 171504) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 198441) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175552) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137502) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148081) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215332) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267777) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150587) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38065) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76476) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58489) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60336) +RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 546029) +RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 411452) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 166367) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 192468) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 147840) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115857) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126856) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 194136) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 247049) +RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 185272) +RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38014) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49259) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48795) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44876) +RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 516654) +RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411367) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 194990) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 205028) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 172925) +RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 157904) +RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178635) +RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348837) +RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406509) +RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 157560) +RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37965) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75091) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58467) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60314) +RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 514094) +RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 384083) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 189987) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 200379) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 145213) +RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 136426) +RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 157571) +RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 327358) +RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 385493) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 174127) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38014) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49162) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48786) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44876) +RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 538929) +RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 433666) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 168237) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 191558) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 171380) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133508) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144087) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210440) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 262885) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 146415) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37965) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74994) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58467) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60314) +RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 536369) +RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 406382) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 163092) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 188374) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143668) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 111852) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 122851) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 188784) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 241697) +RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 412075) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253020) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 251256) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 191938) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201787) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162227) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210900) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 183082) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231713) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 354063) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411682) +RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 404066) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 267138) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 265813) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183489) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171099) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168576) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202392) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189820) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223627) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 360860) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 418917) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 226828) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 217155) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 217345) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151567) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170362) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137831) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186504) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148534) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197165) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215666) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 268058) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 218819) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 231095) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231730) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143118) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139674) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 144002) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177818) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 155100) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188907) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 222286) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 275121) +RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 407005) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 242154) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 240390) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 187766) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 197615) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 158233) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 206906) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 179088) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 227719) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 349171) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406790) +RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 398996) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 259061) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 257736) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 179317) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 166927) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 164571) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 198387) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 185815) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 219622) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 355508) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 413565) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 221758) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 206289) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 206479) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 147395) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 166190) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133837) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 182510) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144540) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 193171) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210774) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 263166) +RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 213749) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 223018) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 223653) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 138946) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 135502) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 139997) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 173813) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 151095) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 184902) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 216934) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 269769) +RSPWARXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411348) +RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253843) +RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 252079) +RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 192109) +RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201958) +RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162430) +RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 211103) +RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 183285) +RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231916) +RSPWARXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353368) +RSPWARXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410987) +RSPWARXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 403339) +RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 267528) +RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 266203) +RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183660) +RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171270) +RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168346) +RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202162) +RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189590) +RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223397) +RSPWARXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 359283) +RSPWARXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 417340) +RSPWARXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 226101) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 217978) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 218168) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151738) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170533) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 138034) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186707) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148737) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197368) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214971) +RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267363) +RSPWARXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 218092) +RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 231485) +RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 232120) +RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143289) +RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139845) +RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143772) +RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177588) +RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154870) +RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188677) +RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 220709) +RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 273544) +RSPWRExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 262091) +RSPWRExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38271) +RSPWRExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 50304) +RSPWRExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 214198) +RSPWRExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 239763) +RSPWRExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 653397) +RSPWRExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 472192) +RSPWRExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 278501) +RSPWRExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 290122) +RSPWRExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 232871) +RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 210159) +RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 230837) +RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 401816) +RSPWRExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 459404) +RSPWRExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 223928) +RSPWRExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38229) +RSPWRExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76732) +RSPWRExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 197688) +RSPWRExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 223476) +RSPWRExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 680710) +RSPWRExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 451391) +RSPWRExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 276118) +RSPWRExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 291756) +RSPWRExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 211636) +RSPWRExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 193332) +RSPWRExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 214222) +RSPWRExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 385426) +RSPWRExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 443306) +RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 250961) +RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38271) +RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 50207) +RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 194617) +RSPWRExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 205230) +RSPWRExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 675747) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 494506) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 251772) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 278759) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 231341) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 185778) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 196304) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 263434) +RSPWRExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 315795) +RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 212798) +RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38229) +RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76635) +RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 177929) +RSPWRExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 188771) +RSPWRExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 703060) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 473705) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 244529) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 280221) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 210106) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168773) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 179517) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 246867) +RSPWRExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 299525) +RSPWRLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 257919) +RSPWRLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38171) +RSPWRLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49563) +RSPWRLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 210204) +RSPWRLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 235769) +RSPWRLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 643737) +RSPWRLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 467122) +RSPWRLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 275146) +RSPWRLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 285090) +RSPWRLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 228699) +RSPWRLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 206165) +RSPWRLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 226843) +RSPWRLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 396924) +RSPWRLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 454512) +RSPWRLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 219756) +RSPWRLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38129) +RSPWRLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75250) +RSPWRLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 193683) +RSPWRLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 219471) +RSPWRLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 671050) +RSPWRLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 446321) +RSPWRLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 271913) +RSPWRLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 287551) +RSPWRLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 207464) +RSPWRLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 189327) +RSPWRLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 210217) +RSPWRLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 380074) +RSPWRLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 437954) +RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 246789) +RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38171) +RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49466) +RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 190623) +RSPWRLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 201236) +RSPWRLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 666087) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 489436) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 248417) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 271765) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 227169) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 181784) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 192310) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 258542) +RSPWRLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 310903) +RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 208626) +RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38129) +RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 75153) +RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 173924) +RSPWRLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 184766) +RSPWRLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 693400) +RSPWRLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 468635) +RSPWRLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 240324) +RSPWRLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 276016) +RSPWRLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 205934) +RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 164768) +RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 175512) +RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 241515) +RSPWRLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 294173) +RSPWRXykCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 262262) +RSPWRXykCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37822) +RSPWRXykCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 48392) +RSPWRXykCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 214401) +RSPWRXykCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 239966) +RSPWRXykCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 654252) +RSPWRXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 471465) +RSPWRXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 279738) +RSPWRXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 289682) +RSPWRXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 233042) +RSPWRXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 210362) +RSPWRXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 231040) +RSPWRXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 401121) +RSPWRXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 458709) +RSPWRXykCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 224099) +RSPWRXykCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37780) +RSPWRXykCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 58344) +RSPWRXykCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 197458) +RSPWRXykCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 223246) +RSPWRXykCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 681565) +RSPWRXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 450664) +RSPWRXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 274431) +RSPWRXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 290069) +RSPWRXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 211807) +RSPWRXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 193102) +RSPWRXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 213992) +RSPWRXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 383849) +RSPWRXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 441729) +RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 251132) +RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37822) +RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 48295) +RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 194820) +RSPWRXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 205433) +RSPWRXykCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 676602) +RSPWRXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 493779) +RSPWRXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253009) +RSPWRXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 274705) +RSPWRXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 231512) +RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 185981) +RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 196507) +RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 262739) +RSPWRXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 315100) +RSPWRXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 212969) +RSPWRXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37780) +RSPWRXykCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 58256) +RSPWRXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 177699) +RSPWRXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 188541) +RSPWRXykCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 703915) +RSPWRXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 472978) +RSPWRXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 242842) +RSPWRXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 278534) +RSPWRXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 210277) +RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168543) +RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 179287) +RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 245290) +RSPWRXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 297948) +RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189615) +RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37665) +RSPXykCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 48088) +RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 47951) +RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44032) +RSPXykCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 527169) +RSPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 415710) +RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 200199) +RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 210237) +RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 177268) +RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162101) +RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182832) +RSPXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353034) +RSPXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410706) +RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161903) +RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37616) +RSPXykCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 58083) +RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57623) +RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59470) +RSPXykCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 524609) +RSPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 388426) +RSPXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 194858) +RSPXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 205250) +RSPXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149556) +RSPXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140201) +RSPXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161346) +RSPXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 331133) +RSPXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 389268) +RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178470) +RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37665) +RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 47991) +RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 47942) +RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44032) +RSPXykCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 549444) +RSPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 438009) +RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 173446) +RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 195269) +RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175723) +RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137705) +RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148284) +RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214637) +RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267082) +RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150758) +RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37616) +RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 57995) +RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57623) +RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59470) +RSPXykCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 546884) +RSPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 410725) +RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 167963) +RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 191663) +RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 148011) +RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115627) +RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126626) +RSPXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 192559) +RSPXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 245472) diff --git a/src/MultiRouter.sol b/src/MultiRouter.sol index d6f819b..5dae030 100644 --- a/src/MultiRouter.sol +++ b/src/MultiRouter.sol @@ -26,6 +26,13 @@ contract MultiRouter { uint256[] nftIds; } + struct PairSwapSpecificPartialFill { + PairSwapSpecific swapInfo; + uint256 expectedSpotPrice; + uint256[] maxCostPerNumNFTs; + bool isETHSwap; + } + struct RobustPairSwapSpecificWithToken { PairSwapSpecific swapInfo; uint256 maxCost; @@ -42,6 +49,279 @@ contract MultiRouter { RobustPairSwapSpecificForToken[] nftToTokenTrades; } + struct RobustSwapTokensForSpecificNFTsAndPartialFill { + PairSwapSpecificPartialFill[] buyList; + uint256 maxItemsToBuy; + } + + /** + @dev Performs a log(n) search to find the largest value where maxPricesPerNumNFTs is still greater than + the pair's getBuyNFTQuote() value. Not a true binary search, as it's biased to underfill to reduce gas / complexity. + @param maxNumNFTs The maximum number of NFTs to fill / get a quote for + @param maxPricesPerNumNFTs The user's specified maximum price to pay for filling a number of NFTs + @dev Note that maxPricesPerNumNFTs is 0-indexed + */ + function _findMaxFillableAmtForBuy( + LSSVMPair pair, + uint256 maxNumNFTs, + uint256[] memory maxPricesPerNumNFTs + ) internal view returns (uint256 numNFTs, uint256 price) { + // Start and end indices + uint256 start = 0; + uint256 end = maxNumNFTs - 1; + while (start <= end) { + // Get price of mid number of items + uint256 mid = start + (end - start) / 2; + + (CurveErrorCodes.Error error, , , uint256 currentPrice, ) = pair + .getBuyNFTQuote(mid + 1); + + if (error != CurveErrorCodes.Error.OK) { + break; + } + + // If we pay at least the currentPrice with our maxPrice, record the value, and recurse on the right half + if (currentPrice <= maxPricesPerNumNFTs[mid]) { + // We have to add 1 because mid is indexing into maxPricesPerNumNFTs which is 0-indexed + numNFTs = mid + 1; + price = currentPrice; + start = mid + 1; + } + // Otherwise, if it's beyond our budget, recurse on the left half (to find smth cheaper) + else { + if (mid == 0) { + break; + } + end = mid - 1; + } + } + // At the end, we will return the last seen numNFTs and price + } + + /** + @dev Checks ownership of all desired NFT IDs to see which ones are still fillable + @param pair The pair to check + @param numNFTs The max number of NFTs to check + @param potentialIds The possible NFT IDs + */ + function _findAvailableIds( + LSSVMPair pair, + uint256 numNFTs, + uint256[] memory potentialIds + ) internal view returns (uint256[] memory idsToBuy) { + IERC721 nft = pair.nft(); + uint256[] memory ids = new uint256[](numNFTs); + uint256 index = 0; + // Check to see if each potential ID is still owned by the pair, up to numNFTs items + for (uint256 i; i < potentialIds.length; ) { + if (nft.ownerOf(potentialIds[i]) == address(pair)) { + ids[index] = potentialIds[i]; + unchecked { + ++index; + if (index == numNFTs) { + break; + } + } + } + unchecked { + ++i; + } + } + // Check to see if index is less than numNFTs. + // If so, then there are less fillable items then expected, and we just copy the first index items over + // This guarantees no empty spaces in the returned array + if (index < numNFTs) { + uint256[] memory idsSubset = new uint256[](index); + for (uint256 i; i < index; ) { + idsSubset[i] = ids[i]; + unchecked { + ++i; + } + } + return idsSubset; + } + return ids; + } + + /** + @dev Performs a batch of buys and sells, avoids performing swaps where the price is beyond + maxCostPerNumNFTs is 0-indexed, i.e. maxCostPerNumNFTs[0] is the max price to buy 1 NFT, and so on + */ + function robustSwapTokensForSpecificNFTsAndPartialFill( + RobustSwapTokensForSpecificNFTsAndPartialFill calldata buyParams + ) external payable returns (uint256 remainingValue) { + // High level logic: + // Go through each buy order + // Check to see if the quote to buy all items is fillable given the max price + // If it is, then send that amt over to buy + // If the quote is more expensive than expexted, then figure out the maximum amt to buy to be within maxCost + // Find a list of IDs still available + // Make the swap + // Send excess funds back to caller + + // Locally scope the buys + // Start with all of the ETH sent + remainingValue = msg.value; + uint256 numBuys = buyParams.buyList.length; + + // Variable to keep track of number of individual successful buys + // It's auto initialized to 0 + uint256 successfulBuyCount; + + // Try each buy swap + for (uint256 i; i < numBuys; ) { + LSSVMPair pair = buyParams.buyList[i].swapInfo.pair; + + uint256[] memory nftIdsToBuy = buyParams.buyList[i].swapInfo.nftIds; + uint256 numNFTs = buyParams.buyList[i].swapInfo.nftIds.length; + uint256 spotPrice = pair.spotPrice(); + + // If the spot price is at most the expected spot price, then it's likely nothing happened since the tx was submitted + // We go and optimistically attempt to fill each item using the user supplied max cost + if (spotPrice <= buyParams.buyList[i].expectedSpotPrice) { + // Check if buying numNFTs will exceed maxItemsToBuy or not + if (successfulBuyCount + numNFTs > buyParams.maxItemsToBuy) { + // If yes, then we need to reduce the number of buys to the desired amount + numNFTs = buyParams.maxItemsToBuy - successfulBuyCount; + nftIdsToBuy = buyParams + .buyList[i] + .swapInfo + .nftIds[0:numNFTs]; + } + + // We know how much ETH to send because we already did the math above + // So we just send that much + if (buyParams.buyList[i].isETHSwap) { + // Total ETH taken from sender cannot msg.value + // because otherwise the deduction from remainingValue will fail + remainingValue -= pair.swapTokenForSpecificNFTs{ + value: buyParams.buyList[i].maxCostPerNumNFTs[ + numNFTs - 1 + ] + }( + nftIdsToBuy, + buyParams.buyList[i].maxCostPerNumNFTs[numNFTs - 1], + msg.sender, + true, + msg.sender + ); + } + // Otherwise we send ERC20 tokens + else { + pair.swapTokenForSpecificNFTs( + nftIdsToBuy, + buyParams.buyList[i].maxCostPerNumNFTs[numNFTs - 1], + msg.sender, + true, + msg.sender + ); + } + + // Increment successfulBuyCount + successfulBuyCount = successfulBuyCount + numNFTs; + } + // If spot price is is greater, then potentially 1 or more items have already been bought + else { + // Go through all items to figure out which ones are still buyable + // We do a halving search on getBuyNFTQuote() from 1 to numNFTs + // The goal is to find *a* number (not necessarily the largest) where the quote is still within the user specified max cost + // Then, go through and find as many available items as possible (i.e. still owned by the pair) we can fill + ( + uint256 numItemsToFill, + uint256 priceToFillAt + ) = _findMaxFillableAmtForBuy( + pair, + numNFTs, + buyParams.buyList[i].maxCostPerNumNFTs + ); + + // If no items are fillable, then skip + if (numItemsToFill == 0) { + continue; + } else { + // Check if buying numItemsToFill will exceed maxItemsToBuy or not + if ( + successfulBuyCount + numItemsToFill > + buyParams.maxItemsToBuy + ) { + // If yes, then we need to reduce the number of buys to the desired amount + numItemsToFill = + buyParams.maxItemsToBuy - + successfulBuyCount; + } + + // Figure out which items are actually still buyable from the list + uint256[] memory fillableIds = _findAvailableIds( + pair, + numItemsToFill, + buyParams.buyList[i].swapInfo.nftIds + ); + + // If we can actually only fill less items... + if (fillableIds.length < numItemsToFill) { + numItemsToFill = fillableIds.length; + // If no IDs are fillable, then skip entirely + if (numItemsToFill == 0) { + continue; + } + + CurveErrorCodes.Error error; + + // Otherwise, adjust the max amt sent to be down + (error, , , priceToFillAt, ) = pair.getBuyNFTQuote( + numItemsToFill + ); + + if (error != CurveErrorCodes.Error.OK) { + continue; + } + } + + // We know how much ETH to send because we already did the math above + // So we just send that much + if (buyParams.buyList[i].isETHSwap) { + // Now, do the partial fill swap with the updated price and ids + remainingValue -= pair.swapTokenForSpecificNFTs{ + value: priceToFillAt + }( + fillableIds, + priceToFillAt, + msg.sender, + true, + msg.sender + ); + } else { + pair.swapTokenForSpecificNFTs( + fillableIds, + priceToFillAt, + msg.sender, + true, + msg.sender + ); + } + + // Increment successfulBuyCount + successfulBuyCount = successfulBuyCount + numNFTs; + } + } + + // Check if we have reached maxItemsToBuy + if (successfulBuyCount >= buyParams.maxItemsToBuy) { + // If yes, terminate the loop + break; + } + + unchecked { + ++i; + } + } + + // Return remaining value to sender + if (remainingValue > 0) { + payable(msg.sender).safeTransferETH(remainingValue); + } + } + /** @notice Buys NFTs with ETH and ERC20s and sells them for tokens in one transaction @param params All the parameters for the swap (packed in struct to avoid stack too deep), containing: @@ -149,17 +429,13 @@ contract MultiRouter { // If at least equal to our minOutput, proceed if (pairOutput >= params.nftToTokenTrades[i].minOutput) { // Do the swap - params - .nftToTokenTrades[i] - .swapInfo - .pair - .swapNFTsForToken( - params.nftToTokenTrades[i].swapInfo.nftIds, - 0, - payable(msg.sender), - true, - msg.sender - ); + params.nftToTokenTrades[i].swapInfo.pair.swapNFTsForToken( + params.nftToTokenTrades[i].swapInfo.nftIds, + 0, + payable(msg.sender), + true, + msg.sender + ); } unchecked {