Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,8 @@ SETTLEMENT=0x9008D19f58AAbD9eD0D60971565AA8510560ab41
# SAFE=
# TWAP=

# Owner of the rotatable handlers, read by deploy_GnosisStack.
# ADMIN=

# Read by dev/verify-contracts.sh, and by forge script --verify.
# ETHERSCAN_API_KEY=
88 changes: 56 additions & 32 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -8,36 +8,36 @@ ComposableCowDescriptorDocTest:test_descriptor_SelectorMatchesDeclaredName() (ga
ComposableCowDescriptorDocTest:test_descriptor_SelectorsAreDistinct() (gas: 163733)
ComposableCowDiscoveryTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11305)
ComposableCowDiscoveryTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18325)
ComposableCowDiscoveryTest:test_descriptor_CommittedAdvertisesAndRoundTrips() (gas: 2033244)
ComposableCowDiscoveryTest:test_descriptor_ConstructorEmitsUpdate() (gas: 2027846)
ComposableCowDiscoveryTest:test_descriptor_UncommittedDoesNotAdvertise() (gas: 1931847)
ComposableCowDiscoveryTest:test_module_CommittedAdvertisesAndRoundTrips() (gas: 1498629)
ComposableCowDiscoveryTest:test_module_ContentAddressedNeedsNoURI() (gas: 1398108)
ComposableCowDiscoveryTest:test_module_NeedsInputSignal() (gas: 1405789)
ComposableCowDiscoveryTest:test_module_RevertsContentAddressedWithURI() (gas: 39723)
ComposableCowDiscoveryTest:test_module_RevertsSha256WithoutURI() (gas: 38899)
ComposableCowDiscoveryTest:test_module_RevertsUncommittedURI() (gas: 40273)
ComposableCowDiscoveryTest:test_module_UncommittedDoesNotAdvertise() (gas: 1395475)
ComposableCowDiscoveryTest:test_descriptor_CommittedAdvertisesAndRoundTrips() (gas: 2061293)
ComposableCowDiscoveryTest:test_descriptor_ConstructorEmitsUpdate() (gas: 2055583)
ComposableCowDiscoveryTest:test_descriptor_UncommittedDoesNotAdvertise() (gas: 1919984)
ComposableCowDiscoveryTest:test_module_CommittedAdvertisesAndRoundTrips() (gas: 1526676)
ComposableCowDiscoveryTest:test_module_ContentAddressedNeedsNoURI() (gas: 1406046)
ComposableCowDiscoveryTest:test_module_NeedsInputSignal() (gas: 1413627)
ComposableCowDiscoveryTest:test_module_RevertsContentAddressedWithURI() (gas: 40179)
ComposableCowDiscoveryTest:test_module_RevertsSha256WithoutURI() (gas: 39351)
ComposableCowDiscoveryTest:test_module_RevertsUncommittedURI() (gas: 40730)
ComposableCowDiscoveryTest:test_module_UncommittedDoesNotAdvertise() (gas: 1383610)
ComposableCowForwarderTest:test_ERC1271Forwarder_isValidSignature_RevertsOnBadHash() (gas: 630770)
ComposableCowForwarderTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11443)
ComposableCowForwarderTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18481)
ComposableCowGatTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11487)
ComposableCowGatTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18657)
ComposableCowGatTest:test_generateOrder_FuzzContext(address,address,address,uint256,uint256,uint256,uint256,bool) (runs: 256, μ: 121422, ~: 121420)
ComposableCowGatTest:test_generateOrder_FuzzContext(address,address,address,uint256,uint256,uint256,uint256,bool) (runs: 256, μ: 121422, ~: 121422)
ComposableCowGatTest:test_generateOrder_FuzzRevertBeforeStartTime(uint256,uint256) (runs: 256, μ: 21804, ~: 21804)
ComposableCowGatTest:test_generateOrder_FuzzRevertBelowMinBalance(uint256,uint256) (runs: 256, μ: 114446, ~: 114454)
ComposableCowGatTest:test_generateOrder_FuzzRevertTooLowOutput(uint256,uint256,uint256) (runs: 256, μ: 124256, ~: 124320)
ComposableCowGatTest:test_generateOrder_FuzzRevertBelowMinBalance(uint256,uint256) (runs: 256, μ: 114446, ~: 114453)
ComposableCowGatTest:test_generateOrder_FuzzRevertTooLowOutput(uint256,uint256,uint256) (runs: 256, μ: 124242, ~: 124309)
ComposableCowGatTest:test_generateOrder_RevertZeroAmount() (gas: 113369)
ComposableCowGatTest:test_generateOrder_e2e_Fuzz(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 299418, ~: 299344)
ComposableCowGatTest:test_generateOrder_e2e_FuzzWithPriceChecker(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 308759, ~: 308596)
ComposableCowGatTest:test_generateOrder_e2e_Fuzz(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 299402, ~: 299342)
ComposableCowGatTest:test_generateOrder_e2e_FuzzWithPriceChecker(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 308748, ~: 308594)
ComposableCowGatTest:test_pollHints_SingleShot() (gas: 16098)
ComposableCowGatTest:test_settle_e2e() (gas: 491417)
ComposableCowGatTest:test_verify_e2e_fuzz(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 137200, ~: 137037)
ComposableCowGatTest:test_verify_e2e_fuzz(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 137188, ~: 137035)
ComposableCowGuardsTest:test_BaseSwapGuard_supportsInterface() (gas: 138710)
ComposableCowGuardsTest:test_ReceiverLock_verify_FuzzRevertsWhenReceiverNotSelf(address) (runs: 256, μ: 299499, ~: 299499)
ComposableCowGuardsTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11487)
ComposableCowGuardsTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18546)
ComposableCowGuardsTest:test_setSwapGuard_FuzzSetAndEmit(address,address) (runs: 256, μ: 31254, ~: 31236)
ComposableCowGuardsTest:test_setSwapGuard_FuzzSetAndEmit(address,address) (runs: 256, μ: 31255, ~: 31236)
ComposableCowGuardsTest:test_setSwapGuard_e2e() (gas: 1030509)
ComposableCowManifestTest:test_PSS_ManifestPage_NotFundedCarriesStatus() (gas: 37596)
ComposableCowManifestTest:test_PSS_ManifestPage_WithBalance() (gas: 125366)
Expand All @@ -60,6 +60,16 @@ ComposableCowManifestTest:test_manifestPage_EmptyPageCarriesWaitReason() (gas: 1
ComposableCowManifestTest:test_manifestPage_OutOfRangeTerminates() (gas: 1545516)
ComposableCowManifestTest:test_manifest_DoesNotPerturbGeneratorInterfaceId() (gas: 855)
ComposableCowManifestTest:test_manifest_SupportsInterface() (gas: 1538778)
ComposableCowOwnedTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11305)
ComposableCowOwnedTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18259)
ComposableCowOwnedTest:test_owned_EnforcesURIInvariants() (gas: 25494)
ComposableCowOwnedTest:test_owned_OrderGenerationIsUnchanged() (gas: 1937389)
ComposableCowOwnedTest:test_owned_RevertsForStranger() (gas: 18066)
ComposableCowOwnedTest:test_owned_RotationReplacesCommitment() (gas: 116398)
ComposableCowOwnedTest:test_owned_SetDescriptorAdvertisesAndRoundTrips() (gas: 49354)
ComposableCowOwnedTest:test_owned_SetModuleIsIndependentOfDescriptor() (gas: 156075)
ComposableCowOwnedTest:test_owned_TransferIsTwoStep() (gas: 40006)
ComposableCowOwnedTest:test_owned_UncommittedOnDeploy() (gas: 21451)
ComposableCowPollTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11531)
ComposableCowPollTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 19119)
ComposableCowPollTest:test_checkOrder_ComposesFillOverlay() (gas: 1833891)
Expand All @@ -80,9 +90,9 @@ ComposableCowPollTest:test_poll_DecodesPollNeedsOffchainInput() (gas: 1402236)
ComposableCowPollTest:test_poll_DecodesPollTryAtBlock() (gas: 1330995)
ComposableCowPollTest:test_poll_DecodesPollTryAtTimestamp() (gas: 1330907)
ComposableCowPollTest:test_poll_DecodesPollTryNextBlock() (gas: 1290285)
ComposableCowPollTest:test_poll_FuzzOrderNotValid(bytes4) (runs: 256, μ: 1283632, ~: 1291095)
ComposableCowPollTest:test_poll_FuzzPollTryAtBlock(uint256,bytes4) (runs: 256, μ: 1323738, ~: 1330890)
ComposableCowPollTest:test_poll_FuzzPollTryAtTimestamp(uint256,bytes4) (runs: 256, μ: 1324266, ~: 1331418)
ComposableCowPollTest:test_poll_FuzzOrderNotValid(bytes4) (runs: 256, μ: 1283943, ~: 1291095)
ComposableCowPollTest:test_poll_FuzzPollTryAtBlock(uint256,bytes4) (runs: 256, μ: 1323272, ~: 1330890)
ComposableCowPollTest:test_poll_FuzzPollTryAtTimestamp(uint256,bytes4) (runs: 256, μ: 1323800, ~: 1331418)
ComposableCowPollTest:test_poll_NeedsInputHandlerPostsWithInput() (gas: 1404879)
ComposableCowPollTest:test_poll_PanicMapsToTryNextBlock() (gas: 1294536)
ComposableCowPollTest:test_poll_ReturnsPostOnValidOrder() (gas: 1763768)
Expand All @@ -107,7 +117,7 @@ ComposableCowProofTest:test_setRoot_RevertsZeroRootWithBlobs() (gas: 13434)
ComposableCowProofTest:test_setRoot_RevertsZeroRootWithUris() (gas: 12784)
ComposableCowProofTest:test_setRoot_ZeroRootClears() (gas: 32934)
ComposableCowStopLossTest:test_OracleNormalisesPrice_concrete() (gas: 27435)
ComposableCowStopLossTest:test_OracleNormalisesPrice_fuzz(uint8,uint8,uint8,uint8) (runs: 256, μ: 29593, ~: 29613)
ComposableCowStopLossTest:test_OracleNormalisesPrice_fuzz(uint8,uint8,uint8,uint8) (runs: 256, μ: 29592, ~: 29613)
ComposableCowStopLossTest:test_OracleRevertOnExpiredOrder_fuzz(uint32,uint32) (runs: 256, μ: 23185, ~: 23185)
ComposableCowStopLossTest:test_OracleRevertOnInvalidPrice_fuzz(int256,int256) (runs: 256, μ: 36635, ~: 36635)
ComposableCowStopLossTest:test_OracleRevertOnStalePrice_fuzz(uint256,uint256,uint256) (runs: 256, μ: 25348, ~: 25348)
Expand All @@ -118,15 +128,15 @@ ComposableCowStopLossTest:test_generateOrder_RevertZeroAmount() (gas: 22286)
ComposableCowStopLossTest:test_pollHints_SingleShot() (gas: 15780)
ComposableCowStopLossTest:test_strikePriceMet_fuzz(int256,int256,int256,uint32) (runs: 256, μ: 29077, ~: 29077)
ComposableCowStopLossTest:test_strikePriceNotMet_concrete() (gas: 26555)
ComposableCowTatTest:test_BalanceMet_fuzz(address,uint256,bytes32,uint256) (runs: 256, μ: 113402, ~: 113386)
ComposableCowTatTest:test_BalanceMet_fuzz(address,uint256,bytes32,uint256) (runs: 256, μ: 113402, ~: 113384)
ComposableCowTatTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11283)
ComposableCowTatTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18177)
ComposableCowTatTest:test_generateOrder_FuzzRevertBelowThreshold(uint256,uint256) (runs: 256, μ: 111617, ~: 111620)
ComposableCowTatTest:test_generateOrder_FuzzRevertBelowThreshold(uint256,uint256) (runs: 256, μ: 111619, ~: 111626)
ComposableCowTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11575)
ComposableCowTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18877)
ComposableCowTest:test_createAndRemove_FuzzSetAndEmit(address,address,bytes32,bytes) (runs: 256, μ: 39997, ~: 39883)
ComposableCowTest:test_createAndRemove_FuzzSetAndEmit(address,address,bytes32,bytes) (runs: 256, μ: 39999, ~: 39883)
ComposableCowTest:test_createAndRemove_e2e() (gas: 468135)
ComposableCowTest:test_createWithContextAndRemove_FuzzSetAndEmit(address,address,bytes32,bytes,bytes32) (runs: 256, μ: 63661, ~: 63592)
ComposableCowTest:test_createWithContextAndRemove_FuzzSetAndEmit(address,address,bytes32,bytes,bytes32) (runs: 256, μ: 63662, ~: 63596)
ComposableCowTest:test_create_RevertOnInvalidHandler() (gas: 10433)
ComposableCowTest:test_getTradeableOrderWithSignature_FuzzRevertInvalidProof(address,bytes32[],bytes32,address,bytes32,bytes) (runs: 256, μ: 97007, ~: 96804)
ComposableCowTest:test_getTradeableOrderWithSignature_FuzzRevertInvalidSingleOrder(address,address,bytes32,bytes) (runs: 256, μ: 18659, ~: 18642)
Expand All @@ -135,25 +145,25 @@ ComposableCowTest:test_getTradeableOrderWithSignature_ReturnsValidPayloadForSafe
ComposableCowTest:test_getTradeableOrderWithSignature_RevertInterfaceNotSupported() (gas: 52457)
ComposableCowTest:test_isValidSafeSignature_BaseConditionalOrder_RevertOnInvalidHash() (gas: 60746)
ComposableCowTest:test_isValidSafeSignature_FuzzPassesContextToHandler(address,bytes32) (runs: 256, μ: 57671, ~: 57671)
ComposableCowTest:test_isValidSafeSignature_FuzzRevertInvalidProof(address,bytes32[],bytes32,address,bytes32,bytes) (runs: 256, μ: 98629, ~: 98333)
ComposableCowTest:test_isValidSafeSignature_FuzzRevertInvalidSingleOrder(address,address,bytes32,bytes) (runs: 256, μ: 18637, ~: 18615)
ComposableCowTest:test_isValidSafeSignature_FuzzRevertInvalidProof(address,bytes32[],bytes32,address,bytes32,bytes) (runs: 256, μ: 98630, ~: 98333)
ComposableCowTest:test_isValidSafeSignature_FuzzRevertInvalidSingleOrder(address,address,bytes32,bytes) (runs: 256, μ: 18638, ~: 18615)
ComposableCowTest:test_remove_EmitsConditionalOrderRemoved() (gas: 36281)
ComposableCowTest:test_remove_FuzzEmitsEvent(address,bytes32) (runs: 256, μ: 31569, ~: 31544)
ComposableCowTest:test_safeSignaturePayload_SelectorMatchesMuxerMagicValue() (gas: 1145)
ComposableCowTest:test_setRootWithContext_FuzzSetAndEmit(address,bytes32,bytes32) (runs: 256, μ: 73696, ~: 73774)
ComposableCowTest:test_setRootWithContext_e2e() (gas: 13599638)
ComposableCowTest:test_setRoot_FuzzSetAndEmit(address,bytes32) (runs: 256, μ: 41952, ~: 42105)
ComposableCowTest:test_setRoot_FuzzSetAndEmit(address,bytes32) (runs: 256, μ: 42028, ~: 42105)
ComposableCowTest:test_setRoot_e2e() (gas: 13568277)
ComposableCowTwapTest:test_SetUpState_ComposableCowDomainSeparator_is_set() (gas: 11488)
ComposableCowTwapTest:test_SetUpState_ComposableCowDomainVerifier_is_set() (gas: 18987)
ComposableCowTwapTest:test_TWAPOrderMathLib_calculateValidTo(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 12642, ~: 12389)
ComposableCowTwapTest:test_TWAPOrderMathLib_calculateValidTo(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 12636, ~: 12389)
ComposableCowTwapTest:test_describeOrder_RevertOnZeroFrequency() (gas: 21049)
ComposableCowTwapTest:test_describeOrder_TwapParts() (gas: 29107)
ComposableCowTwapTest:test_generateOrder_FuzzRevertIfBeforeStart(uint256,uint256) (runs: 256, μ: 29035, ~: 29035)
ComposableCowTwapTest:test_generateOrder_FuzzRevertIfExpired(uint256,uint256) (runs: 256, μ: 30257, ~: 30108)
ComposableCowTwapTest:test_generateOrder_FuzzRevertIfOrderAfterBlocktimestampValidity(uint256,uint256) (runs: 256, μ: 186801, ~: 187176)
ComposableCowTwapTest:test_generateOrder_FuzzRevertIfOrderBeforeBlockTimestamp(uint256,uint256) (runs: 256, μ: 187290, ~: 187290)
ComposableCowTwapTest:test_generateOrder_FuzzRevertIfOutsideSpan(uint256,uint256) (runs: 256, μ: 32236, ~: 32137)
ComposableCowTwapTest:test_generateOrder_FuzzRevertIfOutsideSpan(uint256,uint256) (runs: 256, μ: 32285, ~: 32137)
ComposableCowTwapTest:test_generateOrder_FuzzRevertOnInvalidFrequency(uint256) (runs: 256, μ: 19744, ~: 19747)
ComposableCowTwapTest:test_generateOrder_FuzzRevertOnInvalidNumParts(uint256) (runs: 256, μ: 19601, ~: 19605)
ComposableCowTwapTest:test_generateOrder_FuzzRevertOnInvalidSpan(uint256,uint256) (runs: 256, μ: 20164, ~: 20164)
Expand All @@ -169,5 +179,19 @@ ComposableCowTwapTest:test_getNextPollTimestamp_PointsAtNextPart() (gas: 20153)
ComposableCowTwapTest:test_getNextPollTimestamp_RevertOnZeroFrequency() (gas: 19285)
ComposableCowTwapTest:test_getNextPollTimestamp_RevertOnZeroNumParts() (gas: 19451)
ComposableCowTwapTest:test_settle_e2e() (gas: 13514423)
ComposableCowTwapTest:test_simulate_fuzz(uint32,uint32,uint32) (runs: 256, μ: 20619419, ~: 21359116)
ComposableCowTwapTest:test_verify_e2e_fuzz(uint256,uint256) (runs: 256, μ: 36221, ~: 35995)
ComposableCowTwapTest:test_simulate_fuzz(uint32,uint32,uint32) (runs: 256, μ: 20318564, ~: 20794728)
ComposableCowTwapTest:test_verify_e2e_fuzz(uint256,uint256) (runs: 256, μ: 36221, ~: 35995)
DeployAddressTest:test_predict_AdminMovesHandlersOnly() (gas: 125019)
DeployAddressTest:test_predict_IsTheSameOnEveryChain() (gas: 185119)
DeployAddressTest:test_predict_MatchesCreate2() (gas: 73174)
DeployAddressTest:test_predict_TwapEncodesTheRegistryNotTheSettlement() (gas: 94443)
DeployAddressTest:test_predict_TwapFollowsTheRegistry() (gas: 124229)
DeployStackTest:test_validate_AcceptsAValidConfig() (gas: 12459)
DeployStackTest:test_validate_RejectsCodelessSettlement() (gas: 13780)
DeployStackTest:test_validate_RejectsWrongChain() (gas: 13497)
DeployStackTest:test_validate_RejectsZeroOwner() (gas: 13402)
DescriptorPublishTest:test_descriptor_DigestIsTheDocumentsSha256() (gas: 22715)
DescriptorPublishTest:test_descriptor_OptionalWhenUriUnset() (gas: 7536)
DescriptorPublishTest:test_descriptor_RejectsANonHttpsUri() (gas: 13730)
DescriptorPublishTest:test_descriptor_RequiresTheOwnerKey() (gas: 12366)
DescriptorPublishTest:test_isHttps() (gas: 13639)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ The following audits cover the **upstream** contracts before the changes in this

