From 301114b5168cec81d708905b9f32d9d0ad88db93 Mon Sep 17 00:00:00 2001 From: kadenzipfel Date: Wed, 1 Jun 2022 16:40:19 +0200 Subject: [PATCH 1/6] Use != 0 instead of > 0 for uint comparisons --- .gas-snapshot | 1068 +++++++++++++++++++++------------------- src/LSSVMPair.sol | 6 +- src/LSSVMPairERC20.sol | 8 +- src/LSSVMPairETH.sol | 10 +- src/LSSVMRouter.sol | 10 +- 5 files changed, 569 insertions(+), 533 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 17adca2..5814b3c 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,516 +1,552 @@ -ExponentialCurveTest:test_getBuyInfoExample() (gas: 9083) -ExponentialCurveTest:test_getSellInfoExample() (gas: 9016) -LinearCurveTest:test_getBuyInfoExample() (gas: 8622) -LinearCurveTest:test_getSellInfoExample() (gas: 8471) -PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10842) -PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18653) -PAFExponentialCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFExponentialCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFExponentialCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFExponentialCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFExponentialCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 34030) -PAFExponentialCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95624) -PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10754) -PAFExponentialCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFExponentialCurveEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244755) -PAFExponentialCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFExponentialCurveEnumerableERC20Test:test_callMint721() (gas: 173721) -PAFExponentialCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28877) -PAFExponentialCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52386) -PAFExponentialCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55509) -PAFExponentialCurveEnumerableERC20Test:test_rescueTokens() (gas: 161764) -PAFExponentialCurveEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFExponentialCurveEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFExponentialCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48504) -PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 268805) -PAFExponentialCurveEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFExponentialCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFExponentialCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFExponentialCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10817) -PAFExponentialCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18647) -PAFExponentialCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFExponentialCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFExponentialCurveEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFExponentialCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFExponentialCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40727) -PAFExponentialCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65768) -PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10729) -PAFExponentialCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFExponentialCurveEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181949) -PAFExponentialCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFExponentialCurveEnumerableETHTest:test_callMint721() (gas: 173718) -PAFExponentialCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28874) -PAFExponentialCurveEnumerableETHTest:test_modifyPairParams() (gas: 52313) -PAFExponentialCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55444) -PAFExponentialCurveEnumerableETHTest:test_rescueTokens() (gas: 161697) -PAFExponentialCurveEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFExponentialCurveEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFExponentialCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41003) -PAFExponentialCurveEnumerableETHTest:test_withdraw() (gas: 18936) -PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 262745) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10846) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18657) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 34021) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95717) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10758) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 244858) -PAFExponentialCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFExponentialCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99310) -PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23480) -PAFExponentialCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52390) -PAFExponentialCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55513) -PAFExponentialCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 112888) -PAFExponentialCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFExponentialCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFExponentialCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48475) -PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198631) -PAFExponentialCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10821) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18651) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFExponentialCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFExponentialCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFExponentialCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40718) -PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65861) -PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10733) -PAFExponentialCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFExponentialCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182052) -PAFExponentialCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFExponentialCurveMissingEnumerableETHTest:test_callMint721() (gas: 99307) -PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23477) -PAFExponentialCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52317) -PAFExponentialCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55448) -PAFExponentialCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112835) -PAFExponentialCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFExponentialCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFExponentialCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40974) -PAFExponentialCurveMissingEnumerableETHTest:test_withdraw() (gas: 18936) -PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192571) -PAFLinearCurveEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFLinearCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFLinearCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFLinearCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10842) -PAFLinearCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18653) -PAFLinearCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFLinearCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFLinearCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFLinearCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFLinearCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33748) -PAFLinearCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95341) -PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10754) -PAFLinearCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFLinearCurveEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244702) -PAFLinearCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFLinearCurveEnumerableERC20Test:test_callMint721() (gas: 173721) -PAFLinearCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28877) -PAFLinearCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52333) -PAFLinearCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55456) -PAFLinearCurveEnumerableERC20Test:test_rescueTokens() (gas: 161764) -PAFLinearCurveEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFLinearCurveEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFLinearCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48504) -PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 268261) -PAFLinearCurveEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFLinearCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFLinearCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFLinearCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10817) -PAFLinearCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18647) -PAFLinearCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFLinearCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFLinearCurveEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFLinearCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFLinearCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40445) -PAFLinearCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65485) -PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10729) -PAFLinearCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFLinearCurveEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181896) -PAFLinearCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFLinearCurveEnumerableETHTest:test_callMint721() (gas: 173718) -PAFLinearCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28874) -PAFLinearCurveEnumerableETHTest:test_modifyPairParams() (gas: 52260) -PAFLinearCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55391) -PAFLinearCurveEnumerableETHTest:test_rescueTokens() (gas: 161697) -PAFLinearCurveEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFLinearCurveEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFLinearCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41003) -PAFLinearCurveEnumerableETHTest:test_withdraw() (gas: 18936) -PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 262201) -PAFLinearCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10846) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18657) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFLinearCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFLinearCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFLinearCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33739) -PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95434) -PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10758) -PAFLinearCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFLinearCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 244805) -PAFLinearCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFLinearCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99310) -PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23480) -PAFLinearCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52337) -PAFLinearCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55460) -PAFLinearCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 112888) -PAFLinearCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFLinearCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFLinearCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48475) -PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198087) -PAFLinearCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10821) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18651) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFLinearCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFLinearCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFLinearCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFLinearCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40436) -PAFLinearCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65578) -PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10733) -PAFLinearCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFLinearCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 181999) -PAFLinearCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFLinearCurveMissingEnumerableETHTest:test_callMint721() (gas: 99307) -PAFLinearCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23477) -PAFLinearCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52264) -PAFLinearCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55395) -PAFLinearCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112835) -PAFLinearCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFLinearCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40974) -PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 18936) -PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192027) -RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 537855) -RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 643917) -RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 635043) -RMPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 540195) -RMPExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 615295) -RMPExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 608614) -RMPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 628612) -RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 413691) -RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 414392) -RMPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 630952) -RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 390057) -RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 392536) -RMPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 517035) -RMPLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 624047) -RMPLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 615173) -RMPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 519375) -RMPLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 595420) -RMPLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 588739) -RMPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 607792) -RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 397795) -RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 398496) -RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 610132) -RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 374157) -RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 376636) -RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 417454) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 261759) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 433569) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 372194) -RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 391455) -RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 234089) -RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 405958) -RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 344591) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 450652) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 278314) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 329787) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 266370) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 424653) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 250644) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 301820) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 238399) -RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 407675) -RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 256686) -RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 432209) -RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 370834) -RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 381676) -RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 229016) -RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 404598) -RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 343231) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 440873) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 273241) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 328427) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 265010) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 414874) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 245571) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 300460) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 237039) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 169728) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195512) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196607) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 166049) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 203109) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 204141) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 135432) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 149222) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 152267) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131753) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156635) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159623) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 165372) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 191536) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 192631) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 161693) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 199133) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 200165) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 131076) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 145246) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 148291) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 127397) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 152659) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 155647) -RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189243) -RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37997) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49862) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48659) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44719) -RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 498319) -RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 409942) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 198143) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 209525) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 171422) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 161584) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182435) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353472) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411108) -RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161555) -RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37948) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76380) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58305) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60149) -RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 495894) -RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 382709) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 193092) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 203672) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143737) -RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140096) -RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161355) -RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 332432) -RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 390525) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178078) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37997) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49765) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48650) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44719) -RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 520494) -RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 432141) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 171379) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 198114) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 169857) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137194) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 147889) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215081) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267470) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150390) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37948) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76283) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58305) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60149) -RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 518069) -RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 404908) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 166180) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 192083) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 142172) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115522) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126631) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 193858) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 246709) -RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 185079) -RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37901) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49131) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48657) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44717) -RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 489179) -RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 405425) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 194888) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 204792) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 167354) -RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 157610) -RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178461) -RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348600) -RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406236) -RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 157391) -RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37852) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74918) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58303) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60147) -RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 486754) -RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 378192) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 189836) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 200109) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 139669) -RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 136121) -RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 157380) -RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 327110) -RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 385203) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 173914) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37901) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49034) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48648) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44717) -RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 511354) -RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 427624) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 168124) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 191245) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 165789) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133220) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 143915) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210209) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 262598) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 146226) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37852) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74821) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58303) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60147) -RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 508929) -RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 400391) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 162924) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 188013) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 138104) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 111547) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 122656) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 188536) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 241387) -RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 405981) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 252733) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 251008) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 186488) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 196344) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162090) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210671) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182808) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231500) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353805) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411486) -RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 398021) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 266777) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 265524) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 178064) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 165690) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168410) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202134) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189525) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223393) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 360573) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 418700) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 220639) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 216847) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 217072) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 146130) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 164892) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137700) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186281) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148262) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 196954) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215414) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267848) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 212679) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 230707) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231410) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 137706) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 134238) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143836) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177560) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154801) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188669) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 221999) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 274884) -RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 401464) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 241891) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 240166) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 182420) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 192276) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 158116) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 206697) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178834) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 227526) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348933) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406614) -RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 393504) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 258734) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 257481) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 173996) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 161622) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 164435) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 198159) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 185550) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 219418) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 355251) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 413378) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 216122) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 206005) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 206230) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 142062) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 160824) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133726) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 182307) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144288) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 192980) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210542) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 262976) -RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 208162) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 222664) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 223367) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 133638) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 130170) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 139861) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 173585) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 150826) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 184694) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 216677) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 269562) +ExponentialCurveTest:test_getBuyInfoExample() (gas: 4589) +ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 805, ~: 523) +ExponentialCurveTest:test_getSellInfoExample() (gas: 4522) +ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1617, ~: 633) +LinearCurveTest:test_getBuyInfoExample() (gas: 4128) +LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3165, ~: 2891) +LinearCurveTest:test_getSellInfoExample() (gas: 3977) +LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3624, ~: 4168) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 653882, ~: 943) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646585, ~: 987) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 231792, ~: 943) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 229981, ~: 987) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646737, ~: 943) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 611723, ~: 987) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 224647, ~: 943) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 195119, ~: 987) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 651713, ~: 621) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644079, ~: 665) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 230195, ~: 621) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 227750, ~: 665) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644569, ~: 621) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 609217, ~: 665) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 223050, ~: 621) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 192888, ~: 665) +PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFExponentialCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFExponentialCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFExponentialCurveEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFExponentialCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFExponentialCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 7211) +PAFExponentialCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45551) +PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFExponentialCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFExponentialCurveEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 202661) +PAFExponentialCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFExponentialCurveEnumerableERC20Test:test_callMint721() (gas: 144789) +PAFExponentialCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 7378) +PAFExponentialCurveEnumerableERC20Test:test_modifyPairParams() (gas: 34064) +PAFExponentialCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37269) +PAFExponentialCurveEnumerableERC20Test:test_rescueTokens() (gas: 34471) +PAFExponentialCurveEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFExponentialCurveEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFExponentialCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 14457) +PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 0) +PAFExponentialCurveEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 107392) +PAFExponentialCurveEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFExponentialCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFExponentialCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFExponentialCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFExponentialCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFExponentialCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFExponentialCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFExponentialCurveEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFExponentialCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFExponentialCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13908) +PAFExponentialCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29730) +PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFExponentialCurveEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFExponentialCurveEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 157924) +PAFExponentialCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFExponentialCurveEnumerableETHTest:test_callMint721() (gas: 144786) +PAFExponentialCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 7375) +PAFExponentialCurveEnumerableETHTest:test_modifyPairParams() (gas: 34035) +PAFExponentialCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 37248) +PAFExponentialCurveEnumerableETHTest:test_rescueTokens() (gas: 34353) +PAFExponentialCurveEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFExponentialCurveEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFExponentialCurveEnumerableETHTest:test_verifyPoolParams() (gas: 13520) +PAFExponentialCurveEnumerableETHTest:test_withdraw() (gas: 9916) +PAFExponentialCurveEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 117412) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 7202) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45644) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 202764) +PAFExponentialCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFExponentialCurveMissingEnumerableERC20Test:test_callMint721() (gas: 77278) +PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 4473) +PAFExponentialCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 34064) +PAFExponentialCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37269) +PAFExponentialCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 0) +PAFExponentialCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFExponentialCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFExponentialCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 14428) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 0) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 3602) +PAFExponentialCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFExponentialCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFExponentialCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFExponentialCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13899) +PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29823) +PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFExponentialCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFExponentialCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 158027) +PAFExponentialCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFExponentialCurveMissingEnumerableETHTest:test_callMint721() (gas: 77275) +PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 4470) +PAFExponentialCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 34035) +PAFExponentialCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 37248) +PAFExponentialCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 0) +PAFExponentialCurveMissingEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFExponentialCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFExponentialCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 13491) +PAFExponentialCurveMissingEnumerableETHTest:test_withdraw() (gas: 9916) +PAFExponentialCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 13622) +PAFLinearCurveEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFLinearCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFLinearCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFLinearCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFLinearCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFLinearCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFLinearCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFLinearCurveEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFLinearCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFLinearCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 6929) +PAFLinearCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45268) +PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFLinearCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFLinearCurveEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 202608) +PAFLinearCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFLinearCurveEnumerableERC20Test:test_callMint721() (gas: 144789) +PAFLinearCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 7378) +PAFLinearCurveEnumerableERC20Test:test_modifyPairParams() (gas: 34011) +PAFLinearCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37216) +PAFLinearCurveEnumerableERC20Test:test_rescueTokens() (gas: 34471) +PAFLinearCurveEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFLinearCurveEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFLinearCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 14457) +PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 0) +PAFLinearCurveEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 106848) +PAFLinearCurveEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFLinearCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFLinearCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFLinearCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFLinearCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFLinearCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFLinearCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFLinearCurveEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFLinearCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFLinearCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13626) +PAFLinearCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29447) +PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFLinearCurveEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFLinearCurveEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 157871) +PAFLinearCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFLinearCurveEnumerableETHTest:test_callMint721() (gas: 144786) +PAFLinearCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 7375) +PAFLinearCurveEnumerableETHTest:test_modifyPairParams() (gas: 33982) +PAFLinearCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 37195) +PAFLinearCurveEnumerableETHTest:test_rescueTokens() (gas: 34353) +PAFLinearCurveEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFLinearCurveEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFLinearCurveEnumerableETHTest:test_verifyPoolParams() (gas: 13520) +PAFLinearCurveEnumerableETHTest:test_withdraw() (gas: 9916) +PAFLinearCurveEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 116868) +PAFLinearCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFLinearCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFLinearCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFLinearCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 6920) +PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45361) +PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFLinearCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFLinearCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 202711) +PAFLinearCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFLinearCurveMissingEnumerableERC20Test:test_callMint721() (gas: 77278) +PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 4473) +PAFLinearCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 34011) +PAFLinearCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37216) +PAFLinearCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 0) +PAFLinearCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFLinearCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFLinearCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 14428) +PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 0) +PAFLinearCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 3058) +PAFLinearCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFLinearCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFLinearCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFLinearCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFLinearCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13617) +PAFLinearCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29540) +PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFLinearCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFLinearCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 157974) +PAFLinearCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFLinearCurveMissingEnumerableETHTest:test_callMint721() (gas: 77275) +PAFLinearCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 4470) +PAFLinearCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 33982) +PAFLinearCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 37195) +PAFLinearCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 0) +PAFLinearCurveMissingEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFLinearCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 13491) +PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 9916) +PAFLinearCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 13078) +RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 156298) +RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 265490) +RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 256739) +RMPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 265408) +RMPExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 272431) +RMPExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 265570) +RMPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 341405) +RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 0) +RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 0) +RMPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 450515) +RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 0) +RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 0) +RMPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 149478) +RMPLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 259620) +RMPLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 250869) +RMPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 258588) +RMPLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 266556) +RMPLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 259695) +RMPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 334585) +RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 0) +RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 0) +RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 443695) +RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 0) +RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 0) +RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 171562) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 172054) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 108763) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 163546) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 163080) +RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 162455) +RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 174410) +RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 93197) +RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 156709) +RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 156367) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 333120) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 187914) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 189498) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 14336) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 324013) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 190098) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 173932) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 7155) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 167391) +RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 169613) +RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 106498) +RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 162194) +RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 161720) +RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 158268) +RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 171951) +RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 90916) +RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 155341) +RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 155007) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 328949) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 185473) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 187233) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 12984) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 319826) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 187639) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 171651) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 5787) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 39098) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 88537) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 89785) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 62613) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 109418) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 110544) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 54399) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 6533) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 9735) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 77914) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 27236) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 30322) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 37542) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 87361) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 88609) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 61057) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 108242) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 109368) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 52843) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 5357) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 8559) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 76358) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 26060) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 29146) +RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 109662) +RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10733) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 16220) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17023) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17571) +RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 234444) +RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 146023) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 108807) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 107586) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 64413) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 74739) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 73478) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 138627) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 135018) +RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 94068) +RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10684) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 42767) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35995) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37751) +RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 244089) +RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 130860) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 116644) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 115819) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 48822) +RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 69386) +RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 68490) +RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 133722) +RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 130527) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 110287) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10733) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 16123) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17014) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17571) +RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 436569) +RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 348172) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 107028) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 107955) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 104838) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 30435) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 31322) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 94693) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10684) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 42670) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35995) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37751) +RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 446214) +RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 333009) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 114687) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 116016) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 89247) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 24904) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 26162) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 108298) +RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10637) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 15489) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17021) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17569) +RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 228104) +RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 144306) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 107538) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 106317) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 63145) +RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 73565) +RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 72304) +RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 136555) +RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 132946) +RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 92704) +RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10588) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 41305) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35993) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37749) +RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 237749) +RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 129143) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 115374) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 114549) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 47554) +RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 68211) +RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 67315) +RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 131200) +RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 128005) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 108923) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10637) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 15392) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17012) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17569) +RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 430229) +RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 346455) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 105759) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 106686) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 103570) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 29261) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 30148) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 93329) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10588) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 41208) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35993) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37749) +RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 439874) +RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 331292) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 113417) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 114746) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 87979) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 23729) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 24987) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 133726) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 115542) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 113815) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 60186) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 87930) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 75813) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 120294) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 74595) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 119099) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 131217) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 127585) +RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 137836) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 145737) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 144417) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 63856) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 71370) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 95468) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 125092) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 94604) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 124284) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 151320) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 148091) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 119929) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 88639) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 88866) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 64585) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 103275) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 33609) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 78090) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 34539) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 79043) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 124039) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 118656) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 119296) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 68255) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 86715) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 53086) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 82710) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 54376) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 84056) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 132009) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 113100) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 111373) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 58918) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 86662) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 74639) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 119120) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 73421) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 117925) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 129145) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 125513) +RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 136119) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 143294) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 141974) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 62588) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 70102) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 94293) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 123917) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 93429) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 123109) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 148798) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 145569) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 118212) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 86197) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 86424) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 63317) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 102007) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 32435) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 76916) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 33365) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 77869) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 122322) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 116213) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 116853) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 66987) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 85447) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 51911) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 81535) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 53201) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 82881) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) diff --git a/src/LSSVMPair.sol b/src/LSSVMPair.sol index b53ae11..67fd955 100644 --- a/src/LSSVMPair.sol +++ b/src/LSSVMPair.sol @@ -146,7 +146,7 @@ abstract contract LSSVMPair is "Wrong Pool type" ); require( - (numNFTs > 0) && (numNFTs <= _nft.balanceOf(address(this))), + (numNFTs != 0) && (numNFTs <= _nft.balanceOf(address(this))), "Ask for > 0 and <= balanceOf NFTs" ); } @@ -208,7 +208,7 @@ abstract contract LSSVMPair is _poolType == PoolType.NFT || _poolType == PoolType.TRADE, "Wrong Pool type" ); - require((nftIds.length > 0), "Must ask for > 0 NFTs"); + require((nftIds.length != 0), "Must ask for > 0 NFTs"); } // Call bonding curve for pricing information @@ -266,7 +266,7 @@ abstract contract LSSVMPair is _poolType == PoolType.TOKEN || _poolType == PoolType.TRADE, "Wrong Pool type" ); - require(nftIds.length > 0, "Must ask for > 0 NFTs"); + require(nftIds.length != 0, "Must ask for > 0 NFTs"); } // Call bonding curve for pricing information diff --git a/src/LSSVMPairERC20.sol b/src/LSSVMPairERC20.sol index 2ac5501..826d079 100644 --- a/src/LSSVMPairERC20.sol +++ b/src/LSSVMPairERC20.sol @@ -92,7 +92,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { ); // Take protocol fee (if it exists) - if (protocolFee > 0) { + if (protocolFee != 0) { _token.safeTransferFrom( msg.sender, address(_factory), @@ -113,7 +113,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { uint256 protocolFee ) internal override { // Take protocol fee (if it exists) - if (protocolFee > 0) { + if (protocolFee != 0) { ERC20 _token = token(); // Round down to the actual token balance if there are numerical stability issues with the bonding curve calculations @@ -121,7 +121,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { if (protocolFee > pairTokenBalance) { protocolFee = pairTokenBalance; } - if (protocolFee > 0) { + if (protocolFee != 0) { _token.safeTransfer(address(_factory), protocolFee); } } @@ -133,7 +133,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { uint256 outputAmount ) internal override { // Send tokens to caller - if (outputAmount > 0) { + if (outputAmount != 0) { token().safeTransfer(tokenRecipient, outputAmount); } } diff --git a/src/LSSVMPairETH.sol b/src/LSSVMPairETH.sol index aa6716a..bda5a16 100644 --- a/src/LSSVMPairETH.sol +++ b/src/LSSVMPairETH.sol @@ -35,13 +35,13 @@ abstract contract LSSVMPairETH is LSSVMPair { } // Take protocol fee - if (protocolFee > 0) { + if (protocolFee != 0) { // Round down to the actual ETH balance if there are numerical stability issues with the bonding curve calculations if (protocolFee > address(this).balance) { protocolFee = address(this).balance; } - if (protocolFee > 0) { + if (protocolFee != 0) { payable(address(_factory)).safeTransferETH(protocolFee); } } @@ -61,13 +61,13 @@ abstract contract LSSVMPairETH is LSSVMPair { uint256 protocolFee ) internal override { // Take protocol fee - if (protocolFee > 0) { + if (protocolFee != 0) { // Round down to the actual ETH balance if there are numerical stability issues with the bonding curve calculations if (protocolFee > address(this).balance) { protocolFee = address(this).balance; } - if (protocolFee > 0) { + if (protocolFee != 0) { payable(address(_factory)).safeTransferETH(protocolFee); } } @@ -79,7 +79,7 @@ abstract contract LSSVMPairETH is LSSVMPair { uint256 outputAmount ) internal override { // Send ETH to caller - if (outputAmount > 0) { + if (outputAmount != 0) { tokenRecipient.safeTransferETH(outputAmount); } } diff --git a/src/LSSVMRouter.sol b/src/LSSVMRouter.sol index bc2ddb6..e433221 100644 --- a/src/LSSVMRouter.sol +++ b/src/LSSVMRouter.sol @@ -407,7 +407,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } @@ -463,7 +463,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } @@ -671,7 +671,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { params.tokenRecipient.safeTransferETH(remainingValue); } } @@ -937,7 +937,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } @@ -990,7 +990,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } From 1f8701ea660f5903f7b5b5c6b7ac8313ae4e2292 Mon Sep 17 00:00:00 2001 From: kadenzipfel Date: Thu, 2 Jun 2022 18:42:32 +0200 Subject: [PATCH 2/6] Use short revert strings --- .gas-snapshot | 40 ++++++++++++++++++++-------------------- src/LSSVMPair.sol | 8 ++++---- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 5814b3c..56ba8f7 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,27 +1,27 @@ ExponentialCurveTest:test_getBuyInfoExample() (gas: 4589) -ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 805, ~: 523) +ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 807, ~: 523) ExponentialCurveTest:test_getSellInfoExample() (gas: 4522) -ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1617, ~: 633) +ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1829, ~: 633) LinearCurveTest:test_getBuyInfoExample() (gas: 4128) -LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3165, ~: 2891) +LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3301, ~: 4300) LinearCurveTest:test_getSellInfoExample() (gas: 3977) -LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3624, ~: 4168) -NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 653882, ~: 943) -NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646585, ~: 987) -NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 231792, ~: 943) -NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 229981, ~: 987) -NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646737, ~: 943) -NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 611723, ~: 987) -NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 224647, ~: 943) -NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 195119, ~: 987) -NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 651713, ~: 621) -NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644079, ~: 665) -NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 230195, ~: 621) -NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 227750, ~: 665) -NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644569, ~: 621) -NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 609217, ~: 665) -NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 223050, ~: 621) -NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 192888, ~: 665) +LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3755, ~: 4168) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 755666, ~: 1237181) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 746970, ~: 1228054) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 270439, ~: 385776) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 268039, ~: 388286) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 746290, ~: 1245114) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 704851, ~: 1197000) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 261063, ~: 393709) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 225920, ~: 357232) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 753542, ~: 1238940) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 744289, ~: 1225764) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 268976, ~: 387535) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 265527, ~: 383357) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 744165, ~: 1246873) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 702170, ~: 1194710) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 259600, ~: 395468) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 223407, ~: 352303) PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 5705) PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) diff --git a/src/LSSVMPair.sol b/src/LSSVMPair.sol index 67fd955..54c57a8 100644 --- a/src/LSSVMPair.sol +++ b/src/LSSVMPair.sol @@ -89,13 +89,13 @@ abstract contract LSSVMPair is PoolType _poolType = poolType(); if ((_poolType == PoolType.TOKEN) || (_poolType == PoolType.NFT)) { - require(_fee == 0, "Only Trade Pools can have nonzero fee"); + require(_fee == 0, "Only Trade Pools can have >0 fee"); assetRecipient = _assetRecipient; } else if (_poolType == PoolType.TRADE) { require(_fee < MAX_FEE, "Trade fee must be less than 90%"); require( _assetRecipient == address(0), - "Trade pools can't set asset recipient" + "Trade pools can't set recipient" ); fee = _fee; } @@ -147,7 +147,7 @@ abstract contract LSSVMPair is ); require( (numNFTs != 0) && (numNFTs <= _nft.balanceOf(address(this))), - "Ask for > 0 and <= balanceOf NFTs" + "Ask for >0 and <= balanceOf NFTs" ); } @@ -860,7 +860,7 @@ abstract contract LSSVMPair is // Prevent multicall from malicious frontend sneaking in ownership change require( owner() == msg.sender, - "Ownership cannot be changed in multicall" + "Owner can't change in multicall" ); } From 3ee7db128a15bbb3d8d8e5f5d6c164e381925447 Mon Sep 17 00:00:00 2001 From: kadenzipfel Date: Thu, 2 Jun 2022 19:37:34 +0200 Subject: [PATCH 3/6] Use do while loop instead of for loop --- src/LSSVMPair.sol | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/LSSVMPair.sol b/src/LSSVMPair.sol index 54c57a8..3c8a124 100644 --- a/src/LSSVMPair.sol +++ b/src/LSSVMPair.sol @@ -665,7 +665,8 @@ abstract contract LSSVMPair is // If more than 1 NFT is being transfered, we can do a balance check instead of an ownership check, as pools are indifferent between NFTs from the same collection if (numNFTs > 1) { uint256 beforeBalance = _nft.balanceOf(_assetRecipient); - for (uint256 i = 0; i < numNFTs; ) { + uint256 i; + do { router.pairTransferNFTFrom( _nft, routerCaller, @@ -677,7 +678,7 @@ abstract contract LSSVMPair is unchecked { ++i; } - } + } while (i < numNFTs); require( (_nft.balanceOf(_assetRecipient) - beforeBalance) == numNFTs, From 7e9fef50b905efcafef4a6a7410b2ef7b4c0fb34 Mon Sep 17 00:00:00 2001 From: kadenzipfel Date: Wed, 1 Jun 2022 16:40:19 +0200 Subject: [PATCH 4/6] Use != 0 instead of > 0 for uint comparisons --- .gas-snapshot | 1068 +++++++++++++++++++++------------------- src/LSSVMPair.sol | 6 +- src/LSSVMPairERC20.sol | 8 +- src/LSSVMPairETH.sol | 10 +- src/LSSVMRouter.sol | 10 +- 5 files changed, 569 insertions(+), 533 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 17adca2..5814b3c 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,516 +1,552 @@ -ExponentialCurveTest:test_getBuyInfoExample() (gas: 9083) -ExponentialCurveTest:test_getSellInfoExample() (gas: 9016) -LinearCurveTest:test_getBuyInfoExample() (gas: 8622) -LinearCurveTest:test_getSellInfoExample() (gas: 8471) -PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10842) -PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18653) -PAFExponentialCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFExponentialCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFExponentialCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFExponentialCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFExponentialCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 34030) -PAFExponentialCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95624) -PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10754) -PAFExponentialCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFExponentialCurveEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244755) -PAFExponentialCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFExponentialCurveEnumerableERC20Test:test_callMint721() (gas: 173721) -PAFExponentialCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28877) -PAFExponentialCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52386) -PAFExponentialCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55509) -PAFExponentialCurveEnumerableERC20Test:test_rescueTokens() (gas: 161764) -PAFExponentialCurveEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFExponentialCurveEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFExponentialCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48504) -PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 268805) -PAFExponentialCurveEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFExponentialCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFExponentialCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFExponentialCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10817) -PAFExponentialCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18647) -PAFExponentialCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFExponentialCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFExponentialCurveEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFExponentialCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFExponentialCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40727) -PAFExponentialCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65768) -PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10729) -PAFExponentialCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFExponentialCurveEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181949) -PAFExponentialCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFExponentialCurveEnumerableETHTest:test_callMint721() (gas: 173718) -PAFExponentialCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28874) -PAFExponentialCurveEnumerableETHTest:test_modifyPairParams() (gas: 52313) -PAFExponentialCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55444) -PAFExponentialCurveEnumerableETHTest:test_rescueTokens() (gas: 161697) -PAFExponentialCurveEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFExponentialCurveEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFExponentialCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41003) -PAFExponentialCurveEnumerableETHTest:test_withdraw() (gas: 18936) -PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 262745) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10846) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18657) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 34021) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95717) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10758) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFExponentialCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 244858) -PAFExponentialCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFExponentialCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99310) -PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23480) -PAFExponentialCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52390) -PAFExponentialCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55513) -PAFExponentialCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 112888) -PAFExponentialCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFExponentialCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFExponentialCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48475) -PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198631) -PAFExponentialCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10821) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18651) -PAFExponentialCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFExponentialCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFExponentialCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFExponentialCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40718) -PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65861) -PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10733) -PAFExponentialCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFExponentialCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 182052) -PAFExponentialCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFExponentialCurveMissingEnumerableETHTest:test_callMint721() (gas: 99307) -PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFExponentialCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23477) -PAFExponentialCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52317) -PAFExponentialCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55448) -PAFExponentialCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112835) -PAFExponentialCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFExponentialCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFExponentialCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40974) -PAFExponentialCurveMissingEnumerableETHTest:test_withdraw() (gas: 18936) -PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192571) -PAFLinearCurveEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFLinearCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFLinearCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFLinearCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10842) -PAFLinearCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18653) -PAFLinearCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFLinearCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFLinearCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFLinearCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFLinearCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33748) -PAFLinearCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95341) -PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10754) -PAFLinearCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFLinearCurveEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 244702) -PAFLinearCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFLinearCurveEnumerableERC20Test:test_callMint721() (gas: 173721) -PAFLinearCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28877) -PAFLinearCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52333) -PAFLinearCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55456) -PAFLinearCurveEnumerableERC20Test:test_rescueTokens() (gas: 161764) -PAFLinearCurveEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFLinearCurveEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFLinearCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48504) -PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 268261) -PAFLinearCurveEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFLinearCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFLinearCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFLinearCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10817) -PAFLinearCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18647) -PAFLinearCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFLinearCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFLinearCurveEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFLinearCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFLinearCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40445) -PAFLinearCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65485) -PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10729) -PAFLinearCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFLinearCurveEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 181896) -PAFLinearCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFLinearCurveEnumerableETHTest:test_callMint721() (gas: 173718) -PAFLinearCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28874) -PAFLinearCurveEnumerableETHTest:test_modifyPairParams() (gas: 52260) -PAFLinearCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 55391) -PAFLinearCurveEnumerableETHTest:test_rescueTokens() (gas: 161697) -PAFLinearCurveEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFLinearCurveEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFLinearCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41003) -PAFLinearCurveEnumerableETHTest:test_withdraw() (gas: 18936) -PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 262201) -PAFLinearCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19170) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10760) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18602) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10846) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 18657) -PAFLinearCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18580) -PAFLinearCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22581) -PAFLinearCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11131) -PAFLinearCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27671) -PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33739) -PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 95434) -PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693) -PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10758) -PAFLinearCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18579) -PAFLinearCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26353) -PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 244805) -PAFLinearCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15668) -PAFLinearCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99310) -PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23480) -PAFLinearCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52337) -PAFLinearCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 55460) -PAFLinearCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 112888) -PAFLinearCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 43154) -PAFLinearCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16054) -PAFLinearCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48475) -PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26681) -PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198087) -PAFLinearCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19167) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10779) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18596) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10821) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 18651) -PAFLinearCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18596) -PAFLinearCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22572) -PAFLinearCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11128) -PAFLinearCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27687) -PAFLinearCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40436) -PAFLinearCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 65578) -PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712) -PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10733) -PAFLinearCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18617) -PAFLinearCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18538) -PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 181999) -PAFLinearCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15717) -PAFLinearCurveMissingEnumerableETHTest:test_callMint721() (gas: 99307) -PAFLinearCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14717) -PAFLinearCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12208) -PAFLinearCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23477) -PAFLinearCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52264) -PAFLinearCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 55395) -PAFLinearCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112835) -PAFLinearCurveMissingEnumerableETHTest:test_transferCallback() (gas: 43173) -PAFLinearCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16048) -PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40974) -PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 18936) -PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192027) -RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 537855) -RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 643917) -RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 635043) -RMPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 540195) -RMPExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 615295) -RMPExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 608614) -RMPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 628612) -RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 413691) -RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 414392) -RMPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 630952) -RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 390057) -RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 392536) -RMPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 517035) -RMPLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 624047) -RMPLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 615173) -RMPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 519375) -RMPLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 595420) -RMPLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 588739) -RMPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 607792) -RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 397795) -RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 398496) -RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 610132) -RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 374157) -RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 376636) -RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 417454) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 261759) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 433569) -RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 372194) -RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 391455) -RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 234089) -RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 405958) -RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 344591) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 450652) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 278314) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 329787) -RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 266370) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 424653) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 250644) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 301820) -RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 238399) -RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 407675) -RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 256686) -RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 432209) -RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 370834) -RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 381676) -RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 229016) -RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 404598) -RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 343231) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 440873) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 273241) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 328427) -RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 265010) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 414874) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 245571) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 300460) -RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 237039) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 169728) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195512) -RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196607) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 166049) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 203109) -RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 204141) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 135432) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 149222) -RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 152267) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131753) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156635) -RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159623) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 165372) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 191536) -RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 192631) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 161693) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 199133) -RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 200165) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 131076) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 145246) -RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 148291) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 127397) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 152659) -RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 155647) -RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189243) -RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37997) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49862) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48659) -RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44719) -RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 498319) -RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 409942) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 198143) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 209525) -RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 171422) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 161584) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182435) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353472) -RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411108) -RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161555) -RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37948) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76380) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58305) -RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60149) -RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 495894) -RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 382709) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 193092) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 203672) -RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143737) -RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140096) -RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161355) -RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 332432) -RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 390525) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178078) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37997) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49765) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48650) -RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44719) -RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 520494) -RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 432141) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 171379) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 198114) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 169857) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137194) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 147889) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215081) -RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267470) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150390) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37948) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76283) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58305) -RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60149) -RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 518069) -RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 404908) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 166180) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 192083) -RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 142172) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115522) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126631) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 193858) -RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 246709) -RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 185079) -RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37901) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49131) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48657) -RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44717) -RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 489179) -RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 405425) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 194888) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 204792) -RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 167354) -RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 157610) -RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178461) -RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348600) -RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406236) -RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 157391) -RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37852) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74918) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58303) -RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60147) -RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 486754) -RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 378192) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 189836) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 200109) -RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 139669) -RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 136121) -RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 157380) -RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 327110) -RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 385203) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 173914) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37901) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49034) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48648) -RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44717) -RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 511354) -RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 427624) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 168124) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 191245) -RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 165789) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133220) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 143915) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210209) -RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 262598) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 146226) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37852) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74821) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58303) -RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60147) -RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 508929) -RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 400391) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 162924) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 188013) -RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 138104) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 111547) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 122656) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 188536) -RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 241387) -RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 405981) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 252733) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 251008) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 186488) -RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 196344) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162090) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210671) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182808) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231500) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353805) -RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411486) -RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 398021) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 266777) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 265524) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 178064) -RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 165690) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168410) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202134) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189525) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223393) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 360573) -RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 418700) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 220639) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 216847) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 217072) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 146130) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 164892) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137700) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186281) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148262) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 196954) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215414) -RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267848) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 212679) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 230707) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231410) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 137706) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 134238) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143836) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177560) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154801) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188669) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 221999) -RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 274884) -RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 401464) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 241891) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 240166) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 182420) -RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 192276) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 158116) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 206697) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178834) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 227526) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348933) -RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406614) -RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 393504) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 258734) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 257481) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 173996) -RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 161622) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 164435) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 198159) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 185550) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 219418) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 355251) -RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 413378) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 216122) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 206005) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 206230) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 142062) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 160824) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133726) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 182307) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144288) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 192980) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210542) -RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 262976) -RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 208162) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 222664) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 223367) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 133638) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 130170) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 139861) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 173585) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 150826) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 184694) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 216677) -RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 269562) +ExponentialCurveTest:test_getBuyInfoExample() (gas: 4589) +ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 805, ~: 523) +ExponentialCurveTest:test_getSellInfoExample() (gas: 4522) +ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1617, ~: 633) +LinearCurveTest:test_getBuyInfoExample() (gas: 4128) +LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3165, ~: 2891) +LinearCurveTest:test_getSellInfoExample() (gas: 3977) +LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3624, ~: 4168) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 653882, ~: 943) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646585, ~: 987) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 231792, ~: 943) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 229981, ~: 987) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646737, ~: 943) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 611723, ~: 987) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 224647, ~: 943) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 195119, ~: 987) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 651713, ~: 621) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644079, ~: 665) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 230195, ~: 621) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 227750, ~: 665) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644569, ~: 621) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 609217, ~: 665) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 223050, ~: 621) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 192888, ~: 665) +PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFExponentialCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFExponentialCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFExponentialCurveEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFExponentialCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFExponentialCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 7211) +PAFExponentialCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45551) +PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFExponentialCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFExponentialCurveEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 202661) +PAFExponentialCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFExponentialCurveEnumerableERC20Test:test_callMint721() (gas: 144789) +PAFExponentialCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 7378) +PAFExponentialCurveEnumerableERC20Test:test_modifyPairParams() (gas: 34064) +PAFExponentialCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37269) +PAFExponentialCurveEnumerableERC20Test:test_rescueTokens() (gas: 34471) +PAFExponentialCurveEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFExponentialCurveEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFExponentialCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 14457) +PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 0) +PAFExponentialCurveEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 107392) +PAFExponentialCurveEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFExponentialCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFExponentialCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFExponentialCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFExponentialCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFExponentialCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFExponentialCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFExponentialCurveEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFExponentialCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFExponentialCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13908) +PAFExponentialCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29730) +PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFExponentialCurveEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFExponentialCurveEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 157924) +PAFExponentialCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFExponentialCurveEnumerableETHTest:test_callMint721() (gas: 144786) +PAFExponentialCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 7375) +PAFExponentialCurveEnumerableETHTest:test_modifyPairParams() (gas: 34035) +PAFExponentialCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 37248) +PAFExponentialCurveEnumerableETHTest:test_rescueTokens() (gas: 34353) +PAFExponentialCurveEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFExponentialCurveEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFExponentialCurveEnumerableETHTest:test_verifyPoolParams() (gas: 13520) +PAFExponentialCurveEnumerableETHTest:test_withdraw() (gas: 9916) +PAFExponentialCurveEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 117412) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 7202) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45644) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFExponentialCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 202764) +PAFExponentialCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFExponentialCurveMissingEnumerableERC20Test:test_callMint721() (gas: 77278) +PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 4473) +PAFExponentialCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 34064) +PAFExponentialCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37269) +PAFExponentialCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 0) +PAFExponentialCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFExponentialCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFExponentialCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 14428) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 0) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 3602) +PAFExponentialCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFExponentialCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFExponentialCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFExponentialCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFExponentialCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13899) +PAFExponentialCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29823) +PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFExponentialCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFExponentialCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 158027) +PAFExponentialCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFExponentialCurveMissingEnumerableETHTest:test_callMint721() (gas: 77275) +PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFExponentialCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 4470) +PAFExponentialCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 34035) +PAFExponentialCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 37248) +PAFExponentialCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 0) +PAFExponentialCurveMissingEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFExponentialCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFExponentialCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 13491) +PAFExponentialCurveMissingEnumerableETHTest:test_withdraw() (gas: 9916) +PAFExponentialCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 13622) +PAFLinearCurveEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFLinearCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFLinearCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFLinearCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFLinearCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFLinearCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFLinearCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFLinearCurveEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFLinearCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFLinearCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 6929) +PAFLinearCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45268) +PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFLinearCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFLinearCurveEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 202608) +PAFLinearCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFLinearCurveEnumerableERC20Test:test_callMint721() (gas: 144789) +PAFLinearCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 7378) +PAFLinearCurveEnumerableERC20Test:test_modifyPairParams() (gas: 34011) +PAFLinearCurveEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37216) +PAFLinearCurveEnumerableERC20Test:test_rescueTokens() (gas: 34471) +PAFLinearCurveEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFLinearCurveEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFLinearCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 14457) +PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 0) +PAFLinearCurveEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 106848) +PAFLinearCurveEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFLinearCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFLinearCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFLinearCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFLinearCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFLinearCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFLinearCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFLinearCurveEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFLinearCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFLinearCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13626) +PAFLinearCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29447) +PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFLinearCurveEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFLinearCurveEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 157871) +PAFLinearCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFLinearCurveEnumerableETHTest:test_callMint721() (gas: 144786) +PAFLinearCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 7375) +PAFLinearCurveEnumerableETHTest:test_modifyPairParams() (gas: 33982) +PAFLinearCurveEnumerableETHTest:test_multicallModifyPairParams() (gas: 37195) +PAFLinearCurveEnumerableETHTest:test_rescueTokens() (gas: 34353) +PAFLinearCurveEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFLinearCurveEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFLinearCurveEnumerableETHTest:test_verifyPoolParams() (gas: 13520) +PAFLinearCurveEnumerableETHTest:test_withdraw() (gas: 9916) +PAFLinearCurveEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 116868) +PAFLinearCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 5705) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 1754) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 6809) +PAFLinearCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 6803) +PAFLinearCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 10852) +PAFLinearCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 2109) +PAFLinearCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 7917) +PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 6920) +PAFLinearCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 45361) +PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 1756) +PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 1733) +PAFLinearCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 6824) +PAFLinearCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 8089) +PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 202711) +PAFLinearCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 3912) +PAFLinearCurveMissingEnumerableERC20Test:test_callMint721() (gas: 77278) +PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 4473) +PAFLinearCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 34011) +PAFLinearCurveMissingEnumerableERC20Test:test_multicallModifyPairParams() (gas: 37216) +PAFLinearCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 0) +PAFLinearCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 26965) +PAFLinearCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 4299) +PAFLinearCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 14428) +PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 0) +PAFLinearCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 48142) +PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 3058) +PAFLinearCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 5702) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 1776) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 6819) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 1751) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 6825) +PAFLinearCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 6819) +PAFLinearCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 10865) +PAFLinearCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 2106) +PAFLinearCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 7933) +PAFLinearCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 13617) +PAFLinearCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 29540) +PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 1775) +PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 1730) +PAFLinearCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 6862) +PAFLinearCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 6650) +PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 157974) +PAFLinearCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 3961) +PAFLinearCurveMissingEnumerableETHTest:test_callMint721() (gas: 77275) +PAFLinearCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 3251) +PAFLinearCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 3686) +PAFLinearCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 4470) +PAFLinearCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 33982) +PAFLinearCurveMissingEnumerableETHTest:test_multicallModifyPairParams() (gas: 37195) +PAFLinearCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 0) +PAFLinearCurveMissingEnumerableETHTest:test_transferCallback() (gas: 26984) +PAFLinearCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 4293) +PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 13491) +PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 9916) +PAFLinearCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 48035) +PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 13078) +RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 156298) +RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 265490) +RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 256739) +RMPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 265408) +RMPExponentialCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 272431) +RMPExponentialCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 265570) +RMPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 341405) +RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 0) +RMPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 0) +RMPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 450515) +RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 0) +RMPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 0) +RMPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 149478) +RMPLinearCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 259620) +RMPLinearCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 250869) +RMPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 258588) +RMPLinearCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 266556) +RMPLinearCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 259695) +RMPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 334585) +RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 0) +RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 0) +RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 443695) +RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 0) +RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 0) +RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 171562) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 172054) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 108763) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 163546) +RRSExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 163080) +RRSExponentialCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 162455) +RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 174410) +RRSExponentialCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 93197) +RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 156709) +RRSExponentialCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 156367) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 333120) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 187914) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 189498) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 14336) +RRSExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 324013) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 190098) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 173932) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 7155) +RRSExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSLinearCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 167391) +RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 169613) +RRSLinearCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 106498) +RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 162194) +RRSLinearCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 161720) +RRSLinearCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 158268) +RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 171951) +RRSLinearCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 90916) +RRSLinearCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 155341) +RRSLinearCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 155007) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 328949) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 185473) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 187233) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 12984) +RRSLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 319826) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 187639) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 171651) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 5787) +RRSLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 0) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 39098) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 88537) +RRSWARExponentialCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 89785) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 62613) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 109418) +RRSWARExponentialCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 110544) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 54399) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 6533) +RRSWARExponentialCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 9735) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 77914) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 27236) +RRSWARExponentialCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 30322) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 37542) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 87361) +RRSWARLinearCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 88609) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 61057) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 108242) +RRSWARLinearCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 109368) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 52843) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 5357) +RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 8559) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 76358) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 26060) +RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 29146) +RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 109662) +RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10733) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 16220) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17023) +RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17571) +RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 234444) +RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 146023) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 108807) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 107586) +RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 64413) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 74739) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 73478) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 138627) +RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 135018) +RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 94068) +RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10684) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 42767) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35995) +RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37751) +RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 244089) +RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 130860) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 116644) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 115819) +RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 48822) +RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 69386) +RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 68490) +RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 133722) +RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 130527) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 110287) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10733) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 16123) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17014) +RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17571) +RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 436569) +RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 348172) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 107028) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 107955) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 104838) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 30435) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 31322) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 94693) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10684) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 42670) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35995) +RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37751) +RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 446214) +RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 333009) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 114687) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 116016) +RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 89247) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 24904) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 26162) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 108298) +RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10637) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 15489) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17021) +RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17569) +RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 228104) +RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 144306) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 107538) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 106317) +RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 63145) +RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 73565) +RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 72304) +RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 136555) +RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 132946) +RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 92704) +RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10588) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 41305) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35993) +RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37749) +RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 237749) +RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 129143) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 115374) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 114549) +RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 47554) +RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 68211) +RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 67315) +RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 131200) +RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 128005) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 108923) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10637) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 15392) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 17012) +RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 17569) +RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 430229) +RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 346455) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 105759) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 106686) +RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 103570) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 29261) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 30148) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 93329) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 10588) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 41208) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 35993) +RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 37749) +RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 439874) +RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 331292) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 113417) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 114746) +RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 87979) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 23729) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 24987) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 133726) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 115542) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 113815) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 60186) +RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 87930) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 75813) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 120294) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 74595) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 119099) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 131217) +RSPWARExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 127585) +RSPWARExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 137836) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 145737) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 144417) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 63856) +RSPWARExponentialCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 71370) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 95468) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 125092) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 94604) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 124284) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 151320) +RSPWARExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 148091) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 119929) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 88639) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 88866) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 64585) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 103275) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 33609) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 78090) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 34539) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 79043) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 124039) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 118656) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 119296) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 68255) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 86715) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 53086) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 82710) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 54376) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 84056) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 132009) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 113100) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 111373) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 58918) +RSPWARLinearCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 86662) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 74639) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 119120) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 73421) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 117925) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 129145) +RSPWARLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 125513) +RSPWARLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 136119) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 143294) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 141974) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 62588) +RSPWARLinearCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 70102) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 94293) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 123917) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 93429) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 123109) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 148798) +RSPWARLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 145569) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 118212) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 86197) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 86424) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 63317) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 102007) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 32435) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 76916) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 33365) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 77869) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 0) +RSPWARLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 122322) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 116213) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 116853) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 66987) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 85447) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 51911) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 81535) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 53201) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 82881) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 0) +RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 0) diff --git a/src/LSSVMPair.sol b/src/LSSVMPair.sol index b53ae11..67fd955 100644 --- a/src/LSSVMPair.sol +++ b/src/LSSVMPair.sol @@ -146,7 +146,7 @@ abstract contract LSSVMPair is "Wrong Pool type" ); require( - (numNFTs > 0) && (numNFTs <= _nft.balanceOf(address(this))), + (numNFTs != 0) && (numNFTs <= _nft.balanceOf(address(this))), "Ask for > 0 and <= balanceOf NFTs" ); } @@ -208,7 +208,7 @@ abstract contract LSSVMPair is _poolType == PoolType.NFT || _poolType == PoolType.TRADE, "Wrong Pool type" ); - require((nftIds.length > 0), "Must ask for > 0 NFTs"); + require((nftIds.length != 0), "Must ask for > 0 NFTs"); } // Call bonding curve for pricing information @@ -266,7 +266,7 @@ abstract contract LSSVMPair is _poolType == PoolType.TOKEN || _poolType == PoolType.TRADE, "Wrong Pool type" ); - require(nftIds.length > 0, "Must ask for > 0 NFTs"); + require(nftIds.length != 0, "Must ask for > 0 NFTs"); } // Call bonding curve for pricing information diff --git a/src/LSSVMPairERC20.sol b/src/LSSVMPairERC20.sol index 2ac5501..826d079 100644 --- a/src/LSSVMPairERC20.sol +++ b/src/LSSVMPairERC20.sol @@ -92,7 +92,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { ); // Take protocol fee (if it exists) - if (protocolFee > 0) { + if (protocolFee != 0) { _token.safeTransferFrom( msg.sender, address(_factory), @@ -113,7 +113,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { uint256 protocolFee ) internal override { // Take protocol fee (if it exists) - if (protocolFee > 0) { + if (protocolFee != 0) { ERC20 _token = token(); // Round down to the actual token balance if there are numerical stability issues with the bonding curve calculations @@ -121,7 +121,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { if (protocolFee > pairTokenBalance) { protocolFee = pairTokenBalance; } - if (protocolFee > 0) { + if (protocolFee != 0) { _token.safeTransfer(address(_factory), protocolFee); } } @@ -133,7 +133,7 @@ abstract contract LSSVMPairERC20 is LSSVMPair { uint256 outputAmount ) internal override { // Send tokens to caller - if (outputAmount > 0) { + if (outputAmount != 0) { token().safeTransfer(tokenRecipient, outputAmount); } } diff --git a/src/LSSVMPairETH.sol b/src/LSSVMPairETH.sol index aa6716a..bda5a16 100644 --- a/src/LSSVMPairETH.sol +++ b/src/LSSVMPairETH.sol @@ -35,13 +35,13 @@ abstract contract LSSVMPairETH is LSSVMPair { } // Take protocol fee - if (protocolFee > 0) { + if (protocolFee != 0) { // Round down to the actual ETH balance if there are numerical stability issues with the bonding curve calculations if (protocolFee > address(this).balance) { protocolFee = address(this).balance; } - if (protocolFee > 0) { + if (protocolFee != 0) { payable(address(_factory)).safeTransferETH(protocolFee); } } @@ -61,13 +61,13 @@ abstract contract LSSVMPairETH is LSSVMPair { uint256 protocolFee ) internal override { // Take protocol fee - if (protocolFee > 0) { + if (protocolFee != 0) { // Round down to the actual ETH balance if there are numerical stability issues with the bonding curve calculations if (protocolFee > address(this).balance) { protocolFee = address(this).balance; } - if (protocolFee > 0) { + if (protocolFee != 0) { payable(address(_factory)).safeTransferETH(protocolFee); } } @@ -79,7 +79,7 @@ abstract contract LSSVMPairETH is LSSVMPair { uint256 outputAmount ) internal override { // Send ETH to caller - if (outputAmount > 0) { + if (outputAmount != 0) { tokenRecipient.safeTransferETH(outputAmount); } } diff --git a/src/LSSVMRouter.sol b/src/LSSVMRouter.sol index bc2ddb6..e433221 100644 --- a/src/LSSVMRouter.sol +++ b/src/LSSVMRouter.sol @@ -407,7 +407,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } @@ -463,7 +463,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } @@ -671,7 +671,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { params.tokenRecipient.safeTransferETH(remainingValue); } } @@ -937,7 +937,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } @@ -990,7 +990,7 @@ contract LSSVMRouter { } // Return remaining value to sender - if (remainingValue > 0) { + if (remainingValue != 0) { ethRecipient.safeTransferETH(remainingValue); } } From e7916a8525e82c2ef1e339897f19c6013282e3c8 Mon Sep 17 00:00:00 2001 From: kadenzipfel Date: Thu, 2 Jun 2022 18:42:32 +0200 Subject: [PATCH 5/6] Use short revert strings --- .gas-snapshot | 40 ++++++++++++++++++++-------------------- src/LSSVMPair.sol | 8 ++++---- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 5814b3c..56ba8f7 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,27 +1,27 @@ ExponentialCurveTest:test_getBuyInfoExample() (gas: 4589) -ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 805, ~: 523) +ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 807, ~: 523) ExponentialCurveTest:test_getSellInfoExample() (gas: 4522) -ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1617, ~: 633) +ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 1829, ~: 633) LinearCurveTest:test_getBuyInfoExample() (gas: 4128) -LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3165, ~: 2891) +LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3301, ~: 4300) LinearCurveTest:test_getSellInfoExample() (gas: 3977) -LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3624, ~: 4168) -NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 653882, ~: 943) -NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646585, ~: 987) -NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 231792, ~: 943) -NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 229981, ~: 987) -NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 646737, ~: 943) -NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 611723, ~: 987) -NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 224647, ~: 943) -NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 195119, ~: 987) -NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 651713, ~: 621) -NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644079, ~: 665) -NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 230195, ~: 621) -NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 227750, ~: 665) -NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 644569, ~: 621) -NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 609217, ~: 665) -NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 223050, ~: 621) -NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 192888, ~: 665) +LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 3755, ~: 4168) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 755666, ~: 1237181) +NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 746970, ~: 1228054) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 270439, ~: 385776) +NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 268039, ~: 388286) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 746290, ~: 1245114) +NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 704851, ~: 1197000) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 261063, ~: 393709) +NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 225920, ~: 357232) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 753542, ~: 1238940) +NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 744289, ~: 1225764) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 268976, ~: 387535) +NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 265527, ~: 383357) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 744165, ~: 1246873) +NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 702170, ~: 1194710) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 259600, ~: 395468) +NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 223407, ~: 352303) PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 5705) PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 1757) PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 6803) diff --git a/src/LSSVMPair.sol b/src/LSSVMPair.sol index 67fd955..54c57a8 100644 --- a/src/LSSVMPair.sol +++ b/src/LSSVMPair.sol @@ -89,13 +89,13 @@ abstract contract LSSVMPair is PoolType _poolType = poolType(); if ((_poolType == PoolType.TOKEN) || (_poolType == PoolType.NFT)) { - require(_fee == 0, "Only Trade Pools can have nonzero fee"); + require(_fee == 0, "Only Trade Pools can have >0 fee"); assetRecipient = _assetRecipient; } else if (_poolType == PoolType.TRADE) { require(_fee < MAX_FEE, "Trade fee must be less than 90%"); require( _assetRecipient == address(0), - "Trade pools can't set asset recipient" + "Trade pools can't set recipient" ); fee = _fee; } @@ -147,7 +147,7 @@ abstract contract LSSVMPair is ); require( (numNFTs != 0) && (numNFTs <= _nft.balanceOf(address(this))), - "Ask for > 0 and <= balanceOf NFTs" + "Ask for >0 and <= balanceOf NFTs" ); } @@ -860,7 +860,7 @@ abstract contract LSSVMPair is // Prevent multicall from malicious frontend sneaking in ownership change require( owner() == msg.sender, - "Ownership cannot be changed in multicall" + "Owner can't change in multicall" ); } From 0c7ba3cdbe8a9d62dda887332141560174fd2f80 Mon Sep 17 00:00:00 2001 From: kadenzipfel Date: Thu, 2 Jun 2022 19:37:34 +0200 Subject: [PATCH 6/6] Use do while loop instead of for loop --- src/LSSVMPair.sol | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/LSSVMPair.sol b/src/LSSVMPair.sol index 54c57a8..3c8a124 100644 --- a/src/LSSVMPair.sol +++ b/src/LSSVMPair.sol @@ -665,7 +665,8 @@ abstract contract LSSVMPair is // If more than 1 NFT is being transfered, we can do a balance check instead of an ownership check, as pools are indifferent between NFTs from the same collection if (numNFTs > 1) { uint256 beforeBalance = _nft.balanceOf(_assetRecipient); - for (uint256 i = 0; i < numNFTs; ) { + uint256 i; + do { router.pairTransferNFTFrom( _nft, routerCaller, @@ -677,7 +678,7 @@ abstract contract LSSVMPair is unchecked { ++i; } - } + } while (i < numNFTs); require( (_nft.balanceOf(_assetRecipient) - beforeBalance) == numNFTs,