@enzymefinance/testutils 4.0.0-next.0 → 4.0.0-next.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/declarations/src/assertions.d.ts +4 -4
  3. package/dist/declarations/src/deployment.d.ts +181 -82
  4. package/dist/declarations/src/gasRelayer.d.ts +56 -54
  5. package/dist/declarations/src/helpers.d.ts +16 -15
  6. package/dist/declarations/src/index.d.ts +6 -6
  7. package/dist/declarations/src/scaffolding/assets.d.ts +10 -10
  8. package/dist/declarations/src/scaffolding/chainlink.d.ts +3 -3
  9. package/dist/declarations/src/scaffolding/common.d.ts +7 -7
  10. package/dist/declarations/src/scaffolding/core.d.ts +17 -16
  11. package/dist/declarations/src/scaffolding/extensions/common.d.ts +11 -11
  12. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +35 -0
  13. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +56 -59
  14. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +4 -2
  15. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +53 -20
  16. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +99 -0
  17. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +12 -12
  18. package/dist/declarations/src/scaffolding/extensions/index.d.ts +5 -5
  19. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +20 -19
  20. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +28 -28
  21. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +272 -271
  22. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +28 -28
  23. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +14 -12
  24. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +32 -32
  25. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +23 -22
  26. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
  28. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +33 -25
  29. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +15 -15
  30. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +46 -46
  31. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +15 -15
  32. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +22 -22
  33. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +12 -12
  34. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +17 -17
  35. package/dist/declarations/src/scaffolding/index.d.ts +8 -8
  36. package/dist/declarations/src/scaffolding/setup.d.ts +77 -75
  37. package/dist/declarations/src/scaffolding/shares.d.ts +35 -35
  38. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +32 -17
  39. package/dist/declarations/src/whales.d.ts +42 -44
  40. package/dist/enzymefinance-testutils.browser.cjs.js +1470 -697
  41. package/dist/enzymefinance-testutils.browser.esm.js +1257 -508
  42. package/dist/enzymefinance-testutils.cjs.dev.js +1470 -697
  43. package/dist/enzymefinance-testutils.cjs.prod.js +1470 -697
  44. package/dist/enzymefinance-testutils.esm.js +1257 -508
  45. package/package.json +6 -6
  46. package/src/assertions.ts +5 -2
  47. package/src/deployment.ts +202 -99
  48. package/src/gasRelayer.ts +17 -18
  49. package/src/helpers.ts +6 -4
  50. package/src/scaffolding/assets.ts +6 -5
  51. package/src/scaffolding/chainlink.ts +2 -2
  52. package/src/scaffolding/common.ts +1 -1
  53. package/src/scaffolding/core.ts +28 -12
  54. package/src/scaffolding/extensions/common.ts +4 -4
  55. package/src/scaffolding/extensions/external-positions/actions.ts +103 -0
  56. package/src/scaffolding/extensions/external-positions/compound.ts +69 -114
  57. package/src/scaffolding/extensions/external-positions/index.ts +2 -0
  58. package/src/scaffolding/extensions/external-positions/mocks.ts +132 -10
  59. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +290 -0
  60. package/src/scaffolding/extensions/fees.ts +1 -1
  61. package/src/scaffolding/extensions/integrations/aave.ts +6 -8
  62. package/src/scaffolding/extensions/integrations/compound.ts +10 -11
  63. package/src/scaffolding/extensions/integrations/curve.ts +72 -68
  64. package/src/scaffolding/extensions/integrations/idle.ts +9 -11
  65. package/src/scaffolding/extensions/integrations/index.ts +2 -0
  66. package/src/scaffolding/extensions/integrations/mock.ts +11 -13
  67. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
  68. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
  69. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
  70. package/src/scaffolding/extensions/integrations/synthetix.ts +45 -12
  71. package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
  72. package/src/scaffolding/extensions/integrations/uniswapV2.ts +31 -27
  73. package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
  74. package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
  75. package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
  76. package/src/scaffolding/extensions/policies.ts +2 -1
  77. package/src/scaffolding/setup.ts +27 -19
  78. package/src/scaffolding/shares.ts +5 -4
  79. package/src/scaffolding/vaultCalls.ts +50 -3
  80. package/src/whales.ts +26 -17
  81. package/tsconfig.json +2 -1
@@ -1,10 +1,9 @@
1
1
  import _asyncToGenerator from '@babel/runtime/helpers/esm/asyncToGenerator';
2
2
  import _regeneratorRuntime from '@babel/runtime/regenerator';
3
- import { Dispatcher, VaultLib, FundDeployer, PolicyManager, AavePriceFeed, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, CurvePriceFeed, IdlePriceFeed, LidoStethPriceFeed, RevertingPriceFeed, SynthetixPriceFeed, StakehoundEthPriceFeed, WdgldPriceFeed, YearnVaultV2PriceFeed, ValueInterpreter, UniswapV2PoolPriceFeed, IntegrationManager, ExternalPositionManager, ExternalPositionFactory, CurveLiquidityAaveAdapter, CurveLiquidityEursAdapter, CurveLiquiditySethAdapter, CurveLiquidityStethAdapter, AaveAdapter, IdleAdapter, ParaSwapV4Adapter, SynthetixAdapter, YearnVaultV2Adapter, ZeroExV2Adapter, CompoundAdapter, UniswapV2Adapter, UniswapV3Adapter, CurveExchangeAdapter, FeeManager, ComptrollerLib, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ManagementFee, PerformanceFee, DepositWrapper, UnpermissionedActionsWrapper, AllowedAdapterIncomingAssetsPolicy, MinMaxInvestmentPolicy, AllowedDepositRecipientsPolicy, GuaranteedRedemptionPolicy, GlobalConfigLib, AssetFinalityResolver, ProtocolFeeReserveLib, ProtocolFeeTracker, GasRelayPaymasterFactory, IntegrationManagerActionId, addTrackedAssetsToVaultArgs, removeTrackedAssetsFromVaultArgs, StandardToken, ExternalPositionManagerActionId, encodeArgs, compoundExternalPositionActionArgs, callOnExternalPositionArgs, CompoundDebtPositionActionId, externalPositionRemoveArgs, feeManagerConfigArgs, FeeSettlementType, FeeHook, IFee, aaveLendArgs, callOnIntegrationArgs, lendSelector, aaveRedeemArgs, redeemSelector, compoundArgs, curveTakeOrderArgs, takeOrderSelector, claimRewardsSelector, curveAaveLendArgs, lendAndStakeSelector, curveAaveLendAndStakeArgs, curveAaveRedeemArgs, stakeSelector, curveAaveStakeArgs, unstakeAndRedeemSelector, curveAaveUnstakeAndRedeemArgs, unstakeSelector, curveAaveUnstakeArgs, curveEursLendArgs, curveEursLendAndStakeArgs, curveEursRedeemArgs, curveEursStakeArgs, curveEursUnstakeAndRedeemArgs, curveEursUnstakeArgs, curveSethLendArgs, curveSethLendAndStakeArgs, curveSethRedeemArgs, curveSethStakeArgs, curveSethUnstakeAndRedeemArgs, curveSethUnstakeArgs, curveStethLendArgs, curveStethLendAndStakeArgs, curveStethRedeemArgs, curveStethStakeArgs, curveStethUnstakeAndRedeemArgs, curveStethUnstakeArgs, idleClaimRewardsArgs, idleLendArgs, idleRedeemArgs, sighash, paraSwapV4TakeOrderArgs, synthetixAssignExchangeDelegateSelector, synthetixTakeOrderArgs, uniswapV2LendArgs, uniswapV2RedeemArgs, uniswapV2TakeOrderArgs, uniswapV3TakeOrderArgs, yearnVaultV2LendArgs, yearnVaultV2RedeemArgs, zeroExV2TakeOrderArgs, policyManagerConfigArgs, PolicyHook, IPolicy, encodeFunctionData, ComptrollerProxy, VaultProxy, GasRelayPaymasterLib, curveMinterMintSelector, curveMinterMintManySelector, curveMinterToggleApproveMintSelector, IGsnRelayHub, createSignedRelayRequest, isTypedDataSigner } from '@enzymefinance/protocol';
3
+ import { AaveAdapter, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, AssetFinalityResolver, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAaveAdapter, CurveLiquidityEursAdapter, CurveLiquiditySethAdapter, CurveLiquidityStethAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, GasRelayPaymasterFactory, GuaranteedRedemptionPolicy, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, ManagementFee, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV4Adapter, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, StakehoundEthPriceFeed, SynthetixAdapter, SynthetixPriceFeed, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV2PoolPriceFeed, UniswapV3Adapter, UnpermissionedActionsWrapper, ValueInterpreter, VaultLib, YearnVaultV2Adapter, YearnVaultV2PriceFeed, ZeroExV2Adapter, IntegrationManagerActionId, addTrackedAssetsToVaultArgs, removeTrackedAssetsFromVaultArgs, StandardToken, callOnExternalPositionArgs, ExternalPositionManagerActionId, IExternalPositionProxy, encodeArgs, externalPositionReactivateArgs, externalPositionRemoveArgs, compoundExternalPositionActionArgs, CompoundDebtPositionActionId, ExternalPositionType, MockGenericExternalPositionParser, MockGenericExternalPositionLib, mockGenericExternalPositionActionArgs, MockGenericExternalPositionActionId, uniswapV3LiquidityPositionInitArgs, uniswapV3LiquidityPositionAddLiquidityArgs, UniswapV3LiquidityPositionActionId, uniswapV3LiquidityPositionCollectArgs, UniswapV3LiquidityPositionLib, uniswapV3LiquidityPositionMintArgs, uniswapV3LiquidityPositionPurgeArgs, uniswapV3LiquidityPositionRemoveLiquidityArgs, feeManagerConfigArgs, FeeSettlementType, FeeHook, IFee, aaveLendArgs, callOnIntegrationArgs, lendSelector, aaveRedeemArgs, redeemSelector, compoundArgs, curveTakeOrderArgs, takeOrderSelector, claimRewardsSelector, curveAaveLendArgs, curveAaveLendAndStakeArgs, lendAndStakeSelector, curveAaveRedeemArgs, curveAaveStakeArgs, stakeSelector, curveAaveUnstakeAndRedeemArgs, unstakeAndRedeemSelector, curveAaveUnstakeArgs, unstakeSelector, curveEursLendArgs, curveEursLendAndStakeArgs, curveEursRedeemArgs, curveEursStakeArgs, curveEursUnstakeAndRedeemArgs, curveEursUnstakeArgs, curveSethLendArgs, curveSethLendAndStakeArgs, curveSethRedeemArgs, curveSethStakeArgs, curveSethUnstakeAndRedeemArgs, curveSethUnstakeArgs, curveStethLendArgs, curveStethLendAndStakeArgs, curveStethRedeemArgs, curveStethStakeArgs, curveStethUnstakeAndRedeemArgs, curveStethUnstakeArgs, idleClaimRewardsArgs, idleLendArgs, idleRedeemArgs, sighash, paraSwapV4TakeOrderArgs, paraSwapV5TakeOrderArgs, poolTogetherV4LendArgs, poolTogetherV4RedeemArgs, poolTogetherV4ClaimRewardsArgs, synthetixAssignExchangeDelegateSelector, synthetixRedeemArgs, synthetixTakeOrderArgs, uniswapV2LendArgs, uniswapV2RedeemArgs, uniswapV2TakeOrderArgs, uniswapV3TakeOrderArgs, yearnVaultV2LendArgs, yearnVaultV2RedeemArgs, zeroExV2TakeOrderArgs, policyManagerConfigArgs, PolicyHook, IPolicy, encodeFunctionData, ComptrollerProxy, VaultProxy, GasRelayPaymasterLib, addressListRegistryCreateListSelector, curveMinterMintSelector, curveMinterMintManySelector, curveMinterToggleApproveMintSelector, IGsnRelayHub, createSignedRelayRequest, isTypedDataSigner } from '@enzymefinance/protocol';
4
4
  import { utils, constants, BigNumber } from 'ethers';
5
- import { ExternalPositionManagerActionId as ExternalPositionManagerActionId$1, encodeArgs as encodeArgs$1, MockGenericExternalPositionParser, MockGenericExternalPositionLib, VaultLib as VaultLib$1 } from '@enzymefinance/protocol/src';
5
+ import { extractEvent, contract, resolveAddress, randomAddress } from '@enzymefinance/ethers';
6
6
  import _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';
7
- import { contract, resolveAddress, extractEvent, randomAddress } from '@enzymefinance/ethers';
8
7
  import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';
9
8
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
10
9
 
@@ -104,68 +103,81 @@ function _deployProtocolFixture() {
104
103
  config = fixture['Config'].linkedData; // prettier-ignore
105
104
 
106
105
  deployment = {
107
- dispatcher: new Dispatcher(fixture['Dispatcher'].address, deployer),
108
- vaultLib: new VaultLib(fixture['VaultLib'].address, deployer),
109
- fundDeployer: new FundDeployer(fixture['FundDeployer'].address, deployer),
110
- policyManager: new PolicyManager(fixture['PolicyManager'].address, deployer),
106
+ aaveAdapter: new AaveAdapter(fixture['AaveAdapter'].address, deployer),
111
107
  aavePriceFeed: new AavePriceFeed(fixture['AavePriceFeed'].address, deployer),
108
+ addressListRegistry: new AddressListRegistry(fixture['AddressListRegistry'].address, deployer),
109
+ allowedAdapterIncomingAssetsPolicy: new AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
110
+ allowedAdaptersPolicy: new AllowedAdaptersPolicy(fixture['AllowedAdaptersPolicy'].address, deployer),
111
+ allowedAssetsForRedemptionPolicy: new AllowedAssetsForRedemptionPolicy(fixture['AllowedAssetsForRedemptionPolicy'].address, deployer),
112
+ allowedDepositRecipientsPolicy: new AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
113
+ allowedExternalPositionTypesPolicy: new AllowedExternalPositionTypesPolicy(fixture['AllowedExternalPositionTypesPolicy'].address, deployer),
114
+ allowedSharesTransferRecipientsPolicy: new AllowedSharesTransferRecipientsPolicy(fixture['AllowedSharesTransferRecipientsPolicy'].address, deployer),
115
+ assetFinalityResolver: new AssetFinalityResolver(fixture['AssetFinalityResolver'].address, deployer),
116
+ compoundAdapter: new CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
112
117
  compoundDebtPositionLib: new CompoundDebtPositionLib(fixture['CompoundDebtPositionLib'].address, deployer),
113
118
  compoundDebtPositionParser: new CompoundDebtPositionParser(fixture['CompoundDebtPositionParser'].address, deployer),
114
119
  compoundPriceFeed: new CompoundPriceFeed(fixture['CompoundPriceFeed'].address, deployer),
115
- curvePriceFeed: new CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
116
- idlePriceFeed: new IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
117
- lidoStethPriceFeed: new LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
118
- revertingPriceFeed: new RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
119
- synthetixPriceFeed: new SynthetixPriceFeed(fixture['SynthetixPriceFeed'].address, deployer),
120
- stakehoundEthPriceFeed: new StakehoundEthPriceFeed(fixture['StakehoundEthPriceFeed'].address, deployer),
121
- wdgldPriceFeed: new WdgldPriceFeed(fixture['WdgldPriceFeed'].address, deployer),
122
- yearnVaultV2PriceFeed: new YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
123
- valueInterpreter: new ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
124
- uniswapV2PoolPriceFeed: new UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
125
- integrationManager: new IntegrationManager(fixture['IntegrationManager'].address, deployer),
126
- externalPositionManager: new ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
127
- externalPositionFactory: new ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
120
+ comptrollerLib: new ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
121
+ cumulativeSlippageTolerancePolicy: new CumulativeSlippageTolerancePolicy(fixture['CumulativeSlippageTolerancePolicy'].address, deployer),
122
+ curveExchangeAdapter: new CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
128
123
  curveLiquidityAaveAdapter: new CurveLiquidityAaveAdapter(fixture['CurveLiquidityAaveAdapter'].address, deployer),
129
124
  curveLiquidityEursAdapter: new CurveLiquidityEursAdapter(fixture['CurveLiquidityEursAdapter'].address, deployer),
130
125
  curveLiquiditySethAdapter: new CurveLiquiditySethAdapter(fixture['CurveLiquiditySethAdapter'].address, deployer),
131
126
  curveLiquidityStethAdapter: new CurveLiquidityStethAdapter(fixture['CurveLiquidityStethAdapter'].address, deployer),
132
- aaveAdapter: new AaveAdapter(fixture['AaveAdapter'].address, deployer),
133
- idleAdapter: new IdleAdapter(fixture['IdleAdapter'].address, deployer),
134
- paraSwapV4Adapter: new ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
135
- synthetixAdapter: new SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
136
- yearnVaultV2Adapter: new YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
137
- zeroExV2Adapter: new ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer),
138
- compoundAdapter: new CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
139
- uniswapV2Adapter: new UniswapV2Adapter(fixture['UniswapV2Adapter'].address, deployer),
140
- uniswapV3Adapter: new UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
141
- curveExchangeAdapter: new CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
142
- feeManager: new FeeManager(fixture['FeeManager'].address, deployer),
143
- comptrollerLib: new ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
127
+ curvePriceFeed: new CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
128
+ depositWrapper: new DepositWrapper(fixture['DepositWrapper'].address, deployer),
129
+ dispatcher: new Dispatcher(fixture['Dispatcher'].address, deployer),
144
130
  entranceRateBurnFee: new EntranceRateBurnFee(fixture['EntranceRateBurnFee'].address, deployer),
145
131
  entranceRateDirectFee: new EntranceRateDirectFee(fixture['EntranceRateDirectFee'].address, deployer),
146
132
  exitRateBurnFee: new ExitRateBurnFee(fixture['ExitRateBurnFee'].address, deployer),
147
133
  exitRateDirectFee: new ExitRateDirectFee(fixture['ExitRateDirectFee'].address, deployer),
134
+ externalPositionFactory: new ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
135
+ externalPositionManager: new ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
136
+ feeManager: new FeeManager(fixture['FeeManager'].address, deployer),
137
+ fundDeployer: new FundDeployer(fixture['FundDeployer'].address, deployer),
138
+ fundValueCalculator: new FundValueCalculator(fixture['FundValueCalculator'].address, deployer),
139
+ fundValueCalculatorRouter: new FundValueCalculatorRouter(fixture['FundValueCalculatorRouter'].address, deployer),
140
+ fundValueCalculatorUsdWrapper: new FundValueCalculatorUsdWrapper(fixture['FundValueCalculatorUsdWrapper'].address, deployer),
141
+ gasRelayPaymasterFactory: new GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer),
142
+ guaranteedRedemptionPolicy: new GuaranteedRedemptionPolicy(fixture['GuaranteedRedemptionPolicy'].address, deployer),
143
+ idleAdapter: new IdleAdapter(fixture['IdleAdapter'].address, deployer),
144
+ idlePriceFeed: new IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
145
+ integrationManager: new IntegrationManager(fixture['IntegrationManager'].address, deployer),
146
+ lidoStethPriceFeed: new LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
148
147
  managementFee: new ManagementFee(fixture['ManagementFee'].address, deployer),
149
- performanceFee: new PerformanceFee(fixture['PerformanceFee'].address, deployer),
150
- depositWrapper: new DepositWrapper(fixture['DepositWrapper'].address, deployer),
151
- unpermissionedActionsWrapper: new UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
152
- allowedAdapterIncomingAssetsPolicy: new AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
148
+ minAssetBalancesPostRedemptionPolicy: new MinAssetBalancesPostRedemptionPolicy(fixture['MinAssetBalancesPostRedemptionPolicy'].address, deployer),
153
149
  minMaxInvestmentPolicy: new MinMaxInvestmentPolicy(fixture['MinMaxInvestmentPolicy'].address, deployer),