### Environment setup

Copy `.env.example` to `.env`. Every script reads `PRIVATE_KEY`; `SETTLEMENT` is needed to deploy `ComposableCow`, `COMPOSABLE_COW` to deploy order types against it, and `SAFE` plus `TWAP` to submit a single order. Contract verification reads `ETHERSCAN_API_KEY`. The RPC endpoint is passed per command with `--rpc-url`.
Copy `.env.example` to `.env`. Every script reads `PRIVATE_KEY`; `SETTLEMENT` is needed to deploy `ComposableCow`, `COMPOSABLE_COW` to deploy order types against it, and `SAFE` plus `TWAP` to submit a single order. The Gnosis integration deployment also reads `ADMIN`. Contract verification reads `ETHERSCAN_API_KEY`. The RPC endpoint is passed per command with `--rpc-url`.

### Testing

Expand Down
7 changes: 4 additions & 3 deletions script/deploy_AnvilStack.s.sol
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Commitment} from "../src/libraries/Commitment.sol";
import {Script, console} from "forge-std/Script.sol";

// CoW Protocol
Expand Down Expand Up @@ -62,9 +63,9 @@ contract DeployAnvilStack is Script {

// deploy the Composable CoW
ComposableCow composableCow = new ComposableCow(address(settlement));
new TWAP(composableCow, new string[](0), bytes32(0), PackageKind.BZZ_MANIFEST);
new GoodAfterTime(new string[](0), bytes32(0), PackageKind.BZZ_MANIFEST);
new PerpetualStableSwap(new string[](0), bytes32(0), PackageKind.BZZ_MANIFEST);
new TWAP(composableCow, Commitment.none());
new GoodAfterTime(Commitment.none());
new PerpetualStableSwap(Commitment.none());
new TradeAboveThreshold();

vm.stopBroadcast();
Expand Down
7 changes: 4 additions & 3 deletions script/deploy_OrderTypes.s.sol
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Commitment} from "../src/libraries/Commitment.sol";
import {Script} from "forge-std/Script.sol";

import {ComposableCow} from "../src/ComposableCow.sol";
Expand All @@ -17,9 +18,9 @@ contract DeployOrderTypes is Script {
address composableCow = vm.envAddress("COMPOSABLE_COW");
vm.startBroadcast(deployerPrivateKey);

new TWAP(ComposableCow(composableCow), new string[](0), bytes32(0), PackageKind.BZZ_MANIFEST);
new GoodAfterTime(new string[](0), bytes32(0), PackageKind.BZZ_MANIFEST);
new PerpetualStableSwap(new string[](0), bytes32(0), PackageKind.BZZ_MANIFEST);
new TWAP(ComposableCow(composableCow), Commitment.none());
new GoodAfterTime(Commitment.none());
new PerpetualStableSwap(Commitment.none());
new TradeAboveThreshold();

vm.stopBroadcast();
Expand Down
Loading
Loading