add interface for callback when transfering ownership and tests

This commit is contained in:
Owen
2022-04-08 16:43:06 -07:00
parent 4399e5556f
commit e7611178a3
6 changed files with 360 additions and 298 deletions
+296 -276
View File
@@ -1,227 +1,239 @@
ExponentialCurveTest:test_getBuyInfoExample() (gas: 9083)
ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256)
ExponentialCurveTest:test_getSellInfoExample() (gas: 9016)
ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256)
LinearCurveTest:test_getBuyInfoExample() (gas: 8622)
LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256)
LinearCurveTest:test_getSellInfoExample() (gas: 8471)
LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256)
NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256)
NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256)
PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 19280)
PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10738)
PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 16340)
PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10820)
PAFExponentialCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 16391)
PAFExponentialCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 16318)
PAFExponentialCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 20319)
PAFExponentialCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFExponentialCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 25409)
PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10648)
PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10732)
PAFExponentialCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 16317)
PAFExponentialCurveEnumerableERC20Test:testFail_withdraw() (gas: 24091)
PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 250327)
PAFExponentialCurveEnumerableERC20Test:test_callMint721() (gas: 173699)
PAFExponentialCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14695)
PAFExponentialCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12186)
PAFExponentialCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28855)
PAFExponentialCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52408)
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: 95634)
PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693)
PAFExponentialCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10754)
PAFExponentialCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18579)
PAFExponentialCurveEnumerableERC20Test:testFail_withdraw() (gas: 26353)
PAFExponentialCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 250029)
PAFExponentialCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15645)
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: 160930)
PAFExponentialCurveEnumerableERC20Test:test_transferOwnership() (gas: 15043)
PAFExponentialCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48482)
PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 26659)
PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 269314)
PAFExponentialCurveEnumerableETHTest:testFail_callMint721() (gas: 19277)
PAFExponentialCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFExponentialCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 16334)
PAFExponentialCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10795)
PAFExponentialCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 16385)
PAFExponentialCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 16334)
PAFExponentialCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 20310)
PAFExponentialCurveEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFExponentialCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 25425)
PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10667)
PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10707)
PAFExponentialCurveEnumerableETHTest:testFail_transferOwnership() (gas: 16355)
PAFExponentialCurveEnumerableETHTest:testFail_withdraw() (gas: 16276)
PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 187560)
PAFExponentialCurveEnumerableETHTest:test_callMint721() (gas: 173696)
PAFExponentialCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14695)
PAFExponentialCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12186)
PAFExponentialCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28852)
PAFExponentialCurveEnumerableETHTest:test_modifyPairParams() (gas: 52335)
PAFExponentialCurveEnumerableERC20Test:test_rescueTokens() (gas: 160996)
PAFExponentialCurveEnumerableERC20Test:test_transferCallback() (gas: 42799)
PAFExponentialCurveEnumerableERC20Test:test_transferOwnership() (gas: 16054)
PAFExponentialCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48504)
PAFExponentialCurveEnumerableERC20Test:test_withdraw() (gas: 26681)
PAFExponentialCurveEnumerableERC20Test:test_withdrawFees() (gas: 269372)
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: 65778)
PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712)
PAFExponentialCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10729)
PAFExponentialCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18617)
PAFExponentialCurveEnumerableETHTest:testFail_withdraw() (gas: 18538)
PAFExponentialCurveEnumerableETHTest:testGas_basicDeploy() (gas: 187229)
PAFExponentialCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15694)
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: 160863)
PAFExponentialCurveEnumerableETHTest:test_transferOwnership() (gas: 15062)
PAFExponentialCurveEnumerableETHTest:test_verifyPoolParams() (gas: 40981)
PAFExponentialCurveEnumerableETHTest:test_withdraw() (gas: 18914)
PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 263254)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19280)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10738)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 16340)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10824)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 16395)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 16318)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 20319)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 25409)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10648)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10736)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 16317)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 24091)
PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 250220)
PAFExponentialCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99288)
PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14695)
PAFExponentialCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12186)
PAFExponentialCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23458)
PAFExponentialCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52412)
PAFExponentialCurveEnumerableETHTest:test_rescueTokens() (gas: 160929)
PAFExponentialCurveEnumerableETHTest:test_transferCallback() (gas: 42818)
PAFExponentialCurveEnumerableETHTest:test_transferOwnership() (gas: 16048)
PAFExponentialCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41003)
PAFExponentialCurveEnumerableETHTest:test_withdraw() (gas: 18936)
PAFExponentialCurveEnumerableETHTest:test_withdrawFees() (gas: 263312)
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: 95727)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10758)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18579)
PAFExponentialCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26353)
PAFExponentialCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 249922)
PAFExponentialCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15645)
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: 112221)
PAFExponentialCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 15043)
PAFExponentialCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48453)
PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26659)
PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 199140)
PAFExponentialCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19277)
PAFExponentialCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFExponentialCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 16334)
PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10799)
PAFExponentialCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 16389)
PAFExponentialCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 16334)
PAFExponentialCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 20310)
PAFExponentialCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFExponentialCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 25425)
PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10667)
PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10711)
PAFExponentialCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 16355)
PAFExponentialCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 16276)
PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 187453)
PAFExponentialCurveMissingEnumerableETHTest:test_callMint721() (gas: 99285)
PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14695)
PAFExponentialCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12186)
PAFExponentialCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23455)
PAFExponentialCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52339)
PAFExponentialCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 112274)
PAFExponentialCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 42799)
PAFExponentialCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16054)
PAFExponentialCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48475)
PAFExponentialCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26681)
PAFExponentialCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 199198)
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: 65872)
PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712)
PAFExponentialCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10733)
PAFExponentialCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18617)
PAFExponentialCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18538)
PAFExponentialCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 187122)
PAFExponentialCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15694)
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: 112168)
PAFExponentialCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 15062)
PAFExponentialCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40952)
PAFExponentialCurveMissingEnumerableETHTest:test_withdraw() (gas: 18914)
PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 193081)
PAFLinearCurveEnumerableERC20Test:testFail_callMint721() (gas: 19280)
PAFLinearCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10738)
PAFLinearCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 16340)
PAFLinearCurveEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10820)
PAFLinearCurveEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 16391)
PAFLinearCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 16318)
PAFLinearCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 20319)
PAFLinearCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFLinearCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 25409)
PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10648)
PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10732)
PAFLinearCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 16317)
PAFLinearCurveEnumerableERC20Test:testFail_withdraw() (gas: 24091)
PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 250274)
PAFLinearCurveEnumerableERC20Test:test_callMint721() (gas: 173699)
PAFLinearCurveEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14695)
PAFLinearCurveEnumerableERC20Test:test_changeFeeRecipient() (gas: 12186)
PAFLinearCurveEnumerableERC20Test:test_getAllHeldNFTs() (gas: 28855)
PAFLinearCurveEnumerableERC20Test:test_modifyPairParams() (gas: 52355)
PAFExponentialCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112220)
PAFExponentialCurveMissingEnumerableETHTest:test_transferCallback() (gas: 42818)
PAFExponentialCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16048)
PAFExponentialCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40974)
PAFExponentialCurveMissingEnumerableETHTest:test_withdraw() (gas: 18936)
PAFExponentialCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 193139)
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: 95351)
PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693)
PAFLinearCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10754)
PAFLinearCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18579)
PAFLinearCurveEnumerableERC20Test:testFail_withdraw() (gas: 26353)
PAFLinearCurveEnumerableERC20Test:testGas_basicDeploy() (gas: 249976)
PAFLinearCurveEnumerableERC20Test:testGas_transferNoCallback() (gas: 15645)
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: 160930)
PAFLinearCurveEnumerableERC20Test:test_transferOwnership() (gas: 15043)
PAFLinearCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48482)
PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 26659)
PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 268770)
PAFLinearCurveEnumerableETHTest:testFail_callMint721() (gas: 19277)
PAFLinearCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFLinearCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 16334)
PAFLinearCurveEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10795)
PAFLinearCurveEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 16385)
PAFLinearCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 16334)
PAFLinearCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 20310)
PAFLinearCurveEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFLinearCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 25425)
PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10667)
PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10707)
PAFLinearCurveEnumerableETHTest:testFail_transferOwnership() (gas: 16355)
PAFLinearCurveEnumerableETHTest:testFail_withdraw() (gas: 16276)
PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 187507)
PAFLinearCurveEnumerableETHTest:test_callMint721() (gas: 173696)
PAFLinearCurveEnumerableETHTest:test_changeFeeMultiplier() (gas: 14695)
PAFLinearCurveEnumerableETHTest:test_changeFeeRecipient() (gas: 12186)
PAFLinearCurveEnumerableETHTest:test_getAllHeldNFTs() (gas: 28852)
PAFLinearCurveEnumerableETHTest:test_modifyPairParams() (gas: 52282)
PAFLinearCurveEnumerableERC20Test:test_rescueTokens() (gas: 160996)
PAFLinearCurveEnumerableERC20Test:test_transferCallback() (gas: 42799)
PAFLinearCurveEnumerableERC20Test:test_transferOwnership() (gas: 16054)
PAFLinearCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48504)
PAFLinearCurveEnumerableERC20Test:test_withdraw() (gas: 26681)
PAFLinearCurveEnumerableERC20Test:test_withdrawFees() (gas: 268828)
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: 65495)
PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712)
PAFLinearCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10729)
PAFLinearCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18617)
PAFLinearCurveEnumerableETHTest:testFail_withdraw() (gas: 18538)
PAFLinearCurveEnumerableETHTest:testGas_basicDeploy() (gas: 187176)
PAFLinearCurveEnumerableETHTest:testGas_transferNoCallback() (gas: 15694)
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: 160863)
PAFLinearCurveEnumerableETHTest:test_transferOwnership() (gas: 15062)
PAFLinearCurveEnumerableETHTest:test_verifyPoolParams() (gas: 40981)
PAFLinearCurveEnumerableETHTest:test_withdraw() (gas: 18914)
PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 262710)
PAFLinearCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19280)
PAFLinearCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10738)
PAFLinearCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 16340)
PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeAboveMax() (gas: 10824)
PAFLinearCurveMissingEnumerableERC20Test:testFail_changeFeeNotOwner() (gas: 16395)
PAFLinearCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 16318)
PAFLinearCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 20319)
PAFLinearCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFLinearCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 25409)
PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10648)
PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10736)
PAFLinearCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 16317)
PAFLinearCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 24091)
PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 250167)
PAFLinearCurveMissingEnumerableERC20Test:test_callMint721() (gas: 99288)
PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeMultiplier() (gas: 14695)
PAFLinearCurveMissingEnumerableERC20Test:test_changeFeeRecipient() (gas: 12186)
PAFLinearCurveMissingEnumerableERC20Test:test_getAllHeldNFTs() (gas: 23458)
PAFLinearCurveMissingEnumerableERC20Test:test_modifyPairParams() (gas: 52359)
PAFLinearCurveEnumerableETHTest:test_rescueTokens() (gas: 160929)
PAFLinearCurveEnumerableETHTest:test_transferCallback() (gas: 42818)
PAFLinearCurveEnumerableETHTest:test_transferOwnership() (gas: 16048)
PAFLinearCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41003)
PAFLinearCurveEnumerableETHTest:test_withdraw() (gas: 18936)
PAFLinearCurveEnumerableETHTest:test_withdrawFees() (gas: 262768)
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: 95444)
PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10693)
PAFLinearCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10758)
PAFLinearCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18579)
PAFLinearCurveMissingEnumerableERC20Test:testFail_withdraw() (gas: 26353)
PAFLinearCurveMissingEnumerableERC20Test:testGas_basicDeploy() (gas: 249869)
PAFLinearCurveMissingEnumerableERC20Test:testGas_transferNoCallback() (gas: 15645)
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: 112221)
PAFLinearCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 15043)
PAFLinearCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48453)
PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26659)
PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198596)
PAFLinearCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19277)
PAFLinearCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFLinearCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 16334)
PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeAboveMax() (gas: 10799)
PAFLinearCurveMissingEnumerableETHTest:testFail_changeFeeNotOwner() (gas: 16389)
PAFLinearCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 16334)
PAFLinearCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 20310)
PAFLinearCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFLinearCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 25425)
PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10667)
PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10711)
PAFLinearCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 16355)
PAFLinearCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 16276)
PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 187400)
PAFLinearCurveMissingEnumerableETHTest:test_callMint721() (gas: 99285)
PAFLinearCurveMissingEnumerableETHTest:test_changeFeeMultiplier() (gas: 14695)
PAFLinearCurveMissingEnumerableETHTest:test_changeFeeRecipient() (gas: 12186)
PAFLinearCurveMissingEnumerableETHTest:test_getAllHeldNFTs() (gas: 23455)
PAFLinearCurveMissingEnumerableETHTest:test_modifyPairParams() (gas: 52286)
PAFLinearCurveMissingEnumerableERC20Test:test_rescueTokens() (gas: 112274)
PAFLinearCurveMissingEnumerableERC20Test:test_transferCallback() (gas: 42799)
PAFLinearCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16054)
PAFLinearCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48475)
PAFLinearCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26681)
PAFLinearCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 198654)
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: 65589)
PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10712)
PAFLinearCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10733)
PAFLinearCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18617)
PAFLinearCurveMissingEnumerableETHTest:testFail_withdraw() (gas: 18538)
PAFLinearCurveMissingEnumerableETHTest:testGas_basicDeploy() (gas: 187069)
PAFLinearCurveMissingEnumerableETHTest:testGas_transferNoCallback() (gas: 15694)
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: 112168)
PAFLinearCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 15062)
PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40952)
PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 18914)
PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192537)
PAFLinearCurveMissingEnumerableETHTest:test_rescueTokens() (gas: 112220)
PAFLinearCurveMissingEnumerableETHTest:test_transferCallback() (gas: 42818)
PAFLinearCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16048)
PAFLinearCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40974)
PAFLinearCurveMissingEnumerableETHTest:test_withdraw() (gas: 18936)
PAFLinearCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 192595)
RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 540750)
RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 646752)
RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 637883)
@@ -302,110 +314,118 @@ RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs(
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 127834)
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 153085)
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 156075)
RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForToken() (gas: 189801)
RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189822)
RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37997)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49862)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48659)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44763)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44719)
RSPExponentialCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 501214)
RSPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 410521)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 198875)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 210463)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 198946)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 210530)
RSPExponentialCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 172001)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162084)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182958)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353704)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411363)
RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForToken() (gas: 162113)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162151)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 183003)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 354039)
RSPExponentialCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 411676)
RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 162134)
RSPExponentialCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37948)
RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76380)
RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58305)
RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60193)
RSPExponentialCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60149)
RSPExponentialCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 498789)
RSPExponentialCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 383288)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 193824)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 204610)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 193895)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 204677)
RSPExponentialCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 144316)
RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140596)
RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161878)
RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 332664)
RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 390780)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForToken() (gas: 178636)
RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140663)
RSPExponentialCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161923)
RSPExponentialCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 332999)
RSPExponentialCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 391093)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178657)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37997)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49765)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48650)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44763)
RSPExponentialCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44719)
RSPExponentialCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 523389)
RSPExponentialCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 432720)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 172111)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 199053)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 172182)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 199120)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 170436)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137694)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148413)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215313)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267726)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForToken() (gas: 150948)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137761)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148458)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 215648)
RSPExponentialCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 268039)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150969)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37948)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 76283)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58305)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60193)
RSPExponentialCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60149)
RSPExponentialCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 520964)
RSPExponentialCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 405487)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 166913)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 193023)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 166984)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 193090)
RSPExponentialCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 142751)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 116023)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 127156)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 194091)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 246966)
RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForToken() (gas: 185495)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 116090)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 127201)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 194426)
RSPExponentialCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 247279)
RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 185516)
RSPLinearCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37901)
RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49131)
RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48657)
RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44761)
RSPLinearCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44717)
RSPLinearCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 491364)
RSPLinearCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 405862)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 195506)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 205429)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 195577)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 205483)
RSPLinearCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 167791)
RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 157968)
RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178842)
RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 348690)
RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406349)
RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForToken() (gas: 157807)
RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 158035)
RSPLinearCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 178887)
RSPLinearCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 349025)
RSPLinearCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 406662)
RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 157828)
RSPLinearCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37852)
RSPLinearCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74918)
RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58303)
RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60191)
RSPLinearCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60147)
RSPLinearCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 488939)
RSPLinearCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 378629)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 190454)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 200746)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 190525)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 200800)
RSPLinearCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 140106)
RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 136479)
RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 157761)
RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 327200)
RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 385316)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForToken() (gas: 174330)
RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 136546)
RSPLinearCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 157806)
RSPLinearCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 327535)
RSPLinearCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 385629)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 174351)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37901)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 49034)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48648)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44761)
RSPLinearCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44717)
RSPLinearCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 513539)
RSPLinearCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 428061)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 168742)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 192042)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 168813)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 192109)
RSPLinearCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 166226)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133578)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144297)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210299)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 262712)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForToken() (gas: 146642)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 133645)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 144342)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 210634)
RSPLinearCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 263025)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 146663)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37852)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 74821)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 58303)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60191)
RSPLinearCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 60147)
RSPLinearCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 511114)
RSPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 400828)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 163544)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 188811)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 163615)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 188878)
RSPLinearCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 138541)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 111906)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 123039)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 188627)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 241502)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 111973)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 123084)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 188962)
RSPLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 241815)
RSPWARExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 406560)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253879)
RSPWARExponentialCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 252155)
+2 -2
View File
@@ -3,7 +3,7 @@ pragma solidity ^0.8.0;
import {ERC20} from "solmate/tokens/ERC20.sol";
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import {Ownable} from "./lib/Ownable.sol";
import {OwnableWithTransferCallback} from "./lib/OwnableWithTransferCallback.sol";
import {ReentrancyGuard} from "./lib/ReentrancyGuard.sol";
import {ICurve} from "./bonding-curves/ICurve.sol";
import {LSSVMRouter} from "./LSSVMRouter.sol";
@@ -13,7 +13,7 @@ import {CurveErrorCodes} from "./bonding-curves/CurveErrorCodes.sol";
/// @title The base contract for an NFT/TOKEN AMM pair
/// @author boredGenius and 0xmons
/// @notice This implements the core swap logic from NFT to TOKEN
abstract contract LSSVMPair is Ownable, ReentrancyGuard {
abstract contract LSSVMPair is OwnableWithTransferCallback, ReentrancyGuard {
enum PoolType {
TOKEN,
NFT,
+7
View File
@@ -0,0 +1,7 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.4;
interface IOwnershipTransferCallback {
function onOwnershipTransfer() external;
}
@@ -2,16 +2,23 @@
pragma solidity ^0.8.4;
abstract contract Ownable {
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
import {IOwnershipTransferCallback} from "./IOwnershipTransferCallback.sol";
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
abstract contract OwnableWithTransferCallback {
using ERC165Checker for address;
using Address for address;
bytes4 constant TRANSFER_CALLBACK =
type(IOwnershipTransferCallback).interfaceId;
error Ownable_NotOwner();
error Ownable_NewOwnerZeroAddress();
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
event OwnershipTransferred(address indexed newOwner);
/// @dev Initializes the contract setting the deployer as the initial owner.
function __Ownable_init(address initialOwner) internal {
@@ -30,17 +37,26 @@ abstract contract Ownable {
}
/// @dev Transfers ownership of the contract to a new account (`newOwner`).
/// Disallows setting to the zero address as a way to more gas-efficiently avoid reinitialization
/// When ownership is transferred, if the new owner implements IOwnershipTransferCallback, we make a callback
/// Can only be called by the current owner.
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) revert Ownable_NewOwnerZeroAddress();
_transferOwnership(newOwner);
// Call the on ownership transfer callback if it exists
// @dev try/catch is around 5k gas cheaper than doing ERC165 checking
if (newOwner.isContract()) {
try
IOwnershipTransferCallback(newOwner).onOwnershipTransfer()
{} catch (bytes memory) {}
}
}
/// @dev Transfers ownership of the contract to a new account (`newOwner`).
/// Internal function without access restriction.
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
emit OwnershipTransferred(newOwner);
}
}
+14
View File
@@ -0,0 +1,14 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.0;
import {IOwnershipTransferCallback} from "../lib/IOwnershipTransferCallback.sol";
contract TestPairManager is IOwnershipTransferCallback {
uint256 public isCallbackSet = 0;
constructor() {}
function onOwnershipTransfer() public {
isCallbackSet = 1;
}
}
+18 -13
View File
@@ -19,6 +19,7 @@ import {LSSVMPairMissingEnumerableERC20} from "../../LSSVMPairMissingEnumerableE
import {Configurable} from "../mixins/Configurable.sol";
import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
import {Test721} from "../../mocks/Test721.sol";
import {TestPairManager} from "../../mocks/TestPairManager.sol";
abstract contract PairAndFactory is DSTest, ERC721Holder, Configurable {
uint128 delta = 1.1 ether;
@@ -33,6 +34,7 @@ abstract contract PairAndFactory is DSTest, ERC721Holder, Configurable {
address payable constant feeRecipient = payable(address(69));
uint256 constant protocolFeeMultiplier = 3e15;
LSSVMPair pair;
TestPairManager pairManager;
function setUp() public {
bondingCurve = setupCurve();
@@ -72,6 +74,7 @@ abstract contract PairAndFactory is DSTest, ERC721Holder, Configurable {
testERC20 = ERC20(address(new Test20()));
IMintable(address(testERC20)).mint(address(pair), 1 ether);
pairManager = new TestPairManager();
}
function testGas_basicDeploy() public {
@@ -97,6 +100,16 @@ abstract contract PairAndFactory is DSTest, ERC721Holder, Configurable {
function test_transferOwnership() public {
pair.transferOwnership(payable(address(2)));
assertEq(pair.owner(), address(2));
}
function test_transferCallback() public {
pair.transferOwnership(address(pairManager));
assertEq(pairManager.isCallbackSet(), 1);
}
function testGas_transferNoCallback() public {
pair.transferOwnership(address(pair));
}
function testFail_transferOwnership() public {
@@ -247,12 +260,8 @@ abstract contract PairAndFactory is DSTest, ERC721Holder, Configurable {
}
function testFail_swapForNFTNotInPool() public {
(
,
uint128 newSpotPrice,
,
uint256 inputAmount,
) = bondingCurve.getBuyInfo(
(, uint128 newSpotPrice, , uint256 inputAmount, ) = bondingCurve
.getBuyInfo(
spotPrice,
delta,
numItems + 1,
@@ -274,12 +283,8 @@ abstract contract PairAndFactory is DSTest, ERC721Holder, Configurable {
}
function testFail_swapForAnyNFTsPastBalance() public {
(
,
uint128 newSpotPrice,
,
uint256 inputAmount,
) = bondingCurve.getBuyInfo(
(, uint128 newSpotPrice, , uint256 inputAmount, ) = bondingCurve
.getBuyInfo(
spotPrice,
delta,
numItems + 1,
@@ -287,7 +292,7 @@ abstract contract PairAndFactory is DSTest, ERC721Holder, Configurable {
protocolFeeMultiplier
);
// buy any NFTs past pool inventory
// buy any NFTs past pool inventory
pair.swapTokenForAnyNFTs{value: modifyInputAmount(inputAmount)}(
numItems + 1,
inputAmount,