154
- allowedDepositRecipientsPolicy: new AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
155
- guaranteedRedemptionPolicy: new GuaranteedRedemptionPolicy(fixture['GuaranteedRedemptionPolicy'].address, deployer),
156
- globalConfigLib: new GlobalConfigLib(fixture['GlobalConfigLib'].address, deployer),
157
- globalConfigProxy: new GlobalConfigLib(fixture['GlobalConfigProxy'].address, deployer),
158
- assetFinalityResolver: new AssetFinalityResolver(fixture['AssetFinalityResolver'].address, deployer),
150
+ onlyRemoveDustExternalPositionPolicy: new OnlyRemoveDustExternalPositionPolicy(fixture['OnlyRemoveDustExternalPositionPolicy'].address, deployer),
151
+ onlyUntrackDustOrPricelessAssetsPolicy: new OnlyUntrackDustOrPricelessAssetsPolicy(fixture['OnlyUntrackDustOrPricelessAssetsPolicy'].address, deployer),
152
+ paraSwapV4Adapter: new ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
153
+ paraSwapV5Adapter: new ParaSwapV5Adapter(fixture['ParaSwapV5Adapter'].address, deployer),
154
+ performanceFee: new PerformanceFee(fixture['PerformanceFee'].address, deployer),
155
+ policyManager: new PolicyManager(fixture['PolicyManager'].address, deployer),
156
+ poolTogetherV4Adapter: new PoolTogetherV4Adapter(fixture['PoolTogetherV4Adapter'].address, deployer),
157
+ poolTogetherV4PriceFeed: new PoolTogetherV4PriceFeed(fixture['PoolTogetherV4PriceFeed'].address, deployer),
159
158
  protocolFeeReserveLib: new ProtocolFeeReserveLib(fixture['ProtocolFeeReserveLib'].address, deployer),
160
159
  protocolFeeReserveProxy: new ProtocolFeeReserveLib(fixture['ProtocolFeeReserveProxy'].address, deployer),
161
160
  protocolFeeTracker: new ProtocolFeeTracker(fixture['ProtocolFeeTracker'].address, deployer),
162
- gasRelayPaymasterFactory: new GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer)
161
+ revertingPriceFeed: new RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
162
+ stakehoundEthPriceFeed: new StakehoundEthPriceFeed(fixture['StakehoundEthPriceFeed'].address, deployer),
163
+ synthetixAdapter: new SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
164
+ synthetixPriceFeed: new SynthetixPriceFeed(fixture['SynthetixPriceFeed'].address, deployer),
165
+ uniswapV2ExchangeAdapter: new UniswapV2ExchangeAdapter(fixture['UniswapV2ExchangeAdapter'].address, deployer),
166
+ uniswapV2LiquidityAdapter: new UniswapV2LiquidityAdapter(fixture['UniswapV2LiquidityAdapter'].address, deployer),
167
+ uniswapV2PoolPriceFeed: new UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
168
+ uniswapV3Adapter: new UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
169
+ unpermissionedActionsWrapper: new UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
170
+ valueInterpreter: new ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
171
+ vaultLib: new VaultLib(fixture['VaultLib'].address, deployer),
172
+ yearnVaultV2Adapter: new YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
173
+ yearnVaultV2PriceFeed: new YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
174
+ zeroExV2Adapter: new ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer)
163
175
  };
164
176
  return _context3.abrupt("return", {
165
- deployer: deployer,
166
- deployment: deployment,
167
177
  accounts: accounts,
168
- config: config
178
+ config: config,
179
+ deployer: deployer,
180
+ deployment: deployment
169
181
  });
170
182
 
171
183
  case 12:
@@ -178,30 +190,6 @@ function _deployProtocolFixture() {
178
190
  return _deployProtocolFixture.apply(this, arguments);
179
191
  }
180
192
 
181
- // TODO: Remove this.
182
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
183
- function defaultTestDeployment(_x2) {
184
- return _defaultTestDeployment.apply(this, arguments);
185
- }
186
-
187
- function _defaultTestDeployment() {
188
- _defaultTestDeployment = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_) {
189
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
190
- while (1) {
191
- switch (_context4.prev = _context4.next) {
192
- case 0:
193
- throw new Error('Removed');
194
-
195
- case 1:
196
- case "end":
197
- return _context4.stop();
198
- }
199
- }
200
- }, _callee4);
201
- }));
202
- return _defaultTestDeployment.apply(this, arguments);
203
- }
204
-
205
193
  function addTrackedAssetsToVault(_ref) {
206
194
  var signer = _ref.signer,
207
195
  comptrollerProxy = _ref.comptrollerProxy,
@@ -236,10 +224,10 @@ function _addNewAssetsToFund() {
236
224
  signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, assets = _ref.assets, _ref$amounts = _ref.amounts, amounts = _ref$amounts === void 0 ? new Array(assets.length).fill(1) : _ref$amounts;
237
225
  // First, add tracked assets while their balances are 0
238
226
  receipt = addTrackedAssetsToVault({
239
- signer: signer,
227
+ assets: assets,
240
228
  comptrollerProxy: comptrollerProxy,
241
229
  integrationManager: integrationManager,
242
- assets: assets
230
+ signer: signer
243
231
  }); // Then seed the vault with balances as necessary
244
232
 
245
233
  _context.next = 4;
@@ -391,13 +379,13 @@ function createFundDeployer(_x) {
391
379
 
392
380
  function _createFundDeployer() {
393
381
  _createFundDeployer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
394
- var deployer, assetFinalityResolver, externalPositionManager, dispatcher, feeManager, gasRelayPaymasterFactory, integrationManager, policyManager, valueInterpreter, vaultLib, _ref$setOnDispatcher, setOnDispatcher, _ref$setReleaseLive, setReleaseLive, mlnToken, wethToken, protocolFeeReserve, nextFundDeployer, nextComptrollerLib, nextProtocolFeeTracker, nextVaultLib;
382
+ var deployer, assetFinalityResolver, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, _ref$setOnDispatcher, setOnDispatcher, _ref$setReleaseLive, setReleaseLive, mlnToken, wethToken, protocolFeeReserve, nextFundDeployer, nextPolicyManager, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextComptrollerLib, nextProtocolFeeTracker, nextVaultLib;
395
383
 
396
384
  return _regeneratorRuntime.wrap(function _callee$(_context) {
397
385
  while (1) {
398
386
  switch (_context.prev = _context.next) {
399
387
  case 0:
400
- deployer = _ref.deployer, assetFinalityResolver = _ref.assetFinalityResolver, externalPositionManager = _ref.externalPositionManager, dispatcher = _ref.dispatcher, feeManager = _ref.feeManager, gasRelayPaymasterFactory = _ref.gasRelayPaymasterFactory, integrationManager = _ref.integrationManager, policyManager = _ref.policyManager, valueInterpreter = _ref.valueInterpreter, vaultLib = _ref.vaultLib, _ref$setOnDispatcher = _ref.setOnDispatcher, setOnDispatcher = _ref$setOnDispatcher === void 0 ? true : _ref$setOnDispatcher, _ref$setReleaseLive = _ref.setReleaseLive, setReleaseLive = _ref$setReleaseLive === void 0 ? true : _ref$setReleaseLive;
388
+ deployer = _ref.deployer, assetFinalityResolver = _ref.assetFinalityResolver, externalPositionManager = _ref.externalPositionManager, dispatcher = _ref.dispatcher, gasRelayPaymasterFactory = _ref.gasRelayPaymasterFactory, valueInterpreter = _ref.valueInterpreter, vaultLib = _ref.vaultLib, _ref$setOnDispatcher = _ref.setOnDispatcher, setOnDispatcher = _ref$setOnDispatcher === void 0 ? true : _ref$setOnDispatcher, _ref$setReleaseLive = _ref.setReleaseLive, setReleaseLive = _ref$setReleaseLive === void 0 ? true : _ref$setReleaseLive;
401
389
  _context.next = 3;
402
390
  return vaultLib.getMlnToken();
403
391
 
@@ -419,77 +407,106 @@ function _createFundDeployer() {
419
407
  case 12:
420
408
  nextFundDeployer = _context.sent;
421
409
  _context.next = 15;
422
- return ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, externalPositionManager, feeManager, integrationManager, policyManager, assetFinalityResolver, gasRelayPaymasterFactory, mlnToken, wethToken);
410
+ return PolicyManager.deploy(deployer, nextFundDeployer, gasRelayPaymasterFactory);
423
411
 
424
412
  case 15:
413
+ nextPolicyManager = _context.sent;
414
+ _context.t0 = ExternalPositionManager;
415
+ _context.t1 = deployer;
416
+ _context.t2 = nextFundDeployer;
417
+ _context.next = 21;
418
+ return externalPositionManager.getExternalPositionFactory();
419
+
420
+ case 21:
421
+ _context.t3 = _context.sent;
422
+ _context.t4 = nextPolicyManager;
423
+ _context.next = 25;
424
+ return _context.t0.deploy.call(_context.t0, _context.t1, _context.t2, _context.t3, _context.t4);
425
+
426
+ case 25:
427
+ nextExternalPositionManager = _context.sent;
428
+ _context.next = 28;
429
+ return FeeManager.deploy(deployer, nextFundDeployer);
430
+
431
+ case 28:
432
+ nextFeeManager = _context.sent;
433
+ _context.next = 31;
434
+ return IntegrationManager.deploy(deployer, nextFundDeployer, nextPolicyManager, valueInterpreter);
435
+
436
+ case 31:
437
+ nextIntegrationManager = _context.sent;
438
+ _context.next = 34;
439
+ return ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextPolicyManager, assetFinalityResolver, gasRelayPaymasterFactory, mlnToken, wethToken);
440
+
441
+ case 34:
425
442
  nextComptrollerLib = _context.sent;
426
- _context.next = 18;
443
+ _context.next = 37;
427
444
  return nextFundDeployer.setComptrollerLib(nextComptrollerLib);
428
445
 
429
- case 18:
430
- _context.next = 20;
446
+ case 37:
447
+ _context.next = 39;
431
448
  return ProtocolFeeTracker.deploy(deployer, nextFundDeployer);
432
449
 
433
- case 20:
450
+ case 39:
434
451
  nextProtocolFeeTracker = _context.sent;
435
- _context.next = 23;
452
+ _context.next = 42;
436
453
  return nextFundDeployer.setProtocolFeeTracker(nextProtocolFeeTracker);
437
454
 
438
- case 23:
439
- _context.t0 = VaultLib;
440
- _context.t1 = deployer;
441
- _context.t2 = externalPositionManager;
442
- _context.next = 28;
455
+ case 42:
456
+ _context.t5 = VaultLib;
457
+ _context.t6 = deployer;
458
+ _context.t7 = externalPositionManager;
459
+ _context.next = 47;
443
460
  return vaultLib.getGasRelayPaymasterFactory();
444
461
 
445
- case 28:
446
- _context.t3 = _context.sent;
447
- _context.next = 31;
462
+ case 47:
463
+ _context.t8 = _context.sent;
464
+ _context.next = 50;
448
465
  return vaultLib.getProtocolFeeReserve();
449
466
 
450
- case 31:
451
- _context.t4 = _context.sent;
452
- _context.t5 = nextProtocolFeeTracker;
453
- _context.next = 35;
467
+ case 50:
468
+ _context.t9 = _context.sent;
469
+ _context.t10 = nextProtocolFeeTracker;
470
+ _context.next = 54;
454
471
  return vaultLib.getMlnToken();
455
472
 
456
- case 35:
457
- _context.t6 = _context.sent;
458
- _context.next = 38;
473
+ case 54:
474
+ _context.t11 = _context.sent;
475
+ _context.next = 57;
459
476
  return vaultLib.getWethToken();
460
477
 
461
- case 38:
462
- _context.t7 = _context.sent;
463
- _context.next = 41;
464
- return _context.t0.deploy.call(_context.t0, _context.t1, _context.t2, _context.t3, _context.t4, _context.t5, _context.t6, _context.t7);
478
+ case 57:
479
+ _context.t12 = _context.sent;
480
+ _context.next = 60;
481
+ return _context.t5.deploy.call(_context.t5, _context.t6, _context.t7, _context.t8, _context.t9, _context.t10, _context.t11, _context.t12);
465
482
 
466
- case 41:
483
+ case 60:
467
484
  nextVaultLib = _context.sent;
468
- _context.next = 44;
485
+ _context.next = 63;
469
486
  return nextFundDeployer.setVaultLib(nextVaultLib);
470
487
 
471
- case 44:
488
+ case 63:
472
489
  if (!setReleaseLive) {
473
- _context.next = 47;
490
+ _context.next = 66;
474
491
  break;
475
492
  }
476
493
 
477
- _context.next = 47;
494
+ _context.next = 66;
478
495
  return nextFundDeployer.setReleaseLive();
479
496
 
480
- case 47:
497
+ case 66:
481
498
  if (!setOnDispatcher) {
482
- _context.next = 50;
499
+ _context.next = 69;
483
500
  break;
484
501
  }
485
502
 
486
- _context.next = 50;
503
+ _context.next = 69;
487
504
  return dispatcher.setCurrentFundDeployer(nextFundDeployer);
488
505
 
489
- case 50:
506
+ case 69:
490
507
  return _context.abrupt("return", nextFundDeployer);
491
508
 
492
- case 51:
509
+ case 70:
493
510
  case "end":
494
511
  return _context.stop();
495
512
  }
@@ -535,21 +552,24 @@ function _callOnExtension() {
535
552
  return _callOnExtension.apply(this, arguments);
536
553
  }
537
554
 
538
- var protocol = 0;
539
- function createExternalPosition(_x) {
540
- return _createExternalPosition.apply(this, arguments);
555
+ function callOnExternalPosition(_x) {
556
+ return _callOnExternalPosition.apply(this, arguments);
541
557
  }
542
558
 
543
- function _createExternalPosition() {
544
- _createExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
545
- var comptrollerProxy, externalPositionManager, fundOwner, createExternalPositionTx;
559
+ function _callOnExternalPosition() {
560
+ _callOnExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
561
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, actionId, actionArgs, callArgs;
546
562
  return _regeneratorRuntime.wrap(function _callee$(_context) {
547
563
  while (1) {
548
564
  switch (_context.prev = _context.next) {
549
565
  case 0:
550
- comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, fundOwner = _ref.fundOwner;
551
- createExternalPositionTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CreateExternalPosition, encodeArgs(['uint256', 'bytes'], [protocol, '0x']));
552
- return _context.abrupt("return", createExternalPositionTx);
566
+ signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionProxy = _ref.externalPositionProxy, actionId = _ref.actionId, actionArgs = _ref.actionArgs;
567
+ callArgs = callOnExternalPositionArgs({
568
+ actionArgs: actionArgs,
569
+ actionId: actionId,
570
+ externalPositionProxy: externalPositionProxy
571
+ });
572
+ return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
553
573
 
554
574
  case 3:
555
575
  case "end":
@@ -558,242 +578,333 @@ function _createExternalPosition() {
558
578
  }
559
579
  }, _callee);
560
580
  }));
561
- return _createExternalPosition.apply(this, arguments);
581
+ return _callOnExternalPosition.apply(this, arguments);
562
582
  }
563
583
 
564
- function addCollateral(_x2) {
565
- return _addCollateral.apply(this, arguments);
584
+ function createExternalPosition(_x2) {
585
+ return _createExternalPosition.apply(this, arguments);
566
586
  }
567
587
 
568
- function _addCollateral() {
569
- _addCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
570
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs, callArgs, addCollateralTx;
588
+ function _createExternalPosition() {
589
+ _createExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
590
+ var signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, _ref2$initializationD, initializationData, receipt, event, externalPositionProxy;
591
+
571
592
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
572
593
  while (1) {
573
594
  switch (_context2.prev = _context2.next) {
574
595
  case 0:
575
- comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, fundOwner = _ref2.fundOwner, assets = _ref2.assets, amounts = _ref2.amounts, externalPositionProxy = _ref2.externalPositionProxy, cTokens = _ref2.cTokens;
576
- actionArgs = compoundExternalPositionActionArgs({
577
- assets: assets,
578
- amounts: amounts,
579
- data: encodeArgs(['address[]'], [cTokens])
580
- });
581
- callArgs = callOnExternalPositionArgs({
596
+ signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionTypeId = _ref2.externalPositionTypeId, _ref2$initializationD = _ref2.initializationData, initializationData = _ref2$initializationD === void 0 ? '0x' : _ref2$initializationD;
597
+ _context2.next = 3;
598
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CreateExternalPosition, encodeArgs(['uint256', 'bytes'], [externalPositionTypeId, initializationData]));
599
+
600
+ case 3:
601
+ receipt = _context2.sent;
602
+ event = extractEvent(receipt, externalPositionManager.abi.getEvent('ExternalPositionDeployedForFund'));
603
+ externalPositionProxy = new IExternalPositionProxy(event[0].args.externalPosition, signer);
604
+ return _context2.abrupt("return", {
582
605
  externalPositionProxy: externalPositionProxy,
583
- actionId: CompoundDebtPositionActionId.AddCollateralAssets,
584
- encodedCallArgs: actionArgs
606
+ receipt: receipt
585
607
  });
586
- addCollateralTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
587
- return _context2.abrupt("return", addCollateralTx);
588
608
 
589
- case 5:
609
+ case 7:
590
610
  case "end":
591
611
  return _context2.stop();
592
612
  }
593
613
  }
594
614
  }, _callee2);
595
615
  }));
596
- return _addCollateral.apply(this, arguments);
616
+ return _createExternalPosition.apply(this, arguments);
597
617
  }
598
618
 
599
- function removeCollateral(_x3) {
600
- return _removeCollateral.apply(this, arguments);
619
+ function reactivateExternalPosition(_x3) {
620
+ return _reactivateExternalPosition.apply(this, arguments);
601
621
  }
602
622
 
603
- function _removeCollateral() {
604
- _removeCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
605
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs, callArgs, removeCollateralTx;
623
+ function _reactivateExternalPosition() {
624
+ _reactivateExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
625
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, callArgs;
606
626
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
607
627
  while (1) {
608
628
  switch (_context3.prev = _context3.next) {
609
629
  case 0:
610
- comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, fundOwner = _ref3.fundOwner, assets = _ref3.assets, amounts = _ref3.amounts, externalPositionProxy = _ref3.externalPositionProxy, cTokens = _ref3.cTokens;
611
- actionArgs = compoundExternalPositionActionArgs({
612
- assets: assets,
613
- amounts: amounts,
614
- data: encodeArgs(['address[]'], [cTokens])
615
- });
616
- callArgs = callOnExternalPositionArgs({
617
- externalPositionProxy: externalPositionProxy,
618
- actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
619
- encodedCallArgs: actionArgs
630
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy;
631
+ callArgs = externalPositionReactivateArgs({
632
+ externalPositionProxy: externalPositionProxy
620
633
  });
621
- removeCollateralTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
622
- return _context3.abrupt("return", removeCollateralTx);
634
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.ReactivateExternalPosition, callArgs));
623
635
 
624
- case 5:
636
+ case 3:
625
637
  case "end":
626
638
  return _context3.stop();
627
639
  }
628
640
  }
629
641
  }, _callee3);
630
642
  }));
631
- return _removeCollateral.apply(this, arguments);
643
+ return _reactivateExternalPosition.apply(this, arguments);
632
644
  }
633
645
 
634
- function borrow(_x4) {
635
- return _borrow.apply(this, arguments);
646
+ function removeExternalPosition(_x4) {
647
+ return _removeExternalPosition.apply(this, arguments);
636
648
  }
637
649
 
638
- function _borrow() {
639
- _borrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
640
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, actionArgs, callArgs, borrowTx;
650
+ function _removeExternalPosition() {
651
+ _removeExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
652
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, callArgs;
641
653
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
642
654
  while (1) {
643
655
  switch (_context4.prev = _context4.next) {
644
656
  case 0:
645
- comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, fundOwner = _ref4.fundOwner, externalPositionProxy = _ref4.externalPositionProxy, assets = _ref4.assets, amounts = _ref4.amounts, cTokens = _ref4.cTokens;
646
- actionArgs = compoundExternalPositionActionArgs({
647
- assets: assets,
648
- amounts: amounts,
649
- data: encodeArgs(['address[]'], [cTokens])
650
- });
651
- callArgs = callOnExternalPositionArgs({
652
- externalPositionProxy: externalPositionProxy,
653
- actionId: CompoundDebtPositionActionId.BorrowAsset,
654
- encodedCallArgs: actionArgs
657
+ signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy;
658
+ callArgs = externalPositionRemoveArgs({
659
+ externalPositionProxy: externalPositionProxy
655
660
  });
656
- borrowTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
657
- return _context4.abrupt("return", borrowTx);
661
+ return _context4.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.RemoveExternalPosition, callArgs));
658
662
 
659
- case 5:
663
+ case 3:
660
664
  case "end":
661
665
  return _context4.stop();
662
666
  }
663
667
  }
664
668
  }, _callee4);
665
669
  }));
