Merge pull request #30 from 0xacedia/path-independent-xyk

Path independent xyk
This commit is contained in:
owen
2022-08-11 22:08:11 -07:00
committed by GitHub
3 changed files with 223 additions and 180 deletions
+192 -164
View File
@@ -1,17 +1,45 @@
ExponentialCurveTest:test_getBuyInfoExample() (gas: 9089)
ExponentialCurveTest:test_getBuyInfoWithoutFee(uint128,uint64,uint8) (runs: 256, μ: 964, ~: 523)
ExponentialCurveTest:test_getSellInfoExample() (gas: 9022)
ExponentialCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 2387, ~: 618)
LinearCurveTest:test_getBuyInfoExample() (gas: 8628)
LinearCurveTest:test_getBuyInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 5977, ~: 7391)
LinearCurveTest:test_getSellInfoExample() (gas: 8477)
XykCurveTest:test_getBuyInfoCalculatesProtocolFee() (gas: 1816776)
LinearCurveTest:test_getSellInfoWithoutFee(uint128,uint128,uint8) (runs: 256, μ: 6297, ~: 8605)
XykCurveTest:test_getBuyInfoCalculatesProtocolFee() (gas: 1816714)
XykCurveTest:test_getBuyInfoCannotHave0NumItems() (gas: 6571)
XykCurveTest:test_getBuyInfoReturnsInputValue() (gas: 1792455)
XykCurveTest:test_getBuyInfoReturnsNewReserves() (gas: 1792496)
XykCurveTest:test_getSellInfoCalculatesProtocolFee() (gas: 1816653)
XykCurveTest:test_getBuyInfoReturnsInputValue() (gas: 1792393)
XykCurveTest:test_getBuyInfoReturnsNewReserves() (gas: 1792434)
XykCurveTest:test_getSellInfoCalculatesProtocolFee() (gas: 1816594)
XykCurveTest:test_getSellInfoCannotHave0NumItems() (gas: 6558)
XykCurveTest:test_getSellInfoReturnsNewReserves() (gas: 1792381)
XykCurveTest:test_getSellInfoReturnsOutputValue() (gas: 1792388)
XykCurveTest:test_swapNFTsForToken() (gas: 2061826)
XykCurveTest:test_swapTokenForAnyNFTs() (gas: 1833003)
XykCurveTest:test_getSellInfoReturnsNewReserves() (gas: 1792322)
XykCurveTest:test_getSellInfoReturnsOutputValue() (gas: 1792329)
XykCurveTest:test_swapNFTsForToken() (gas: 2062115)
XykCurveTest:test_swapTokenForAnyNFTs() (gas: 1833286)
NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 726287, ~: 1260038)
NoArbExponentialCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 789943, ~: 1248911)
NoArbExponentialCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 288828, ~: 408916)
NoArbExponentialCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 274155, ~: 409287)
NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 718910, ~: 1267971)
NoArbExponentialCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 746035, ~: 1217857)
NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 272128, ~: 416849)
NoArbExponentialCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 234282, ~: 378233)
NoArbLinearCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 801764, ~: 1245607)
NoArbLinearCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 707150, ~: 1220635)
NoArbLinearCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 302545, ~: 409526)
NoArbLinearCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 276941, ~: 403348)
NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 792837, ~: 1253540)
NoArbLinearCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 670246, ~: 1189581)
NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 281906, ~: 417459)
NoArbLinearCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 235913, ~: 372294)
NoArbXykCurveEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 699837, ~: 1262325)
NoArbXykCurveEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 701499, ~: 1251198)
NoArbXykCurveEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 225293, ~: 637)
NoArbXykCurveEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 250461, ~: 417564)
NoArbXykCurveMissingEnumerableERC20Test:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 691469, ~: 1270258)
NoArbXykCurveMissingEnumerableERC20Test:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 662836, ~: 1220144)
NoArbXykCurveMissingEnumerableETHTest:test_bondingCurveBuySellNoProfit(uint56,uint64,uint8) (runs: 256, μ: 212291, ~: 637)
NoArbXykCurveMissingEnumerableETHTest:test_bondingCurveSellBuyNoProfit(uint56,uint64,uint8) (runs: 256, μ: 214174, ~: 386510)
PAFExponentialCurveEnumerableERC20Test:testFail_callMint721() (gas: 19205)
PAFExponentialCurveEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFExponentialCurveEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18603)
@@ -261,8 +289,8 @@ PAFXykCurveEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18603)
PAFXykCurveEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22652)
PAFXykCurveEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFXykCurveEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27717)
PAFXykCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33332)
PAFXykCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63441)
PAFXykCurveEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33270)
PAFXykCurveEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63317)
PAFXykCurveEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756)
PAFXykCurveEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10733)
PAFXykCurveEnumerableERC20Test:testFail_transferOwnership() (gas: 18624)
@@ -281,7 +309,7 @@ PAFXykCurveEnumerableERC20Test:test_transferOwnership() (gas: 16099)
PAFXykCurveEnumerableERC20Test:test_verifyPoolParams() (gas: 48457)
PAFXykCurveEnumerableERC20Test:test_withdraw() (gas: 26781)
PAFXykCurveEnumerableERC20Test:test_withdraw1155() (gas: 61642)
PAFXykCurveEnumerableERC20Test:test_withdrawFees() (gas: 245049)
PAFXykCurveEnumerableERC20Test:test_withdrawFees() (gas: 244925)
PAFXykCurveEnumerableETHTest:testFail_callMint721() (gas: 19202)
PAFXykCurveEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10776)
PAFXykCurveEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18619)
@@ -291,8 +319,8 @@ PAFXykCurveEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18619)
PAFXykCurveEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22665)
PAFXykCurveEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFXykCurveEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27733)
PAFXykCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40029)
PAFXykCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57794)
PAFXykCurveEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 39967)
PAFXykCurveEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57670)
PAFXykCurveEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775)
PAFXykCurveEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10730)
PAFXykCurveEnumerableETHTest:testFail_transferOwnership() (gas: 18662)
@@ -311,7 +339,7 @@ PAFXykCurveEnumerableETHTest:test_transferOwnership() (gas: 16093)
PAFXykCurveEnumerableETHTest:test_verifyPoolParams() (gas: 41020)
PAFXykCurveEnumerableETHTest:test_withdraw() (gas: 18916)
PAFXykCurveEnumerableETHTest:test_withdraw1155() (gas: 61535)
PAFXykCurveEnumerableETHTest:test_withdrawFees() (gas: 223943)
PAFXykCurveEnumerableETHTest:test_withdrawFees() (gas: 223819)
PAFXykCurveMissingEnumerableERC20Test:testFail_callMint721() (gas: 19205)
PAFXykCurveMissingEnumerableERC20Test:testFail_changeAssetRecipientForTrade() (gas: 10757)
PAFXykCurveMissingEnumerableERC20Test:testFail_changeDeltaNotOwner() (gas: 18603)
@@ -321,8 +349,8 @@ PAFXykCurveMissingEnumerableERC20Test:testFail_changeSpotNotOwner() (gas: 18603)
PAFXykCurveMissingEnumerableERC20Test:testFail_multicallChangeOwnership() (gas: 22652)
PAFXykCurveMissingEnumerableERC20Test:testFail_reInitPool() (gas: 11109)
PAFXykCurveMissingEnumerableERC20Test:testFail_rescueTokensNotOwner() (gas: 27717)
PAFXykCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33323)
PAFXykCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63534)
PAFXykCurveMissingEnumerableERC20Test:testFail_swapForAnyNFTsPastBalance() (gas: 33261)
PAFXykCurveMissingEnumerableERC20Test:testFail_swapForNFTNotInPool() (gas: 63410)
PAFXykCurveMissingEnumerableERC20Test:testFail_tradePoolChangeAssetRecipient() (gas: 10756)
PAFXykCurveMissingEnumerableERC20Test:testFail_tradePoolChangeFeePastMax() (gas: 10733)
PAFXykCurveMissingEnumerableERC20Test:testFail_transferOwnership() (gas: 18624)
@@ -341,7 +369,7 @@ PAFXykCurveMissingEnumerableERC20Test:test_transferOwnership() (gas: 16099)
PAFXykCurveMissingEnumerableERC20Test:test_verifyPoolParams() (gas: 48428)
PAFXykCurveMissingEnumerableERC20Test:test_withdraw() (gas: 26781)
PAFXykCurveMissingEnumerableERC20Test:test_withdraw1155() (gas: 61642)
PAFXykCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 174859)
PAFXykCurveMissingEnumerableERC20Test:test_withdrawFees() (gas: 174735)
PAFXykCurveMissingEnumerableETHTest:testFail_callMint721() (gas: 19202)
PAFXykCurveMissingEnumerableETHTest:testFail_changeAssetRecipientForTrade() (gas: 10776)
PAFXykCurveMissingEnumerableETHTest:testFail_changeDeltaNotOwner() (gas: 18619)
@@ -351,8 +379,8 @@ PAFXykCurveMissingEnumerableETHTest:testFail_changeSpotNotOwner() (gas: 18619)
PAFXykCurveMissingEnumerableETHTest:testFail_multicallChangeOwnership() (gas: 22665)
PAFXykCurveMissingEnumerableETHTest:testFail_reInitPool() (gas: 11106)
PAFXykCurveMissingEnumerableETHTest:testFail_rescueTokensNotOwner() (gas: 27733)
PAFXykCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 40020)
PAFXykCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57887)
PAFXykCurveMissingEnumerableETHTest:testFail_swapForAnyNFTsPastBalance() (gas: 39958)
PAFXykCurveMissingEnumerableETHTest:testFail_swapForNFTNotInPool() (gas: 57763)
PAFXykCurveMissingEnumerableETHTest:testFail_tradePoolChangeAssetRecipient() (gas: 10775)
PAFXykCurveMissingEnumerableETHTest:testFail_tradePoolChangeFeePastMax() (gas: 10730)
PAFXykCurveMissingEnumerableETHTest:testFail_transferOwnership() (gas: 18662)
@@ -371,7 +399,7 @@ PAFXykCurveMissingEnumerableETHTest:test_transferOwnership() (gas: 16093)
PAFXykCurveMissingEnumerableETHTest:test_verifyPoolParams() (gas: 40991)
PAFXykCurveMissingEnumerableETHTest:test_withdraw() (gas: 18916)
PAFXykCurveMissingEnumerableETHTest:test_withdraw1155() (gas: 61535)
PAFXykCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 153753)
PAFXykCurveMissingEnumerableETHTest:test_withdrawFees() (gas: 153629)
RMPExponentialCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 538353)
RMPExponentialCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 644090)
RMPExponentialCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 635794)
@@ -396,18 +424,18 @@ RMPLinearCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas:
RMPLinearCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 610550)
RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 374474)
RMPLinearCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 377189)
RMPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 563788)
RMPXykCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 645455)
RMPXykCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 637159)
RMPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 542098)
RMPXykCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 615106)
RMPXykCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 608700)
RMPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 654495)
RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 414865)
RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 416044)
RMPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 632805)
RMPXykCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 389874)
RMPXykCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 392589)
RMPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 563198)
RMPXykCurveEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 644835)
RMPXykCurveEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 636539)
RMPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 541508)
RMPXykCurveEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 614176)
RMPXykCurveEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 607770)
RMPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 653905)
RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForAny5NFTs() (gas: 414369)
RMPXykCurveMissingEnumerableERC20Test:test_swapTokenForSpecific5NFTs() (gas: 415548)
RMPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 632215)
RMPXykCurveMissingEnumerableETHTest:test_swapTokenForAny5NFTs() (gas: 389130)
RMPXykCurveMissingEnumerableETHTest:test_swapTokenForSpecific5NFTs() (gas: 391845)
RRSExponentialCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 429206)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 396500)
RRSExponentialCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 267750)
@@ -472,38 +500,38 @@ RRSWARLinearCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs(
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 127449)
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 152760)
RRSWARLinearCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 155937)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 174094)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 195114)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196453)
RRSWARXykCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 165609)
RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 202695)
RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 203912)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 139795)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 148810)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 152103)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131310)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 156213)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159390)
RRSXykCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 426710)
RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 398617)
RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 266171)
RRSXykCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 451379)
RRSXykCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 389859)
RRSXykCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 400689)
RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 374940)
RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 238494)
RRSXykCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 423623)
RRSXykCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 362235)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 459868)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 407477)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 282706)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 347569)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 283991)
RRSXykCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 433847)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 383628)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 255029)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 319469)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 256011)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 173858)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 194866)
RRSWARXykCurveEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 196205)
RRSWARXykCurveEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 165373)
RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 202447)
RRSWARXykCurveEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 203664)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForToken() (gas: 139559)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAnyNFTs() (gas: 148562)
RRSWARXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForSpecificNFTs() (gas: 151855)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForToken() (gas: 131074)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAnyNFTs() (gas: 155965)
RRSWARXykCurveMissingEnumerableETHTest:test_robustSwapTokenForSpecificNFTs() (gas: 159142)
RRSXykCurveEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 426297)
RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 398254)
RRSXykCurveEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 265935)
RRSXykCurveEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 450945)
RRSXykCurveEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 389425)
RRSXykCurveEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 400276)
RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 374577)
RRSXykCurveEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 238258)
RRSXykCurveEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 423189)
RRSXykCurveEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 361801)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwap2NFTsForToken() (gas: 459455)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 407114)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 282470)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenFor2SpecificNFTs() (gas: 347135)
RRSXykCurveMissingEnumerableERC20Test:test_robustSwapTokenForAny2NFTs() (gas: 283557)
RRSXykCurveMissingEnumerableETHTest:test_robustSwap2NFTsForToken() (gas: 433434)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenAndTokenForNFTs() (gas: 383265)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapNFTsForTokenWithBondingCurveError() (gas: 254793)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenFor2SpecificNFTs() (gas: 319035)
RRSXykCurveMissingEnumerableETHTest:test_robustSwapTokenForAny2NFTs() (gas: 255577)
RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189353)
RSPExponentialCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 38024)
RSPExponentialCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 50020)
@@ -704,103 +732,103 @@ RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 184771)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 216784)
RSPWARLinearCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 269623)
RSPWARXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411233)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253687)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 252048)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 192127)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201967)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162386)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210967)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 183259)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231863)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353292)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410951)
RSPWARXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 403232)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 267383)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 266150)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183686)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171296)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168343)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 202067)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189569)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223349)
RSPWARXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 359248)
RSPWARXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 417309)
RSPWARXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 225836)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 217784)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 218099)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151726)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170512)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137982)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186563)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148703)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197307)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214855)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267287)
RSPWARXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 217835)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 231302)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 232029)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143285)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139841)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143761)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177485)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154841)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188621)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 220634)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 273473)
RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189640)
RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37633)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 31086)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48027)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44066)
RSPXykCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 527341)
RSPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 415596)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 200205)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 210179)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 177231)
RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162012)
RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182842)
RSPXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353002)
RSPXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410684)
RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161946)
RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37584)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 31083)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57699)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59455)
RSPXykCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 524871)
RSPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 388330)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 194876)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 205167)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149537)
RSPXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 140161)
RSPXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161356)
RSPXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 331150)
RSPXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 389246)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178465)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37633)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 30998)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 48018)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 44066)
RSPXykCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 549466)
RSPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 437745)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 173422)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 195158)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175656)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137608)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148286)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214565)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267020)
RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150771)
RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37584)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 30995)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57699)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59455)
RSPXykCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 546996)
RSPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 410479)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 167951)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 191521)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 147962)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115579)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126628)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 192536)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 245410)
RSPWARXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 411115)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 253504)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 251865)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 192009)
RSPWARXykCurveEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 201849)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 162262)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 210843)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 183135)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 231739)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 353168)
RSPWARXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410827)
RSPWARXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 403114)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 267138)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 265905)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 183568)
RSPWARXykCurveEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 171178)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 168157)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 201881)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 189383)
RSPWARXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 223163)
RSPWARXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 359062)
RSPWARXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 417123)
RSPWARXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 225718)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 217601)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 217916)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 151608)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForTokenWithProtocolFee() (gas: 170394)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137858)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 186439)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148579)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 197183)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214731)
RSPWARXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 267163)
RSPWARXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 217717)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 231057)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 231784)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 143167)
RSPWARXykCurveMissingEnumerableETHTest:test_swapSingleNFTForTokenWithProtocolFee() (gas: 139723)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 143575)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFTWithProtocolFee() (gas: 177299)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 154655)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFTWithProtocolFee() (gas: 188435)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 220448)
RSPWARXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 273287)
RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 189522)
RSPXykCurveEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37574)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 31089)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 47903)
RSPXykCurveEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 43942)
RSPXykCurveEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 526751)
RSPXykCurveEnumerableERC20Test:test_swap5NFTsForToken() (gas: 415478)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 200108)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 210082)
RSPXykCurveEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 177113)
RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 161888)
RSPXykCurveEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 182718)
RSPXykCurveEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 352878)
RSPXykCurveEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 410560)
RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 161828)
RSPXykCurveEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37525)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 31086)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57575)
RSPXykCurveEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59331)
RSPXykCurveEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 524281)
RSPXykCurveEnumerableETHTest:test_swap5NFTsForToken() (gas: 388212)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 194730)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 205020)
RSPXykCurveEnumerableETHTest:test_swapSingleNFTForToken() (gas: 149419)
RSPXykCurveEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 139975)
RSPXykCurveEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 161170)
RSPXykCurveEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 330964)
RSPXykCurveEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 389060)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForNonexistentToken() (gas: 178347)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37574)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForAnyNFTsPastBalance() (gas: 31001)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 47894)
RSPXykCurveMissingEnumerableERC20Test:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 43942)
RSPXykCurveMissingEnumerableERC20Test:testGas_swapSingleNFTForToken5Times() (gas: 548876)
RSPXykCurveMissingEnumerableERC20Test:test_swap5NFTsForToken() (gas: 437627)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForAnyNFT() (gas: 173325)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForSpecificNFT() (gas: 195037)
RSPXykCurveMissingEnumerableERC20Test:test_swapSingleNFTForToken() (gas: 175538)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleAnyNFT() (gas: 137484)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenForSingleSpecificNFT() (gas: 148162)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforAny5NFTs() (gas: 214441)
RSPXykCurveMissingEnumerableERC20Test:test_swapTokenforSpecific5NFTs() (gas: 266896)
RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForNonexistentToken() (gas: 150653)
RSPXykCurveMissingEnumerableETHTest:testFail_swapSingleNFTForTokenWithEmptyList() (gas: 37525)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForAnyNFTsPastBalance() (gas: 30998)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleAnyNFTSlippage() (gas: 57575)
RSPXykCurveMissingEnumerableETHTest:testFail_swapTokenForSingleSpecificNFTSlippage() (gas: 59331)
RSPXykCurveMissingEnumerableETHTest:testGas_swapSingleNFTForToken5Times() (gas: 546406)
RSPXykCurveMissingEnumerableETHTest:test_swap5NFTsForToken() (gas: 410361)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForAnyNFT() (gas: 167804)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForSpecificNFT() (gas: 191338)
RSPXykCurveMissingEnumerableETHTest:test_swapSingleNFTForToken() (gas: 147844)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleAnyNFT() (gas: 115393)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenForSingleSpecificNFT() (gas: 126442)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenforAny5NFTs() (gas: 192350)
RSPXykCurveMissingEnumerableETHTest:test_swapTokenforSpecific5NFTs() (gas: 245224)
+18 -10
View File
@@ -75,18 +75,22 @@ contract XykCurve is ICurve, CurveErrorCodes {
uint256 nftBalance = delta;
// calculate the amount to send in
inputValue = (numItems * tokenBalance) / (nftBalance - numItems);
uint256 inputValueWithoutFee = (numItems * tokenBalance) /
(nftBalance - numItems);
// add the fees to the amount to send in
protocolFee = inputValue.fmul(
protocolFee = inputValueWithoutFee.fmul(
protocolFeeMultiplier,
FixedPointMathLib.WAD
);
uint256 fee = inputValue.fmul(feeMultiplier, FixedPointMathLib.WAD);
inputValue += fee + protocolFee;
uint256 fee = inputValueWithoutFee.fmul(
feeMultiplier,
FixedPointMathLib.WAD
);
inputValue = inputValueWithoutFee + fee + protocolFee;
// set the new virtual reserves
newSpotPrice = uint128(spotPrice + inputValue - protocolFee); // token reserve
newSpotPrice = uint128(spotPrice + inputValueWithoutFee); // token reserve
newDelta = uint128(nftBalance - numItems); // nft reserve
// If we got all the way here, no math error happened
@@ -123,18 +127,22 @@ contract XykCurve is ICurve, CurveErrorCodes {
uint256 nftBalance = delta;
// calculate the amount to send out
outputValue = (numItems * tokenBalance) / (nftBalance + numItems);
uint256 outputValueWithoutFee = (numItems * tokenBalance) /
(nftBalance + numItems);
// subtract fees from amount to send out
protocolFee = outputValue.fmul(
protocolFee = outputValueWithoutFee.fmul(
protocolFeeMultiplier,
FixedPointMathLib.WAD
);
uint256 fee = outputValue.fmul(feeMultiplier, FixedPointMathLib.WAD);
outputValue -= fee + protocolFee;
uint256 fee = outputValueWithoutFee.fmul(
feeMultiplier,
FixedPointMathLib.WAD
);
outputValue = outputValueWithoutFee - fee - protocolFee;
// set the new virtual reserves
newSpotPrice = uint128(spotPrice - (outputValue + protocolFee)); // token reserve
newSpotPrice = uint128(spotPrice - outputValueWithoutFee); // token reserve
newDelta = uint128(nftBalance + numItems); // nft reserve
// If we got all the way here, no math error happened
+13 -6
View File
@@ -308,7 +308,7 @@ contract XykCurveTest is DSTest, ERC721Holder {
.getBuyNFTQuote(numItemsToBuy);
// act
ethPair.swapTokenForAnyNFTs{value: inputValue}(
uint256 inputAmount = ethPair.swapTokenForAnyNFTs{value: inputValue}(
numItemsToBuy,
inputValue,
address(this),
@@ -332,10 +332,14 @@ contract XykCurveTest is DSTest, ERC721Holder {
numItemsToBuy,
"Should have received NFTs"
);
uint256 withoutFeeInputAmount = (inputAmount * 1e18) / 103e16;
assertEq(
ethPair.spotPrice(),
uint128(address(ethPair).balance),
"Spot price should match eth balance after swap"
uint128(address(ethPair).balance) -
(withoutFeeInputAmount * 1e16) /
1e18,
"Spot price should match eth balance - fee after swap"
);
assertEq(
ethPair.delta(),
@@ -368,7 +372,7 @@ contract XykCurveTest is DSTest, ERC721Holder {
nft.setApprovalForAll(address(ethPair), true);
// act
ethPair.swapNFTsForToken(
uint256 outputAmount = ethPair.swapNFTsForToken(
idList,
outputValue,
payable(address(this)),
@@ -392,10 +396,13 @@ contract XykCurveTest is DSTest, ERC721Holder {
numItemsToSell,
"Should have sent NFTs"
);
uint256 withoutFeeOutputAmount = (outputAmount * 1e18) / 0.97e18;
assertEq(
ethPair.spotPrice(),
uint128(address(ethPair).balance),
"Spot price should match eth balance after swap"
uint128(address(ethPair).balance) -
((withoutFeeOutputAmount * 1e16) / 1e18),
"Spot price + fee should match eth balance after swap"
);
assertEq(
ethPair.delta(),