666
- return _borrow.apply(this, arguments);
670
+ return _removeExternalPosition.apply(this, arguments);
667
671
  }
668
672
 
669
- function claimComp(_x5) {
670
- return _claimComp.apply(this, arguments);
673
+ function compoundDebtPositionAddCollateral(_x) {
674
+ return _compoundDebtPositionAddCollateral.apply(this, arguments);
671
675
  }
672
676
 
673
- function _claimComp() {
674
- _claimComp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
675
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, actionArgs, callArgs, claimCompTx;
676
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
677
+ function _compoundDebtPositionAddCollateral() {
678
+ _compoundDebtPositionAddCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
679
+ var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
680
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
677
681
  while (1) {
678
- switch (_context5.prev = _context5.next) {
682
+ switch (_context.prev = _context.next) {
679
683
  case 0:
680
- comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, fundOwner = _ref5.fundOwner, externalPositionProxy = _ref5.externalPositionProxy;
684
+ comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, fundOwner = _ref.fundOwner, assets = _ref.assets, amounts = _ref.amounts, externalPositionProxy = _ref.externalPositionProxy, cTokens = _ref.cTokens;
681
685
  actionArgs = compoundExternalPositionActionArgs({
682
- assets: [],
683
- amounts: [],
684
- data: '0x'
686
+ amounts: amounts,
687
+ assets: assets,
688
+ data: encodeArgs(['address[]'], [cTokens])
685
689
  });
686
- callArgs = callOnExternalPositionArgs({
690
+ return _context.abrupt("return", callOnExternalPosition({
691
+ actionArgs: actionArgs,
692
+ actionId: CompoundDebtPositionActionId.AddCollateralAssets,
693
+ comptrollerProxy: comptrollerProxy,
694
+ externalPositionManager: externalPositionManager,
687
695
  externalPositionProxy: externalPositionProxy,
688
- actionId: CompoundDebtPositionActionId.ClaimComp,
689
- encodedCallArgs: actionArgs
690
- });
691
- claimCompTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
692
- return _context5.abrupt("return", claimCompTx);
696
+ signer: fundOwner
697
+ }));
693
698
 
694
- case 5:
699
+ case 3:
695
700
  case "end":
696
- return _context5.stop();
701
+ return _context.stop();
697
702
  }
698
703
  }
699
- }, _callee5);
704
+ }, _callee);
700
705
  }));
701
- return _claimComp.apply(this, arguments);
706
+ return _compoundDebtPositionAddCollateral.apply(this, arguments);
702
707
  }
703
708
 
704
- function repayBorrow(_x6) {
705
- return _repayBorrow.apply(this, arguments);
709
+ function compoundDebtPositionBorrow(_x2) {
710
+ return _compoundDebtPositionBorrow.apply(this, arguments);
706
711
  }
707
712
 
708
- function _repayBorrow() {
709
- _repayBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
710
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs, callArgs, repayTx;
711
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
713
+ function _compoundDebtPositionBorrow() {
714
+ _compoundDebtPositionBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
715
+ var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, actionArgs;
716
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
712
717
  while (1) {
713
- switch (_context6.prev = _context6.next) {
718
+ switch (_context2.prev = _context2.next) {
714
719
  case 0:
715
- comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager, fundOwner = _ref6.fundOwner, assets = _ref6.assets, amounts = _ref6.amounts, externalPositionProxy = _ref6.externalPositionProxy, cTokens = _ref6.cTokens;
720
+ comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, fundOwner = _ref2.fundOwner, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts, cTokens = _ref2.cTokens;
716
721
  actionArgs = compoundExternalPositionActionArgs({
717
- assets: assets,
718
722
  amounts: amounts,
723
+ assets: assets,
719
724
  data: encodeArgs(['address[]'], [cTokens])
720
725
  });
721
- callArgs = callOnExternalPositionArgs({
726
+ return _context2.abrupt("return", callOnExternalPosition({
727
+ actionArgs: actionArgs,
728
+ actionId: CompoundDebtPositionActionId.BorrowAsset,
729
+ comptrollerProxy: comptrollerProxy,
730
+ externalPositionManager: externalPositionManager,
722
731
  externalPositionProxy: externalPositionProxy,
723
- actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
724
- encodedCallArgs: actionArgs
725
- });
726
- repayTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
727
- return _context6.abrupt("return", repayTx);
732
+ signer: fundOwner
733
+ }));
728
734
 
729
- case 5:
735
+ case 3:
730
736
  case "end":
731
- return _context6.stop();
737
+ return _context2.stop();
732
738
  }
733
739
  }
734
- }, _callee6);
740
+ }, _callee2);
735
741
  }));
736
- return _repayBorrow.apply(this, arguments);
742
+ return _compoundDebtPositionBorrow.apply(this, arguments);
737
743
  }
738
744
 
739
- function removeExternalPosition(_x7) {
740
- return _removeExternalPosition.apply(this, arguments);
745
+ function compoundDebtPositionClaimComp(_x3) {
746
+ return _compoundDebtPositionClaimComp.apply(this, arguments);
741
747
  }
742
748
 
743
- function _removeExternalPosition() {
744
- _removeExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref7) {
745
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, actionArgs, callArgs, removeExternalPositionTx;
746
- return _regeneratorRuntime.wrap(function _callee7$(_context7) {
749
+ function _compoundDebtPositionClaimComp() {
750
+ _compoundDebtPositionClaimComp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
751
+ var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, actionArgs;
752
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
747
753
  while (1) {
748
- switch (_context7.prev = _context7.next) {
754
+ switch (_context3.prev = _context3.next) {
749
755
  case 0:
750
- comptrollerProxy = _ref7.comptrollerProxy, externalPositionManager = _ref7.externalPositionManager, fundOwner = _ref7.fundOwner, externalPositionProxy = _ref7.externalPositionProxy;
751
- actionArgs = externalPositionRemoveArgs({
752
- externalPositionProxy: externalPositionProxy
756
+ comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, fundOwner = _ref3.fundOwner, externalPositionProxy = _ref3.externalPositionProxy;
757
+ actionArgs = compoundExternalPositionActionArgs({
758
+ amounts: [],
759
+ assets: [],
760
+ data: '0x'
753
761
  });
754
- callArgs = callOnExternalPositionArgs({
762
+ return _context3.abrupt("return", callOnExternalPosition({
763
+ actionArgs: actionArgs,
764
+ actionId: CompoundDebtPositionActionId.ClaimComp,
765
+ comptrollerProxy: comptrollerProxy,
766
+ externalPositionManager: externalPositionManager,
755
767
  externalPositionProxy: externalPositionProxy,
756
- encodedCallArgs: actionArgs
757
- });
758
- removeExternalPositionTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.RemoveExternalPosition, callArgs);
759
- return _context7.abrupt("return", removeExternalPositionTx);
768
+ signer: fundOwner
769
+ }));
760
770
 
761
- case 5:
771
+ case 3:
762
772
  case "end":
763
- return _context7.stop();
773
+ return _context3.stop();
764
774
  }
765
775
  }
766
- }, _callee7);
776
+ }, _callee3);
767
777
  }));
768
- return _removeExternalPosition.apply(this, arguments);
778
+ return _compoundDebtPositionClaimComp.apply(this, arguments);
769
779
  }
770
780
 
771
- function createMockExternalPosition(_x) {
772
- return _createMockExternalPosition.apply(this, arguments);
781
+ function compoundDebtPositionRemoveCollateral(_x4) {
782
+ return _compoundDebtPositionRemoveCollateral.apply(this, arguments);
773
783
  }
774
784
 
775
- function _createMockExternalPosition() {
776
- _createMockExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
777
- var comptrollerProxy, externalPositionManager, externalPositionFactory, defaultActionAssetsToTransfer, defaultActionAmountsToTransfer, defaultActionAssetsToReceive, fundOwner, deployer, vaultProxy, typeId, mockGenericExternalPositionLib, mockExternalPositionParser, receipt, externalPositionProxy;
778
- return _regeneratorRuntime.wrap(function _callee$(_context) {
785
+ function _compoundDebtPositionRemoveCollateral() {
786
+ _compoundDebtPositionRemoveCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
787
+ var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
788
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
779
789
  while (1) {
780
- switch (_context.prev = _context.next) {
790
+ switch (_context4.prev = _context4.next) {
781
791
  case 0:
782
- comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionFactory = _ref.externalPositionFactory, defaultActionAssetsToTransfer = _ref.defaultActionAssetsToTransfer, defaultActionAmountsToTransfer = _ref.defaultActionAmountsToTransfer, defaultActionAssetsToReceive = _ref.defaultActionAssetsToReceive, fundOwner = _ref.fundOwner, deployer = _ref.deployer;
783
- _context.t0 = VaultLib$1;
784
- _context.next = 4;
785
- return comptrollerProxy.getVaultProxy();
786
-
787
- case 4:
788
- _context.t1 = _context.sent;
789
- _context.t2 = deployer;
790
- vaultProxy = new _context.t0(_context.t1, _context.t2);
791
- _context.next = 9;
792
- return externalPositionFactory.getPositionTypeCounter();
792
+ comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, fundOwner = _ref4.fundOwner, assets = _ref4.assets, amounts = _ref4.amounts, externalPositionProxy = _ref4.externalPositionProxy, cTokens = _ref4.cTokens;
793
+ actionArgs = compoundExternalPositionActionArgs({
794
+ amounts: amounts,
795
+ assets: assets,
796
+ data: encodeArgs(['address[]'], [cTokens])
797
+ });
798
+ return _context4.abrupt("return", callOnExternalPosition({
799
+ actionArgs: actionArgs,
800
+ actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
801
+ comptrollerProxy: comptrollerProxy,
802
+ externalPositionManager: externalPositionManager,
803
+ externalPositionProxy: externalPositionProxy,
804
+ signer: fundOwner
805
+ }));
793
806
 
794
- case 9:
795
- typeId = _context.sent;
796
- _context.next = 12;
807
+ case 3:
808
+ case "end":
809
+ return _context4.stop();
810
+ }
811
+ }
812
+ }, _callee4);
813
+ }));
814
+ return _compoundDebtPositionRemoveCollateral.apply(this, arguments);
815
+ }
816
+
817
+ function compoundDebtPositionRepayBorrow(_x5) {
818
+ return _compoundDebtPositionRepayBorrow.apply(this, arguments);
819
+ }
820
+
821
+ function _compoundDebtPositionRepayBorrow() {
822
+ _compoundDebtPositionRepayBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
823
+ var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
824
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
825
+ while (1) {
826
+ switch (_context5.prev = _context5.next) {
827
+ case 0:
828
+ comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, fundOwner = _ref5.fundOwner, assets = _ref5.assets, amounts = _ref5.amounts, externalPositionProxy = _ref5.externalPositionProxy, cTokens = _ref5.cTokens;
829
+ actionArgs = compoundExternalPositionActionArgs({
830
+ amounts: amounts,
831
+ assets: assets,
832
+ data: encodeArgs(['address[]'], [cTokens])
833
+ });
834
+ return _context5.abrupt("return", callOnExternalPosition({
835
+ actionArgs: actionArgs,
836
+ actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
837
+ comptrollerProxy: comptrollerProxy,
838
+ externalPositionManager: externalPositionManager,
839
+ externalPositionProxy: externalPositionProxy,
840
+ signer: fundOwner
841
+ }));
842
+
843
+ case 3:
844
+ case "end":
845
+ return _context5.stop();
846
+ }
847
+ }
848
+ }, _callee5);
849
+ }));
850
+ return _compoundDebtPositionRepayBorrow.apply(this, arguments);
851
+ }
852
+
853
+ function createCompoundDebtPosition(_x6) {
854
+ return _createCompoundDebtPosition.apply(this, arguments);
855
+ }
856
+
857
+ function _createCompoundDebtPosition() {
858
+ _createCompoundDebtPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
859
+ var signer, comptrollerProxy, externalPositionManager;
860
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
861
+ while (1) {
862
+ switch (_context6.prev = _context6.next) {
863
+ case 0:
864
+ signer = _ref6.signer, comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager;
865
+ return _context6.abrupt("return", createExternalPosition({
866
+ comptrollerProxy: comptrollerProxy,
867
+ externalPositionManager: externalPositionManager,
868
+ externalPositionTypeId: ExternalPositionType.CompoundDebtPosition,
869
+ signer: signer
870
+ }));
871
+
872
+ case 2:
873
+ case "end":
874
+ return _context6.stop();
875
+ }
876
+ }
877
+ }, _callee6);
878
+ }));
879
+ return _createCompoundDebtPosition.apply(this, arguments);
880
+ }
881
+
882
+ function createMockExternalPosition(_x) {
883
+ return _createMockExternalPosition.apply(this, arguments);
884
+ }
885
+
886
+ function _createMockExternalPosition() {
887
+ _createMockExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
888
+ var comptrollerProxy, externalPositionManager, externalPositionFactory, defaultActionAssetsToTransfer, defaultActionAmountsToTransfer, defaultActionAssetsToReceive, fundOwner, deployer, vaultProxy, typeId, mockGenericExternalPositionLib, mockExternalPositionParser, receipt, externalPositionProxy;
889
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
890
+ while (1) {
891
+ switch (_context.prev = _context.next) {
892
+ case 0:
893
+ comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionFactory = _ref.externalPositionFactory, defaultActionAssetsToTransfer = _ref.defaultActionAssetsToTransfer, defaultActionAmountsToTransfer = _ref.defaultActionAmountsToTransfer, defaultActionAssetsToReceive = _ref.defaultActionAssetsToReceive, fundOwner = _ref.fundOwner, deployer = _ref.deployer;
894
+ _context.t0 = VaultLib;
895
+ _context.next = 4;
896
+ return comptrollerProxy.getVaultProxy();
897
+
898
+ case 4:
899
+ _context.t1 = _context.sent;
900
+ _context.t2 = deployer;
901
+ vaultProxy = new _context.t0(_context.t1, _context.t2);
902
+ _context.next = 9;
903
+ return externalPositionFactory.getPositionTypeCounter();
904
+
905
+ case 9:
906
+ typeId = _context.sent;
907
+ _context.next = 12;
797
908
  return externalPositionFactory.addNewPositionTypes(['TEST']);
798
909
 
799
910
  case 12:
@@ -813,7 +924,7 @@ function _createMockExternalPosition() {
813
924
 
814
925
  case 21:
815
926
  _context.next = 23;
816
- return comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId$1.CreateExternalPosition, encodeArgs$1(['uint256', 'bytes'], [typeId, '0x']));
927
+ return comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CreateExternalPosition, encodeArgs(['uint256', 'bytes'], [typeId, '0x']));
817
928
 
818
929
  case 23:
819
930
  receipt = _context.sent;
@@ -823,11 +934,11 @@ function _createMockExternalPosition() {
823
934
  case 26:
824
935
  externalPositionProxy = _context.sent[0];
825
936
  return _context.abrupt("return", {
826
- typeId: typeId,
827
- mockGenericExternalPositionLib: mockGenericExternalPositionLib,
828
- mockExternalPositionParser: mockExternalPositionParser,
829
937
  externalPositionProxy: externalPositionProxy,
830
- receipt: receipt
938
+ mockExternalPositionParser: mockExternalPositionParser,
939
+ mockGenericExternalPositionLib: mockGenericExternalPositionLib,
940
+ receipt: receipt,
941
+ typeId: typeId
831
942
  });
832
943
 
833
944
  case 28:
@@ -840,6 +951,416 @@ function _createMockExternalPosition() {
840
951
  return _createMockExternalPosition.apply(this, arguments);
841
952
  }
842
953
 
954
+ function mockExternalPositionAddDebtAssets(_x2) {
955
+ return _mockExternalPositionAddDebtAssets.apply(this, arguments);
956
+ }
957
+
958
+ function _mockExternalPositionAddDebtAssets() {
959
+ _mockExternalPositionAddDebtAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
960
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
961
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
962
+ while (1) {
963
+ switch (_context2.prev = _context2.next) {
964
+ case 0:
965
+ signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts;
966
+ actionArgs = mockGenericExternalPositionActionArgs({
967
+ amounts: amounts,
968
+ assets: assets
969
+ });
970
+ return _context2.abrupt("return", callOnExternalPosition({
971
+ actionArgs: actionArgs,
972
+ actionId: MockGenericExternalPositionActionId.AddDebtAssets,
973
+ comptrollerProxy: comptrollerProxy,
974
+ externalPositionManager: externalPositionManager,
975
+ externalPositionProxy: externalPositionProxy,
976
+ signer: signer
977
+ }));
978
+
979
+ case 3:
980
+ case "end":
981
+ return _context2.stop();
982
+ }
983
+ }
984
+ }, _callee2);
985
+ }));
986
+ return _mockExternalPositionAddDebtAssets.apply(this, arguments);
987
+ }
988
+
989
+ function mockExternalPositionAddManagedAssets(_x3) {
990
+ return _mockExternalPositionAddManagedAssets.apply(this, arguments);
991
+ }
992
+
993
+ function _mockExternalPositionAddManagedAssets() {
994
+ _mockExternalPositionAddManagedAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
995
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
996
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
997
+ while (1) {
998
+ switch (_context3.prev = _context3.next) {
999
+ case 0:
1000
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, assets = _ref3.assets, amounts = _ref3.amounts;
1001
+ actionArgs = mockGenericExternalPositionActionArgs({
1002
+ amounts: amounts,
1003
+ assets: assets
1004
+ });
1005
+ return _context3.abrupt("return", callOnExternalPosition({
1006
+ actionArgs: actionArgs,
1007
+ actionId: MockGenericExternalPositionActionId.AddManagedAssets,
1008
+ comptrollerProxy: comptrollerProxy,
1009
+ externalPositionManager: externalPositionManager,
1010
+ externalPositionProxy: externalPositionProxy,
1011
+ signer: signer
1012
+ }));
1013
+
1014
+ case 3:
1015
+ case "end":
1016
+ return _context3.stop();
1017
+ }
1018
+ }
1019
+ }, _callee3);
1020
+ }));
1021
+ return _mockExternalPositionAddManagedAssets.apply(this, arguments);
1022
+ }
1023
+
1024
+ function mockExternalPositionRemoveDebtAssets(_x4) {
1025
+ return _mockExternalPositionRemoveDebtAssets.apply(this, arguments);
1026
+ }
1027
+
1028
+ function _mockExternalPositionRemoveDebtAssets() {
1029
+ _mockExternalPositionRemoveDebtAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1030
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1031
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1032
+ while (1) {
1033
+ switch (_context4.prev = _context4.next) {
1034
+ case 0:
1035
+ signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, assets = _ref4.assets, amounts = _ref4.amounts;
1036
+ actionArgs = mockGenericExternalPositionActionArgs({
1037
+ amounts: amounts,
1038
+ assets: assets
1039
+ });
1040
+ return _context4.abrupt("return", callOnExternalPosition({
1041
+ actionArgs: actionArgs,
1042
+ actionId: MockGenericExternalPositionActionId.RemoveDebtAssets,
1043
+ comptrollerProxy: comptrollerProxy,
1044
+ externalPositionManager: externalPositionManager,
1045
+ externalPositionProxy: externalPositionProxy,
1046
+ signer: signer
1047
+ }));
1048
+
1049
+ case 3:
1050
+ case "end":
1051
+ return _context4.stop();
1052
+ }
1053
+ }
1054
+ }, _callee4);
1055
+ }));
1056
+ return _mockExternalPositionRemoveDebtAssets.apply(this, arguments);
1057
+ }
1058
+
1059
+ function mockExternalPositionRemoveManagedAssets(_x5) {
1060
+ return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1061
+ }
1062
+
1063
+ function _mockExternalPositionRemoveManagedAssets() {
1064
+ _mockExternalPositionRemoveManagedAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1065
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1066
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1067
+ while (1) {
1068
+ switch (_context5.prev = _context5.next) {
1069
+ case 0:
1070
+ signer = _ref5.signer, comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, externalPositionProxy = _ref5.externalPositionProxy, assets = _ref5.assets, amounts = _ref5.amounts;
1071
+ actionArgs = mockGenericExternalPositionActionArgs({
1072
+ amounts: amounts,
1073
+ assets: assets
1074
+ });
1075
+ return _context5.abrupt("return", callOnExternalPosition({
1076
+ actionArgs: actionArgs,
1077
+ actionId: MockGenericExternalPositionActionId.RemoveManagedAssets,
1078
+ comptrollerProxy: comptrollerProxy,
1079
+ externalPositionManager: externalPositionManager,
1080
+ externalPositionProxy: externalPositionProxy,
1081
+ signer: signer
1082
+ }));
1083
+
1084
+ case 3:
1085
+ case "end":
1086
+ return _context5.stop();
1087
+ }
1088
+ }
1089
+ }, _callee5);
1090
+ }));
1091
+ return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1092
+ }
1093
+
1094
+ var _templateObject$3;
1095
+ var UniswapV3FeeAmount;
1096
+
1097
+ (function (UniswapV3FeeAmount) {
1098
+ UniswapV3FeeAmount[UniswapV3FeeAmount["LOW"] = 500] = "LOW";
1099
+ UniswapV3FeeAmount[UniswapV3FeeAmount["MEDIUM"] = 3000] = "MEDIUM";
1100
+ UniswapV3FeeAmount[UniswapV3FeeAmount["HIGH"] = 10000] = "HIGH";
1101
+ })(UniswapV3FeeAmount || (UniswapV3FeeAmount = {}));
1102
+
1103
+ var uniswapV3LiquidityPositionGetMinTick = function uniswapV3LiquidityPositionGetMinTick(tickSpacing) {
1104
+ return Math.ceil(-887272 / tickSpacing) * tickSpacing;
1105
+ };
1106
+ var uniswapV3LiquidityPositionGetMaxTick = function uniswapV3LiquidityPositionGetMaxTick(tickSpacing) {
1107
+ return Math.floor(887272 / tickSpacing) * tickSpacing;
1108
+ };
1109
+ var IUniswapV3NonFungibleTokenManager = contract()(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n function positions(uint256 tokenId) view returns (uint96 nonce, address operator, address token0, address token1, uint24 fee, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1)\n"])));
1110
+ function createUniswapV3LiquidityPosition(_x) {
1111
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1112
+ }
1113
+
1114
+ function _createUniswapV3LiquidityPosition() {
1115
+ _createUniswapV3LiquidityPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1116
+ var signer, comptrollerProxy, externalPositionManager, token0, token1, initArgs, receipt, vaultProxy, externalPositions, externalPositionProxyAddress;
1117
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
1118
+ while (1) {
1119
+ switch (_context.prev = _context.next) {
1120
+ case 0:
1121
+ signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, token0 = _ref.token0, token1 = _ref.token1;
1122
+ initArgs = uniswapV3LiquidityPositionInitArgs({
1123
+ token0: token0,
1124
+ token1: token1
1125
+ });
1126
+ _context.next = 4;
1127
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CreateExternalPosition, encodeArgs(['uint256', 'bytes'], [ExternalPositionType.UniswapV3LiquidityPosition, initArgs]));
1128
+
1129
+ case 4:
1130
+ receipt = _context.sent;
1131
+ _context.t0 = VaultLib;
1132
+ _context.next = 8;
1133
+ return comptrollerProxy.getVaultProxy();
1134
+
1135
+ case 8:
1136
+ _context.t1 = _context.sent;
1137
+ _context.t2 = signer;
1138
+ vaultProxy = new _context.t0(_context.t1, _context.t2);
1139
+ _context.next = 13;
1140
+ return vaultProxy.getActiveExternalPositions.call();
1141
+
1142
+ case 13:
1143
+ externalPositions = _context.sent;
1144
+ externalPositionProxyAddress = externalPositions[externalPositions.length - 1];
1145
+ return _context.abrupt("return", {
1146
+ externalPositionProxyAddress: externalPositionProxyAddress,
1147
+ receipt: receipt
1148
+ });
1149
+
1150
+ case 16:
1151
+ case "end":
1152
+ return _context.stop();
1153
+ }
1154
+ }
1155
+ }, _callee);
1156
+ }));
1157
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1158
+ }
1159
+
1160
+ function uniswapV3LiquidityPositionAddLiquidity(_x2) {
1161
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1162
+ }
1163
+
1164
+ function _uniswapV3LiquidityPositionAddLiquidity() {
1165
+ _uniswapV3LiquidityPositionAddLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1166
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, amount0Desired, amount1Desired, _ref2$amount0Min, amount0Min, _ref2$amount1Min, amount1Min, actionArgs, callArgs;
1167
+
1168
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1169
+ while (1) {
1170
+ switch (_context2.prev = _context2.next) {
1171
+ case 0:
1172
+ signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionProxy = _ref2.externalPositionProxy, nftId = _ref2.nftId, amount0Desired = _ref2.amount0Desired, amount1Desired = _ref2.amount1Desired, _ref2$amount0Min = _ref2.amount0Min, amount0Min = _ref2$amount0Min === void 0 ? 0 : _ref2$amount0Min, _ref2$amount1Min = _ref2.amount1Min, amount1Min = _ref2$amount1Min === void 0 ? 0 : _ref2$amount1Min;
1173
+ actionArgs = uniswapV3LiquidityPositionAddLiquidityArgs({
1174
+ amount0Desired: amount0Desired,
1175
+ amount0Min: amount0Min,
1176
+ amount1Desired: amount1Desired,
1177
+ amount1Min: amount1Min,
1178
+ nftId: nftId
1179
+ });
1180
+ callArgs = callOnExternalPositionArgs({
1181
+ actionArgs: actionArgs,
1182
+ actionId: UniswapV3LiquidityPositionActionId.AddLiquidity,
1183
+ externalPositionProxy: externalPositionProxy
1184
+ });
1185
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1186
+
1187
+ case 4:
1188
+ case "end":
1189
+ return _context2.stop();
1190
+ }
1191
+ }
1192
+ }, _callee2);
1193
+ }));
1194
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1195
+ }
1196
+
1197
+ function uniswapV3LiquidityPositionCollect(_x3) {
1198
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1199
+ }
1200
+
1201
+ function _uniswapV3LiquidityPositionCollect() {
1202
+ _uniswapV3LiquidityPositionCollect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1203
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, actionArgs, callArgs;
1204
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1205
+ while (1) {
1206
+ switch (_context3.prev = _context3.next) {
1207
+ case 0:
1208
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, nftId = _ref3.nftId;
1209
+ actionArgs = uniswapV3LiquidityPositionCollectArgs({
1210
+ nftId: nftId
1211
+ });
1212
+ callArgs = callOnExternalPositionArgs({
1213
+ actionArgs: actionArgs,
1214
+ actionId: UniswapV3LiquidityPositionActionId.Collect,
1215
+ externalPositionProxy: externalPositionProxy
1216
+ });
1217
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1218
+
1219
+ case 4:
1220
+ case "end":
1221
+ return _context3.stop();
1222
+ }
1223
+ }
1224
+ }, _callee3);
1225
+ }));
1226
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1227
+ }
1228
+
1229
+ function uniswapV3LiquidityPositionMint(_x4) {
1230
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1231
+ }
1232
+
1233
+ function _uniswapV3LiquidityPositionMint() {
1234
+ _uniswapV3LiquidityPositionMint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1235
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, fee, tickLower, tickUpper, amount0Desired, amount1Desired, _ref4$amount0Min, amount0Min, _ref4$amount1Min, amount1Min, actionArgs, callArgs, receipt, externalPosition, nftId;
1236
+
1237
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1238
+ while (1) {
1239
+ switch (_context4.prev = _context4.next) {
1240
+ case 0:
1241
+ signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, fee = _ref4.fee, tickLower = _ref4.tickLower, tickUpper = _ref4.tickUpper, amount0Desired = _ref4.amount0Desired, amount1Desired = _ref4.amount1Desired, _ref4$amount0Min = _ref4.amount0Min, amount0Min = _ref4$amount0Min === void 0 ? 0 : _ref4$amount0Min, _ref4$amount1Min = _ref4.amount1Min, amount1Min = _ref4$amount1Min === void 0 ? 0 : _ref4$amount1Min;
1242
+ actionArgs = uniswapV3LiquidityPositionMintArgs({
1243
+ amount0Desired: amount0Desired,
1244
+ amount0Min: amount0Min,
1245
+ amount1Desired: amount1Desired,
1246
+ amount1Min: amount1Min,
1247
+ fee: fee,
1248
+ tickLower: tickLower,
1249
+ tickUpper: tickUpper
1250
+ });
1251
+ callArgs = callOnExternalPositionArgs({
1252
+ actionArgs: actionArgs,
1253
+ actionId: UniswapV3LiquidityPositionActionId.Mint,
1254
+ externalPositionProxy: externalPositionProxy
1255
+ });
1256
+ _context4.next = 5;
1257
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
1258
+
1259
+ case 5:
1260
+ receipt = _context4.sent;
1261
+ externalPosition = new UniswapV3LiquidityPositionLib(externalPositionProxy, provider);
1262
+ nftId = extractEvent(receipt, externalPosition.abi.getEvent('NFTPositionAdded'))[0].args.tokenId;
1263
+ return _context4.abrupt("return", {
1264
+ nftId: nftId,
1265
+ receipt: receipt
1266
+ });
1267
+
1268
+ case 9:
1269
+ case "end":
1270
+ return _context4.stop();
1271
+ }
1272
+ }
1273
+ }, _callee4);
1274
+ }));
1275
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1276
+ }
1277
+
1278
+ function uniswapV3LiquidityPositionPurge(_x5) {
1279
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1280
+ }
1281
+
1282
+ function _uniswapV3LiquidityPositionPurge() {
1283
+ _uniswapV3LiquidityPositionPurge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1284
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref5$amount0Min, amount0Min, _ref5$amount1Min, amount1Min, actionArgs, callArgs;
1285
+
1286
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1287
+ while (1) {
1288
+ switch (_context5.prev = _context5.next) {
1289
+ case 0:
1290
+ signer = _ref5.signer, comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, externalPositionProxy = _ref5.externalPositionProxy, nftId = _ref5.nftId, liquidity = _ref5.liquidity, _ref5$amount0Min = _ref5.amount0Min, amount0Min = _ref5$amount0Min === void 0 ? 0 : _ref5$amount0Min, _ref5$amount1Min = _ref5.amount1Min, amount1Min = _ref5$amount1Min === void 0 ? 0 : _ref5$amount1Min;
1291
+ actionArgs = uniswapV3LiquidityPositionPurgeArgs({
1292
+ amount0Min: amount0Min,
1293
+ amount1Min: amount1Min,
1294
+ liquidity: liquidity,
1295
+ nftId: nftId
1296
+ });
1297
+ callArgs = callOnExternalPositionArgs({
1298
+ actionArgs: actionArgs,
1299
+ actionId: UniswapV3LiquidityPositionActionId.Purge,
1300
+ externalPositionProxy: externalPositionProxy
1301
+ });
1302
+ return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1303
+
1304
+ case 4:
1305
+ case "end":
1306
+ return _context5.stop();
1307
+ }
1308
+ }
1309
+ }, _callee5);
1310
+ }));
1311
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1312
+ }
1313
+
1314
+ function uniswapV3LiquidityPositionRemoveLiquidity(_x6) {
1315
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1316
+ }
1317
+
1318
+ function _uniswapV3LiquidityPositionRemoveLiquidity() {
1319
+ _uniswapV3LiquidityPositionRemoveLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
1320
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref6$amount0Min, amount0Min, _ref6$amount1Min, amount1Min, actionArgs, callArgs;
1321
+
1322
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
1323
+ while (1) {
1324
+ switch (_context6.prev = _context6.next) {
1325
+ case 0:
1326
+ signer = _ref6.signer, comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager, externalPositionProxy = _ref6.externalPositionProxy, nftId = _ref6.nftId, liquidity = _ref6.liquidity, _ref6$amount0Min = _ref6.amount0Min, amount0Min = _ref6$amount0Min === void 0 ? 0 : _ref6$amount0Min, _ref6$amount1Min = _ref6.amount1Min, amount1Min = _ref6$amount1Min === void 0 ? 0 : _ref6$amount1Min;
1327
+ actionArgs = uniswapV3LiquidityPositionRemoveLiquidityArgs({
1328
+ amount0Min: amount0Min,
1329
+ amount1Min: amount1Min,
1330
+ liquidity: liquidity,
1331
+ nftId: nftId
1332
+ });
1333
+ callArgs = callOnExternalPositionArgs({
1334
+ actionArgs: actionArgs,
1335
+ actionId: UniswapV3LiquidityPositionActionId.RemoveLiquidity,
1336
+ externalPositionProxy: externalPositionProxy
1337
+ });
1338
+ return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1339
+
1340
+ case 4:
1341
+ case "end":
1342
+ return _context6.stop();
1343
+ }
1344
+ }
1345
+ }, _callee6);
1346
+ }));
1347
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1348
+ }
1349
+
1350
+ function uniswapV3OrderTokenPair(_ref7) {
1351
+ var tokenA = _ref7.tokenA,
1352
+ tokenB = _ref7.tokenB;
1353
+ var tokenAAddress = resolveAddress(tokenA);
1354
+ var tokenBAddress = resolveAddress(tokenB);
1355
+ return tokenAAddress < tokenBAddress ? {
1356
+ token0: tokenAAddress,
1357
+ token1: tokenBAddress
1358
+ } : {
1359
+ token0: tokenBAddress,
1360
+ token1: tokenAAddress
1361
+ };
1362
+ }
1363
+
843
1364
  function generateFeeManagerConfigWithMockFees(_x) {
844
1365
  return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
845
1366
  }
@@ -944,8 +1465,8 @@ function _aaveLend() {
944
1465
  });
945
1466
  callArgs = callOnIntegrationArgs({
946
1467
  adapter: aaveAdapter,
947
- selector: lendSelector,
948
- encodedCallArgs: lendArgs
1468
+ encodedCallArgs: lendArgs,
1469
+ selector: lendSelector
949
1470
  });
950
1471
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
951
1472
  return _context.abrupt("return", lendTx);
@@ -979,8 +1500,8 @@ function _aaveRedeem() {
979
1500
  });
980
1501
  callArgs = callOnIntegrationArgs({
981
1502
  adapter: aaveAdapter,
982
- selector: redeemSelector,
983
- encodedCallArgs: redeemArgs
1503
+ encodedCallArgs: redeemArgs,
1504
+ selector: redeemSelector
984
1505
  });
985
1506
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
986
1507
  return _context2.abrupt("return", redeemTx);
@@ -1012,13 +1533,13 @@ function _compoundLend() {
1012
1533
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, compoundAdapter = _ref.compoundAdapter, cToken = _ref.cToken, _ref$tokenAmount = _ref.tokenAmount, tokenAmount = _ref$tokenAmount === void 0 ? utils.parseEther('1') : _ref$tokenAmount, _ref$cTokenAmount = _ref.cTokenAmount, cTokenAmount = _ref$cTokenAmount === void 0 ? utils.parseEther('1') : _ref$cTokenAmount;
1013
1534
  lendArgs = compoundArgs({
1014
1535
  cToken: cToken,
1015
- outgoingAssetAmount: tokenAmount,
1016
- minIncomingAssetAmount: cTokenAmount
1536
+ minIncomingAssetAmount: cTokenAmount,
1537
+ outgoingAssetAmount: tokenAmount
1017
1538
  });
1018
1539
  callArgs = callOnIntegrationArgs({
1019
1540
  adapter: compoundAdapter,
1020
- selector: lendSelector,
1021
- encodedCallArgs: lendArgs
1541
+ encodedCallArgs: lendArgs,
1542
+ selector: lendSelector
1022
1543
  });
1023
1544
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1024
1545
  return _context.abrupt("return", lendTx);
@@ -1048,13 +1569,13 @@ function _compoundRedeem() {
1048
1569
  comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, compoundAdapter = _ref2.compoundAdapter, cToken = _ref2.cToken, _ref2$tokenAmount = _ref2.tokenAmount, tokenAmount = _ref2$tokenAmount === void 0 ? utils.parseEther('1') : _ref2$tokenAmount, _ref2$cTokenAmount = _ref2.cTokenAmount, cTokenAmount = _ref2$cTokenAmount === void 0 ? utils.parseEther('1') : _ref2$cTokenAmount;
1049
1570
  redeemArgs = compoundArgs({
1050
1571
  cToken: resolveAddress(cToken),
1051
- outgoingAssetAmount: cTokenAmount,
1052
- minIncomingAssetAmount: tokenAmount
1572
+ minIncomingAssetAmount: tokenAmount,
1573
+ outgoingAssetAmount: cTokenAmount
1053
1574
  });
1054
1575
  callArgs = callOnIntegrationArgs({
1055
1576
  adapter: compoundAdapter,
1056
- selector: redeemSelector,
1057
- encodedCallArgs: redeemArgs
1577
+ encodedCallArgs: redeemArgs,
1578
+ selector: redeemSelector
1058
1579
  });
1059
1580
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1060
1581
  return _context2.abrupt("return", redeemTx);
@@ -1089,16 +1610,16 @@ function _curveTakeOrder() {
1089
1610
  case 0:
1090
1611
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, curveExchangeAdapter = _ref.curveExchangeAdapter, pool = _ref.pool, outgoingAsset = _ref.outgoingAsset, _ref$outgoingAssetAmo = _ref.outgoingAssetAmount, outgoingAssetAmount = _ref$outgoingAssetAmo === void 0 ? utils.parseEther('1') : _ref$outgoingAssetAmo, incomingAsset = _ref.incomingAsset, _ref$minIncomingAsset = _ref.minIncomingAssetAmount, minIncomingAssetAmount = _ref$minIncomingAsset === void 0 ? utils.parseEther('1') : _ref$minIncomingAsset;
1091
1612
  takeOrderArgs = curveTakeOrderArgs({
1092
- pool: pool,
1613
+ incomingAsset: incomingAsset,
1614
+ minIncomingAssetAmount: minIncomingAssetAmount,
1093
1615
  outgoingAsset: outgoingAsset,
1094
1616
  outgoingAssetAmount: outgoingAssetAmount,
1095
- incomingAsset: incomingAsset,
1096
- minIncomingAssetAmount: minIncomingAssetAmount
1617
+ pool: pool
1097
1618
  });
1098
1619
  callArgs = callOnIntegrationArgs({
1099
1620
  adapter: curveExchangeAdapter,
1100
- selector: takeOrderSelector,
1101
- encodedCallArgs: takeOrderArgs
1621
+ encodedCallArgs: takeOrderArgs,
1622
+ selector: takeOrderSelector
1102
1623
  });
1103
1624
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1104
1625
 
@@ -1119,8 +1640,8 @@ function curveAaveClaimRewards(_ref2) {
1119
1640
  curveLiquidityAaveAdapter = _ref2.curveLiquidityAaveAdapter;
1120
1641
  var callArgs = callOnIntegrationArgs({
1121
1642
  adapter: curveLiquidityAaveAdapter,
1122
- selector: claimRewardsSelector,
1123
- encodedCallArgs: constants.HashZero
1643
+ encodedCallArgs: constants.HashZero,
1644
+ selector: claimRewardsSelector
1124
1645
  });
1125
1646
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1126
1647
  }
@@ -1141,14 +1662,14 @@ function curveAaveLend(_ref3) {
1141
1662
  useUnderlyings = _ref3$useUnderlyings === void 0 ? false : _ref3$useUnderlyings;
1142
1663
  var callArgs = callOnIntegrationArgs({
1143
1664
  adapter: curveLiquidityAaveAdapter,
1144
- selector: lendSelector,
1145
1665
  encodedCallArgs: curveAaveLendArgs({
1666
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1146
1667
  outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1147
1668
  outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1148
1669
  outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1149
- minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1150
1670
  useUnderlyings: useUnderlyings
1151
- })
1671
+ }),
1672
+ selector: lendSelector
1152
1673
  });
1153
1674
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1154
1675
  }
@@ -1169,14 +1690,14 @@ function curveAaveLendAndStake(_ref4) {
1169
1690
  useUnderlyings = _ref4$useUnderlyings === void 0 ? false : _ref4$useUnderlyings;
1170
1691
  var callArgs = callOnIntegrationArgs({
1171
1692
  adapter: curveLiquidityAaveAdapter,
1172
- selector: lendAndStakeSelector,
1173
1693
  encodedCallArgs: curveAaveLendAndStakeArgs({
1694
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1174
1695
  outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1175
1696
  outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1176
1697
  outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1177
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1178
1698
  useUnderlyings: useUnderlyings
1179
- })
1699
+ }),
1700
+ selector: lendAndStakeSelector
1180
1701
  });
1181
1702
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1182
1703
  }
@@ -1198,15 +1719,15 @@ function curveAaveRedeem(_ref5) {
1198
1719
  useUnderlyings = _ref5$useUnderlyings === void 0 ? false : _ref5$useUnderlyings;
1199
1720
  var callArgs = callOnIntegrationArgs({
1200
1721
  adapter: curveLiquidityAaveAdapter,
1201
- selector: redeemSelector,
1202
1722
  encodedCallArgs: curveAaveRedeemArgs({
1203
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1204
1723
  minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1205
1724
  minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1206
1725
  minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1726
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1207
1727
  receiveSingleAsset: receiveSingleAsset,
1208
1728
  useUnderlyings: useUnderlyings
1209
- })
1729
+ }),
1730
+ selector: redeemSelector
1210
1731
  });
1211
1732
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1212
1733
  }
@@ -1218,10 +1739,10 @@ function curveAaveStake(_ref6) {
1218
1739
  outgoingLPTokenAmount = _ref6.outgoingLPTokenAmount;
1219
1740
  var callArgs = callOnIntegrationArgs({
1220
1741
  adapter: curveLiquidityAaveAdapter,
1221
- selector: stakeSelector,
1222
1742
  encodedCallArgs: curveAaveStakeArgs({
1223
1743
  outgoingLPTokenAmount: outgoingLPTokenAmount
1224
- })
1744
+ }),
1745
+ selector: stakeSelector
1225
1746
  });
1226
1747
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1227
1748
  }
@@ -1243,15 +1764,15 @@ function curveAaveUnstakeAndRedeem(_ref7) {
1243
1764
  useUnderlyings = _ref7$useUnderlyings === void 0 ? false : _ref7$useUnderlyings;
1244
1765
  var callArgs = callOnIntegrationArgs({
1245
1766
  adapter: curveLiquidityAaveAdapter,
1246
- selector: unstakeAndRedeemSelector,
1247
1767
  encodedCallArgs: curveAaveUnstakeAndRedeemArgs({
1248
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1249
1768
  minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1250
1769
  minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1251
1770
  minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1771
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1252
1772
  receiveSingleAsset: receiveSingleAsset,
1253
1773
  useUnderlyings: useUnderlyings
1254
- })
1774
+ }),
1775
+ selector: unstakeAndRedeemSelector
1255
1776
  });
1256
1777
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1257
1778
  }
@@ -1263,10 +1784,10 @@ function curveAaveUnstake(_ref8) {
1263
1784
  outgoingLiquidityGaugeTokenAmount = _ref8.outgoingLiquidityGaugeTokenAmount;
1264
1785
  var callArgs = callOnIntegrationArgs({
1265
1786
  adapter: curveLiquidityAaveAdapter,
1266
- selector: unstakeSelector,
1267
1787
  encodedCallArgs: curveAaveUnstakeArgs({
1268
1788
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1269
- })
1789
+ }),
1790
+ selector: unstakeSelector
1270
1791
  });
1271
1792
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1272
1793
  } // eurs pool
@@ -1278,8 +1799,8 @@ function curveEursClaimRewards(_ref9) {
1278
1799
  curveLiquidityEursAdapter = _ref9.curveLiquidityEursAdapter;
1279
1800
  var callArgs = callOnIntegrationArgs({
1280
1801
  adapter: curveLiquidityEursAdapter,
1281
- selector: claimRewardsSelector,
1282
- encodedCallArgs: constants.HashZero
1802
+ encodedCallArgs: constants.HashZero,
1803
+ selector: claimRewardsSelector
1283
1804
  });
1284
1805
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1285
1806
  }
@@ -1293,12 +1814,12 @@ function curveEursLend(_ref10) {
1293
1814
  minIncomingLPTokenAmount = _ref10.minIncomingLPTokenAmount;
1294
1815
  var callArgs = callOnIntegrationArgs({
1295
1816
  adapter: curveLiquidityEursAdapter,
1296
- selector: lendSelector,
1297
1817
  encodedCallArgs: curveEursLendArgs({
1818
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1298
1819
  outgoingEursAmount: outgoingEursAmount,
1299
- outgoingSeurAmount: outgoingSeurAmount,
1300
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1301
- })
1820
+ outgoingSeurAmount: outgoingSeurAmount
1821
+ }),
1822
+ selector: lendSelector
1302
1823
  });
1303
1824
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1304
1825
  }
@@ -1312,12 +1833,12 @@ function curveEursLendAndStake(_ref11) {
1312
1833
  minIncomingLiquidityGaugeTokenAmount = _ref11.minIncomingLiquidityGaugeTokenAmount;
1313
1834
  var callArgs = callOnIntegrationArgs({
1314
1835
  adapter: curveLiquidityEursAdapter,
1315
- selector: lendAndStakeSelector,
1316
1836
  encodedCallArgs: curveEursLendAndStakeArgs({
1837
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1317
1838
  outgoingEursAmount: outgoingEursAmount,
1318
- outgoingSeurAmount: outgoingSeurAmount,
1319
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1320
- })
1839
+ outgoingSeurAmount: outgoingSeurAmount
1840
+ }),
1841
+ selector: lendAndStakeSelector
1321
1842
  });
1322
1843
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1323
1844
  }
@@ -1332,13 +1853,13 @@ function curveEursRedeem(_ref12) {
1332
1853
  receiveSingleAsset = _ref12.receiveSingleAsset;
1333
1854
  var callArgs = callOnIntegrationArgs({
1334
1855
  adapter: curveLiquidityEursAdapter,
1335
- selector: redeemSelector,
1336
1856
  encodedCallArgs: curveEursRedeemArgs({
1337
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1338
1857
  minIncomingEursAmount: minIncomingEursAmount,
1339
1858
  minIncomingSeurAmount: minIncomingSeurAmount,
1859
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1340
1860
  receiveSingleAsset: receiveSingleAsset
1341
- })
1861
+ }),
1862
+ selector: redeemSelector
1342
1863
  });
1343
1864
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1344
1865
  }
@@ -1350,10 +1871,10 @@ function curveEursStake(_ref13) {
1350
1871
  outgoingLPTokenAmount = _ref13.outgoingLPTokenAmount;
1351
1872
  var callArgs = callOnIntegrationArgs({
1352
1873
  adapter: curveLiquidityEursAdapter,
1353
- selector: stakeSelector,
1354
1874
  encodedCallArgs: curveEursStakeArgs({
1355
1875
  outgoingLPTokenAmount: outgoingLPTokenAmount
1356
- })
1876
+ }),
1877
+ selector: stakeSelector
1357
1878
  });
1358
1879
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1359
1880
  }
@@ -1368,13 +1889,13 @@ function curveEursUnstakeAndRedeem(_ref14) {
1368
1889
  receiveSingleAsset = _ref14.receiveSingleAsset;
1369
1890
  var callArgs = callOnIntegrationArgs({
1370
1891
  adapter: curveLiquidityEursAdapter,
1371
- selector: unstakeAndRedeemSelector,
1372
1892
  encodedCallArgs: curveEursUnstakeAndRedeemArgs({
1373
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1374
1893
  minIncomingEursAmount: minIncomingEursAmount,
1375
1894
  minIncomingSeurAmount: minIncomingSeurAmount,
1895
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1376
1896
  receiveSingleAsset: receiveSingleAsset
1377
- })
1897
+ }),
1898
+ selector: unstakeAndRedeemSelector
1378
1899
  });
1379
1900
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1380
1901
  }
@@ -1386,10 +1907,10 @@ function curveEursUnstake(_ref15) {
1386
1907
  outgoingLiquidityGaugeTokenAmount = _ref15.outgoingLiquidityGaugeTokenAmount;
1387
1908
  var callArgs = callOnIntegrationArgs({
1388
1909
  adapter: curveLiquidityEursAdapter,
1389
- selector: unstakeSelector,
1390
1910
  encodedCallArgs: curveEursUnstakeArgs({
1391
1911
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1392
- })
1912
+ }),
1913
+ selector: unstakeSelector
1393
1914
  });
1394
1915
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1395
1916
  } // sETH pool
@@ -1401,8 +1922,8 @@ function curveSethClaimRewards(_ref16) {
1401
1922
  curveLiquiditySethAdapter = _ref16.curveLiquiditySethAdapter;
1402
1923
  var callArgs = callOnIntegrationArgs({
1403
1924
  adapter: curveLiquiditySethAdapter,
1404
- selector: claimRewardsSelector,
1405
- encodedCallArgs: constants.HashZero
1925
+ encodedCallArgs: constants.HashZero,
1926
+ selector: claimRewardsSelector
1406
1927
  });
1407
1928
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1408
1929
  }
@@ -1416,12 +1937,12 @@ function curveSethLend(_ref17) {
1416
1937
  minIncomingLPTokenAmount = _ref17.minIncomingLPTokenAmount;
1417
1938
  var callArgs = callOnIntegrationArgs({
1418
1939
  adapter: curveLiquiditySethAdapter,
1419
- selector: lendSelector,
1420
1940
  encodedCallArgs: curveSethLendArgs({
1421
- outgoingWethAmount: outgoingWethAmount,
1941
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1422
1942
  outgoingSethAmount: outgoingSethAmount,
1423
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1424
- })
1943
+ outgoingWethAmount: outgoingWethAmount
1944
+ }),
1945
+ selector: lendSelector
1425
1946
  });
1426
1947
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1427
1948
  }
@@ -1435,12 +1956,12 @@ function curveSethLendAndStake(_ref18) {
1435
1956
  minIncomingLiquidityGaugeTokenAmount = _ref18.minIncomingLiquidityGaugeTokenAmount;
1436
1957
  var callArgs = callOnIntegrationArgs({
1437
1958
  adapter: curveLiquiditySethAdapter,
1438
- selector: lendAndStakeSelector,
1439
1959
  encodedCallArgs: curveSethLendAndStakeArgs({
1440
- outgoingWethAmount: outgoingWethAmount,
1960
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1441
1961
  outgoingSethAmount: outgoingSethAmount,
1442
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1443
- })
1962
+ outgoingWethAmount: outgoingWethAmount
1963
+ }),
1964
+ selector: lendAndStakeSelector
1444
1965
  });
1445
1966
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1446
1967
  }
@@ -1455,13 +1976,13 @@ function curveSethRedeem(_ref19) {
1455
1976
  receiveSingleAsset = _ref19.receiveSingleAsset;
1456
1977
  var callArgs = callOnIntegrationArgs({
1457
1978
  adapter: curveLiquiditySethAdapter,
1458
- selector: redeemSelector,
1459
1979
  encodedCallArgs: curveSethRedeemArgs({
1460
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1461
- minIncomingWethAmount: minIncomingWethAmount,
1462
1980
  minIncomingSethAmount: minIncomingSethAmount,
1981
+ minIncomingWethAmount: minIncomingWethAmount,
1982
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1463
1983
  receiveSingleAsset: receiveSingleAsset
1464
- })
1984
+ }),
1985
+ selector: redeemSelector
1465
1986
  });
1466
1987
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1467
1988
  }
@@ -1473,10 +1994,10 @@ function curveSethStake(_ref20) {
1473
1994
  outgoingLPTokenAmount = _ref20.outgoingLPTokenAmount;
1474
1995
  var callArgs = callOnIntegrationArgs({
1475
1996
  adapter: curveLiquiditySethAdapter,
1476
- selector: stakeSelector,
1477
1997
  encodedCallArgs: curveSethStakeArgs({
1478
1998
  outgoingLPTokenAmount: outgoingLPTokenAmount
1479
- })
1999
+ }),
2000
+ selector: stakeSelector
1480
2001
  });
1481
2002
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1482
2003
  }
@@ -1491,13 +2012,13 @@ function curveSethUnstakeAndRedeem(_ref21) {
1491
2012
  receiveSingleAsset = _ref21.receiveSingleAsset;
1492
2013
  var callArgs = callOnIntegrationArgs({
1493
2014
  adapter: curveLiquiditySethAdapter,
1494
- selector: unstakeAndRedeemSelector,
1495
2015
  encodedCallArgs: curveSethUnstakeAndRedeemArgs({
1496
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1497
- minIncomingWethAmount: minIncomingWethAmount,
1498
2016
  minIncomingSethAmount: minIncomingSethAmount,
2017
+ minIncomingWethAmount: minIncomingWethAmount,
2018
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1499
2019
  receiveSingleAsset: receiveSingleAsset
1500
- })
2020
+ }),
2021
+ selector: unstakeAndRedeemSelector
1501
2022
  });
1502
2023
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1503
2024
  }
@@ -1509,10 +2030,10 @@ function curveSethUnstake(_ref22) {
1509
2030
  outgoingLiquidityGaugeTokenAmount = _ref22.outgoingLiquidityGaugeTokenAmount;
1510
2031
  var callArgs = callOnIntegrationArgs({
1511
2032
  adapter: curveLiquiditySethAdapter,
1512
- selector: unstakeSelector,
1513
2033
  encodedCallArgs: curveSethUnstakeArgs({
1514
2034
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1515
- })
2035
+ }),
2036
+ selector: unstakeSelector
1516
2037
  });
1517
2038
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1518
2039
  } // stETH pool
@@ -1524,8 +2045,8 @@ function curveStethClaimRewards(_ref23) {
1524
2045
  curveLiquidityStethAdapter = _ref23.curveLiquidityStethAdapter;
1525
2046
  var callArgs = callOnIntegrationArgs({
1526
2047
  adapter: curveLiquidityStethAdapter,
1527
- selector: claimRewardsSelector,
1528
- encodedCallArgs: constants.HashZero
2048
+ encodedCallArgs: constants.HashZero,
2049
+ selector: claimRewardsSelector
1529
2050
  });
1530
2051
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1531
2052
  }
@@ -1539,12 +2060,12 @@ function curveStethLend(_ref24) {
1539
2060
  minIncomingLPTokenAmount = _ref24.minIncomingLPTokenAmount;
1540
2061
  var callArgs = callOnIntegrationArgs({
1541
2062
  adapter: curveLiquidityStethAdapter,
1542
- selector: lendSelector,
1543
2063
  encodedCallArgs: curveStethLendArgs({
1544
- outgoingWethAmount: outgoingWethAmount,
2064
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1545
2065
  outgoingStethAmount: outgoingStethAmount,
1546
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1547
- })
2066
+ outgoingWethAmount: outgoingWethAmount
2067
+ }),
2068
+ selector: lendSelector
1548
2069
  });
1549
2070
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1550
2071
  }
@@ -1558,12 +2079,12 @@ function curveStethLendAndStake(_ref25) {
1558
2079
  minIncomingLiquidityGaugeTokenAmount = _ref25.minIncomingLiquidityGaugeTokenAmount;
1559
2080
  var callArgs = callOnIntegrationArgs({
1560
2081
  adapter: curveLiquidityStethAdapter,
1561
- selector: lendAndStakeSelector,
1562
2082
  encodedCallArgs: curveStethLendAndStakeArgs({
1563
- outgoingWethAmount: outgoingWethAmount,
2083
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1564
2084
  outgoingStethAmount: outgoingStethAmount,
1565
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1566
- })
2085
+ outgoingWethAmount: outgoingWethAmount
2086
+ }),
2087
+ selector: lendAndStakeSelector
1567
2088
  });
1568
2089
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1569
2090
  }
@@ -1578,13 +2099,13 @@ function curveStethRedeem(_ref26) {
1578
2099
  receiveSingleAsset = _ref26.receiveSingleAsset;
1579
2100
  var callArgs = callOnIntegrationArgs({
1580
2101
  adapter: curveLiquidityStethAdapter,
1581
- selector: redeemSelector,
1582
2102
  encodedCallArgs: curveStethRedeemArgs({
1583
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1584
- minIncomingWethAmount: minIncomingWethAmount,
1585
2103
  minIncomingStethAmount: minIncomingStethAmount,
2104
+ minIncomingWethAmount: minIncomingWethAmount,
2105
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1586
2106
  receiveSingleAsset: receiveSingleAsset
1587
- })
2107
+ }),
2108
+ selector: redeemSelector
1588
2109
  });
1589
2110
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1590
2111
  }
@@ -1596,10 +2117,10 @@ function curveStethStake(_ref27) {
1596
2117
  outgoingLPTokenAmount = _ref27.outgoingLPTokenAmount;
1597
2118
  var callArgs = callOnIntegrationArgs({
1598
2119
  adapter: curveLiquidityStethAdapter,
1599
- selector: stakeSelector,
1600
2120
  encodedCallArgs: curveStethStakeArgs({
1601
2121
  outgoingLPTokenAmount: outgoingLPTokenAmount
1602
- })
2122
+ }),
2123
+ selector: stakeSelector
1603
2124
  });
1604
2125
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1605
2126
  }
@@ -1614,13 +2135,13 @@ function curveStethUnstakeAndRedeem(_ref28) {
1614
2135
  receiveSingleAsset = _ref28.receiveSingleAsset;
1615
2136
  var callArgs = callOnIntegrationArgs({
1616
2137
  adapter: curveLiquidityStethAdapter,
1617
- selector: unstakeAndRedeemSelector,
1618
2138
  encodedCallArgs: curveStethUnstakeAndRedeemArgs({
1619
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1620
- minIncomingWethAmount: minIncomingWethAmount,
1621
2139
  minIncomingStethAmount: minIncomingStethAmount,
2140
+ minIncomingWethAmount: minIncomingWethAmount,
2141
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1622
2142
  receiveSingleAsset: receiveSingleAsset
1623
- })
2143
+ }),
2144
+ selector: unstakeAndRedeemSelector
1624
2145
  });
1625
2146
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1626
2147
  }
@@ -1632,10 +2153,10 @@ function curveStethUnstake(_ref29) {
1632
2153
  outgoingLiquidityGaugeTokenAmount = _ref29.outgoingLiquidityGaugeTokenAmount;
1633
2154
  var callArgs = callOnIntegrationArgs({
1634
2155
  adapter: curveLiquidityStethAdapter,
1635
- selector: unstakeSelector,
1636
2156
  encodedCallArgs: curveStethUnstakeArgs({
1637
2157
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1638
- })
2158
+ }),
2159
+ selector: unstakeSelector
1639
2160
  });
1640
2161
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1641
2162
  }
@@ -1654,10 +2175,10 @@ function _idleClaimRewards() {
1654
2175
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, idleAdapter = _ref.idleAdapter, idleToken = _ref.idleToken;
1655
2176
  callArgs = callOnIntegrationArgs({
1656
2177
  adapter: idleAdapter,
1657
- selector: claimRewardsSelector,
1658
2178
  encodedCallArgs: idleClaimRewardsArgs({
1659
2179
  idleToken: idleToken
1660
- })
2180
+ }),
2181
+ selector: claimRewardsSelector
1661
2182
  });
1662
2183
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1663
2184
 
@@ -1686,12 +2207,12 @@ function _idleLend() {
1686
2207
  comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, idleAdapter = _ref2.idleAdapter, idleToken = _ref2.idleToken, outgoingUnderlyingAmount = _ref2.outgoingUnderlyingAmount, _ref2$minIncomingIdle = _ref2.minIncomingIdleTokenAmount, minIncomingIdleTokenAmount = _ref2$minIncomingIdle === void 0 ? BigNumber.from(1) : _ref2$minIncomingIdle;
1687
2208
  callArgs = callOnIntegrationArgs({
1688
2209
  adapter: idleAdapter,
1689
- selector: lendSelector,
1690
2210
  encodedCallArgs: idleLendArgs({
1691
2211
  idleToken: idleToken,
1692
- outgoingUnderlyingAmount: outgoingUnderlyingAmount,
1693
- minIncomingIdleTokenAmount: minIncomingIdleTokenAmount
1694
- })
2212
+ minIncomingIdleTokenAmount: minIncomingIdleTokenAmount,
2213
+ outgoingUnderlyingAmount: outgoingUnderlyingAmount
2214
+ }),
2215
+ selector: lendSelector
1695
2216
  });
1696
2217
  return _context2.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1697
2218
 
@@ -1720,12 +2241,12 @@ function _idleRedeem() {
1720
2241
  comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, idleAdapter = _ref3.idleAdapter, idleToken = _ref3.idleToken, outgoingIdleTokenAmount = _ref3.outgoingIdleTokenAmount, _ref3$minIncomingUnde = _ref3.minIncomingUnderlyingAmount, minIncomingUnderlyingAmount = _ref3$minIncomingUnde === void 0 ? BigNumber.from(1) : _ref3$minIncomingUnde;
1721
2242
  callArgs = callOnIntegrationArgs({
1722
2243
  adapter: idleAdapter,
1723
- selector: redeemSelector,
1724
2244
  encodedCallArgs: idleRedeemArgs({
1725
2245
  idleToken: idleToken,
1726
- outgoingIdleTokenAmount: outgoingIdleTokenAmount,
1727
- minIncomingUnderlyingAmount: minIncomingUnderlyingAmount
1728
- })
2246
+ minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2247
+ outgoingIdleTokenAmount: outgoingIdleTokenAmount
2248
+ }),
2249
+ selector: redeemSelector
1729
2250
  });
1730
2251
  return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1731
2252
 
@@ -1796,17 +2317,17 @@ function _mockGenericSwap() {
1796
2317
 
1797
2318
  case 9:
1798
2319
  swapArgs = mockGenericSwapArgs({
1799
- spendAssets: spendAssets,
1800
- maxSpendAssetAmounts: maxSpendAssetAmounts,
2320
+ actualIncomingAssetAmounts: actualIncomingAssetAmounts,
1801
2321
  actualSpendAssetAmounts: actualSpendAssetAmounts,
1802
2322
  incomingAssets: incomingAssets,
2323
+ maxSpendAssetAmounts: maxSpendAssetAmounts,
1803
2324
  minIncomingAssetAmounts: minIncomingAssetAmounts,
1804
- actualIncomingAssetAmounts: actualIncomingAssetAmounts
2325
+ spendAssets: spendAssets
1805
2326
  });
1806
2327
  callArgs = callOnIntegrationArgs({
1807
2328
  adapter: mockGenericAdapter,
1808
- selector: selector,
1809
- encodedCallArgs: swapArgs
2329
+ encodedCallArgs: swapArgs,
2330
+ selector: selector
1810
2331
  });
1811
2332
  swapTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1812
2333
  _context.next = 14;
@@ -1829,10 +2350,10 @@ function paraSwapV4GenerateDummyPaths(_ref) {
1829
2350
  var toTokens = _ref.toTokens;
1830
2351
  return toTokens.map(function (toToken) {
1831
2352
  return {
1832
- to: toToken,
1833
- totalNetworkFee: 0,
1834
2353
  // Not supported in our protocol
1835
- routes: [] // Can ignore this param in the dummy
2354
+ routes: [],
2355
+ to: toToken,
2356
+ totalNetworkFee: 0 // Can ignore this param in the dummy
1836
2357
 
1837
2358
  };
1838
2359
  });
@@ -1851,16 +2372,16 @@ function _paraSwapV4TakeOrder() {
1851
2372
  case 0:
1852
2373
  comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, paraSwapV4Adapter = _ref2.paraSwapV4Adapter, outgoingAsset = _ref2.outgoingAsset, _ref2$outgoingAssetAm = _ref2.outgoingAssetAmount, outgoingAssetAmount = _ref2$outgoingAssetAm === void 0 ? utils.parseEther('1') : _ref2$outgoingAssetAm, _ref2$minIncomingAsse = _ref2.minIncomingAssetAmount, minIncomingAssetAmount = _ref2$minIncomingAsse === void 0 ? 1 : _ref2$minIncomingAsse, _ref2$expectedIncomin = _ref2.expectedIncomingAssetAmount, expectedIncomingAssetAmount = _ref2$expectedIncomin === void 0 ? minIncomingAssetAmount : _ref2$expectedIncomin, paths = _ref2.paths;
1853
2374
  takeOrderArgs = paraSwapV4TakeOrderArgs({
1854
- minIncomingAssetAmount: minIncomingAssetAmount,
1855
2375
  expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2376
+ minIncomingAssetAmount: minIncomingAssetAmount,
1856
2377
  outgoingAsset: outgoingAsset,
1857
2378
  outgoingAssetAmount: outgoingAssetAmount,
1858
2379
  paths: paths
1859
2380
  });
1860
2381
  callArgs = callOnIntegrationArgs({
1861
2382
  adapter: paraSwapV4Adapter,
1862
- selector: takeOrderSelector,
1863
- encodedCallArgs: takeOrderArgs
2383
+ encodedCallArgs: takeOrderArgs,
2384
+ selector: takeOrderSelector
1864
2385
  });
1865
2386
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1866
2387
 
@@ -1874,6 +2395,161 @@ function _paraSwapV4TakeOrder() {
1874
2395
  return _paraSwapV4TakeOrder.apply(this, arguments);
1875
2396
  }
1876
2397
 
2398
+ function paraSwapV5GenerateDummyPaths(_ref) {
2399
+ var toTokens = _ref.toTokens;
2400
+ return toTokens.map(function (toToken) {
2401
+ return {
2402
+ // Not supported in our protocol
2403
+ adapters: [],
2404
+ to: toToken,
2405
+ totalNetworkFee: 0 // Can ignore this param in the dummy
2406
+
2407
+ };
2408
+ });
2409
+ }
2410
+ function paraSwapV5TakeOrder(_x) {
2411
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2412
+ }
2413
+
2414
+ function _paraSwapV5TakeOrder() {
2415
+ _paraSwapV5TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
2416
+ var comptrollerProxy, integrationManager, fundOwner, paraSwapV5Adapter, outgoingAsset, outgoingAssetAmount, _ref2$minIncomingAsse, minIncomingAssetAmount, _ref2$expectedIncomin, expectedIncomingAssetAmount, _ref2$uuid, uuid, paths, takeOrderArgs, callArgs;
2417
+
2418
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
2419
+ while (1) {
2420
+ switch (_context.prev = _context.next) {
2421
+ case 0:
2422
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, paraSwapV5Adapter = _ref2.paraSwapV5Adapter, outgoingAsset = _ref2.outgoingAsset, outgoingAssetAmount = _ref2.outgoingAssetAmount, _ref2$minIncomingAsse = _ref2.minIncomingAssetAmount, minIncomingAssetAmount = _ref2$minIncomingAsse === void 0 ? 1 : _ref2$minIncomingAsse, _ref2$expectedIncomin = _ref2.expectedIncomingAssetAmount, expectedIncomingAssetAmount = _ref2$expectedIncomin === void 0 ? minIncomingAssetAmount : _ref2$expectedIncomin, _ref2$uuid = _ref2.uuid, uuid = _ref2$uuid === void 0 ? utils.randomBytes(16) : _ref2$uuid, paths = _ref2.paths;
2423
+ takeOrderArgs = paraSwapV5TakeOrderArgs({
2424
+ expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2425
+ minIncomingAssetAmount: minIncomingAssetAmount,
2426
+ outgoingAsset: outgoingAsset,
2427
+ outgoingAssetAmount: outgoingAssetAmount,
2428
+ paths: paths,
2429
+ uuid: uuid
2430
+ });
2431
+ callArgs = callOnIntegrationArgs({
2432
+ adapter: paraSwapV5Adapter,
2433
+ encodedCallArgs: takeOrderArgs,
2434
+ selector: takeOrderSelector
2435
+ });
2436
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2437
+
2438
+ case 4:
2439
+ case "end":
2440
+ return _context.stop();
2441
+ }
2442
+ }
2443
+ }, _callee);
2444
+ }));
2445
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2446
+ }
2447
+
2448
+ function poolTogetherV4Lend(_x) {
2449
+ return _poolTogetherV4Lend.apply(this, arguments);
2450
+ }
2451
+
2452
+ function _poolTogetherV4Lend() {
2453
+ _poolTogetherV4Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2454
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
2455
+
2456
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
2457
+ while (1) {
2458
+ switch (_context.prev = _context.next) {
2459
+ case 0:
2460
+ comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, poolTogetherV4Adapter = _ref.poolTogetherV4Adapter, ptToken = _ref.ptToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? utils.parseEther('1') : _ref$amount;
2461
+ lendArgs = poolTogetherV4LendArgs({
2462
+ amount: amount,
2463
+ ptToken: ptToken
2464
+ });
2465
+ callArgs = callOnIntegrationArgs({
2466
+ adapter: poolTogetherV4Adapter,
2467
+ encodedCallArgs: lendArgs,
2468
+ selector: lendSelector
2469
+ });
2470
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2471
+ return _context.abrupt("return", lendTx);
2472
+
2473
+ case 5:
2474
+ case "end":
2475
+ return _context.stop();
2476
+ }
2477
+ }
2478
+ }, _callee);
2479
+ }));
2480
+ return _poolTogetherV4Lend.apply(this, arguments);
2481
+ }
2482
+
2483
+ function poolTogetherV4Redeem(_x2) {
2484
+ return _poolTogetherV4Redeem.apply(this, arguments);
2485
+ }
2486
+
2487
+ function _poolTogetherV4Redeem() {
2488
+ _poolTogetherV4Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2489
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref2$amount, amount, redeemArgs, callArgs, redeemTx;
2490
+
2491
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2492
+ while (1) {
2493
+ switch (_context2.prev = _context2.next) {
2494
+ case 0:
2495
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, poolTogetherV4Adapter = _ref2.poolTogetherV4Adapter, ptToken = _ref2.ptToken, _ref2$amount = _ref2.amount, amount = _ref2$amount === void 0 ? utils.parseEther('1') : _ref2$amount;
2496
+ redeemArgs = poolTogetherV4RedeemArgs({
2497
+ amount: amount,
2498
+ ptToken: ptToken
2499
+ });
2500
+ callArgs = callOnIntegrationArgs({
2501
+ adapter: poolTogetherV4Adapter,
2502
+ encodedCallArgs: redeemArgs,
2503
+ selector: redeemSelector
2504
+ });
2505
+ redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2506
+ return _context2.abrupt("return", redeemTx);
2507
+
2508
+ case 5:
2509
+ case "end":
2510
+ return _context2.stop();
2511
+ }
2512
+ }
2513
+ }, _callee2);
2514
+ }));
2515
+ return _poolTogetherV4Redeem.apply(this, arguments);
2516
+ }
2517
+
2518
+ function poolTogetherV4ClaimRewards(_x3) {
2519
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2520
+ }
2521
+
2522
+ function _poolTogetherV4ClaimRewards() {
2523
+ _poolTogetherV4ClaimRewards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2524
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, prizeDistributor, drawIds, winningPicks, claimRewardsArgs, callArgs, claimTx;
2525
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2526
+ while (1) {
2527
+ switch (_context3.prev = _context3.next) {
2528
+ case 0:
2529
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, poolTogetherV4Adapter = _ref3.poolTogetherV4Adapter, prizeDistributor = _ref3.prizeDistributor, drawIds = _ref3.drawIds, winningPicks = _ref3.winningPicks;
2530
+ claimRewardsArgs = poolTogetherV4ClaimRewardsArgs({
2531
+ drawIds: drawIds,
2532
+ prizeDistributor: prizeDistributor,
2533
+ winningPicks: winningPicks
2534
+ });
2535
+ callArgs = callOnIntegrationArgs({
2536
+ adapter: poolTogetherV4Adapter,
2537
+ encodedCallArgs: claimRewardsArgs,
2538
+ selector: claimRewardsSelector
2539
+ });
2540
+ claimTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2541
+ return _context3.abrupt("return", claimTx);
2542
+
2543
+ case 5:
2544
+ case "end":
2545
+ return _context3.stop();
2546
+ }
2547
+ }
2548
+ }, _callee3);
2549
+ }));
2550
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2551
+ }
2552
+
1877
2553
  function synthetixAssignExchangeDelegate(_x) {
1878
2554
  return _synthetixAssignExchangeDelegate.apply(this, arguments);
1879
2555
  }
@@ -1931,26 +2607,58 @@ function _synthetixResolveAddress() {
1931
2607
  return _synthetixResolveAddress.apply(this, arguments);
1932
2608
  }
1933
2609
 
1934
- function synthetixTakeOrder(_x3) {
2610
+ function synthetixRedeem(_x3) {
2611
+ return _synthetixRedeem.apply(this, arguments);
2612
+ }
2613
+
2614
+ function _synthetixRedeem() {
2615
+ _synthetixRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2616
+ var comptrollerProxy, integrationManager, signer, synthetixAdapter, synths, redeemArgs, callArgs;
2617
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2618
+ while (1) {
2619
+ switch (_context3.prev = _context3.next) {
2620
+ case 0:
2621
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, signer = _ref3.signer, synthetixAdapter = _ref3.synthetixAdapter, synths = _ref3.synths;
2622
+ redeemArgs = synthetixRedeemArgs({
2623
+ synths: synths
2624
+ });
2625
+ callArgs = callOnIntegrationArgs({
2626
+ adapter: synthetixAdapter,
2627
+ encodedCallArgs: redeemArgs,
2628
+ selector: redeemSelector
2629
+ });
2630
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2631
+
2632
+ case 4:
2633
+ case "end":
2634
+ return _context3.stop();
2635
+ }
2636
+ }
2637
+ }, _callee3);
2638
+ }));
2639
+ return _synthetixRedeem.apply(this, arguments);
2640
+ }
2641
+
2642
+ function synthetixTakeOrder(_x4) {
1935
2643
  return _synthetixTakeOrder.apply(this, arguments);
1936
2644
  }
1937
2645
 
1938
2646
  function _synthetixTakeOrder() {
1939
- _synthetixTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1940
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref3$outgoingAssetAm, outgoingAssetAmount, incomingAsset, _ref3$minIncomingAsse, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2647
+ _synthetixTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
2648
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref4$outgoingAssetAm, outgoingAssetAmount, incomingAsset, _ref4$minIncomingAsse, minIncomingAssetAmount, _ref4$seedFund, seedFund, takeOrderArgs, callArgs;
1941
2649
 
1942
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2650
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1943
2651
  while (1) {
1944
- switch (_context3.prev = _context3.next) {
2652
+ switch (_context4.prev = _context4.next) {
1945
2653
  case 0:
1946
- comptrollerProxy = _ref3.comptrollerProxy, vaultProxy = _ref3.vaultProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, synthetixAdapter = _ref3.synthetixAdapter, outgoingAsset = _ref3.outgoingAsset, _ref3$outgoingAssetAm = _ref3.outgoingAssetAmount, outgoingAssetAmount = _ref3$outgoingAssetAm === void 0 ? utils.parseEther('1') : _ref3$outgoingAssetAm, incomingAsset = _ref3.incomingAsset, _ref3$minIncomingAsse = _ref3.minIncomingAssetAmount, minIncomingAssetAmount = _ref3$minIncomingAsse === void 0 ? utils.parseEther('1') : _ref3$minIncomingAsse, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2654
+ comptrollerProxy = _ref4.comptrollerProxy, vaultProxy = _ref4.vaultProxy, integrationManager = _ref4.integrationManager, fundOwner = _ref4.fundOwner, synthetixAdapter = _ref4.synthetixAdapter, outgoingAsset = _ref4.outgoingAsset, _ref4$outgoingAssetAm = _ref4.outgoingAssetAmount, outgoingAssetAmount = _ref4$outgoingAssetAm === void 0 ? utils.parseEther('1') : _ref4$outgoingAssetAm, incomingAsset = _ref4.incomingAsset, _ref4$minIncomingAsse = _ref4.minIncomingAssetAmount, minIncomingAssetAmount = _ref4$minIncomingAsse === void 0 ? utils.parseEther('1') : _ref4$minIncomingAsse, _ref4$seedFund = _ref4.seedFund, seedFund = _ref4$seedFund === void 0 ? false : _ref4$seedFund;
1947
2655
 
1948
2656
  if (!seedFund) {
1949
- _context3.next = 4;
2657
+ _context4.next = 4;
1950
2658
  break;
1951
2659
  }
1952
2660
 
1953
- _context3.next = 4;
2661
+ _context4.next = 4;
1954
2662
  return outgoingAsset.transfer(vaultProxy, outgoingAssetAmount);
1955
2663
 
1956
2664
  case 4:
@@ -1960,23 +2668,23 @@ function _synthetixTakeOrder() {
1960
2668
  outgoingAsset: outgoingAsset,
1961
2669
  outgoingAssetAmount: outgoingAssetAmount
1962
2670
  });
1963
- _context3.next = 7;
2671
+ _context4.next = 7;
1964
2672
  return callOnIntegrationArgs({
1965
2673
  adapter: synthetixAdapter,
1966
- selector: takeOrderSelector,
1967
- encodedCallArgs: takeOrderArgs
2674
+ encodedCallArgs: takeOrderArgs,
2675
+ selector: takeOrderSelector
1968
2676
  });
1969
2677
 
1970
2678
  case 7:
1971
- callArgs = _context3.sent;
1972
- return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2679
+ callArgs = _context4.sent;
2680
+ return _context4.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1973
2681
 
1974
2682
  case 9:
1975
2683
  case "end":
1976
- return _context3.stop();
2684
+ return _context4.stop();
1977
2685
  }
1978
2686
  }
1979
- }, _callee3);
2687
+ }, _callee4);
1980
2688
  }));
1981
2689
  return _synthetixTakeOrder.apply(this, arguments);
1982
2690
  }
@@ -1989,13 +2697,13 @@ function uniswapV2Lend(_x) {
1989
2697
 
1990
2698
  function _uniswapV2Lend() {
1991
2699
  _uniswapV2Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1992
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2Adapter, tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, minPoolTokenAmount, _ref$seedFund, seedFund, lendArgs, callArgs, lendTx;
2700
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2LiquidityAdapter, tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, minPoolTokenAmount, _ref$seedFund, seedFund, lendArgs, callArgs, lendTx;
1993
2701
 
1994
2702
  return _regeneratorRuntime.wrap(function _callee$(_context) {
1995
2703
  while (1) {
1996
2704
  switch (_context.prev = _context.next) {
1997
2705
  case 0:
1998
- comptrollerProxy = _ref.comptrollerProxy, vaultProxy = _ref.vaultProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, uniswapV2Adapter = _ref.uniswapV2Adapter, tokenA = _ref.tokenA, tokenB = _ref.tokenB, amountADesired = _ref.amountADesired, amountBDesired = _ref.amountBDesired, amountAMin = _ref.amountAMin, amountBMin = _ref.amountBMin, minPoolTokenAmount = _ref.minPoolTokenAmount, _ref$seedFund = _ref.seedFund, seedFund = _ref$seedFund === void 0 ? false : _ref$seedFund;
2706
+ comptrollerProxy = _ref.comptrollerProxy, vaultProxy = _ref.vaultProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, uniswapV2LiquidityAdapter = _ref.uniswapV2LiquidityAdapter, tokenA = _ref.tokenA, tokenB = _ref.tokenB, amountADesired = _ref.amountADesired, amountBDesired = _ref.amountBDesired, amountAMin = _ref.amountAMin, amountBMin = _ref.amountBMin, minPoolTokenAmount = _ref.minPoolTokenAmount, _ref$seedFund = _ref.seedFund, seedFund = _ref$seedFund === void 0 ? false : _ref$seedFund;
1999
2707
 
2000
2708
  if (!seedFund) {
2001
2709
  _context.next = 6;
@@ -2011,18 +2719,18 @@ function _uniswapV2Lend() {
2011
2719
 
2012
2720
  case 6:
2013
2721
  lendArgs = uniswapV2LendArgs({
2014
- tokenA: tokenA,
2015
- tokenB: tokenB,
2016
2722
  amountADesired: amountADesired,
2017
- amountBDesired: amountBDesired,
2018
2723
  amountAMin: amountAMin,
2724
+ amountBDesired: amountBDesired,
2019
2725
  amountBMin: amountBMin,
2020
- minPoolTokenAmount: minPoolTokenAmount
2726
+ minPoolTokenAmount: minPoolTokenAmount,
2727
+ tokenA: tokenA,
2728
+ tokenB: tokenB
2021
2729
  });
2022
2730
  callArgs = callOnIntegrationArgs({
2023
- adapter: uniswapV2Adapter,
2024
- selector: lendSelector,
2025
- encodedCallArgs: lendArgs
2731
+ adapter: uniswapV2LiquidityAdapter,
2732
+ encodedCallArgs: lendArgs,
2733
+ selector: lendSelector
2026
2734
  });
2027
2735
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2028
2736
  _context.next = 11;
@@ -2047,23 +2755,23 @@ function uniswapV2Redeem(_x2) {
2047
2755
 
2048
2756
  function _uniswapV2Redeem() {
2049
2757
  _uniswapV2Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2050
- var comptrollerProxy, integrationManager, fundOwner, uniswapV2Adapter, poolTokenAmount, tokenA, tokenB, amountAMin, amountBMin, redeemArgs, callArgs, redeemTx;
2758
+ var comptrollerProxy, integrationManager, fundOwner, uniswapV2LiquidityAdapter, poolTokenAmount, tokenA, tokenB, amountAMin, amountBMin, redeemArgs, callArgs, redeemTx;
2051
2759
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2052
2760
  while (1) {
2053
2761
  switch (_context2.prev = _context2.next) {
2054
2762
  case 0:
2055
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, uniswapV2Adapter = _ref2.uniswapV2Adapter, poolTokenAmount = _ref2.poolTokenAmount, tokenA = _ref2.tokenA, tokenB = _ref2.tokenB, amountAMin = _ref2.amountAMin, amountBMin = _ref2.amountBMin;
2763
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, uniswapV2LiquidityAdapter = _ref2.uniswapV2LiquidityAdapter, poolTokenAmount = _ref2.poolTokenAmount, tokenA = _ref2.tokenA, tokenB = _ref2.tokenB, amountAMin = _ref2.amountAMin, amountBMin = _ref2.amountBMin;
2056
2764
  redeemArgs = uniswapV2RedeemArgs({
2765
+ amountAMin: amountAMin,
2766
+ amountBMin: amountBMin,
2057
2767
  poolTokenAmount: poolTokenAmount,
2058
2768
  tokenA: tokenA,
2059
- tokenB: tokenB,
2060
- amountAMin: amountAMin,
2061
- amountBMin: amountBMin
2769
+ tokenB: tokenB
2062
2770
  });
2063
2771
  callArgs = callOnIntegrationArgs({
2064
- adapter: uniswapV2Adapter,
2065
- selector: redeemSelector,
2066
- encodedCallArgs: redeemArgs
2772
+ adapter: uniswapV2LiquidityAdapter,
2773
+ encodedCallArgs: redeemArgs,
2774
+ selector: redeemSelector
2067
2775
  });
2068
2776
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2069
2777
  _context2.next = 6;
@@ -2088,13 +2796,13 @@ function uniswapV2TakeOrder(_x3) {
2088
2796
 
2089
2797
  function _uniswapV2TakeOrder() {
2090
2798
  _uniswapV2TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2091
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2Adapter, path, outgoingAssetAmount, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2799
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2ExchangeAdapter, path, outgoingAssetAmount, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2092
2800
 
2093
2801
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2094
2802
  while (1) {
2095
2803
  switch (_context3.prev = _context3.next) {
2096
2804
  case 0:
2097
- comptrollerProxy = _ref3.comptrollerProxy, vaultProxy = _ref3.vaultProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, uniswapV2Adapter = _ref3.uniswapV2Adapter, path = _ref3.path, outgoingAssetAmount = _ref3.outgoingAssetAmount, minIncomingAssetAmount = _ref3.minIncomingAssetAmount, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2805
+ comptrollerProxy = _ref3.comptrollerProxy, vaultProxy = _ref3.vaultProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, uniswapV2ExchangeAdapter = _ref3.uniswapV2ExchangeAdapter, path = _ref3.path, outgoingAssetAmount = _ref3.outgoingAssetAmount, minIncomingAssetAmount = _ref3.minIncomingAssetAmount, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2098
2806
 
2099
2807
  if (!seedFund) {
2100
2808
  _context3.next = 4;
@@ -2106,14 +2814,14 @@ function _uniswapV2TakeOrder() {
2106
2814
 
2107
2815
  case 4:
2108
2816
  takeOrderArgs = uniswapV2TakeOrderArgs({
2109
- path: path,
2817
+ minIncomingAssetAmount: minIncomingAssetAmount,
2110
2818
  outgoingAssetAmount: outgoingAssetAmount,
2111
- minIncomingAssetAmount: minIncomingAssetAmount
2819
+ path: path
2112
2820
  });
2113
2821
  callArgs = callOnIntegrationArgs({
2114
- adapter: uniswapV2Adapter,
2115
- selector: takeOrderSelector,
2116
- encodedCallArgs: takeOrderArgs
2822
+ adapter: uniswapV2ExchangeAdapter,
2823
+ encodedCallArgs: takeOrderArgs,
2824
+ selector: takeOrderSelector
2117
2825
  });
2118
2826
  return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2119
2827
 
@@ -2133,7 +2841,7 @@ function uniswapV3TakeOrder(_x) {
2133
2841
 
2134
2842
  function _uniswapV3TakeOrder() {
2135
2843
  _uniswapV3TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2136
- var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, takeOrderArgs, callArgs;
2844
+ var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, vaultProxy, takeOrderArgs, callArgs;
2137
2845
 
2138
2846
  return _regeneratorRuntime.wrap(function _callee$(_context) {
2139
2847
  while (1) {
@@ -2142,35 +2850,33 @@ function _uniswapV3TakeOrder() {
2142
2850
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, uniswapV3Adapter = _ref.uniswapV3Adapter, pathAddresses = _ref.pathAddresses, pathFees = _ref.pathFees, outgoingAssetAmount = _ref.outgoingAssetAmount, _ref$minIncomingAsset = _ref.minIncomingAssetAmount, minIncomingAssetAmount = _ref$minIncomingAsset === void 0 ? 1 : _ref$minIncomingAsset, _ref$seedFund = _ref.seedFund, seedFund = _ref$seedFund === void 0 ? false : _ref$seedFund;
2143
2851
 
2144
2852
  if (!seedFund) {
2145
- _context.next = 9;
2853
+ _context.next = 7;
2146
2854
  break;
2147
2855
  }
2148
2856
 
2149
- _context.t0 = pathAddresses[0];
2150
- _context.next = 5;
2857
+ _context.next = 4;
2151
2858
  return comptrollerProxy.getVaultProxy();
2152
2859
 
2153
- case 5:
2154
- _context.t1 = _context.sent;
2155
- _context.t2 = outgoingAssetAmount;
2156
- _context.next = 9;
2157
- return _context.t0.transfer.call(_context.t0, _context.t1, _context.t2);
2860
+ case 4:
2861
+ vaultProxy = _context.sent;
2862
+ _context.next = 7;
2863
+ return pathAddresses[0].transfer(vaultProxy, outgoingAssetAmount);
2158
2864
 
2159
- case 9:
2865
+ case 7:
2160
2866
  takeOrderArgs = uniswapV3TakeOrderArgs({
2161
- pathAddresses: pathAddresses,
2162
- pathFees: pathFees,
2867
+ minIncomingAssetAmount: minIncomingAssetAmount,
2163
2868
  outgoingAssetAmount: outgoingAssetAmount,
2164
- minIncomingAssetAmount: minIncomingAssetAmount
2869
+ pathAddresses: pathAddresses,
2870
+ pathFees: pathFees
2165
2871
  });
2166
2872
  callArgs = callOnIntegrationArgs({
2167
2873
  adapter: uniswapV3Adapter,
2168
- selector: takeOrderSelector,
2169
- encodedCallArgs: takeOrderArgs
2874
+ encodedCallArgs: takeOrderArgs,
2875
+ selector: takeOrderSelector
2170
2876
  });
2171
2877
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2172
2878
 
2173
- case 12:
2879
+ case 10:
2174
2880
  case "end":
2175
2881
  return _context.stop();
2176
2882
  }
@@ -2195,12 +2901,12 @@ function _yearnVaultV2Lend() {
2195
2901
  signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, yearnVaultV2Adapter = _ref.yearnVaultV2Adapter, yVault = _ref.yVault, outgoingUnderlyingAmount = _ref.outgoingUnderlyingAmount, _ref$minIncomingYVaul = _ref.minIncomingYVaultSharesAmount, minIncomingYVaultSharesAmount = _ref$minIncomingYVaul === void 0 ? BigNumber.from(1) : _ref$minIncomingYVaul;
2196
2902
  callArgs = callOnIntegrationArgs({
2197
2903
  adapter: yearnVaultV2Adapter,
2198
- selector: lendSelector,
2199
2904
  encodedCallArgs: yearnVaultV2LendArgs({
2200
- yVault: yVault,
2905
+ minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount,
2201
2906
  outgoingUnderlyingAmount: outgoingUnderlyingAmount,
2202
- minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount
2203
- })
2907
+ yVault: yVault
2908
+ }),
2909
+ selector: lendSelector
2204
2910
  });
2205
2911
  return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2206
2912
 
@@ -2229,13 +2935,13 @@ function _yearnVaultV2Redeem() {
2229
2935
  signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, yearnVaultV2Adapter = _ref2.yearnVaultV2Adapter, yVault = _ref2.yVault, maxOutgoingYVaultSharesAmount = _ref2.maxOutgoingYVaultSharesAmount, _ref2$minIncomingUnde = _ref2.minIncomingUnderlyingAmount, minIncomingUnderlyingAmount = _ref2$minIncomingUnde === void 0 ? BigNumber.from(1) : _ref2$minIncomingUnde, _ref2$slippageToleran = _ref2.slippageToleranceBps, slippageToleranceBps = _ref2$slippageToleran === void 0 ? 1 : _ref2$slippageToleran;
2230
2936
  callArgs = callOnIntegrationArgs({
2231
2937
  adapter: yearnVaultV2Adapter,
2232
- selector: redeemSelector,
2233
2938
  encodedCallArgs: yearnVaultV2RedeemArgs({
2234
- yVault: yVault,
2235
2939
  maxOutgoingYVaultSharesAmount: maxOutgoingYVaultSharesAmount,
2236
2940
  minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2237
- slippageToleranceBps: slippageToleranceBps
2238
- })
2941
+ slippageToleranceBps: slippageToleranceBps,
2942
+ yVault: yVault
2943
+ }),
2944
+ selector: redeemSelector
2239
2945
  });
2240
2946
  return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2241
2947
 
@@ -2267,8 +2973,8 @@ function _zeroExV2TakeOrder() {
2267
2973
  });
2268
2974
  callArgs = callOnIntegrationArgs({
2269
2975
  adapter: zeroExV2Adapter,
2270
- selector: takeOrderSelector,
2271
- encodedCallArgs: takeOrderArgs
2976
+ encodedCallArgs: takeOrderArgs,
2977
+ selector: takeOrderSelector
2272
2978
  });
2273
2979
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2274
2980
 
@@ -2411,7 +3117,8 @@ function assertEvent(receipt, event, match) {
2411
3117
  var events = extractEvent(receipt, event);
2412
3118
  expect(events.length).toBe(1);
2413
3119
  expect(receipt).toHaveEmittedWith(event, match);
2414
- var args = (_events$shift = events.shift()) === null || _events$shift === void 0 ? void 0 : _events$shift.args;
3120
+ var args = (_events$shift = events.shift()) === null || _events$shift === void 0 ? void 0 : _events$shift.args; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3121
+
2415
3122
  return args;
2416
3123
  }
2417
3124
  function assertNoEvent(receipt, event) {
@@ -2572,6 +3279,7 @@ function _createComptrollerProxy() {
2572
3279
  comptrollerProxyContract = _context.sent;
2573
3280
  return _context.abrupt("return", {
2574
3281
  comptrollerProxy: new ComptrollerLib(comptrollerProxyContract, signer),
3282
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2575
3283
  receipt: comptrollerProxyContract.deployment
2576
3284
  });
2577
3285
 
@@ -2604,16 +3312,14 @@ function _createMigrationRequest() {
2604
3312
  case 3:
2605
3313
  receipt = _context2.sent;
2606
3314
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2607
- creator: signer,
2608
3315
  comptrollerProxy: expect.any(String),
3316
+ creator: signer,
2609
3317
  denominationAsset: denominationAsset,
2610
- sharesActionTimelock: BigNumber.from(sharesActionTimelock),
2611
- feeManagerConfigData: utils.hexlify(feeManagerConfigData),
2612
- policyManagerConfigData: utils.hexlify(policyManagerConfigData)
3318
+ sharesActionTimelock: BigNumber.from(sharesActionTimelock)
2613
3319
  });
2614
3320
  return _context2.abrupt("return", {
2615
- receipt: receipt,
2616
- comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3321
+ comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3322
+ receipt: receipt
2617
3323
  });
2618
3324
 
2619
3325
  case 6:
@@ -2632,31 +3338,29 @@ function createNewFund(_x3) {
2632
3338
 
2633
3339
  function _createNewFund() {
2634
3340
  _createNewFund = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2635
- var signer, fundDeployer, denominationAsset, _ref3$sharesActionTim, sharesActionTimelock, _ref3$fundOwner, fundOwner, _ref3$fundName, fundName, _ref3$feeManagerConfi, feeManagerConfig, _ref3$policyManagerCo, policyManagerConfig, investment, receipt, comptrollerDeployedArgs, comptrollerProxy, newFundDeployedArgs, vaultProxy;
3341
+ var signer, fundDeployer, denominationAsset, _ref3$sharesActionTim, sharesActionTimelock, _ref3$fundOwner, fundOwner, _ref3$fundName, fundName, _ref3$fundSymbol, fundSymbol, _ref3$feeManagerConfi, feeManagerConfig, _ref3$policyManagerCo, policyManagerConfig, investment, receipt, comptrollerDeployedArgs, comptrollerProxy, newFundDeployedArgs, vaultProxy;
2636
3342
 
2637
3343
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2638
3344
  while (1) {
2639
3345
  switch (_context3.prev = _context3.next) {
2640
3346
  case 0:
2641
- signer = _ref3.signer, fundDeployer = _ref3.fundDeployer, denominationAsset = _ref3.denominationAsset, _ref3$sharesActionTim = _ref3.sharesActionTimelock, sharesActionTimelock = _ref3$sharesActionTim === void 0 ? 0 : _ref3$sharesActionTim, _ref3$fundOwner = _ref3.fundOwner, fundOwner = _ref3$fundOwner === void 0 ? randomAddress() : _ref3$fundOwner, _ref3$fundName = _ref3.fundName, fundName = _ref3$fundName === void 0 ? 'My Fund' : _ref3$fundName, _ref3$feeManagerConfi = _ref3.feeManagerConfig, feeManagerConfig = _ref3$feeManagerConfi === void 0 ? '0x' : _ref3$feeManagerConfi, _ref3$policyManagerCo = _ref3.policyManagerConfig, policyManagerConfig = _ref3$policyManagerCo === void 0 ? '0x' : _ref3$policyManagerCo, investment = _ref3.investment;
3347
+ signer = _ref3.signer, fundDeployer = _ref3.fundDeployer, denominationAsset = _ref3.denominationAsset, _ref3$sharesActionTim = _ref3.sharesActionTimelock, sharesActionTimelock = _ref3$sharesActionTim === void 0 ? 0 : _ref3$sharesActionTim, _ref3$fundOwner = _ref3.fundOwner, fundOwner = _ref3$fundOwner === void 0 ? randomAddress() : _ref3$fundOwner, _ref3$fundName = _ref3.fundName, fundName = _ref3$fundName === void 0 ? 'My Fund' : _ref3$fundName, _ref3$fundSymbol = _ref3.fundSymbol, fundSymbol = _ref3$fundSymbol === void 0 ? '' : _ref3$fundSymbol, _ref3$feeManagerConfi = _ref3.feeManagerConfig, feeManagerConfig = _ref3$feeManagerConfi === void 0 ? '0x' : _ref3$feeManagerConfi, _ref3$policyManagerCo = _ref3.policyManagerConfig, policyManagerConfig = _ref3$policyManagerCo === void 0 ? '0x' : _ref3$policyManagerCo, investment = _ref3.investment;
2642
3348
  _context3.next = 3;
2643
- return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
3349
+ return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, fundSymbol, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
2644
3350
 
2645
3351
  case 3:
2646
3352
  receipt = _context3.sent;
2647
3353
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2648
- creator: signer,
2649
3354
  comptrollerProxy: expect.any(String),
3355
+ creator: signer,
2650
3356
  denominationAsset: denominationAsset,
2651
- sharesActionTimelock: BigNumber.from(sharesActionTimelock),
2652
- feeManagerConfigData: utils.hexlify(feeManagerConfig),
2653
- policyManagerConfigData: utils.hexlify(policyManagerConfig)
3357
+ sharesActionTimelock: BigNumber.from(sharesActionTimelock)
2654
3358
  });
2655
3359
  comptrollerProxy = new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer);
2656
3360
  newFundDeployedArgs = assertEvent(receipt, 'NewFundCreated', {
3361
+ comptrollerProxy: comptrollerProxy,
2657
3362
  creator: signer,
2658
- vaultProxy: expect.any(String),
2659
- comptrollerProxy: comptrollerProxy
3363
+ vaultProxy: expect.any(String)
2660
3364
  });
2661
3365
  vaultProxy = new VaultLib(newFundDeployedArgs.vaultProxy, signer);
2662
3366
 
@@ -2707,16 +3411,14 @@ function _createReconfigurationRequest() {
2707
3411
  case 3:
2708
3412
  receipt = _context4.sent;
2709
3413
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2710
- creator: signer,
2711
3414
  comptrollerProxy: expect.any(String),
3415
+ creator: signer,
2712
3416
  denominationAsset: denominationAsset,
2713
- sharesActionTimelock: BigNumber.from(sharesActionTimelock),
2714
- feeManagerConfigData: utils.hexlify(feeManagerConfigData),
2715
- policyManagerConfigData: utils.hexlify(policyManagerConfigData)
3417
+ sharesActionTimelock: BigNumber.from(sharesActionTimelock)
2716
3418
  });
2717
3419
  return _context4.abrupt("return", {
2718
- receipt: receipt,
2719
- comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3420
+ comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3421
+ receipt: receipt
2720
3422
  });
2721
3423
 
2722
3424
  case 6:
@@ -2798,16 +3500,49 @@ function _setupGasRelayerPaymaster() {
2798
3500
  return _setupGasRelayerPaymaster.apply(this, arguments);
2799
3501
  }
2800
3502
 
2801
- function vaultCallCurveMinterMint(_ref) {
2802
- var comptrollerProxy = _ref.comptrollerProxy,
2803
- minter = _ref.minter,
2804
- gauge = _ref.gauge;
2805
- return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintSelector, encodeArgs(['address'], [gauge]));
3503
+ function vaultCallCreateNewList(_x) {
3504
+ return _vaultCallCreateNewList.apply(this, arguments);
3505
+ }
3506
+
3507
+ function _vaultCallCreateNewList() {
3508
+ _vaultCallCreateNewList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
3509
+ var addressListRegistry, comptrollerProxy, items, owner, signer, updateType, listCount;
3510
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
3511
+ while (1) {
3512
+ switch (_context.prev = _context.next) {
3513
+ case 0:
3514
+ addressListRegistry = _ref.addressListRegistry, comptrollerProxy = _ref.comptrollerProxy, items = _ref.items, owner = _ref.owner, signer = _ref.signer, updateType = _ref.updateType;
3515
+ _context.next = 3;
3516
+ return comptrollerProxy.connect(signer).vaultCallOnContract(addressListRegistry.address, addressListRegistryCreateListSelector, encodeArgs(['address', 'uint8', 'address[]'], [owner, updateType, items]));
3517
+
3518
+ case 3:
3519
+ _context.next = 5;
3520
+ return addressListRegistry.getListCount();
3521
+
3522
+ case 5:
3523
+ listCount = _context.sent;
3524
+ return _context.abrupt("return", listCount.sub(1));
3525
+
3526
+ case 7:
3527
+ case "end":
3528
+ return _context.stop();
3529
+ }
3530
+ }
3531
+ }, _callee);
3532
+ }));
3533
+ return _vaultCallCreateNewList.apply(this, arguments);
2806
3534
  }
2807
- function vaultCallCurveMinterMintMany(_ref2) {
3535
+
3536
+ function vaultCallCurveMinterMint(_ref2) {
2808
3537
  var comptrollerProxy = _ref2.comptrollerProxy,
2809
3538
  minter = _ref2.minter,
2810
- gauges = _ref2.gauges;
3539
+ gauge = _ref2.gauge;
3540
+ return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintSelector, encodeArgs(['address'], [gauge]));
3541
+ }
3542
+ function vaultCallCurveMinterMintMany(_ref3) {
3543
+ var comptrollerProxy = _ref3.comptrollerProxy,
3544
+ minter = _ref3.minter,
3545
+ gauges = _ref3.gauges;
2811
3546
  var gaugesFormatted = new Array(8).fill(constants.AddressZero);
2812
3547
 
2813
3548
  for (var i in gauges) {
@@ -2816,12 +3551,18 @@ function vaultCallCurveMinterMintMany(_ref2) {
2816
3551
 
2817
3552
  return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintManySelector, encodeArgs(['address[8]'], [gaugesFormatted]));
2818
3553
  }
2819
- function vaultCallCurveMinterToggleApproveMint(_ref3) {
2820
- var comptrollerProxy = _ref3.comptrollerProxy,
2821
- minter = _ref3.minter,
2822
- account = _ref3.account;
3554
+ function vaultCallCurveMinterToggleApproveMint(_ref4) {
3555
+ var comptrollerProxy = _ref4.comptrollerProxy,
3556
+ minter = _ref4.minter,
3557
+ account = _ref4.account;
2823
3558
  return comptrollerProxy.vaultCallOnContract(minter, curveMinterToggleApproveMintSelector, encodeArgs(['address'], [account]));
2824
3559
  }
3560
+ function vaultCallStartAssetBypassTimelock(_ref5) {
3561
+ var comptrollerProxy = _ref5.comptrollerProxy,
3562
+ contract = _ref5.contract,
3563
+ asset = _ref5.asset;
3564
+ return comptrollerProxy.vaultCallOnContract(contract, sighash(utils.FunctionFragment.fromString('startAssetBypassTimelock(address)')), encodeArgs(['address'], [asset]));
3565
+ }
2825
3566
 
2826
3567
  function transactionTimestamp(_x) {
2827
3568
  return _transactionTimestamp.apply(this, arguments);
@@ -2875,8 +3616,8 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
2875
3616
  // 50% discount
2876
3617
  mlnAmountToBurn = mlnValueOfBuyback.div(2);
2877
3618
  return _context2.abrupt("return", {
2878
- mlnValue: mlnValueOfBuyback,
2879
- mlnAmountToBurn: mlnAmountToBurn
3619
+ mlnAmountToBurn: mlnAmountToBurn,
3620
+ mlnValue: mlnValueOfBuyback
2880
3621
  });
2881
3622
 
2882
3623
  case 8:
@@ -2892,43 +3633,51 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
2892
3633
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2893
3634
 
2894
3635
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3636
+
3637
+ /* eslint-disable sort-keys-fix/sort-keys-fix */
2895
3638
  var whales = {
2896
- wdgld: '0x9aa65464b4cfbe3dc2bdb3df412aee2b3de86687',
2897
- adai: '0x62e41b1185023bcc14a465d350e1dde341557925',
2898
- ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
3639
+ // primitives
2899
3640
  bat: '0x12274c71304bc0e6b38a56b94d2949b118feb838',
2900
3641
  bnb: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
2901
- bnt: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
2902
- comp: '0xC89b6f0146642688bb254bF93C28fcCF1E182C81',
3642
+ bnt: '0x7d1ed1601a12a172269436fa95fe156650603c1d',
3643
+ busd: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
3644
+ comp: '0x0f50d31b3eaefd65236dd3736b863cffa4c63c4e',
2903
3645
  crv: '0x4ce799e6eD8D64536b67dD428565d52A531B3640',
2904
- dai: '0x16463c0fdb6ba9618909f5b120ea1581618c1b9e',
2905
- knc: '0x9d1167df52328db20d5d77288dce6ae3ef3a3e1f',
2906
- ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
3646
+ dai: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
3647
+ knc: '0x09d51654bd9efbfcb56da3491989cc1444095fff',
2907
3648
  link: '0xbe6977e08d4479c0a6777539ae0e8fa27be4e9d6',
2908
3649
  mana: '0xefb94ac00f1cee8a89d5c3f49faa799da6f03024',
2909
3650
  mln: '0xd8f8a53945bcfbbc19da162aa405e662ef71c40d',
2910
3651
  rep: '0xc6a043b07d33b6f30d8cb501026c391cfd25abe1',
2911
3652
  ren: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3653
+ susd: '0xa5f7a39e55d7878bc5bd754ee5d6bd7a7662355b',
2912
3654
  uni: '0x47173b170c64d16393a52e6c480b3ad8c302ba1e',
2913
3655
  usdc: '0xae2d4617c862309a3d75a0ffb358c7a5009c673f',
2914
3656
  usdt: '0x5041ed759dd4afc3a72b8192c143f72f4724081a',
2915
3657
  weth: '0xe08A8b19e5722a201EaF20A6BC595eF655397bd5',
2916
3658
  zrx: '0x206376e8940e42538781cd94ef024df3c1e0fd43',
2917
- cbat: '0x285306442cd985cab2c30515cfdab106fca7bc44',
3659
+ // aTokens
3660
+ ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
3661
+ // cTokens
2918
3662
  ccomp: '0xd74f186194ab9219fafac5c2fe4b3270169666db',
2919
- cdai: '0x2bddEd18E2CA464355091266B7616956944ee7eE',
3663
+ cdai: '0xab4ce310054a11328685ece1043211b68ba5d082',
2920
3664
  ceth: '0x8aceab8167c80cb8b3de7fa6228b889bb1130ee8',
2921
- crep: '0xc2386de1b7271a87b416f4605d500846e826a185',
2922
- cuni: '0x8889ff5b6323e71c28c26d2c34b8bb52654f00a6',
3665
+ cuni: '0x39d8014b4f40d2cbc441137011d32023f4f1fd87',
2923
3666
  cusdc: '0xb3bd459e0598dde1fe84b1d0a1430be175b5d5be',
2924
- czrx: '0x57ca561798413a20508b6bc997481e784f3e6e5f',
3667
+ // ptTokens
3668
+ ptUsdc: '0xd18236cd213f39d078177b6f6908f0e44e88e4aa',
3669
+ // synths
2925
3670
  seth: '0xc34a7c65aa08cb36744bda8eeec7b8e9891e147c',
2926
- seur: '0xe896e539e557bc751860a7763c8dd589af1698ce',
2927
- susd: '0x49BE88F0fcC3A8393a59d3688480d7D253C37D2A',
3671
+ seur: '0xc3f2f91723b16b95bef0619b2504c049075d5b0b',
3672
+ sxag: '0x40d68c490bf7262ec40048099aec23535f734be2',
3673
+ sxau: '0x92eb453b7b5b8d41edb44e2c8b8b53eb70a482c7',
3674
+ // misc
2928
3675
  lidoSteth: '0x31f644e2dd5d74f5c8d6d9de89dd517474d51800',
2929
- eurs: '0x98ed26de6451db36246672df78ae7c50f2c76f6d',
2930
- idle: '0x34aaa3d5a73d6f9594326d0422ce69748f09b14f'
3676
+ ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
3677
+ eurs: '0x98ed26de6451db36246672df78ae7c50f2c76f6d'
2931
3678
  };
3679
+ /* eslint-enable sort-keys-fix/sort-keys-fix */
3680
+
2932
3681
  function unlockWhale(_x) {
2933
3682
  return _unlockWhale.apply(this, arguments);
2934
3683
  }
@@ -3100,8 +3849,8 @@ function _relayTransaction() {
3100
3849
  defaultMaxAcceptance = BigNumber.from(150000); // NOTE: There is an inconsistency between how the typed data object shape and the relayCall argument.
3101
3850
 
3102
3851
  mergedRelayRequest = {
3103
- request: relayRequest,
3104
- relayData: relayData
3852
+ relayData: relayData,
3853
+ request: relayRequest
3105
3854
  };
3106
3855
  relayHub = new IGsnRelayHub(options.relayHub, provider.getSigner(options.relayWorker));
3107
3856
  return _context.abrupt("return", relayHub.relayCall.args(defaultMaxAcceptance, mergedRelayRequest, signedRelayRequest, '0x', defaultGasLimit).gas(defaultGasLimit, relayData.gasPrice).send());
@@ -3120,14 +3869,14 @@ var relayed = utils.EventFragment.fromString('TransactionRelayed(address indexed
3120
3869
  var rejected = utils.EventFragment.fromString('TransactionRejectedByPaymaster(address indexed relayManager, address indexed paymaster, address indexed from, address to, address relayWorker, bytes4 selector, uint256 innerGasUsed, bytes reason)');
3121
3870
  function assertDidRelay(receipt) {
3122
3871
  return assertEvent(receipt, relayed, {
3123
- relayManager: expect.any(String),
3124
- relayWorker: expect.any(String),
3872
+ charge: expect.anything(),
3125
3873
  from: expect.any(String),
3126
- to: expect.any(String),
3127
3874
  paymaster: expect.any(String),
3875
+ relayManager: expect.any(String),
3876
+ relayWorker: expect.any(String),
3128
3877
  selector: expect.any(String),
3129
3878
  status: expect.anything(),
3130
- charge: expect.anything()
3879
+ to: expect.any(String)
3131
3880
  });
3132
3881
  }
3133
3882
  function assertDidRelaySuccessfully(receipt) {
@@ -3144,14 +3893,14 @@ function assertDidRelayWithCharge(receipt, amount, tolerance) {
3144
3893
  }
3145
3894
  function assertPaymasterDidReject(receipt) {
3146
3895
  return assertEvent(receipt, rejected, {
3147
- relayManager: expect.any(String),
3148
- paymaster: expect.any(String),
3149
3896
  from: expect.any(String),
3150
- to: expect.any(String),
3897
+ innerGasUsed: expect.anything(),
3898
+ paymaster: expect.any(String),
3899
+ reason: expect.any(String),
3900
+ relayManager: expect.any(String),
3151
3901
  relayWorker: expect.any(String),
3152
3902
  selector: expect.any(String),
3153
- innerGasUsed: expect.anything(),
3154
- reason: expect.any(String)
3903
+ to: expect.any(String)
3155
3904
  });
3156
3905
  }
3157
3906
  function assertPaymasterDidRejectForReason(receipt, reason) {
@@ -3159,4 +3908,4 @@ function assertPaymasterDidRejectForReason(receipt, reason) {
3159
3908
  expect(utils.toUtf8String('0x' + params.reason.substr(138))).toMatch(reason);
3160
3909
  }
3161
3910
 
3162
- export { CurveLiquidityGaugeV2, CurveMinter, CurveSwaps, ICompoundComptroller, UniswapV2Factory, aaveLend, aaveRedeem, addCollateral, addNewAssetsToFund, addTrackedAssetsToVault, assertDidRelay, assertDidRelaySuccessfully, assertDidRelayWithCharge, assertDidRelayWithError, assertEvent, assertNoEvent, assertPaymasterDidReject, assertPaymasterDidRejectForReason, borrow, buyShares, buySharesFunction, calcMlnValueAndBurnAmountForSharesBuyback, callOnExtension, claimComp, compoundLend, compoundRedeem, createComptrollerProxy, createExternalPosition, createFundDeployer, createMigrationRequest, createMockExternalPosition, createNewFund, createReconfigurationRequest, createVaultProxy, curveAaveClaimRewards, curveAaveLend, curveAaveLendAndStake, curveAaveRedeem, curveAaveStake, curveAaveUnstake, curveAaveUnstakeAndRedeem, curveEursClaimRewards, curveEursLend, curveEursLendAndStake, curveEursRedeem, curveEursStake, curveEursUnstake, curveEursUnstakeAndRedeem, curveSethClaimRewards, curveSethLend, curveSethLendAndStake, curveSethRedeem, curveSethStake, curveSethUnstake, curveSethUnstakeAndRedeem, curveStethClaimRewards, curveStethLend, curveStethLendAndStake, curveStethRedeem, curveStethStake, curveStethUnstake, curveStethUnstakeAndRedeem, curveTakeOrder, defaultTestDeployment, deployProtocolFixture, generateFeeManagerConfigWithMockFees, generateMockFees, generateMockPolicies, generatePolicyManagerConfigWithMockPolicies, getAssetBalances, getAssetUnit, getNamedSigner, getUnnamedSigners, idleClaimRewards, idleLend, idleRedeem, mockGenericRemoveOnlySelector, mockGenericSwap, mockGenericSwapASelector, mockGenericSwapArgs, mockGenericSwapBSelector, mockGenericSwapDirectFromVaultSelector, mockGenericSwapViaApprovalSelector, paraSwapV4GenerateDummyPaths, paraSwapV4TakeOrder, redeemSharesForSpecificAssets, redeemSharesInKind, relayTransaction, removeCollateral, removeExternalPosition, removeTrackedAssetsFromVault, repayBorrow, setupGasRelayerPaymaster, synthetixAssignExchangeDelegate, synthetixResolveAddress, synthetixTakeOrder, transactionTimestamp, uniswapV2Lend, uniswapV2Redeem, uniswapV2TakeOrder, uniswapV3TakeOrder, unlockAllWhales, unlockWhale, unlockWhales, updateChainlinkAggregator, vaultCallCurveMinterMint, vaultCallCurveMinterMintMany, vaultCallCurveMinterToggleApproveMint, yearnVaultV2Lend, yearnVaultV2Redeem, zeroExV2TakeOrder };
3911
+ export { CurveLiquidityGaugeV2, CurveMinter, CurveSwaps, ICompoundComptroller, IUniswapV3NonFungibleTokenManager, UniswapV2Factory, UniswapV3FeeAmount, aaveLend, aaveRedeem, addNewAssetsToFund, addTrackedAssetsToVault, assertDidRelay, assertDidRelaySuccessfully, assertDidRelayWithCharge, assertDidRelayWithError, assertEvent, assertNoEvent, assertPaymasterDidReject, assertPaymasterDidRejectForReason, buyShares, buySharesFunction, calcMlnValueAndBurnAmountForSharesBuyback, callOnExtension, callOnExternalPosition, compoundDebtPositionAddCollateral, compoundDebtPositionBorrow, compoundDebtPositionClaimComp, compoundDebtPositionRemoveCollateral, compoundDebtPositionRepayBorrow, compoundLend, compoundRedeem, createCompoundDebtPosition, createComptrollerProxy, createExternalPosition, createFundDeployer, createMigrationRequest, createMockExternalPosition, createNewFund, createReconfigurationRequest, createUniswapV3LiquidityPosition, createVaultProxy, curveAaveClaimRewards, curveAaveLend, curveAaveLendAndStake, curveAaveRedeem, curveAaveStake, curveAaveUnstake, curveAaveUnstakeAndRedeem, curveEursClaimRewards, curveEursLend, curveEursLendAndStake, curveEursRedeem, curveEursStake, curveEursUnstake, curveEursUnstakeAndRedeem, curveSethClaimRewards, curveSethLend, curveSethLendAndStake, curveSethRedeem, curveSethStake, curveSethUnstake, curveSethUnstakeAndRedeem, curveStethClaimRewards, curveStethLend, curveStethLendAndStake, curveStethRedeem, curveStethStake, curveStethUnstake, curveStethUnstakeAndRedeem, curveTakeOrder, deployProtocolFixture, generateFeeManagerConfigWithMockFees, generateMockFees, generateMockPolicies, generatePolicyManagerConfigWithMockPolicies, getAssetBalances, getAssetUnit, getNamedSigner, getUnnamedSigners, idleClaimRewards, idleLend, idleRedeem, mockExternalPositionAddDebtAssets, mockExternalPositionAddManagedAssets, mockExternalPositionRemoveDebtAssets, mockExternalPositionRemoveManagedAssets, mockGenericRemoveOnlySelector, mockGenericSwap, mockGenericSwapASelector, mockGenericSwapArgs, mockGenericSwapBSelector, mockGenericSwapDirectFromVaultSelector, mockGenericSwapViaApprovalSelector, paraSwapV4GenerateDummyPaths, paraSwapV4TakeOrder, paraSwapV5GenerateDummyPaths, paraSwapV5TakeOrder, poolTogetherV4ClaimRewards, poolTogetherV4Lend, poolTogetherV4Redeem, reactivateExternalPosition, redeemSharesForSpecificAssets, redeemSharesInKind, relayTransaction, removeExternalPosition, removeTrackedAssetsFromVault, setupGasRelayerPaymaster, synthetixAssignExchangeDelegate, synthetixRedeem, synthetixResolveAddress, synthetixTakeOrder, transactionTimestamp, uniswapV2Lend, uniswapV2Redeem, uniswapV2TakeOrder, uniswapV3LiquidityPositionAddLiquidity, uniswapV3LiquidityPositionCollect, uniswapV3LiquidityPositionGetMaxTick, uniswapV3LiquidityPositionGetMinTick, uniswapV3LiquidityPositionMint, uniswapV3LiquidityPositionPurge, uniswapV3LiquidityPositionRemoveLiquidity, uniswapV3OrderTokenPair, uniswapV3TakeOrder, unlockAllWhales, unlockWhale, unlockWhales, updateChainlinkAggregator, vaultCallCreateNewList, vaultCallCurveMinterMint, vaultCallCurveMinterMintMany, vaultCallCurveMinterToggleApproveMint, vaultCallStartAssetBypassTimelock, yearnVaultV2Lend, yearnVaultV2Redeem, zeroExV2TakeOrder };