@enzymefinance/testutils 4.0.0-next.2 → 4.0.0-next.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/declarations/src/assertions.d.ts +2 -2
  3. package/dist/declarations/src/deployment.d.ts +172 -68
  4. package/dist/declarations/src/gasRelayer.d.ts +14 -12
  5. package/dist/declarations/src/helpers.d.ts +5 -4
  6. package/dist/declarations/src/scaffolding/assets.d.ts +4 -4
  7. package/dist/declarations/src/scaffolding/chainlink.d.ts +2 -2
  8. package/dist/declarations/src/scaffolding/common.d.ts +1 -1
  9. package/dist/declarations/src/scaffolding/core.d.ts +4 -4
  10. package/dist/declarations/src/scaffolding/extensions/common.d.ts +4 -4
  11. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +8 -6
  12. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +5 -5
  13. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +1 -0
  14. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +16 -12
  15. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +100 -0
  16. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +4 -4
  17. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +6 -5
  18. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +33 -5
  19. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +101 -84
  20. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +6 -6
  21. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +3 -0
  22. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +4 -4
  23. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +17 -0
  24. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +6 -5
  25. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
  26. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +15 -12
  28. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +3 -3
  29. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +4 -4
  30. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +4 -4
  31. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +5 -5
  32. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +4 -4
  33. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +9 -9
  34. package/dist/declarations/src/scaffolding/setup.d.ts +11 -9
  35. package/dist/declarations/src/scaffolding/shares.d.ts +4 -4
  36. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +11 -2
  37. package/dist/declarations/src/whales.d.ts +24 -19
  38. package/dist/enzymefinance-testutils.browser.cjs.js +1541 -673
  39. package/dist/enzymefinance-testutils.browser.esm.js +1502 -655
  40. package/dist/enzymefinance-testutils.cjs.dev.js +1541 -673
  41. package/dist/enzymefinance-testutils.cjs.prod.js +1541 -673
  42. package/dist/enzymefinance-testutils.esm.js +1502 -655
  43. package/package.json +6 -6
  44. package/src/assertions.ts +5 -2
  45. package/src/deployment.ts +221 -120
  46. package/src/gasRelayer.ts +17 -18
  47. package/src/helpers.ts +6 -4
  48. package/src/scaffolding/assets.ts +7 -6
  49. package/src/scaffolding/chainlink.ts +2 -2
  50. package/src/scaffolding/common.ts +1 -1
  51. package/src/scaffolding/core.ts +4 -8
  52. package/src/scaffolding/extensions/common.ts +4 -4
  53. package/src/scaffolding/extensions/external-positions/actions.ts +14 -9
  54. package/src/scaffolding/extensions/external-positions/compound.ts +28 -29
  55. package/src/scaffolding/extensions/external-positions/index.ts +1 -0
  56. package/src/scaffolding/extensions/external-positions/mocks.ts +32 -36
  57. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +284 -0
  58. package/src/scaffolding/extensions/fees.ts +1 -1
  59. package/src/scaffolding/extensions/integrations/aave.ts +6 -8
  60. package/src/scaffolding/extensions/integrations/compound.ts +171 -11
  61. package/src/scaffolding/extensions/integrations/curve.ts +303 -255
  62. package/src/scaffolding/extensions/integrations/idle.ts +9 -11
  63. package/src/scaffolding/extensions/integrations/index.ts +3 -0
  64. package/src/scaffolding/extensions/integrations/mock.ts +11 -13
  65. package/src/scaffolding/extensions/integrations/olympusV2.ts +71 -0
  66. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
  67. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
  68. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
  69. package/src/scaffolding/extensions/integrations/synthetix.ts +45 -31
  70. package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
  71. package/src/scaffolding/extensions/integrations/uniswapV2.ts +22 -19
  72. package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
  73. package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
  74. package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
  75. package/src/scaffolding/extensions/policies.ts +2 -1
  76. package/src/scaffolding/setup.ts +27 -13
  77. package/src/scaffolding/shares.ts +5 -4
  78. package/src/scaffolding/vaultCalls.ts +32 -2
  79. package/src/types.d.ts +1 -0
  80. package/src/whales.ts +36 -18
@@ -1,10 +1,10 @@
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, YearnVaultV2PriceFeed, ValueInterpreter, UniswapV2PoolPriceFeed, IntegrationManager, ExternalPositionManager, ExternalPositionFactory, CurveLiquidityAaveAdapter, CurveLiquidityEursAdapter, CurveLiquiditySethAdapter, CurveLiquidityStethAdapter, AaveAdapter, IdleAdapter, ParaSwapV4Adapter, SynthetixAdapter, YearnVaultV2Adapter, ZeroExV2Adapter, CompoundAdapter, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV3Adapter, CurveExchangeAdapter, FeeManager, ComptrollerLib, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ManagementFee, PerformanceFee, DepositWrapper, UnpermissionedActionsWrapper, AllowedAdapterIncomingAssetsPolicy, MinMaxInvestmentPolicy, AllowedDepositRecipientsPolicy, GuaranteedRedemptionPolicy, AssetFinalityResolver, ProtocolFeeReserveLib, ProtocolFeeTracker, GasRelayPaymasterFactory, AddressListRegistry, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, CumulativeSlippageTolerancePolicy, MinAssetBalancesPostRedemptionPolicy, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, FundValueCalculatorRouter, FundValueCalculator, IntegrationManagerActionId, addTrackedAssetsToVaultArgs, removeTrackedAssetsFromVaultArgs, StandardToken, callOnExternalPositionArgs, ExternalPositionManagerActionId, IExternalPositionProxy, encodeArgs, externalPositionReactivateArgs, externalPositionRemoveArgs, compoundExternalPositionActionArgs, CompoundDebtPositionActionId, ExternalPositionType, 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, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, ConvexCurveLpStakingAdapter, ConvexCurveLpStakingWrapperFactory, ConvexCurveLpStakingWrapperPriceFeed, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAaveAdapter, CurveLiquidityAdapter, CurveLiquiditySethAdapter, CurveLiquidityStethAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, FuseAdapter, FusePriceFeed, GasRelayPaymasterFactory, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, ManagementFee, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, OlympusV2Adapter, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV4Adapter, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, StakehoundEthPriceFeed, SynthetixAdapter, 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, uniswapV3LiquidityPositionAddLiquidityArgs, UniswapV3LiquidityPositionActionId, uniswapV3LiquidityPositionCollectArgs, UniswapV3LiquidityPositionLib, uniswapV3LiquidityPositionMintArgs, uniswapV3LiquidityPositionPurgeArgs, uniswapV3LiquidityPositionRemoveLiquidityArgs, feeManagerConfigArgs, FeeSettlementType, FeeHook, IFee, aaveLendArgs, callOnIntegrationArgs, lendSelector, aaveRedeemArgs, redeemSelector, compoundClaimRewardsArgs, claimRewardsSelector, compoundArgs, curveTakeOrderArgs, takeOrderSelector, curveClaimRewardsArgs, curveLendArgs, curveLendAndStakeArgs, lendAndStakeSelector, curveRedeemArgs, curveStakeArgs, stakeSelector, curveUnstakeArgs, unstakeSelector, curveUnstakeAndRedeemArgs, unstakeAndRedeemSelector, curveAaveLendArgs, curveAaveLendAndStakeArgs, curveAaveRedeemArgs, curveAaveStakeArgs, curveAaveUnstakeAndRedeemArgs, curveAaveUnstakeArgs, curveSethLendArgs, curveSethLendAndStakeArgs, curveSethRedeemArgs, curveSethStakeArgs, curveSethUnstakeAndRedeemArgs, curveSethUnstakeArgs, curveStethLendArgs, curveStethLendAndStakeArgs, curveStethRedeemArgs, curveStethStakeArgs, curveStethUnstakeAndRedeemArgs, curveStethUnstakeArgs, idleClaimRewardsArgs, idleLendArgs, idleRedeemArgs, sighash, olympusV2StakeArgs, olympusV2UnstakeArgs, 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
5
  import { extractEvent, contract, resolveAddress, randomAddress } from '@enzymefinance/ethers';
6
- import { ExternalPositionManagerActionId as ExternalPositionManagerActionId$1, encodeArgs as encodeArgs$1, MockGenericExternalPositionParser, MockGenericExternalPositionLib, VaultLib as VaultLib$1, mockGenericExternalPositionActionArgs, MockGenericExternalPositionActionId } from '@enzymefinance/protocol/src';
7
6
  import _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';
7
+ import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';
9
9
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
10
10
 
@@ -104,77 +104,84 @@ function _deployProtocolFixture() {
104
104
  config = fixture['Config'].linkedData; // prettier-ignore
105
105
 
106
106
  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),
107
+ aaveAdapter: new AaveAdapter(fixture['AaveAdapter'].address, deployer),
111
108
  aavePriceFeed: new AavePriceFeed(fixture['AavePriceFeed'].address, deployer),
109
+ addressListRegistry: new AddressListRegistry(fixture['AddressListRegistry'].address, deployer),
110
+ allowedAdapterIncomingAssetsPolicy: new AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
111
+ allowedAdaptersPolicy: new AllowedAdaptersPolicy(fixture['AllowedAdaptersPolicy'].address, deployer),
112
+ allowedAssetsForRedemptionPolicy: new AllowedAssetsForRedemptionPolicy(fixture['AllowedAssetsForRedemptionPolicy'].address, deployer),
113
+ allowedDepositRecipientsPolicy: new AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
114
+ allowedExternalPositionTypesPolicy: new AllowedExternalPositionTypesPolicy(fixture['AllowedExternalPositionTypesPolicy'].address, deployer),
115
+ allowedSharesTransferRecipientsPolicy: new AllowedSharesTransferRecipientsPolicy(fixture['AllowedSharesTransferRecipientsPolicy'].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
- yearnVaultV2PriceFeed: new YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
122
- valueInterpreter: new ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
123
- uniswapV2PoolPriceFeed: new UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
124
- integrationManager: new IntegrationManager(fixture['IntegrationManager'].address, deployer),
125
- externalPositionManager: new ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
126
- externalPositionFactory: new ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
120
+ comptrollerLib: new ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
121
+ convexCurveLpStakingAdapter: new ConvexCurveLpStakingAdapter(fixture['ConvexCurveLpStakingAdapter'].address, deployer),
122
+ convexCurveLpStakingWrapperFactory: new ConvexCurveLpStakingWrapperFactory(fixture['ConvexCurveLpStakingWrapperFactory'].address, deployer),
123
+ convexCurveLpStakingWrapperPriceFeed: new ConvexCurveLpStakingWrapperPriceFeed(fixture['ConvexCurveLpStakingWrapperPriceFeed'].address, deployer),
124
+ cumulativeSlippageTolerancePolicy: new CumulativeSlippageTolerancePolicy(fixture['CumulativeSlippageTolerancePolicy'].address, deployer),
125
+ curveExchangeAdapter: new CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
127
126
  curveLiquidityAaveAdapter: new CurveLiquidityAaveAdapter(fixture['CurveLiquidityAaveAdapter'].address, deployer),
128
- curveLiquidityEursAdapter: new CurveLiquidityEursAdapter(fixture['CurveLiquidityEursAdapter'].address, deployer),
127
+ curveLiquidityAdapter: new CurveLiquidityAdapter(fixture['CurveLiquidityAdapter'].address, deployer),
129
128
  curveLiquiditySethAdapter: new CurveLiquiditySethAdapter(fixture['CurveLiquiditySethAdapter'].address, deployer),
130
129
  curveLiquidityStethAdapter: new CurveLiquidityStethAdapter(fixture['CurveLiquidityStethAdapter'].address, deployer),
131
- aaveAdapter: new AaveAdapter(fixture['AaveAdapter'].address, deployer),
132
- idleAdapter: new IdleAdapter(fixture['IdleAdapter'].address, deployer),
133
- paraSwapV4Adapter: new ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
134
- synthetixAdapter: new SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
135
- yearnVaultV2Adapter: new YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
136
- zeroExV2Adapter: new ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer),
137
- compoundAdapter: new CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
138
- uniswapV2ExchangeAdapter: new UniswapV2ExchangeAdapter(fixture['UniswapV2ExchangeAdapter'].address, deployer),
139
- uniswapV2LiquidityAdapter: new UniswapV2LiquidityAdapter(fixture['UniswapV2LiquidityAdapter'].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),
130
+ curvePriceFeed: new CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
131
+ depositWrapper: new DepositWrapper(fixture['DepositWrapper'].address, deployer),
132
+ dispatcher: new Dispatcher(fixture['Dispatcher'].address, deployer),
144
133
  entranceRateBurnFee: new EntranceRateBurnFee(fixture['EntranceRateBurnFee'].address, deployer),
145
134
  entranceRateDirectFee: new EntranceRateDirectFee(fixture['EntranceRateDirectFee'].address, deployer),
146
135
  exitRateBurnFee: new ExitRateBurnFee(fixture['ExitRateBurnFee'].address, deployer),
147
136
  exitRateDirectFee: new ExitRateDirectFee(fixture['ExitRateDirectFee'].address, deployer),
137
+ externalPositionFactory: new ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
138
+ externalPositionManager: new ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
139
+ feeManager: new FeeManager(fixture['FeeManager'].address, deployer),
140
+ fundDeployer: new FundDeployer(fixture['FundDeployer'].address, deployer),
141
+ fundValueCalculator: new FundValueCalculator(fixture['FundValueCalculator'].address, deployer),
142
+ fundValueCalculatorRouter: new FundValueCalculatorRouter(fixture['FundValueCalculatorRouter'].address, deployer),
143
+ fundValueCalculatorUsdWrapper: new FundValueCalculatorUsdWrapper(fixture['FundValueCalculatorUsdWrapper'].address, deployer),
144
+ fuseAdapter: new FuseAdapter(fixture['FuseAdapter'].address, deployer),
145
+ fusePriceFeed: new FusePriceFeed(fixture['FusePriceFeed'].address, deployer),
146
+ gasRelayPaymasterFactory: new GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer),
147
+ idleAdapter: new IdleAdapter(fixture['IdleAdapter'].address, deployer),
148
+ idlePriceFeed: new IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
149
+ integrationManager: new IntegrationManager(fixture['IntegrationManager'].address, deployer),
150
+ lidoStethPriceFeed: new LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
148
151
  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),
152
+ minAssetBalancesPostRedemptionPolicy: new MinAssetBalancesPostRedemptionPolicy(fixture['MinAssetBalancesPostRedemptionPolicy'].address, deployer),
153
153
  minMaxInvestmentPolicy: new MinMaxInvestmentPolicy(fixture['MinMaxInvestmentPolicy'].address, deployer),
154
- allowedDepositRecipientsPolicy: new AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
155
- guaranteedRedemptionPolicy: new GuaranteedRedemptionPolicy(fixture['GuaranteedRedemptionPolicy'].address, deployer),
156
- assetFinalityResolver: new AssetFinalityResolver(fixture['AssetFinalityResolver'].address, deployer),
154
+ olympusV2Adapter: new OlympusV2Adapter(fixture['OlympusV2Adapter'].address, deployer),
155
+ onlyRemoveDustExternalPositionPolicy: new OnlyRemoveDustExternalPositionPolicy(fixture['OnlyRemoveDustExternalPositionPolicy'].address, deployer),
156
+ onlyUntrackDustOrPricelessAssetsPolicy: new OnlyUntrackDustOrPricelessAssetsPolicy(fixture['OnlyUntrackDustOrPricelessAssetsPolicy'].address, deployer),
157
+ paraSwapV4Adapter: new ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
158
+ paraSwapV5Adapter: new ParaSwapV5Adapter(fixture['ParaSwapV5Adapter'].address, deployer),
159
+ performanceFee: new PerformanceFee(fixture['PerformanceFee'].address, deployer),
160
+ policyManager: new PolicyManager(fixture['PolicyManager'].address, deployer),
161
+ poolTogetherV4Adapter: new PoolTogetherV4Adapter(fixture['PoolTogetherV4Adapter'].address, deployer),
162
+ poolTogetherV4PriceFeed: new PoolTogetherV4PriceFeed(fixture['PoolTogetherV4PriceFeed'].address, deployer),
157
163
  protocolFeeReserveLib: new ProtocolFeeReserveLib(fixture['ProtocolFeeReserveLib'].address, deployer),
158
164
  protocolFeeReserveProxy: new ProtocolFeeReserveLib(fixture['ProtocolFeeReserveProxy'].address, deployer),
159
165
  protocolFeeTracker: new ProtocolFeeTracker(fixture['ProtocolFeeTracker'].address, deployer),
160
- gasRelayPaymasterFactory: new GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer),
161
- addressListRegistry: new AddressListRegistry(fixture['AddressListRegistry'].address, deployer),
162
- allowedAdaptersPolicy: new AllowedAdaptersPolicy(fixture['AllowedAdaptersPolicy'].address, deployer),
163
- allowedAssetsForRedemptionPolicy: new AllowedAssetsForRedemptionPolicy(fixture['AllowedAssetsForRedemptionPolicy'].address, deployer),
164
- allowedExternalPositionTypesPolicy: new AllowedExternalPositionTypesPolicy(fixture['AllowedExternalPositionTypesPolicy'].address, deployer),
165
- allowedSharesTransferRecipientsPolicy: new AllowedSharesTransferRecipientsPolicy(fixture['AllowedSharesTransferRecipientsPolicy'].address, deployer),
166
- cumulativeSlippageTolerancePolicy: new CumulativeSlippageTolerancePolicy(fixture['CumulativeSlippageTolerancePolicy'].address, deployer),
167
- minAssetBalancesPostRedemptionPolicy: new MinAssetBalancesPostRedemptionPolicy(fixture['MinAssetBalancesPostRedemptionPolicy'].address, deployer),
168
- onlyRemoveDustExternalPositionPolicy: new OnlyRemoveDustExternalPositionPolicy(fixture['OnlyRemoveDustExternalPositionPolicy'].address, deployer),
169
- onlyUntrackDustOrPricelessAssetsPolicy: new OnlyUntrackDustOrPricelessAssetsPolicy(fixture['OnlyUntrackDustOrPricelessAssetsPolicy'].address, deployer),
170
- fundValueCalculatorRouter: new FundValueCalculatorRouter(fixture['FundValueCalculatorRouter'].address, deployer),
171
- fundValueCalculator: new FundValueCalculator(fixture['FundValueCalculator'].address, deployer)
166
+ revertingPriceFeed: new RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
167
+ stakehoundEthPriceFeed: new StakehoundEthPriceFeed(fixture['StakehoundEthPriceFeed'].address, deployer),
168
+ synthetixAdapter: new SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
169
+ uniswapV2ExchangeAdapter: new UniswapV2ExchangeAdapter(fixture['UniswapV2ExchangeAdapter'].address, deployer),
170
+ uniswapV2LiquidityAdapter: new UniswapV2LiquidityAdapter(fixture['UniswapV2LiquidityAdapter'].address, deployer),
171
+ uniswapV2PoolPriceFeed: new UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
172
+ uniswapV3Adapter: new UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
173
+ unpermissionedActionsWrapper: new UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
174
+ valueInterpreter: new ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
175
+ vaultLib: new VaultLib(fixture['VaultLib'].address, deployer),
176
+ yearnVaultV2Adapter: new YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
177
+ yearnVaultV2PriceFeed: new YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
178
+ zeroExV2Adapter: new ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer)
172
179
  };
173
180
  return _context3.abrupt("return", {
174
- deployer: deployer,
175
- deployment: deployment,
176
181
  accounts: accounts,
177
- config: config
182
+ config: config,
183
+ deployer: deployer,
184
+ deployment: deployment
178
185
  });
179
186
 
180
187
  case 12:
@@ -187,30 +194,6 @@ function _deployProtocolFixture() {
187
194
  return _deployProtocolFixture.apply(this, arguments);
188
195
  }
189
196
 
190
- // TODO: Remove this.
191
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
192
- function defaultTestDeployment(_x2) {
193
- return _defaultTestDeployment.apply(this, arguments);
194
- }
195
-
196
- function _defaultTestDeployment() {
197
- _defaultTestDeployment = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_) {
198
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
199
- while (1) {
200
- switch (_context4.prev = _context4.next) {
201
- case 0:
202
- throw new Error('Removed');
203
-
204
- case 1:
205
- case "end":
206
- return _context4.stop();
207
- }
208
- }
209
- }, _callee4);
210
- }));
211
- return _defaultTestDeployment.apply(this, arguments);
212
- }
213
-
214
197
  function addTrackedAssetsToVault(_ref) {
215
198
  var signer = _ref.signer,
216
199
  comptrollerProxy = _ref.comptrollerProxy,
@@ -243,12 +226,12 @@ function _addNewAssetsToFund() {
243
226
  switch (_context.prev = _context.next) {
244
227
  case 0:
245
228
  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;
246
- // First, add tracked assets while their balances are 0
229
+ // First, add tracked assets
247
230
  receipt = addTrackedAssetsToVault({
248
- signer: signer,
231
+ assets: assets,
249
232
  comptrollerProxy: comptrollerProxy,
250
233
  integrationManager: integrationManager,
251
- assets: assets
234
+ signer: signer
252
235
  }); // Then seed the vault with balances as necessary
253
236
 
254
237
  _context.next = 4;
@@ -400,13 +383,13 @@ function createFundDeployer(_x) {
400
383
 
401
384
  function _createFundDeployer() {
402
385
  _createFundDeployer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
403
- 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;
386
+ var deployer, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, _ref$setOnDispatcher, setOnDispatcher, _ref$setReleaseLive, setReleaseLive, mlnToken, wethToken, protocolFeeReserve, nextFundDeployer, nextPolicyManager, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextComptrollerLib, nextProtocolFeeTracker, nextVaultLib;
404
387
 
405
388
  return _regeneratorRuntime.wrap(function _callee$(_context) {
406
389
  while (1) {
407
390
  switch (_context.prev = _context.next) {
408
391
  case 0:
409
- 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;
392
+ deployer = _ref.deployer, 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;
410
393
  _context.next = 3;
411
394
  return vaultLib.getMlnToken();
412
395
 
@@ -457,7 +440,7 @@ function _createFundDeployer() {
457
440
  case 31:
458
441
  nextIntegrationManager = _context.sent;
459
442
  _context.next = 34;
460
- return ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextPolicyManager, assetFinalityResolver, gasRelayPaymasterFactory, mlnToken, wethToken);
443
+ return ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextPolicyManager, gasRelayPaymasterFactory, mlnToken, wethToken);
461
444
 
462
445
  case 34:
463
446
  nextComptrollerLib = _context.sent;
@@ -494,40 +477,50 @@ function _createFundDeployer() {
494
477
  case 54:
495
478
  _context.t11 = _context.sent;
496
479
  _context.next = 57;
497
- return vaultLib.getWethToken();
480
+ return vaultLib.getMlnBurner();
498
481
 
499
482
  case 57:
500
483
  _context.t12 = _context.sent;
501
484
  _context.next = 60;
502
- return _context.t5.deploy.call(_context.t5, _context.t6, _context.t7, _context.t8, _context.t9, _context.t10, _context.t11, _context.t12);
485
+ return vaultLib.getWethToken();
503
486
 
504
487
  case 60:
505
- nextVaultLib = _context.sent;
488
+ _context.t13 = _context.sent;
506
489
  _context.next = 63;
507
- return nextFundDeployer.setVaultLib(nextVaultLib);
490
+ return vaultLib.getPositionsLimit();
508
491
 
509
492
  case 63:
493
+ _context.t14 = _context.sent;
494
+ _context.next = 66;
495
+ return _context.t5.deploy.call(_context.t5, _context.t6, _context.t7, _context.t8, _context.t9, _context.t10, _context.t11, _context.t12, _context.t13, _context.t14);
496
+
497
+ case 66:
498
+ nextVaultLib = _context.sent;
499
+ _context.next = 69;
500
+ return nextFundDeployer.setVaultLib(nextVaultLib);
501
+
502
+ case 69:
510
503
  if (!setReleaseLive) {
511
- _context.next = 66;
504
+ _context.next = 72;
512
505
  break;
513
506
  }
514
507
 
515
- _context.next = 66;
508
+ _context.next = 72;
516
509
  return nextFundDeployer.setReleaseLive();
517
510
 
518
- case 66:
511
+ case 72:
519
512
  if (!setOnDispatcher) {
520
- _context.next = 69;
513
+ _context.next = 75;
521
514
  break;
522
515
  }
523
516
 
524
- _context.next = 69;
517
+ _context.next = 75;
525
518
  return dispatcher.setCurrentFundDeployer(nextFundDeployer);
526
519
 
527
- case 69:
520
+ case 75:
528
521
  return _context.abrupt("return", nextFundDeployer);
529
522
 
530
- case 70:
523
+ case 76:
531
524
  case "end":
532
525
  return _context.stop();
533
526
  }
@@ -586,9 +579,9 @@ function _callOnExternalPosition() {
586
579
  case 0:
587
580
  signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionProxy = _ref.externalPositionProxy, actionId = _ref.actionId, actionArgs = _ref.actionArgs;
588
581
  callArgs = callOnExternalPositionArgs({
589
- externalPositionProxy: externalPositionProxy,
582
+ actionArgs: actionArgs,
590
583
  actionId: actionId,
591
- actionArgs: actionArgs
584
+ externalPositionProxy: externalPositionProxy
592
585
  });
593
586
  return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
594
587
 
@@ -608,23 +601,23 @@ function createExternalPosition(_x2) {
608
601
 
609
602
  function _createExternalPosition() {
610
603
  _createExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
611
- var signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, _ref2$initializationD, initializationData, receipt, event, externalPositionProxy;
604
+ var signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, _ref2$initializationD, initializationData, _ref2$callOnExternalP, callOnExternalPositionData, receipt, event, externalPositionProxy;
612
605
 
613
606
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
614
607
  while (1) {
615
608
  switch (_context2.prev = _context2.next) {
616
609
  case 0:
617
- signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionTypeId = _ref2.externalPositionTypeId, _ref2$initializationD = _ref2.initializationData, initializationData = _ref2$initializationD === void 0 ? '0x' : _ref2$initializationD;
610
+ signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionTypeId = _ref2.externalPositionTypeId, _ref2$initializationD = _ref2.initializationData, initializationData = _ref2$initializationD === void 0 ? '0x' : _ref2$initializationD, _ref2$callOnExternalP = _ref2.callOnExternalPositionData, callOnExternalPositionData = _ref2$callOnExternalP === void 0 ? '0x' : _ref2$callOnExternalP;
618
611
  _context2.next = 3;
619
- return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CreateExternalPosition, encodeArgs(['uint256', 'bytes'], [externalPositionTypeId, initializationData]));
612
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CreateExternalPosition, encodeArgs(['uint256', 'bytes', 'bytes'], [externalPositionTypeId, initializationData, callOnExternalPositionData]));
620
613
 
621
614
  case 3:
622
615
  receipt = _context2.sent;
623
616
  event = extractEvent(receipt, externalPositionManager.abi.getEvent('ExternalPositionDeployedForFund'));
624
617
  externalPositionProxy = new IExternalPositionProxy(event[0].args.externalPosition, signer);
625
618
  return _context2.abrupt("return", {
626
- receipt: receipt,
627
- externalPositionProxy: externalPositionProxy
619
+ externalPositionProxy: externalPositionProxy,
620
+ receipt: receipt
628
621
  });
629
622
 
630
623
  case 7:
@@ -704,17 +697,17 @@ function _compoundDebtPositionAddCollateral() {
704
697
  case 0:
705
698
  comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, fundOwner = _ref.fundOwner, assets = _ref.assets, amounts = _ref.amounts, externalPositionProxy = _ref.externalPositionProxy, cTokens = _ref.cTokens;
706
699
  actionArgs = compoundExternalPositionActionArgs({
707
- assets: assets,
708
700
  amounts: amounts,
701
+ assets: assets,
709
702
  data: encodeArgs(['address[]'], [cTokens])
710
703
  });
711
704
  return _context.abrupt("return", callOnExternalPosition({
712
- signer: fundOwner,
705
+ actionArgs: actionArgs,
706
+ actionId: CompoundDebtPositionActionId.AddCollateralAssets,
713
707
  comptrollerProxy: comptrollerProxy,
714
708
  externalPositionManager: externalPositionManager,
715
709
  externalPositionProxy: externalPositionProxy,
716
- actionId: CompoundDebtPositionActionId.AddCollateralAssets,
717
- actionArgs: actionArgs
710
+ signer: fundOwner
718
711
  }));
719
712
 
720
713
  case 3:
@@ -740,17 +733,17 @@ function _compoundDebtPositionBorrow() {
740
733
  case 0:
741
734
  comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, fundOwner = _ref2.fundOwner, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts, cTokens = _ref2.cTokens;
742
735
  actionArgs = compoundExternalPositionActionArgs({
743
- assets: assets,
744
736
  amounts: amounts,
737
+ assets: assets,
745
738
  data: encodeArgs(['address[]'], [cTokens])
746
739
  });
747
740
  return _context2.abrupt("return", callOnExternalPosition({
748
- signer: fundOwner,
741
+ actionArgs: actionArgs,
742
+ actionId: CompoundDebtPositionActionId.BorrowAsset,
749
743
  comptrollerProxy: comptrollerProxy,
750
744
  externalPositionManager: externalPositionManager,
751
745
  externalPositionProxy: externalPositionProxy,
752
- actionId: CompoundDebtPositionActionId.BorrowAsset,
753
- actionArgs: actionArgs
746
+ signer: fundOwner
754
747
  }));
755
748
 
756
749
  case 3:
@@ -776,17 +769,17 @@ function _compoundDebtPositionClaimComp() {
776
769
  case 0:
777
770
  comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, fundOwner = _ref3.fundOwner, externalPositionProxy = _ref3.externalPositionProxy;
778
771
  actionArgs = compoundExternalPositionActionArgs({
779
- assets: [],
780
772
  amounts: [],
773
+ assets: [],
781
774
  data: '0x'
782
775
  });
783
776
  return _context3.abrupt("return", callOnExternalPosition({
784
- signer: fundOwner,
777
+ actionArgs: actionArgs,
778
+ actionId: CompoundDebtPositionActionId.ClaimComp,
785
779
  comptrollerProxy: comptrollerProxy,
786
780
  externalPositionManager: externalPositionManager,
787
781
  externalPositionProxy: externalPositionProxy,
788
- actionId: CompoundDebtPositionActionId.ClaimComp,
789
- actionArgs: actionArgs
782
+ signer: fundOwner
790
783
  }));
791
784
 
792
785
  case 3:
@@ -812,17 +805,17 @@ function _compoundDebtPositionRemoveCollateral() {
812
805
  case 0:
813
806
  comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, fundOwner = _ref4.fundOwner, assets = _ref4.assets, amounts = _ref4.amounts, externalPositionProxy = _ref4.externalPositionProxy, cTokens = _ref4.cTokens;
814
807
  actionArgs = compoundExternalPositionActionArgs({
815
- assets: assets,
816
808
  amounts: amounts,
809
+ assets: assets,
817
810
  data: encodeArgs(['address[]'], [cTokens])
818
811
  });
819
812
  return _context4.abrupt("return", callOnExternalPosition({
820
- signer: fundOwner,
813
+ actionArgs: actionArgs,
814
+ actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
821
815
  comptrollerProxy: comptrollerProxy,
822
816
  externalPositionManager: externalPositionManager,
823
817
  externalPositionProxy: externalPositionProxy,
824
- actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
825
- actionArgs: actionArgs
818
+ signer: fundOwner
826
819
  }));
827
820
 
828
821
  case 3:
@@ -848,17 +841,17 @@ function _compoundDebtPositionRepayBorrow() {
848
841
  case 0:
849
842
  comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, fundOwner = _ref5.fundOwner, assets = _ref5.assets, amounts = _ref5.amounts, externalPositionProxy = _ref5.externalPositionProxy, cTokens = _ref5.cTokens;
850
843
  actionArgs = compoundExternalPositionActionArgs({
851
- assets: assets,
852
844
  amounts: amounts,
845
+ assets: assets,
853
846
  data: encodeArgs(['address[]'], [cTokens])
854
847
  });
855
848
  return _context5.abrupt("return", callOnExternalPosition({
856
- signer: fundOwner,
849
+ actionArgs: actionArgs,
850
+ actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
857
851
  comptrollerProxy: comptrollerProxy,
858
852
  externalPositionManager: externalPositionManager,
859
853
  externalPositionProxy: externalPositionProxy,
860
- actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
861
- actionArgs: actionArgs
854
+ signer: fundOwner
862
855
  }));
863
856
 
864
857
  case 3:
@@ -884,10 +877,10 @@ function _createCompoundDebtPosition() {
884
877
  case 0:
885
878
  signer = _ref6.signer, comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager;
886
879
  return _context6.abrupt("return", createExternalPosition({
887
- signer: signer,
888
880
  comptrollerProxy: comptrollerProxy,
889
881
  externalPositionManager: externalPositionManager,
890
- externalPositionTypeId: ExternalPositionType.CompoundDebtPosition
882
+ externalPositionTypeId: ExternalPositionType.CompoundDebtPosition,
883
+ signer: signer
891
884
  }));
892
885
 
893
886
  case 2:
@@ -912,7 +905,7 @@ function _createMockExternalPosition() {
912
905
  switch (_context.prev = _context.next) {
913
906
  case 0:
914
907
  comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionFactory = _ref.externalPositionFactory, defaultActionAssetsToTransfer = _ref.defaultActionAssetsToTransfer, defaultActionAmountsToTransfer = _ref.defaultActionAmountsToTransfer, defaultActionAssetsToReceive = _ref.defaultActionAssetsToReceive, fundOwner = _ref.fundOwner, deployer = _ref.deployer;
915
- _context.t0 = VaultLib$1;
908
+ _context.t0 = VaultLib;
916
909
  _context.next = 4;
917
910
  return comptrollerProxy.getVaultProxy();
918
911
 
@@ -945,7 +938,12 @@ function _createMockExternalPosition() {
945
938
 
946
939
  case 21:
947
940
  _context.next = 23;
948
- return comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, ExternalPositionManagerActionId$1.CreateExternalPosition, encodeArgs$1(['uint256', 'bytes'], [typeId, '0x']));
941
+ return createExternalPosition({
942
+ comptrollerProxy: comptrollerProxy,
943
+ externalPositionManager: externalPositionManager,
944
+ externalPositionTypeId: typeId,
945
+ signer: fundOwner
946
+ });
949
947
 
950
948
  case 23:
951
949
  receipt = _context.sent;
@@ -955,11 +953,11 @@ function _createMockExternalPosition() {
955
953
  case 26:
956
954
  externalPositionProxy = _context.sent[0];
957
955
  return _context.abrupt("return", {
958
- typeId: typeId,
959
- mockGenericExternalPositionLib: mockGenericExternalPositionLib,
960
- mockExternalPositionParser: mockExternalPositionParser,
961
956
  externalPositionProxy: externalPositionProxy,
962
- receipt: receipt
957
+ mockExternalPositionParser: mockExternalPositionParser,
958
+ mockGenericExternalPositionLib: mockGenericExternalPositionLib,
959
+ receipt: receipt,
960
+ typeId: typeId
963
961
  });
964
962
 
965
963
  case 28:
@@ -985,16 +983,16 @@ function _mockExternalPositionAddDebtAssets() {
985
983
  case 0:
986
984
  signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts;
987
985
  actionArgs = mockGenericExternalPositionActionArgs({
988
- assets: assets,
989
- amounts: amounts
986
+ amounts: amounts,
987
+ assets: assets
990
988
  });
991
989
  return _context2.abrupt("return", callOnExternalPosition({
992
- signer: signer,
990
+ actionArgs: actionArgs,
991
+ actionId: MockGenericExternalPositionActionId.AddDebtAssets,
993
992
  comptrollerProxy: comptrollerProxy,
994
993
  externalPositionManager: externalPositionManager,
995
994
  externalPositionProxy: externalPositionProxy,
996
- actionId: MockGenericExternalPositionActionId.AddDebtAssets,
997
- actionArgs: actionArgs
995
+ signer: signer
998
996
  }));
999
997
 
1000
998
  case 3:
@@ -1020,16 +1018,16 @@ function _mockExternalPositionAddManagedAssets() {
1020
1018
  case 0:
1021
1019
  signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, assets = _ref3.assets, amounts = _ref3.amounts;
1022
1020
  actionArgs = mockGenericExternalPositionActionArgs({
1023
- assets: assets,
1024
- amounts: amounts
1021
+ amounts: amounts,
1022
+ assets: assets
1025
1023
  });
1026
1024
  return _context3.abrupt("return", callOnExternalPosition({
1027
- signer: signer,
1025
+ actionArgs: actionArgs,
1026
+ actionId: MockGenericExternalPositionActionId.AddManagedAssets,
1028
1027
  comptrollerProxy: comptrollerProxy,
1029
1028
  externalPositionManager: externalPositionManager,
1030
1029
  externalPositionProxy: externalPositionProxy,
1031
- actionId: MockGenericExternalPositionActionId.AddManagedAssets,
1032
- actionArgs: actionArgs
1030
+ signer: signer
1033
1031
  }));
1034
1032
 
1035
1033
  case 3:
@@ -1055,16 +1053,16 @@ function _mockExternalPositionRemoveDebtAssets() {
1055
1053
  case 0:
1056
1054
  signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, assets = _ref4.assets, amounts = _ref4.amounts;
1057
1055
  actionArgs = mockGenericExternalPositionActionArgs({
1058
- assets: assets,
1059
- amounts: amounts
1056
+ amounts: amounts,
1057
+ assets: assets
1060
1058
  });
1061
1059
  return _context4.abrupt("return", callOnExternalPosition({
1062
- signer: signer,
1060
+ actionArgs: actionArgs,
1061
+ actionId: MockGenericExternalPositionActionId.RemoveDebtAssets,
1063
1062
  comptrollerProxy: comptrollerProxy,
1064
1063
  externalPositionManager: externalPositionManager,
1065
1064
  externalPositionProxy: externalPositionProxy,
1066
- actionId: MockGenericExternalPositionActionId.RemoveDebtAssets,
1067
- actionArgs: actionArgs
1065
+ signer: signer
1068
1066
  }));
1069
1067
 
1070
1068
  case 3:
@@ -1090,16 +1088,16 @@ function _mockExternalPositionRemoveManagedAssets() {
1090
1088
  case 0:
1091
1089
  signer = _ref5.signer, comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, externalPositionProxy = _ref5.externalPositionProxy, assets = _ref5.assets, amounts = _ref5.amounts;
1092
1090
  actionArgs = mockGenericExternalPositionActionArgs({
1093
- assets: assets,
1094
- amounts: amounts
1091
+ amounts: amounts,
1092
+ assets: assets
1095
1093
  });
1096
1094
  return _context5.abrupt("return", callOnExternalPosition({
1097
- signer: signer,
1095
+ actionArgs: actionArgs,
1096
+ actionId: MockGenericExternalPositionActionId.RemoveManagedAssets,
1098
1097
  comptrollerProxy: comptrollerProxy,
1099
1098
  externalPositionManager: externalPositionManager,
1100
1099
  externalPositionProxy: externalPositionProxy,
1101
- actionId: MockGenericExternalPositionActionId.RemoveManagedAssets,
1102
- actionArgs: actionArgs
1100
+ signer: signer
1103
1101
  }));
1104
1102
 
1105
1103
  case 3:
@@ -1112,112 +1110,375 @@ function _mockExternalPositionRemoveManagedAssets() {
1112
1110
  return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1113
1111
  }
1114
1112
 
1115
- function generateFeeManagerConfigWithMockFees(_x) {
1116
- return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1113
+ var _templateObject$3;
1114
+ var UniswapV3FeeAmount;
1115
+
1116
+ (function (UniswapV3FeeAmount) {
1117
+ UniswapV3FeeAmount[UniswapV3FeeAmount["LOW"] = 500] = "LOW";
1118
+ UniswapV3FeeAmount[UniswapV3FeeAmount["MEDIUM"] = 3000] = "MEDIUM";
1119
+ UniswapV3FeeAmount[UniswapV3FeeAmount["HIGH"] = 10000] = "HIGH";
1120
+ })(UniswapV3FeeAmount || (UniswapV3FeeAmount = {}));
1121
+
1122
+ var uniswapV3LiquidityPositionGetMinTick = function uniswapV3LiquidityPositionGetMinTick(tickSpacing) {
1123
+ return Math.ceil(-887272 / tickSpacing) * tickSpacing;
1124
+ };
1125
+ var uniswapV3LiquidityPositionGetMaxTick = function uniswapV3LiquidityPositionGetMaxTick(tickSpacing) {
1126
+ return Math.floor(887272 / tickSpacing) * tickSpacing;
1127
+ };
1128
+ 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"])));
1129
+ function createUniswapV3LiquidityPosition(_x) {
1130
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1117
1131
  }
1118
1132
 
1119
- function _generateFeeManagerConfigWithMockFees() {
1120
- _generateFeeManagerConfigWithMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1121
- var deployer, fees, feeManagerSettingsData;
1133
+ function _createUniswapV3LiquidityPosition() {
1134
+ _createUniswapV3LiquidityPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1135
+ var signer, comptrollerProxy, externalPositionManager, _ref$callOnExternalPo, callOnExternalPositionData, _yield$createExternal, externalPositionProxyContract, receipt;
1136
+
1122
1137
  return _regeneratorRuntime.wrap(function _callee$(_context) {
1123
1138
  while (1) {
1124
1139
  switch (_context.prev = _context.next) {
1125
1140
  case 0:
1126
- deployer = _ref.deployer;
1141
+ signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, _ref$callOnExternalPo = _ref.callOnExternalPositionData, callOnExternalPositionData = _ref$callOnExternalPo === void 0 ? '0x' : _ref$callOnExternalPo;
1127
1142
  _context.next = 3;
1128
- return generateMockFees({
1129
- deployer: deployer
1143
+ return createExternalPosition({
1144
+ callOnExternalPositionData: callOnExternalPositionData,
1145
+ comptrollerProxy: comptrollerProxy,
1146
+ externalPositionManager: externalPositionManager,
1147
+ externalPositionTypeId: ExternalPositionType.UniswapV3LiquidityPosition,
1148
+ signer: signer
1130
1149
  });
1131
1150
 
1132
1151
  case 3:
1133
- fees = _context.sent;
1134
- feeManagerSettingsData = [utils.randomBytes(10), '0x', utils.randomBytes(2)];
1135
- return _context.abrupt("return", feeManagerConfigArgs({
1136
- fees: Object.values(fees),
1137
- settings: feeManagerSettingsData
1138
- }));
1152
+ _yield$createExternal = _context.sent;
1153
+ externalPositionProxyContract = _yield$createExternal.externalPositionProxy;
1154
+ receipt = _yield$createExternal.receipt;
1155
+ return _context.abrupt("return", {
1156
+ externalPositionProxyAddress: externalPositionProxyContract.address,
1157
+ receipt: receipt
1158
+ });
1139
1159
 
1140
- case 6:
1160
+ case 7:
1141
1161
  case "end":
1142
1162
  return _context.stop();
1143
1163
  }
1144
1164
  }
1145
1165
  }, _callee);
1146
1166
  }));
1147
- return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1167
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1148
1168
  }
1149
1169
 
1150
- function generateMockFees(_x2) {
1151
- return _generateMockFees.apply(this, arguments);
1170
+ function uniswapV3LiquidityPositionAddLiquidity(_x2) {
1171
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1152
1172
  }
1153
1173
 
1154
- function _generateMockFees() {
1155
- _generateMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1156
- var deployer, mockContinuousFeeSettleOnly, mockContinuousFeeWithGavAndUpdates, mockPostBuySharesFee;
1174
+ function _uniswapV3LiquidityPositionAddLiquidity() {
1175
+ _uniswapV3LiquidityPositionAddLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1176
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, amount0Desired, amount1Desired, _ref2$amount0Min, amount0Min, _ref2$amount1Min, amount1Min, actionArgs, callArgs;
1177
+
1157
1178
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1158
1179
  while (1) {
1159
1180
  switch (_context2.prev = _context2.next) {
1160
1181
  case 0:
1161
- deployer = _ref2.deployer;
1162
- _context2.next = 3;
1163
- return IFee.mock(deployer);
1164
-
1165
- case 3:
1166
- mockContinuousFeeSettleOnly = _context2.sent;
1167
- _context2.next = 6;
1168
- return IFee.mock(deployer);
1169
-
1170
- case 6:
1171
- mockContinuousFeeWithGavAndUpdates = _context2.sent;
1172
- _context2.next = 9;
1173
- return IFee.mock(deployer);
1174
-
1175
- case 9:
1176
- mockPostBuySharesFee = _context2.sent;
1177
- _context2.next = 12;
1178
- return Promise.all([// Continuous fee the mimics ManagementFee
1179
- mockContinuousFeeSettleOnly.getRecipientForFund.returns(constants.AddressZero), mockContinuousFeeSettleOnly.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockContinuousFeeSettleOnly.payout.returns(false), mockContinuousFeeSettleOnly.addFundSettings.returns(undefined), mockContinuousFeeSettleOnly.activateForFund.returns(undefined), mockContinuousFeeSettleOnly.update.returns(undefined), mockContinuousFeeSettleOnly.settlesOnHook.returns(false, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.Continuous).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.PreBuyShares).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.PreRedeemShares).returns(true, false), mockContinuousFeeSettleOnly.updatesOnHook.returns(false, false), // Continuous fee the mimics PerformanceFee
1180
- mockContinuousFeeWithGavAndUpdates.getRecipientForFund.returns(constants.AddressZero), mockContinuousFeeWithGavAndUpdates.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockContinuousFeeWithGavAndUpdates.payout.returns(false), mockContinuousFeeWithGavAndUpdates.addFundSettings.returns(undefined), mockContinuousFeeWithGavAndUpdates.activateForFund.returns(undefined), mockContinuousFeeWithGavAndUpdates.update.returns(undefined), mockContinuousFeeWithGavAndUpdates.settlesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.PreBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.PreRedeemShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.PostBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.PreRedeemShares).returns(true, true), // PostBuyShares fee
1181
- mockPostBuySharesFee.getRecipientForFund.returns(constants.AddressZero), mockPostBuySharesFee.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockPostBuySharesFee.payout.returns(false), mockPostBuySharesFee.addFundSettings.returns(undefined), mockPostBuySharesFee.activateForFund.returns(undefined), mockPostBuySharesFee.update.returns(undefined), mockPostBuySharesFee.settlesOnHook.returns(false, false), mockPostBuySharesFee.settlesOnHook.given(FeeHook.PostBuyShares).returns(true, false), mockPostBuySharesFee.updatesOnHook.returns(false, false)]);
1182
-
1183
- case 12:
1184
- return _context2.abrupt("return", {
1185
- mockContinuousFeeSettleOnly: mockContinuousFeeSettleOnly,
1186
- mockContinuousFeeWithGavAndUpdates: mockContinuousFeeWithGavAndUpdates,
1187
- mockPostBuySharesFee: mockPostBuySharesFee
1182
+ 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;
1183
+ actionArgs = uniswapV3LiquidityPositionAddLiquidityArgs({
1184
+ amount0Desired: amount0Desired,
1185
+ amount0Min: amount0Min,
1186
+ amount1Desired: amount1Desired,
1187
+ amount1Min: amount1Min,
1188
+ nftId: nftId
1188
1189
  });
1190
+ callArgs = callOnExternalPositionArgs({
1191
+ actionArgs: actionArgs,
1192
+ actionId: UniswapV3LiquidityPositionActionId.AddLiquidity,
1193
+ externalPositionProxy: externalPositionProxy
1194
+ });
1195
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1189
1196
 
1190
- case 13:
1197
+ case 4:
1191
1198
  case "end":
1192
1199
  return _context2.stop();
1193
1200
  }
1194
1201
  }
1195
1202
  }, _callee2);
1196
1203
  }));
1197
- return _generateMockFees.apply(this, arguments);
1204
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1198
1205
  }
1199
1206
 
1200
- function aaveLend(_x) {
1201
- return _aaveLend.apply(this, arguments);
1207
+ function uniswapV3LiquidityPositionCollect(_x3) {
1208
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1202
1209
  }
1203
1210
 
1204
- function _aaveLend() {
1205
- _aaveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1206
- var comptrollerProxy, integrationManager, fundOwner, aaveAdapter, aToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
1207
-
1208
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1211
+ function _uniswapV3LiquidityPositionCollect() {
1212
+ _uniswapV3LiquidityPositionCollect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1213
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, actionArgs, callArgs;
1214
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1209
1215
  while (1) {
1210
- switch (_context.prev = _context.next) {
1216
+ switch (_context3.prev = _context3.next) {
1211
1217
  case 0:
1212
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, aaveAdapter = _ref.aaveAdapter, aToken = _ref.aToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? utils.parseEther('1') : _ref$amount;
1213
- lendArgs = aaveLendArgs({
1214
- aToken: aToken,
1215
- amount: amount
1218
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, nftId = _ref3.nftId;
1219
+ actionArgs = uniswapV3LiquidityPositionCollectArgs({
1220
+ nftId: nftId
1221
+ });
1222
+ callArgs = callOnExternalPositionArgs({
1223
+ actionArgs: actionArgs,
1224
+ actionId: UniswapV3LiquidityPositionActionId.Collect,
1225
+ externalPositionProxy: externalPositionProxy
1226
+ });
1227
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1228
+
1229
+ case 4:
1230
+ case "end":
1231
+ return _context3.stop();
1232
+ }
1233
+ }
1234
+ }, _callee3);
1235
+ }));
1236
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1237
+ }
1238
+
1239
+ function uniswapV3LiquidityPositionMint(_x4) {
1240
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1241
+ }
1242
+
1243
+ function _uniswapV3LiquidityPositionMint() {
1244
+ _uniswapV3LiquidityPositionMint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1245
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, token0, token1, fee, tickLower, tickUpper, amount0Desired, amount1Desired, _ref4$amount0Min, amount0Min, _ref4$amount1Min, amount1Min, actionArgs, callArgs, receipt, externalPosition, nftId;
1246
+
1247
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1248
+ while (1) {
1249
+ switch (_context4.prev = _context4.next) {
1250
+ case 0:
1251
+ signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, token0 = _ref4.token0, token1 = _ref4.token1, 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;
1252
+ actionArgs = uniswapV3LiquidityPositionMintArgs({
1253
+ amount0Desired: amount0Desired,
1254
+ amount0Min: amount0Min,
1255
+ amount1Desired: amount1Desired,
1256
+ amount1Min: amount1Min,
1257
+ fee: fee,
1258
+ tickLower: tickLower,
1259
+ tickUpper: tickUpper,
1260
+ token0: token0,
1261
+ token1: token1
1262
+ });
1263
+ callArgs = callOnExternalPositionArgs({
1264
+ actionArgs: actionArgs,
1265
+ actionId: UniswapV3LiquidityPositionActionId.Mint,
1266
+ externalPositionProxy: externalPositionProxy
1267
+ });
1268
+ _context4.next = 5;
1269
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
1270
+
1271
+ case 5:
1272
+ receipt = _context4.sent;
1273
+ externalPosition = new UniswapV3LiquidityPositionLib(externalPositionProxy, provider);
1274
+ nftId = extractEvent(receipt, externalPosition.abi.getEvent('NFTPositionAdded'))[0].args.tokenId;
1275
+ return _context4.abrupt("return", {
1276
+ nftId: nftId,
1277
+ receipt: receipt
1278
+ });
1279
+
1280
+ case 9:
1281
+ case "end":
1282
+ return _context4.stop();
1283
+ }
1284
+ }
1285
+ }, _callee4);
1286
+ }));
1287
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1288
+ }
1289
+
1290
+ function uniswapV3LiquidityPositionPurge(_x5) {
1291
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1292
+ }
1293
+
1294
+ function _uniswapV3LiquidityPositionPurge() {
1295
+ _uniswapV3LiquidityPositionPurge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1296
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref5$amount0Min, amount0Min, _ref5$amount1Min, amount1Min, actionArgs, callArgs;
1297
+
1298
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1299
+ while (1) {
1300
+ switch (_context5.prev = _context5.next) {
1301
+ case 0:
1302
+ 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;
1303
+ actionArgs = uniswapV3LiquidityPositionPurgeArgs({
1304
+ amount0Min: amount0Min,
1305
+ amount1Min: amount1Min,
1306
+ liquidity: liquidity,
1307
+ nftId: nftId
1308
+ });
1309
+ callArgs = callOnExternalPositionArgs({
1310
+ actionArgs: actionArgs,
1311
+ actionId: UniswapV3LiquidityPositionActionId.Purge,
1312
+ externalPositionProxy: externalPositionProxy
1313
+ });
1314
+ return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1315
+
1316
+ case 4:
1317
+ case "end":
1318
+ return _context5.stop();
1319
+ }
1320
+ }
1321
+ }, _callee5);
1322
+ }));
1323
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1324
+ }
1325
+
1326
+ function uniswapV3LiquidityPositionRemoveLiquidity(_x6) {
1327
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1328
+ }
1329
+
1330
+ function _uniswapV3LiquidityPositionRemoveLiquidity() {
1331
+ _uniswapV3LiquidityPositionRemoveLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
1332
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref6$amount0Min, amount0Min, _ref6$amount1Min, amount1Min, actionArgs, callArgs;
1333
+
1334
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
1335
+ while (1) {
1336
+ switch (_context6.prev = _context6.next) {
1337
+ case 0:
1338
+ 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;
1339
+ actionArgs = uniswapV3LiquidityPositionRemoveLiquidityArgs({
1340
+ amount0Min: amount0Min,
1341
+ amount1Min: amount1Min,
1342
+ liquidity: liquidity,
1343
+ nftId: nftId
1344
+ });
1345
+ callArgs = callOnExternalPositionArgs({
1346
+ actionArgs: actionArgs,
1347
+ actionId: UniswapV3LiquidityPositionActionId.RemoveLiquidity,
1348
+ externalPositionProxy: externalPositionProxy
1349
+ });
1350
+ return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1351
+
1352
+ case 4:
1353
+ case "end":
1354
+ return _context6.stop();
1355
+ }
1356
+ }
1357
+ }, _callee6);
1358
+ }));
1359
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1360
+ }
1361
+
1362
+ function uniswapV3OrderTokenPair(_ref7) {
1363
+ var tokenA = _ref7.tokenA,
1364
+ tokenB = _ref7.tokenB;
1365
+ var tokenAAddress = resolveAddress(tokenA);
1366
+ var tokenBAddress = resolveAddress(tokenB);
1367
+ return tokenAAddress < tokenBAddress ? {
1368
+ token0: tokenAAddress,
1369
+ token1: tokenBAddress
1370
+ } : {
1371
+ token0: tokenBAddress,
1372
+ token1: tokenAAddress
1373
+ };
1374
+ }
1375
+
1376
+ function generateFeeManagerConfigWithMockFees(_x) {
1377
+ return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1378
+ }
1379
+
1380
+ function _generateFeeManagerConfigWithMockFees() {
1381
+ _generateFeeManagerConfigWithMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1382
+ var deployer, fees, feeManagerSettingsData;
1383
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
1384
+ while (1) {
1385
+ switch (_context.prev = _context.next) {
1386
+ case 0:
1387
+ deployer = _ref.deployer;
1388
+ _context.next = 3;
1389
+ return generateMockFees({
1390
+ deployer: deployer
1391
+ });
1392
+
1393
+ case 3:
1394
+ fees = _context.sent;
1395
+ feeManagerSettingsData = [utils.randomBytes(10), '0x', utils.randomBytes(2)];
1396
+ return _context.abrupt("return", feeManagerConfigArgs({
1397
+ fees: Object.values(fees),
1398
+ settings: feeManagerSettingsData
1399
+ }));
1400
+
1401
+ case 6:
1402
+ case "end":
1403
+ return _context.stop();
1404
+ }
1405
+ }
1406
+ }, _callee);
1407
+ }));
1408
+ return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1409
+ }
1410
+
1411
+ function generateMockFees(_x2) {
1412
+ return _generateMockFees.apply(this, arguments);
1413
+ }
1414
+
1415
+ function _generateMockFees() {
1416
+ _generateMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1417
+ var deployer, mockContinuousFeeSettleOnly, mockContinuousFeeWithGavAndUpdates, mockPostBuySharesFee;
1418
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1419
+ while (1) {
1420
+ switch (_context2.prev = _context2.next) {
1421
+ case 0:
1422
+ deployer = _ref2.deployer;
1423
+ _context2.next = 3;
1424
+ return IFee.mock(deployer);
1425
+
1426
+ case 3:
1427
+ mockContinuousFeeSettleOnly = _context2.sent;
1428
+ _context2.next = 6;
1429
+ return IFee.mock(deployer);
1430
+
1431
+ case 6:
1432
+ mockContinuousFeeWithGavAndUpdates = _context2.sent;
1433
+ _context2.next = 9;
1434
+ return IFee.mock(deployer);
1435
+
1436
+ case 9:
1437
+ mockPostBuySharesFee = _context2.sent;
1438
+ _context2.next = 12;
1439
+ return Promise.all([// Continuous fee the mimics ManagementFee
1440
+ mockContinuousFeeSettleOnly.getRecipientForFund.returns(constants.AddressZero), mockContinuousFeeSettleOnly.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockContinuousFeeSettleOnly.payout.returns(false), mockContinuousFeeSettleOnly.addFundSettings.returns(undefined), mockContinuousFeeSettleOnly.activateForFund.returns(undefined), mockContinuousFeeSettleOnly.update.returns(undefined), mockContinuousFeeSettleOnly.settlesOnHook.returns(false, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.Continuous).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.PreBuyShares).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.PreRedeemShares).returns(true, false), mockContinuousFeeSettleOnly.updatesOnHook.returns(false, false), // Continuous fee the mimics PerformanceFee
1441
+ mockContinuousFeeWithGavAndUpdates.getRecipientForFund.returns(constants.AddressZero), mockContinuousFeeWithGavAndUpdates.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockContinuousFeeWithGavAndUpdates.payout.returns(false), mockContinuousFeeWithGavAndUpdates.addFundSettings.returns(undefined), mockContinuousFeeWithGavAndUpdates.activateForFund.returns(undefined), mockContinuousFeeWithGavAndUpdates.update.returns(undefined), mockContinuousFeeWithGavAndUpdates.settlesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.PreBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.PreRedeemShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.PostBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.PreRedeemShares).returns(true, true), // PostBuyShares fee
1442
+ mockPostBuySharesFee.getRecipientForFund.returns(constants.AddressZero), mockPostBuySharesFee.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockPostBuySharesFee.payout.returns(false), mockPostBuySharesFee.addFundSettings.returns(undefined), mockPostBuySharesFee.activateForFund.returns(undefined), mockPostBuySharesFee.update.returns(undefined), mockPostBuySharesFee.settlesOnHook.returns(false, false), mockPostBuySharesFee.settlesOnHook.given(FeeHook.PostBuyShares).returns(true, false), mockPostBuySharesFee.updatesOnHook.returns(false, false)]);
1443
+
1444
+ case 12:
1445
+ return _context2.abrupt("return", {
1446
+ mockContinuousFeeSettleOnly: mockContinuousFeeSettleOnly,
1447
+ mockContinuousFeeWithGavAndUpdates: mockContinuousFeeWithGavAndUpdates,
1448
+ mockPostBuySharesFee: mockPostBuySharesFee
1449
+ });
1450
+
1451
+ case 13:
1452
+ case "end":
1453
+ return _context2.stop();
1454
+ }
1455
+ }
1456
+ }, _callee2);
1457
+ }));
1458
+ return _generateMockFees.apply(this, arguments);
1459
+ }
1460
+
1461
+ function aaveLend(_x) {
1462
+ return _aaveLend.apply(this, arguments);
1463
+ }
1464
+
1465
+ function _aaveLend() {
1466
+ _aaveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1467
+ var comptrollerProxy, integrationManager, fundOwner, aaveAdapter, aToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
1468
+
1469
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
1470
+ while (1) {
1471
+ switch (_context.prev = _context.next) {
1472
+ case 0:
1473
+ comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, aaveAdapter = _ref.aaveAdapter, aToken = _ref.aToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? utils.parseEther('1') : _ref$amount;
1474
+ lendArgs = aaveLendArgs({
1475
+ aToken: aToken,
1476
+ amount: amount
1216
1477
  });
1217
1478
  callArgs = callOnIntegrationArgs({
1218
1479
  adapter: aaveAdapter,
1219
- selector: lendSelector,
1220
- encodedCallArgs: lendArgs
1480
+ encodedCallArgs: lendArgs,
1481
+ selector: lendSelector
1221
1482
  });
1222
1483
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1223
1484
  return _context.abrupt("return", lendTx);
@@ -1251,8 +1512,8 @@ function _aaveRedeem() {
1251
1512
  });
1252
1513
  callArgs = callOnIntegrationArgs({
1253
1514
  adapter: aaveAdapter,
1254
- selector: redeemSelector,
1255
- encodedCallArgs: redeemArgs
1515
+ encodedCallArgs: redeemArgs,
1516
+ selector: redeemSelector
1256
1517
  });
1257
1518
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1258
1519
  return _context2.abrupt("return", redeemTx);
@@ -1269,87 +1530,303 @@ function _aaveRedeem() {
1269
1530
 
1270
1531
  var _templateObject$2;
1271
1532
  var ICompoundComptroller = contract()(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n function claimComp(address)\n"])));
1272
- function compoundLend(_x) {
1273
- return _compoundLend.apply(this, arguments);
1533
+ function assertCompoundLend(_x) {
1534
+ return _assertCompoundLend.apply(this, arguments);
1274
1535
  }
1275
1536
 
1276
- function _compoundLend() {
1277
- _compoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1278
- var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref$tokenAmount, tokenAmount, _ref$cTokenAmount, cTokenAmount, lendArgs, callArgs, lendTx;
1537
+ function _assertCompoundLend() {
1538
+ _assertCompoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1539
+ var tokenWhale, comptrollerProxy, vaultProxy, integrationManager, fundOwner, compoundAdapter, _ref$tokenAmount, tokenAmount, cToken, compoundPriceFeed, token, rateBefore, minIncomingCTokenAmount, _yield$getAssetBalanc, _yield$getAssetBalanc2, preTxIncomingAssetBalance, preTxOutgoingAssetBalance, lendReceipt, rate, _yield$getAssetBalanc3, _yield$getAssetBalanc4, postTxIncomingAssetBalance, postTxOutgoingAssetBalance, expectedCTokenAmount;
1279
1540
 
1280
1541
  return _regeneratorRuntime.wrap(function _callee$(_context) {
1281
1542
  while (1) {
1282
1543
  switch (_context.prev = _context.next) {
1283
1544
  case 0:
1284
- 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;
1545
+ tokenWhale = _ref.tokenWhale, comptrollerProxy = _ref.comptrollerProxy, vaultProxy = _ref.vaultProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, compoundAdapter = _ref.compoundAdapter, _ref$tokenAmount = _ref.tokenAmount, tokenAmount = _ref$tokenAmount === void 0 ? utils.parseEther('1') : _ref$tokenAmount, cToken = _ref.cToken, compoundPriceFeed = _ref.compoundPriceFeed;
1546
+ _context.t0 = StandardToken;
1547
+ _context.next = 4;
1548
+ return compoundPriceFeed.getTokenFromCToken.args(cToken).call();
1549
+
1550
+ case 4:
1551
+ _context.t1 = _context.sent;
1552
+ _context.t2 = tokenWhale;
1553
+ token = new _context.t0(_context.t1, _context.t2);
1554
+ _context.next = 9;
1555
+ return token.connect(tokenWhale).transfer(vaultProxy, tokenAmount);
1556
+
1557
+ case 9:
1558
+ _context.next = 11;
1559
+ return cToken.exchangeRateStored.call();
1560
+
1561
+ case 11:
1562
+ rateBefore = _context.sent;
1563
+ // Exchange rate stored can have a small deviation from exchangeRateStored
1564
+ minIncomingCTokenAmount = tokenAmount.mul(utils.parseEther('1')).div(rateBefore).mul(BigNumber.from('999')).div(BigNumber.from('1000'));
1565
+ _context.next = 15;
1566
+ return getAssetBalances({
1567
+ account: vaultProxy,
1568
+ assets: [cToken, token]
1569
+ });
1570
+
1571
+ case 15:
1572
+ _yield$getAssetBalanc = _context.sent;
1573
+ _yield$getAssetBalanc2 = _slicedToArray(_yield$getAssetBalanc, 2);
1574
+ preTxIncomingAssetBalance = _yield$getAssetBalanc2[0];
1575
+ preTxOutgoingAssetBalance = _yield$getAssetBalanc2[1];
1576
+ _context.next = 21;
1577
+ return compoundLend({
1578
+ cToken: cToken,
1579
+ cTokenAmount: minIncomingCTokenAmount,
1580
+ compoundAdapter: compoundAdapter,
1581
+ comptrollerProxy: comptrollerProxy,
1582
+ fundOwner: fundOwner,
1583
+ integrationManager: integrationManager,
1584
+ tokenAmount: tokenAmount
1585
+ });
1586
+
1587
+ case 21:
1588
+ lendReceipt = _context.sent;
1589
+ _context.next = 24;
1590
+ return cToken.exchangeRateStored();
1591
+
1592
+ case 24:
1593
+ rate = _context.sent;
1594
+ _context.next = 27;
1595
+ return getAssetBalances({
1596
+ account: vaultProxy,
1597
+ assets: [cToken, token]
1598
+ });
1599
+
1600
+ case 27:
1601
+ _yield$getAssetBalanc3 = _context.sent;
1602
+ _yield$getAssetBalanc4 = _slicedToArray(_yield$getAssetBalanc3, 2);
1603
+ postTxIncomingAssetBalance = _yield$getAssetBalanc4[0];
1604
+ postTxOutgoingAssetBalance = _yield$getAssetBalanc4[1];
1605
+ expectedCTokenAmount = tokenAmount.mul(utils.parseEther('1')).div(rate);
1606
+ expect(postTxIncomingAssetBalance).toEqBigNumber(preTxIncomingAssetBalance.add(expectedCTokenAmount));
1607
+ expect(postTxOutgoingAssetBalance).toEqBigNumber(preTxOutgoingAssetBalance.sub(tokenAmount));
1608
+ return _context.abrupt("return", lendReceipt);
1609
+
1610
+ case 35:
1611
+ case "end":
1612
+ return _context.stop();
1613
+ }
1614
+ }
1615
+ }, _callee);
1616
+ }));
1617
+ return _assertCompoundLend.apply(this, arguments);
1618
+ }
1619
+
1620
+ function assertCompoundRedeem(_x2) {
1621
+ return _assertCompoundRedeem.apply(this, arguments);
1622
+ }
1623
+
1624
+ function _assertCompoundRedeem() {
1625
+ _assertCompoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1626
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, compoundAdapter, cToken, compoundPriceFeed, cTokenAmount, token, _yield$getAssetBalanc5, _yield$getAssetBalanc6, preTxIncomingAssetBalance, preTxOutgoingAssetBalance, rateBefore, minIncomingTokenAmount, redeemReceipt, _yield$getAssetBalanc7, _yield$getAssetBalanc8, postTxIncomingAssetBalance, postTxOutgoingAssetBalance, rate, expectedTokenAmount;
1627
+
1628
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1629
+ while (1) {
1630
+ switch (_context2.prev = _context2.next) {
1631
+ case 0:
1632
+ comptrollerProxy = _ref2.comptrollerProxy, vaultProxy = _ref2.vaultProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, compoundAdapter = _ref2.compoundAdapter, cToken = _ref2.cToken, compoundPriceFeed = _ref2.compoundPriceFeed;
1633
+ _context2.t0 = utils;
1634
+ _context2.next = 4;
1635
+ return cToken.decimals();
1636
+
1637
+ case 4:
1638
+ _context2.t1 = _context2.sent;
1639
+ cTokenAmount = _context2.t0.parseUnits.call(_context2.t0, '1', _context2.t1);
1640
+ _context2.next = 8;
1641
+ return cToken.transfer(vaultProxy, cTokenAmount);
1642
+
1643
+ case 8:
1644
+ _context2.t2 = StandardToken;
1645
+ _context2.next = 11;
1646
+ return compoundPriceFeed.getTokenFromCToken.args(cToken).call();
1647
+
1648
+ case 11:
1649
+ _context2.t3 = _context2.sent;
1650
+ _context2.t4 = provider;
1651
+ token = new _context2.t2(_context2.t3, _context2.t4);
1652
+ _context2.next = 16;
1653
+ return getAssetBalances({
1654
+ account: vaultProxy,
1655
+ assets: [token, cToken]
1656
+ });
1657
+
1658
+ case 16:
1659
+ _yield$getAssetBalanc5 = _context2.sent;
1660
+ _yield$getAssetBalanc6 = _slicedToArray(_yield$getAssetBalanc5, 2);
1661
+ preTxIncomingAssetBalance = _yield$getAssetBalanc6[0];
1662
+ preTxOutgoingAssetBalance = _yield$getAssetBalanc6[1];
1663
+ _context2.next = 22;
1664
+ return cToken.exchangeRateStored();
1665
+
1666
+ case 22:
1667
+ rateBefore = _context2.sent;
1668
+ minIncomingTokenAmount = cTokenAmount.mul(rateBefore).div(utils.parseEther('1'));
1669
+ _context2.next = 26;
1670
+ return compoundRedeem({
1671
+ cToken: cToken,
1672
+ cTokenAmount: cTokenAmount,
1673
+ compoundAdapter: compoundAdapter,
1674
+ comptrollerProxy: comptrollerProxy,
1675
+ fundOwner: fundOwner,
1676
+ integrationManager: integrationManager,
1677
+ tokenAmount: minIncomingTokenAmount,
1678
+ vaultProxy: vaultProxy
1679
+ });
1680
+
1681
+ case 26:
1682
+ redeemReceipt = _context2.sent;
1683
+ _context2.next = 29;
1684
+ return getAssetBalances({
1685
+ account: vaultProxy,
1686
+ assets: [token, cToken]
1687
+ });
1688
+
1689
+ case 29:
1690
+ _yield$getAssetBalanc7 = _context2.sent;
1691
+ _yield$getAssetBalanc8 = _slicedToArray(_yield$getAssetBalanc7, 2);
1692
+ postTxIncomingAssetBalance = _yield$getAssetBalanc8[0];
1693
+ postTxOutgoingAssetBalance = _yield$getAssetBalanc8[1];
1694
+ _context2.next = 35;
1695
+ return cToken.exchangeRateStored();
1696
+
1697
+ case 35:
1698
+ rate = _context2.sent;
1699
+ expectedTokenAmount = cTokenAmount.mul(rate).div(utils.parseEther('1'));
1700
+ expect(postTxIncomingAssetBalance).toEqBigNumber(preTxIncomingAssetBalance.add(expectedTokenAmount));
1701
+ expect(postTxOutgoingAssetBalance).toEqBigNumber(preTxOutgoingAssetBalance.sub(cTokenAmount));
1702
+ return _context2.abrupt("return", redeemReceipt);
1703
+
1704
+ case 40:
1705
+ case "end":
1706
+ return _context2.stop();
1707
+ }
1708
+ }
1709
+ }, _callee2);
1710
+ }));
1711
+ return _assertCompoundRedeem.apply(this, arguments);
1712
+ }
1713
+
1714
+ function compoundClaim(_x3) {
1715
+ return _compoundClaim.apply(this, arguments);
1716
+ }
1717
+
1718
+ function _compoundClaim() {
1719
+ _compoundClaim = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1720
+ var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, compoundComptroller, cTokens, claimArgs, callArgs, claimRewardsTx;
1721
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1722
+ while (1) {
1723
+ switch (_context3.prev = _context3.next) {
1724
+ case 0:
1725
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, compoundAdapter = _ref3.compoundAdapter, compoundComptroller = _ref3.compoundComptroller, cTokens = _ref3.cTokens;
1726
+ claimArgs = compoundClaimRewardsArgs({
1727
+ cTokens: cTokens,
1728
+ compoundComptroller: compoundComptroller
1729
+ });
1730
+ callArgs = callOnIntegrationArgs({
1731
+ adapter: compoundAdapter,
1732
+ encodedCallArgs: claimArgs,
1733
+ selector: claimRewardsSelector
1734
+ });
1735
+ claimRewardsTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1736
+ return _context3.abrupt("return", claimRewardsTx);
1737
+
1738
+ case 5:
1739
+ case "end":
1740
+ return _context3.stop();
1741
+ }
1742
+ }
1743
+ }, _callee3);
1744
+ }));
1745
+ return _compoundClaim.apply(this, arguments);
1746
+ }
1747
+
1748
+ function compoundLend(_x4) {
1749
+ return _compoundLend.apply(this, arguments);
1750
+ }
1751
+
1752
+ function _compoundLend() {
1753
+ _compoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1754
+ var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref4$tokenAmount, tokenAmount, _ref4$cTokenAmount, cTokenAmount, lendArgs, callArgs, lendTx;
1755
+
1756
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1757
+ while (1) {
1758
+ switch (_context4.prev = _context4.next) {
1759
+ case 0:
1760
+ comptrollerProxy = _ref4.comptrollerProxy, integrationManager = _ref4.integrationManager, fundOwner = _ref4.fundOwner, compoundAdapter = _ref4.compoundAdapter, cToken = _ref4.cToken, _ref4$tokenAmount = _ref4.tokenAmount, tokenAmount = _ref4$tokenAmount === void 0 ? utils.parseEther('1') : _ref4$tokenAmount, _ref4$cTokenAmount = _ref4.cTokenAmount, cTokenAmount = _ref4$cTokenAmount === void 0 ? utils.parseEther('1') : _ref4$cTokenAmount;
1285
1761
  lendArgs = compoundArgs({
1286
1762
  cToken: cToken,
1287
- outgoingAssetAmount: tokenAmount,
1288
- minIncomingAssetAmount: cTokenAmount
1763
+ minIncomingAssetAmount: cTokenAmount,
1764
+ outgoingAssetAmount: tokenAmount
1289
1765
  });
1290
1766
  callArgs = callOnIntegrationArgs({
1291
1767
  adapter: compoundAdapter,
1292
- selector: lendSelector,
1293
- encodedCallArgs: lendArgs
1768
+ encodedCallArgs: lendArgs,
1769
+ selector: lendSelector
1294
1770
  });
1295
1771
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1296
- return _context.abrupt("return", lendTx);
1772
+ return _context4.abrupt("return", lendTx);
1297
1773
 
1298
1774
  case 5:
1299
1775
  case "end":
1300
- return _context.stop();
1776
+ return _context4.stop();
1301
1777
  }
1302
1778
  }
1303
- }, _callee);
1779
+ }, _callee4);
1304
1780
  }));
1305
1781
  return _compoundLend.apply(this, arguments);
1306
1782
  }
1307
1783
 
1308
- function compoundRedeem(_x2) {
1784
+ function compoundRedeem(_x5) {
1309
1785
  return _compoundRedeem.apply(this, arguments);
1310
1786
  }
1311
1787
 
1312
1788
  function _compoundRedeem() {
1313
- _compoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1314
- var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref2$tokenAmount, tokenAmount, _ref2$cTokenAmount, cTokenAmount, redeemArgs, callArgs, redeemTx;
1789
+ _compoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1790
+ var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref5$tokenAmount, tokenAmount, _ref5$cTokenAmount, cTokenAmount, redeemArgs, callArgs, redeemTx;
1315
1791
 
1316
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1792
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1317
1793
  while (1) {
1318
- switch (_context2.prev = _context2.next) {
1794
+ switch (_context5.prev = _context5.next) {
1319
1795
  case 0:
1320
- 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;
1796
+ comptrollerProxy = _ref5.comptrollerProxy, integrationManager = _ref5.integrationManager, fundOwner = _ref5.fundOwner, compoundAdapter = _ref5.compoundAdapter, cToken = _ref5.cToken, _ref5$tokenAmount = _ref5.tokenAmount, tokenAmount = _ref5$tokenAmount === void 0 ? utils.parseEther('1') : _ref5$tokenAmount, _ref5$cTokenAmount = _ref5.cTokenAmount, cTokenAmount = _ref5$cTokenAmount === void 0 ? utils.parseEther('1') : _ref5$cTokenAmount;
1321
1797
  redeemArgs = compoundArgs({
1322
1798
  cToken: resolveAddress(cToken),
1323
- outgoingAssetAmount: cTokenAmount,
1324
- minIncomingAssetAmount: tokenAmount
1799
+ minIncomingAssetAmount: tokenAmount,
1800
+ outgoingAssetAmount: cTokenAmount
1325
1801
  });
1326
1802
  callArgs = callOnIntegrationArgs({
1327
1803
  adapter: compoundAdapter,
1328
- selector: redeemSelector,
1329
- encodedCallArgs: redeemArgs
1804
+ encodedCallArgs: redeemArgs,
1805
+ selector: redeemSelector
1330
1806
  });
1331
1807
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1332
- return _context2.abrupt("return", redeemTx);
1808
+ return _context5.abrupt("return", redeemTx);
1333
1809
 
1334
1810
  case 5:
1335
1811
  case "end":
1336
- return _context2.stop();
1812
+ return _context5.stop();
1337
1813
  }
1338
1814
  }
1339
- }, _callee2);
1815
+ }, _callee5);
1340
1816
  }));
1341
1817
  return _compoundRedeem.apply(this, arguments);
1342
1818
  }
1343
1819
 
1344
- var _templateObject$1, _templateObject2, _templateObject3;
1345
- var CurveLiquidityGaugeV2 = contract()(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n function claim_rewards(address)\n function integrate_fraction(address) view returns (uint256)\n"]))); // prettier-ignore
1820
+ var _templateObject$1, _templateObject2, _templateObject3, _templateObject4;
1821
+ var CurveLiquidityGaugeV2 = contract()(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n function claim_rewards(address)\n function integrate_fraction(address) view returns (uint256)\n"])));
1822
+ var CurveRegistry = contract()(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n function get_coins(address) view returns (address[8])\n function get_lp_token(address) view returns (address)\n"]))); // prettier-ignore
1346
1823
 
1347
- var CurveSwaps = contract()(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n function get_best_rate(address _from, address to, uint256 amount) view returns (address bestPool, uint256 amountReceived)\n"])));
1348
- var CurveMinter = contract()(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n function mint_for(address,address)\n"]))); // exchanges
1824
+ var CurveSwaps = contract()(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n function get_best_rate(address _from, address to, uint256 amount) view returns (address bestPool, uint256 amountReceived)\n"])));
1825
+ var CurveMinter = contract()(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n function mint_for(address,address)\n"]))); // exchanges
1349
1826
 
1350
1827
  function curveTakeOrder(_x) {
1351
1828
  return _curveTakeOrder.apply(this, arguments);
1352
- } // aave pool
1829
+ } // combined liquidity
1353
1830
 
1354
1831
  function _curveTakeOrder() {
1355
1832
  _curveTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
@@ -1361,16 +1838,16 @@ function _curveTakeOrder() {
1361
1838
  case 0:
1362
1839
  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;
1363
1840
  takeOrderArgs = curveTakeOrderArgs({
1364
- pool: pool,
1841
+ incomingAsset: incomingAsset,
1842
+ minIncomingAssetAmount: minIncomingAssetAmount,
1365
1843
  outgoingAsset: outgoingAsset,
1366
1844
  outgoingAssetAmount: outgoingAssetAmount,
1367
- incomingAsset: incomingAsset,
1368
- minIncomingAssetAmount: minIncomingAssetAmount
1845
+ pool: pool
1369
1846
  });
1370
1847
  callArgs = callOnIntegrationArgs({
1371
1848
  adapter: curveExchangeAdapter,
1372
- selector: takeOrderSelector,
1373
- encodedCallArgs: takeOrderArgs
1849
+ encodedCallArgs: takeOrderArgs,
1850
+ selector: takeOrderSelector
1374
1851
  });
1375
1852
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1376
1853
 
@@ -1384,284 +1861,384 @@ function _curveTakeOrder() {
1384
1861
  return _curveTakeOrder.apply(this, arguments);
1385
1862
  }
1386
1863
 
1387
- function curveAaveClaimRewards(_ref2) {
1864
+ function curveClaimRewards(_ref2) {
1388
1865
  var comptrollerProxy = _ref2.comptrollerProxy,
1389
1866
  integrationManager = _ref2.integrationManager,
1390
1867
  fundOwner = _ref2.fundOwner,
1391
- curveLiquidityAaveAdapter = _ref2.curveLiquidityAaveAdapter;
1868
+ curveLiquidityAdapter = _ref2.curveLiquidityAdapter,
1869
+ stakingToken = _ref2.stakingToken;
1392
1870
  var callArgs = callOnIntegrationArgs({
1393
- adapter: curveLiquidityAaveAdapter,
1394
- selector: claimRewardsSelector,
1395
- encodedCallArgs: constants.HashZero
1871
+ adapter: curveLiquidityAdapter,
1872
+ encodedCallArgs: curveClaimRewardsArgs({
1873
+ stakingToken: stakingToken
1874
+ }),
1875
+ selector: claimRewardsSelector
1396
1876
  });
1397
1877
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1398
1878
  }
1399
- function curveAaveLend(_ref3) {
1400
- var comptrollerProxy = _ref3.comptrollerProxy,
1401
- integrationManager = _ref3.integrationManager,
1402
- fundOwner = _ref3.fundOwner,
1403
- curveLiquidityAaveAdapter = _ref3.curveLiquidityAaveAdapter,
1404
- _ref3$outgoingAaveDai = _ref3.outgoingAaveDaiAmount,
1405
- outgoingAaveDaiAmount = _ref3$outgoingAaveDai === void 0 ? BigNumber.from(0) : _ref3$outgoingAaveDai,
1406
- _ref3$outgoingAaveUsd = _ref3.outgoingAaveUsdcAmount,
1407
- outgoingAaveUsdcAmount = _ref3$outgoingAaveUsd === void 0 ? BigNumber.from(0) : _ref3$outgoingAaveUsd,
1408
- _ref3$outgoingAaveUsd2 = _ref3.outgoingAaveUsdtAmount,
1409
- outgoingAaveUsdtAmount = _ref3$outgoingAaveUsd2 === void 0 ? BigNumber.from(0) : _ref3$outgoingAaveUsd2,
1410
- _ref3$minIncomingLPTo = _ref3.minIncomingLPTokenAmount,
1411
- minIncomingLPTokenAmount = _ref3$minIncomingLPTo === void 0 ? BigNumber.from(1) : _ref3$minIncomingLPTo,
1412
- _ref3$useUnderlyings = _ref3.useUnderlyings,
1413
- useUnderlyings = _ref3$useUnderlyings === void 0 ? false : _ref3$useUnderlyings;
1414
- var callArgs = callOnIntegrationArgs({
1415
- adapter: curveLiquidityAaveAdapter,
1416
- selector: lendSelector,
1417
- encodedCallArgs: curveAaveLendArgs({
1418
- outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1419
- outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1420
- outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1421
- minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1422
- useUnderlyings: useUnderlyings
1423
- })
1424
- });
1425
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1879
+ function curveLend(_x2) {
1880
+ return _curveLend.apply(this, arguments);
1426
1881
  }
1427
- function curveAaveLendAndStake(_ref4) {
1428
- var comptrollerProxy = _ref4.comptrollerProxy,
1429
- integrationManager = _ref4.integrationManager,
1430
- fundOwner = _ref4.fundOwner,
1431
- curveLiquidityAaveAdapter = _ref4.curveLiquidityAaveAdapter,
1432
- _ref4$outgoingAaveDai = _ref4.outgoingAaveDaiAmount,
1433
- outgoingAaveDaiAmount = _ref4$outgoingAaveDai === void 0 ? BigNumber.from(0) : _ref4$outgoingAaveDai,
1434
- _ref4$outgoingAaveUsd = _ref4.outgoingAaveUsdcAmount,
1435
- outgoingAaveUsdcAmount = _ref4$outgoingAaveUsd === void 0 ? BigNumber.from(0) : _ref4$outgoingAaveUsd,
1436
- _ref4$outgoingAaveUsd2 = _ref4.outgoingAaveUsdtAmount,
1437
- outgoingAaveUsdtAmount = _ref4$outgoingAaveUsd2 === void 0 ? BigNumber.from(0) : _ref4$outgoingAaveUsd2,
1438
- _ref4$minIncomingLiqu = _ref4.minIncomingLiquidityGaugeTokenAmount,
1439
- minIncomingLiquidityGaugeTokenAmount = _ref4$minIncomingLiqu === void 0 ? BigNumber.from(1) : _ref4$minIncomingLiqu,
1440
- _ref4$useUnderlyings = _ref4.useUnderlyings,
1441
- useUnderlyings = _ref4$useUnderlyings === void 0 ? false : _ref4$useUnderlyings;
1442
- var callArgs = callOnIntegrationArgs({
1443
- adapter: curveLiquidityAaveAdapter,
1444
- selector: lendAndStakeSelector,
1445
- encodedCallArgs: curveAaveLendAndStakeArgs({
1446
- outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1447
- outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1448
- outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1449
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1450
- useUnderlyings: useUnderlyings
1451
- })
1452
- });
1453
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1882
+
1883
+ function _curveLend() {
1884
+ _curveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
1885
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, orderedOutgoingAssetAmounts, _ref3$minIncomingLpTo, minIncomingLpTokenAmount, useUnderlyings, callArgs;
1886
+
1887
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1888
+ while (1) {
1889
+ switch (_context2.prev = _context2.next) {
1890
+ case 0:
1891
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, signer = _ref3.signer, curveLiquidityAdapter = _ref3.curveLiquidityAdapter, pool = _ref3.pool, orderedOutgoingAssetAmounts = _ref3.orderedOutgoingAssetAmounts, _ref3$minIncomingLpTo = _ref3.minIncomingLpTokenAmount, minIncomingLpTokenAmount = _ref3$minIncomingLpTo === void 0 ? BigNumber.from(1) : _ref3$minIncomingLpTo, useUnderlyings = _ref3.useUnderlyings;
1892
+ callArgs = callOnIntegrationArgs({
1893
+ adapter: curveLiquidityAdapter,
1894
+ encodedCallArgs: curveLendArgs({
1895
+ minIncomingLpTokenAmount: minIncomingLpTokenAmount,
1896
+ orderedOutgoingAssetAmounts: orderedOutgoingAssetAmounts,
1897
+ pool: pool,
1898
+ useUnderlyings: useUnderlyings
1899
+ }),
1900
+ selector: lendSelector
1901
+ });
1902
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1903
+
1904
+ case 3:
1905
+ case "end":
1906
+ return _context2.stop();
1907
+ }
1908
+ }
1909
+ }, _callee2);
1910
+ }));
1911
+ return _curveLend.apply(this, arguments);
1454
1912
  }
1455
- function curveAaveRedeem(_ref5) {
1456
- var comptrollerProxy = _ref5.comptrollerProxy,
1457
- integrationManager = _ref5.integrationManager,
1458
- fundOwner = _ref5.fundOwner,
1459
- curveLiquidityAaveAdapter = _ref5.curveLiquidityAaveAdapter,
1460
- outgoingLPTokenAmount = _ref5.outgoingLPTokenAmount,
1461
- _ref5$minIncomingAave = _ref5.minIncomingAaveDaiAmount,
1462
- minIncomingAaveDaiAmount = _ref5$minIncomingAave === void 0 ? BigNumber.from(1) : _ref5$minIncomingAave,
1463
- _ref5$minIncomingAave2 = _ref5.minIncomingAaveUsdcAmount,
1464
- minIncomingAaveUsdcAmount = _ref5$minIncomingAave2 === void 0 ? BigNumber.from(1) : _ref5$minIncomingAave2,
1465
- _ref5$minIncomingAave3 = _ref5.minIncomingAaveUsdtAmount,
1466
- minIncomingAaveUsdtAmount = _ref5$minIncomingAave3 === void 0 ? BigNumber.from(1) : _ref5$minIncomingAave3,
1467
- _ref5$receiveSingleAs = _ref5.receiveSingleAsset,
1468
- receiveSingleAsset = _ref5$receiveSingleAs === void 0 ? false : _ref5$receiveSingleAs,
1469
- _ref5$useUnderlyings = _ref5.useUnderlyings,
1470
- useUnderlyings = _ref5$useUnderlyings === void 0 ? false : _ref5$useUnderlyings;
1471
- var callArgs = callOnIntegrationArgs({
1472
- adapter: curveLiquidityAaveAdapter,
1473
- selector: redeemSelector,
1474
- encodedCallArgs: curveAaveRedeemArgs({
1475
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1476
- minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1477
- minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1478
- minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1479
- receiveSingleAsset: receiveSingleAsset,
1480
- useUnderlyings: useUnderlyings
1481
- })
1482
- });
1483
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1913
+
1914
+ function curveLendAndStake(_x3) {
1915
+ return _curveLendAndStake.apply(this, arguments);
1484
1916
  }
1485
- function curveAaveStake(_ref6) {
1486
- var comptrollerProxy = _ref6.comptrollerProxy,
1487
- integrationManager = _ref6.integrationManager,
1488
- fundOwner = _ref6.fundOwner,
1489
- curveLiquidityAaveAdapter = _ref6.curveLiquidityAaveAdapter,
1490
- outgoingLPTokenAmount = _ref6.outgoingLPTokenAmount;
1491
- var callArgs = callOnIntegrationArgs({
1492
- adapter: curveLiquidityAaveAdapter,
1493
- selector: stakeSelector,
1494
- encodedCallArgs: curveAaveStakeArgs({
1495
- outgoingLPTokenAmount: outgoingLPTokenAmount
1496
- })
1497
- });
1498
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1917
+
1918
+ function _curveLendAndStake() {
1919
+ _curveLendAndStake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref4) {
1920
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, orderedOutgoingAssetAmounts, incomingStakingToken, _ref4$minIncomingStak, minIncomingStakingTokenAmount, useUnderlyings, callArgs;
1921
+
1922
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1923
+ while (1) {
1924
+ switch (_context3.prev = _context3.next) {
1925
+ case 0:
1926
+ comptrollerProxy = _ref4.comptrollerProxy, integrationManager = _ref4.integrationManager, signer = _ref4.signer, curveLiquidityAdapter = _ref4.curveLiquidityAdapter, pool = _ref4.pool, orderedOutgoingAssetAmounts = _ref4.orderedOutgoingAssetAmounts, incomingStakingToken = _ref4.incomingStakingToken, _ref4$minIncomingStak = _ref4.minIncomingStakingTokenAmount, minIncomingStakingTokenAmount = _ref4$minIncomingStak === void 0 ? BigNumber.from(1) : _ref4$minIncomingStak, useUnderlyings = _ref4.useUnderlyings;
1927
+ callArgs = callOnIntegrationArgs({
1928
+ adapter: curveLiquidityAdapter,
1929
+ encodedCallArgs: curveLendAndStakeArgs({
1930
+ incomingStakingToken: incomingStakingToken,
1931
+ minIncomingStakingTokenAmount: minIncomingStakingTokenAmount,
1932
+ orderedOutgoingAssetAmounts: orderedOutgoingAssetAmounts,
1933
+ pool: pool,
1934
+ useUnderlyings: useUnderlyings
1935
+ }),
1936
+ selector: lendAndStakeSelector
1937
+ });
1938
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1939
+
1940
+ case 3:
1941
+ case "end":
1942
+ return _context3.stop();
1943
+ }
1944
+ }
1945
+ }, _callee3);
1946
+ }));
1947
+ return _curveLendAndStake.apply(this, arguments);
1499
1948
  }
1500
- function curveAaveUnstakeAndRedeem(_ref7) {
1501
- var comptrollerProxy = _ref7.comptrollerProxy,
1502
- integrationManager = _ref7.integrationManager,
1503
- fundOwner = _ref7.fundOwner,
1504
- curveLiquidityAaveAdapter = _ref7.curveLiquidityAaveAdapter,
1505
- outgoingLiquidityGaugeTokenAmount = _ref7.outgoingLiquidityGaugeTokenAmount,
1506
- _ref7$minIncomingAave = _ref7.minIncomingAaveDaiAmount,
1507
- minIncomingAaveDaiAmount = _ref7$minIncomingAave === void 0 ? BigNumber.from(1) : _ref7$minIncomingAave,
1508
- _ref7$minIncomingAave2 = _ref7.minIncomingAaveUsdcAmount,
1509
- minIncomingAaveUsdcAmount = _ref7$minIncomingAave2 === void 0 ? BigNumber.from(1) : _ref7$minIncomingAave2,
1510
- _ref7$minIncomingAave3 = _ref7.minIncomingAaveUsdtAmount,
1511
- minIncomingAaveUsdtAmount = _ref7$minIncomingAave3 === void 0 ? BigNumber.from(1) : _ref7$minIncomingAave3,
1512
- _ref7$receiveSingleAs = _ref7.receiveSingleAsset,
1513
- receiveSingleAsset = _ref7$receiveSingleAs === void 0 ? false : _ref7$receiveSingleAs,
1514
- _ref7$useUnderlyings = _ref7.useUnderlyings,
1515
- useUnderlyings = _ref7$useUnderlyings === void 0 ? false : _ref7$useUnderlyings;
1516
- var callArgs = callOnIntegrationArgs({
1517
- adapter: curveLiquidityAaveAdapter,
1518
- selector: unstakeAndRedeemSelector,
1519
- encodedCallArgs: curveAaveUnstakeAndRedeemArgs({
1520
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1521
- minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1522
- minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1523
- minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1524
- receiveSingleAsset: receiveSingleAsset,
1525
- useUnderlyings: useUnderlyings
1526
- })
1527
- });
1528
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1949
+
1950
+ function curveRedeem(_x4) {
1951
+ return _curveRedeem.apply(this, arguments);
1529
1952
  }
1530
- function curveAaveUnstake(_ref8) {
1531
- var comptrollerProxy = _ref8.comptrollerProxy,
1532
- integrationManager = _ref8.integrationManager,
1533
- fundOwner = _ref8.fundOwner,
1534
- curveLiquidityAaveAdapter = _ref8.curveLiquidityAaveAdapter,
1535
- outgoingLiquidityGaugeTokenAmount = _ref8.outgoingLiquidityGaugeTokenAmount;
1536
- var callArgs = callOnIntegrationArgs({
1537
- adapter: curveLiquidityAaveAdapter,
1538
- selector: unstakeSelector,
1539
- encodedCallArgs: curveAaveUnstakeArgs({
1540
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1541
- })
1542
- });
1543
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1544
- } // eurs pool
1545
1953
 
1546
- function curveEursClaimRewards(_ref9) {
1954
+ function _curveRedeem() {
1955
+ _curveRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref5) {
1956
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingLpTokenAmount, useUnderlyings, redeemType, incomingAssetData, callArgs;
1957
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1958
+ while (1) {
1959
+ switch (_context4.prev = _context4.next) {
1960
+ case 0:
1961
+ comptrollerProxy = _ref5.comptrollerProxy, integrationManager = _ref5.integrationManager, signer = _ref5.signer, curveLiquidityAdapter = _ref5.curveLiquidityAdapter, pool = _ref5.pool, outgoingLpTokenAmount = _ref5.outgoingLpTokenAmount, useUnderlyings = _ref5.useUnderlyings, redeemType = _ref5.redeemType, incomingAssetData = _ref5.incomingAssetData;
1962
+ callArgs = callOnIntegrationArgs({
1963
+ adapter: curveLiquidityAdapter,
1964
+ encodedCallArgs: curveRedeemArgs({
1965
+ incomingAssetData: incomingAssetData,
1966
+ outgoingLpTokenAmount: outgoingLpTokenAmount,
1967
+ pool: pool,
1968
+ redeemType: redeemType,
1969
+ useUnderlyings: useUnderlyings
1970
+ }),
1971
+ selector: redeemSelector
1972
+ });
1973
+ return _context4.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1974
+
1975
+ case 3:
1976
+ case "end":
1977
+ return _context4.stop();
1978
+ }
1979
+ }
1980
+ }, _callee4);
1981
+ }));
1982
+ return _curveRedeem.apply(this, arguments);
1983
+ }
1984
+
1985
+ function curveStake(_x5) {
1986
+ return _curveStake.apply(this, arguments);
1987
+ }
1988
+
1989
+ function _curveStake() {
1990
+ _curveStake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref6) {
1991
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, incomingStakingToken, amount, callArgs;
1992
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1993
+ while (1) {
1994
+ switch (_context5.prev = _context5.next) {
1995
+ case 0:
1996
+ comptrollerProxy = _ref6.comptrollerProxy, integrationManager = _ref6.integrationManager, signer = _ref6.signer, curveLiquidityAdapter = _ref6.curveLiquidityAdapter, pool = _ref6.pool, incomingStakingToken = _ref6.incomingStakingToken, amount = _ref6.amount;
1997
+ callArgs = callOnIntegrationArgs({
1998
+ adapter: curveLiquidityAdapter,
1999
+ encodedCallArgs: curveStakeArgs({
2000
+ amount: amount,
2001
+ incomingStakingToken: incomingStakingToken,
2002
+ pool: pool
2003
+ }),
2004
+ selector: stakeSelector
2005
+ });
2006
+ return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2007
+
2008
+ case 3:
2009
+ case "end":
2010
+ return _context5.stop();
2011
+ }
2012
+ }
2013
+ }, _callee5);
2014
+ }));
2015
+ return _curveStake.apply(this, arguments);
2016
+ }
2017
+
2018
+ function curveUnstake(_x6) {
2019
+ return _curveUnstake.apply(this, arguments);
2020
+ }
2021
+
2022
+ function _curveUnstake() {
2023
+ _curveUnstake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref7) {
2024
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingStakingToken, amount, callArgs;
2025
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
2026
+ while (1) {
2027
+ switch (_context6.prev = _context6.next) {
2028
+ case 0:
2029
+ comptrollerProxy = _ref7.comptrollerProxy, integrationManager = _ref7.integrationManager, signer = _ref7.signer, curveLiquidityAdapter = _ref7.curveLiquidityAdapter, pool = _ref7.pool, outgoingStakingToken = _ref7.outgoingStakingToken, amount = _ref7.amount;
2030
+ callArgs = callOnIntegrationArgs({
2031
+ adapter: curveLiquidityAdapter,
2032
+ encodedCallArgs: curveUnstakeArgs({
2033
+ amount: amount,
2034
+ outgoingStakingToken: outgoingStakingToken,
2035
+ pool: pool
2036
+ }),
2037
+ selector: unstakeSelector
2038
+ });
2039
+ return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2040
+
2041
+ case 3:
2042
+ case "end":
2043
+ return _context6.stop();
2044
+ }
2045
+ }
2046
+ }, _callee6);
2047
+ }));
2048
+ return _curveUnstake.apply(this, arguments);
2049
+ }
2050
+
2051
+ function curveUnstakeAndRedeem(_x7) {
2052
+ return _curveUnstakeAndRedeem.apply(this, arguments);
2053
+ } // aave pool
2054
+
2055
+ function _curveUnstakeAndRedeem() {
2056
+ _curveUnstakeAndRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref8) {
2057
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingStakingToken, outgoingStakingTokenAmount, useUnderlyings, redeemType, incomingAssetData, callArgs;
2058
+ return _regeneratorRuntime.wrap(function _callee7$(_context7) {
2059
+ while (1) {
2060
+ switch (_context7.prev = _context7.next) {
2061
+ case 0:
2062
+ comptrollerProxy = _ref8.comptrollerProxy, integrationManager = _ref8.integrationManager, signer = _ref8.signer, curveLiquidityAdapter = _ref8.curveLiquidityAdapter, pool = _ref8.pool, outgoingStakingToken = _ref8.outgoingStakingToken, outgoingStakingTokenAmount = _ref8.outgoingStakingTokenAmount, useUnderlyings = _ref8.useUnderlyings, redeemType = _ref8.redeemType, incomingAssetData = _ref8.incomingAssetData;
2063
+ callArgs = callOnIntegrationArgs({
2064
+ adapter: curveLiquidityAdapter,
2065
+ encodedCallArgs: curveUnstakeAndRedeemArgs({
2066
+ incomingAssetData: incomingAssetData,
2067
+ outgoingStakingToken: outgoingStakingToken,
2068
+ outgoingStakingTokenAmount: outgoingStakingTokenAmount,
2069
+ pool: pool,
2070
+ redeemType: redeemType,
2071
+ useUnderlyings: useUnderlyings
2072
+ }),
2073
+ selector: unstakeAndRedeemSelector
2074
+ });
2075
+ return _context7.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2076
+
2077
+ case 3:
2078
+ case "end":
2079
+ return _context7.stop();
2080
+ }
2081
+ }
2082
+ }, _callee7);
2083
+ }));
2084
+ return _curveUnstakeAndRedeem.apply(this, arguments);
2085
+ }
2086
+
2087
+ function curveAaveClaimRewards(_ref9) {
1547
2088
  var comptrollerProxy = _ref9.comptrollerProxy,
1548
2089
  integrationManager = _ref9.integrationManager,
1549
2090
  fundOwner = _ref9.fundOwner,
1550
- curveLiquidityEursAdapter = _ref9.curveLiquidityEursAdapter;
2091
+ curveLiquidityAaveAdapter = _ref9.curveLiquidityAaveAdapter;
1551
2092
  var callArgs = callOnIntegrationArgs({
1552
- adapter: curveLiquidityEursAdapter,
1553
- selector: claimRewardsSelector,
1554
- encodedCallArgs: constants.HashZero
2093
+ adapter: curveLiquidityAaveAdapter,
2094
+ encodedCallArgs: constants.HashZero,
2095
+ selector: claimRewardsSelector
1555
2096
  });
1556
2097
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1557
2098
  }
1558
- function curveEursLend(_ref10) {
2099
+ function curveAaveLend(_ref10) {
1559
2100
  var comptrollerProxy = _ref10.comptrollerProxy,
1560
2101
  integrationManager = _ref10.integrationManager,
1561
2102
  fundOwner = _ref10.fundOwner,
1562
- curveLiquidityEursAdapter = _ref10.curveLiquidityEursAdapter,
1563
- outgoingEursAmount = _ref10.outgoingEursAmount,
1564
- outgoingSeurAmount = _ref10.outgoingSeurAmount,
1565
- minIncomingLPTokenAmount = _ref10.minIncomingLPTokenAmount;
2103
+ curveLiquidityAaveAdapter = _ref10.curveLiquidityAaveAdapter,
2104
+ _ref10$outgoingAaveDa = _ref10.outgoingAaveDaiAmount,
2105
+ outgoingAaveDaiAmount = _ref10$outgoingAaveDa === void 0 ? BigNumber.from(0) : _ref10$outgoingAaveDa,
2106
+ _ref10$outgoingAaveUs = _ref10.outgoingAaveUsdcAmount,
2107
+ outgoingAaveUsdcAmount = _ref10$outgoingAaveUs === void 0 ? BigNumber.from(0) : _ref10$outgoingAaveUs,
2108
+ _ref10$outgoingAaveUs2 = _ref10.outgoingAaveUsdtAmount,
2109
+ outgoingAaveUsdtAmount = _ref10$outgoingAaveUs2 === void 0 ? BigNumber.from(0) : _ref10$outgoingAaveUs2,
2110
+ _ref10$minIncomingLPT = _ref10.minIncomingLPTokenAmount,
2111
+ minIncomingLPTokenAmount = _ref10$minIncomingLPT === void 0 ? BigNumber.from(1) : _ref10$minIncomingLPT,
2112
+ _ref10$useUnderlyings = _ref10.useUnderlyings,
2113
+ useUnderlyings = _ref10$useUnderlyings === void 0 ? false : _ref10$useUnderlyings;
1566
2114
  var callArgs = callOnIntegrationArgs({
1567
- adapter: curveLiquidityEursAdapter,
1568
- selector: lendSelector,
1569
- encodedCallArgs: curveEursLendArgs({
1570
- outgoingEursAmount: outgoingEursAmount,
1571
- outgoingSeurAmount: outgoingSeurAmount,
1572
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1573
- })
2115
+ adapter: curveLiquidityAaveAdapter,
2116
+ encodedCallArgs: curveAaveLendArgs({
2117
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
2118
+ outgoingAaveDaiAmount: outgoingAaveDaiAmount,
2119
+ outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
2120
+ outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
2121
+ useUnderlyings: useUnderlyings
2122
+ }),
2123
+ selector: lendSelector
1574
2124
  });
1575
2125
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1576
2126
  }
1577
- function curveEursLendAndStake(_ref11) {
2127
+ function curveAaveLendAndStake(_ref11) {
1578
2128
  var comptrollerProxy = _ref11.comptrollerProxy,
1579
2129
  integrationManager = _ref11.integrationManager,
1580
2130
  fundOwner = _ref11.fundOwner,
1581
- curveLiquidityEursAdapter = _ref11.curveLiquidityEursAdapter,
1582
- outgoingEursAmount = _ref11.outgoingEursAmount,
1583
- outgoingSeurAmount = _ref11.outgoingSeurAmount,
1584
- minIncomingLiquidityGaugeTokenAmount = _ref11.minIncomingLiquidityGaugeTokenAmount;
2131
+ curveLiquidityAaveAdapter = _ref11.curveLiquidityAaveAdapter,
2132
+ _ref11$outgoingAaveDa = _ref11.outgoingAaveDaiAmount,
2133
+ outgoingAaveDaiAmount = _ref11$outgoingAaveDa === void 0 ? BigNumber.from(0) : _ref11$outgoingAaveDa,
2134
+ _ref11$outgoingAaveUs = _ref11.outgoingAaveUsdcAmount,
2135
+ outgoingAaveUsdcAmount = _ref11$outgoingAaveUs === void 0 ? BigNumber.from(0) : _ref11$outgoingAaveUs,
2136
+ _ref11$outgoingAaveUs2 = _ref11.outgoingAaveUsdtAmount,
2137
+ outgoingAaveUsdtAmount = _ref11$outgoingAaveUs2 === void 0 ? BigNumber.from(0) : _ref11$outgoingAaveUs2,
2138
+ _ref11$minIncomingLiq = _ref11.minIncomingLiquidityGaugeTokenAmount,
2139
+ minIncomingLiquidityGaugeTokenAmount = _ref11$minIncomingLiq === void 0 ? BigNumber.from(1) : _ref11$minIncomingLiq,
2140
+ _ref11$useUnderlyings = _ref11.useUnderlyings,
2141
+ useUnderlyings = _ref11$useUnderlyings === void 0 ? false : _ref11$useUnderlyings;
1585
2142
  var callArgs = callOnIntegrationArgs({
1586
- adapter: curveLiquidityEursAdapter,
1587
- selector: lendAndStakeSelector,
1588
- encodedCallArgs: curveEursLendAndStakeArgs({
1589
- outgoingEursAmount: outgoingEursAmount,
1590
- outgoingSeurAmount: outgoingSeurAmount,
1591
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1592
- })
2143
+ adapter: curveLiquidityAaveAdapter,
2144
+ encodedCallArgs: curveAaveLendAndStakeArgs({
2145
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
2146
+ outgoingAaveDaiAmount: outgoingAaveDaiAmount,
2147
+ outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
2148
+ outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
2149
+ useUnderlyings: useUnderlyings
2150
+ }),
2151
+ selector: lendAndStakeSelector
1593
2152
  });
1594
2153
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1595
2154
  }
1596
- function curveEursRedeem(_ref12) {
2155
+ function curveAaveRedeem(_ref12) {
1597
2156
  var comptrollerProxy = _ref12.comptrollerProxy,
1598
2157
  integrationManager = _ref12.integrationManager,
1599
2158
  fundOwner = _ref12.fundOwner,
1600
- curveLiquidityEursAdapter = _ref12.curveLiquidityEursAdapter,
2159
+ curveLiquidityAaveAdapter = _ref12.curveLiquidityAaveAdapter,
1601
2160
  outgoingLPTokenAmount = _ref12.outgoingLPTokenAmount,
1602
- minIncomingEursAmount = _ref12.minIncomingEursAmount,
1603
- minIncomingSeurAmount = _ref12.minIncomingSeurAmount,
1604
- receiveSingleAsset = _ref12.receiveSingleAsset;
2161
+ _ref12$minIncomingAav = _ref12.minIncomingAaveDaiAmount,
2162
+ minIncomingAaveDaiAmount = _ref12$minIncomingAav === void 0 ? BigNumber.from(1) : _ref12$minIncomingAav,
2163
+ _ref12$minIncomingAav2 = _ref12.minIncomingAaveUsdcAmount,
2164
+ minIncomingAaveUsdcAmount = _ref12$minIncomingAav2 === void 0 ? BigNumber.from(1) : _ref12$minIncomingAav2,
2165
+ _ref12$minIncomingAav3 = _ref12.minIncomingAaveUsdtAmount,
2166
+ minIncomingAaveUsdtAmount = _ref12$minIncomingAav3 === void 0 ? BigNumber.from(1) : _ref12$minIncomingAav3,
2167
+ _ref12$receiveSingleA = _ref12.receiveSingleAsset,
2168
+ receiveSingleAsset = _ref12$receiveSingleA === void 0 ? false : _ref12$receiveSingleA,
2169
+ _ref12$useUnderlyings = _ref12.useUnderlyings,
2170
+ useUnderlyings = _ref12$useUnderlyings === void 0 ? false : _ref12$useUnderlyings;
1605
2171
  var callArgs = callOnIntegrationArgs({
1606
- adapter: curveLiquidityEursAdapter,
1607
- selector: redeemSelector,
1608
- encodedCallArgs: curveEursRedeemArgs({
2172
+ adapter: curveLiquidityAaveAdapter,
2173
+ encodedCallArgs: curveAaveRedeemArgs({
2174
+ minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
2175
+ minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
2176
+ minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1609
2177
  outgoingLPTokenAmount: outgoingLPTokenAmount,
1610
- minIncomingEursAmount: minIncomingEursAmount,
1611
- minIncomingSeurAmount: minIncomingSeurAmount,
1612
- receiveSingleAsset: receiveSingleAsset
1613
- })
2178
+ receiveSingleAsset: receiveSingleAsset,
2179
+ useUnderlyings: useUnderlyings
2180
+ }),
2181
+ selector: redeemSelector
1614
2182
  });
1615
2183
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1616
2184
  }
1617
- function curveEursStake(_ref13) {
2185
+ function curveAaveStake(_ref13) {
1618
2186
  var comptrollerProxy = _ref13.comptrollerProxy,
1619
2187
  integrationManager = _ref13.integrationManager,
1620
2188
  fundOwner = _ref13.fundOwner,
1621
- curveLiquidityEursAdapter = _ref13.curveLiquidityEursAdapter,
2189
+ curveLiquidityAaveAdapter = _ref13.curveLiquidityAaveAdapter,
1622
2190
  outgoingLPTokenAmount = _ref13.outgoingLPTokenAmount;
1623
2191
  var callArgs = callOnIntegrationArgs({
1624
- adapter: curveLiquidityEursAdapter,
1625
- selector: stakeSelector,
1626
- encodedCallArgs: curveEursStakeArgs({
2192
+ adapter: curveLiquidityAaveAdapter,
2193
+ encodedCallArgs: curveAaveStakeArgs({
1627
2194
  outgoingLPTokenAmount: outgoingLPTokenAmount
1628
- })
2195
+ }),
2196
+ selector: stakeSelector
1629
2197
  });
1630
2198
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1631
2199
  }
1632
- function curveEursUnstakeAndRedeem(_ref14) {
2200
+ function curveAaveUnstakeAndRedeem(_ref14) {
1633
2201
  var comptrollerProxy = _ref14.comptrollerProxy,
1634
2202
  integrationManager = _ref14.integrationManager,
1635
2203
  fundOwner = _ref14.fundOwner,
1636
- curveLiquidityEursAdapter = _ref14.curveLiquidityEursAdapter,
2204
+ curveLiquidityAaveAdapter = _ref14.curveLiquidityAaveAdapter,
1637
2205
  outgoingLiquidityGaugeTokenAmount = _ref14.outgoingLiquidityGaugeTokenAmount,
1638
- minIncomingEursAmount = _ref14.minIncomingEursAmount,
1639
- minIncomingSeurAmount = _ref14.minIncomingSeurAmount,
1640
- receiveSingleAsset = _ref14.receiveSingleAsset;
2206
+ _ref14$minIncomingAav = _ref14.minIncomingAaveDaiAmount,
2207
+ minIncomingAaveDaiAmount = _ref14$minIncomingAav === void 0 ? BigNumber.from(1) : _ref14$minIncomingAav,
2208
+ _ref14$minIncomingAav2 = _ref14.minIncomingAaveUsdcAmount,
2209
+ minIncomingAaveUsdcAmount = _ref14$minIncomingAav2 === void 0 ? BigNumber.from(1) : _ref14$minIncomingAav2,
2210
+ _ref14$minIncomingAav3 = _ref14.minIncomingAaveUsdtAmount,
2211
+ minIncomingAaveUsdtAmount = _ref14$minIncomingAav3 === void 0 ? BigNumber.from(1) : _ref14$minIncomingAav3,
2212
+ _ref14$receiveSingleA = _ref14.receiveSingleAsset,
2213
+ receiveSingleAsset = _ref14$receiveSingleA === void 0 ? false : _ref14$receiveSingleA,
2214
+ _ref14$useUnderlyings = _ref14.useUnderlyings,
2215
+ useUnderlyings = _ref14$useUnderlyings === void 0 ? false : _ref14$useUnderlyings;
1641
2216
  var callArgs = callOnIntegrationArgs({
1642
- adapter: curveLiquidityEursAdapter,
1643
- selector: unstakeAndRedeemSelector,
1644
- encodedCallArgs: curveEursUnstakeAndRedeemArgs({
2217
+ adapter: curveLiquidityAaveAdapter,
2218
+ encodedCallArgs: curveAaveUnstakeAndRedeemArgs({
2219
+ minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
2220
+ minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
2221
+ minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1645
2222
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1646
- minIncomingEursAmount: minIncomingEursAmount,
1647
- minIncomingSeurAmount: minIncomingSeurAmount,
1648
- receiveSingleAsset: receiveSingleAsset
1649
- })
2223
+ receiveSingleAsset: receiveSingleAsset,
2224
+ useUnderlyings: useUnderlyings
2225
+ }),
2226
+ selector: unstakeAndRedeemSelector
1650
2227
  });
1651
2228
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1652
2229
  }
1653
- function curveEursUnstake(_ref15) {
2230
+ function curveAaveUnstake(_ref15) {
1654
2231
  var comptrollerProxy = _ref15.comptrollerProxy,
1655
2232
  integrationManager = _ref15.integrationManager,
1656
2233
  fundOwner = _ref15.fundOwner,
1657
- curveLiquidityEursAdapter = _ref15.curveLiquidityEursAdapter,
2234
+ curveLiquidityAaveAdapter = _ref15.curveLiquidityAaveAdapter,
1658
2235
  outgoingLiquidityGaugeTokenAmount = _ref15.outgoingLiquidityGaugeTokenAmount;
1659
2236
  var callArgs = callOnIntegrationArgs({
1660
- adapter: curveLiquidityEursAdapter,
1661
- selector: unstakeSelector,
1662
- encodedCallArgs: curveEursUnstakeArgs({
2237
+ adapter: curveLiquidityAaveAdapter,
2238
+ encodedCallArgs: curveAaveUnstakeArgs({
1663
2239
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1664
- })
2240
+ }),
2241
+ selector: unstakeSelector
1665
2242
  });
1666
2243
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1667
2244
  } // sETH pool
@@ -1673,8 +2250,8 @@ function curveSethClaimRewards(_ref16) {
1673
2250
  curveLiquiditySethAdapter = _ref16.curveLiquiditySethAdapter;
1674
2251
  var callArgs = callOnIntegrationArgs({
1675
2252
  adapter: curveLiquiditySethAdapter,
1676
- selector: claimRewardsSelector,
1677
- encodedCallArgs: constants.HashZero
2253
+ encodedCallArgs: constants.HashZero,
2254
+ selector: claimRewardsSelector
1678
2255
  });
1679
2256
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1680
2257
  }
@@ -1688,12 +2265,12 @@ function curveSethLend(_ref17) {
1688
2265
  minIncomingLPTokenAmount = _ref17.minIncomingLPTokenAmount;
1689
2266
  var callArgs = callOnIntegrationArgs({
1690
2267
  adapter: curveLiquiditySethAdapter,
1691
- selector: lendSelector,
1692
2268
  encodedCallArgs: curveSethLendArgs({
1693
- outgoingWethAmount: outgoingWethAmount,
2269
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1694
2270
  outgoingSethAmount: outgoingSethAmount,
1695
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1696
- })
2271
+ outgoingWethAmount: outgoingWethAmount
2272
+ }),
2273
+ selector: lendSelector
1697
2274
  });
1698
2275
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1699
2276
  }
@@ -1707,12 +2284,12 @@ function curveSethLendAndStake(_ref18) {
1707
2284
  minIncomingLiquidityGaugeTokenAmount = _ref18.minIncomingLiquidityGaugeTokenAmount;
1708
2285
  var callArgs = callOnIntegrationArgs({
1709
2286
  adapter: curveLiquiditySethAdapter,
1710
- selector: lendAndStakeSelector,
1711
2287
  encodedCallArgs: curveSethLendAndStakeArgs({
1712
- outgoingWethAmount: outgoingWethAmount,
2288
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1713
2289
  outgoingSethAmount: outgoingSethAmount,
1714
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1715
- })
2290
+ outgoingWethAmount: outgoingWethAmount
2291
+ }),
2292
+ selector: lendAndStakeSelector
1716
2293
  });
1717
2294
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1718
2295
  }
@@ -1727,13 +2304,13 @@ function curveSethRedeem(_ref19) {
1727
2304
  receiveSingleAsset = _ref19.receiveSingleAsset;
1728
2305
  var callArgs = callOnIntegrationArgs({
1729
2306
  adapter: curveLiquiditySethAdapter,
1730
- selector: redeemSelector,
1731
- encodedCallArgs: curveSethRedeemArgs({
1732
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1733
- minIncomingWethAmount: minIncomingWethAmount,
2307
+ encodedCallArgs: curveSethRedeemArgs({
1734
2308
  minIncomingSethAmount: minIncomingSethAmount,
2309
+ minIncomingWethAmount: minIncomingWethAmount,
2310
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1735
2311
  receiveSingleAsset: receiveSingleAsset
1736
- })
2312
+ }),
2313
+ selector: redeemSelector
1737
2314
  });
1738
2315
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1739
2316
  }
@@ -1745,10 +2322,10 @@ function curveSethStake(_ref20) {
1745
2322
  outgoingLPTokenAmount = _ref20.outgoingLPTokenAmount;
1746
2323
  var callArgs = callOnIntegrationArgs({
1747
2324
  adapter: curveLiquiditySethAdapter,
1748
- selector: stakeSelector,
1749
2325
  encodedCallArgs: curveSethStakeArgs({
1750
2326
  outgoingLPTokenAmount: outgoingLPTokenAmount
1751
- })
2327
+ }),
2328
+ selector: stakeSelector
1752
2329
  });
1753
2330
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1754
2331
  }
@@ -1763,13 +2340,13 @@ function curveSethUnstakeAndRedeem(_ref21) {
1763
2340
  receiveSingleAsset = _ref21.receiveSingleAsset;
1764
2341
  var callArgs = callOnIntegrationArgs({
1765
2342
  adapter: curveLiquiditySethAdapter,
1766
- selector: unstakeAndRedeemSelector,
1767
2343
  encodedCallArgs: curveSethUnstakeAndRedeemArgs({
1768
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1769
- minIncomingWethAmount: minIncomingWethAmount,
1770
2344
  minIncomingSethAmount: minIncomingSethAmount,
2345
+ minIncomingWethAmount: minIncomingWethAmount,
2346
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1771
2347
  receiveSingleAsset: receiveSingleAsset
1772
- })
2348
+ }),
2349
+ selector: unstakeAndRedeemSelector
1773
2350
  });
1774
2351
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1775
2352
  }
@@ -1781,10 +2358,10 @@ function curveSethUnstake(_ref22) {
1781
2358
  outgoingLiquidityGaugeTokenAmount = _ref22.outgoingLiquidityGaugeTokenAmount;
1782
2359
  var callArgs = callOnIntegrationArgs({
1783
2360
  adapter: curveLiquiditySethAdapter,
1784
- selector: unstakeSelector,
1785
2361
  encodedCallArgs: curveSethUnstakeArgs({
1786
2362
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1787
- })
2363
+ }),
2364
+ selector: unstakeSelector
1788
2365
  });
1789
2366
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1790
2367
  } // stETH pool
@@ -1796,8 +2373,8 @@ function curveStethClaimRewards(_ref23) {
1796
2373
  curveLiquidityStethAdapter = _ref23.curveLiquidityStethAdapter;
1797
2374
  var callArgs = callOnIntegrationArgs({
1798
2375
  adapter: curveLiquidityStethAdapter,
1799
- selector: claimRewardsSelector,
1800
- encodedCallArgs: constants.HashZero
2376
+ encodedCallArgs: constants.HashZero,
2377
+ selector: claimRewardsSelector
1801
2378
  });
1802
2379
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1803
2380
  }
@@ -1811,12 +2388,12 @@ function curveStethLend(_ref24) {
1811
2388
  minIncomingLPTokenAmount = _ref24.minIncomingLPTokenAmount;
1812
2389
  var callArgs = callOnIntegrationArgs({
1813
2390
  adapter: curveLiquidityStethAdapter,
1814
- selector: lendSelector,
1815
2391
  encodedCallArgs: curveStethLendArgs({
1816
- outgoingWethAmount: outgoingWethAmount,
2392
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1817
2393
  outgoingStethAmount: outgoingStethAmount,
1818
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1819
- })
2394
+ outgoingWethAmount: outgoingWethAmount
2395
+ }),
2396
+ selector: lendSelector
1820
2397
  });
1821
2398
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1822
2399
  }
@@ -1830,12 +2407,12 @@ function curveStethLendAndStake(_ref25) {
1830
2407
  minIncomingLiquidityGaugeTokenAmount = _ref25.minIncomingLiquidityGaugeTokenAmount;
1831
2408
  var callArgs = callOnIntegrationArgs({
1832
2409
  adapter: curveLiquidityStethAdapter,
1833
- selector: lendAndStakeSelector,
1834
2410
  encodedCallArgs: curveStethLendAndStakeArgs({
1835
- outgoingWethAmount: outgoingWethAmount,
2411
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1836
2412
  outgoingStethAmount: outgoingStethAmount,
1837
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1838
- })
2413
+ outgoingWethAmount: outgoingWethAmount
2414
+ }),
2415
+ selector: lendAndStakeSelector
1839
2416
  });
1840
2417
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1841
2418
  }
@@ -1850,13 +2427,13 @@ function curveStethRedeem(_ref26) {
1850
2427
  receiveSingleAsset = _ref26.receiveSingleAsset;
1851
2428
  var callArgs = callOnIntegrationArgs({
1852
2429
  adapter: curveLiquidityStethAdapter,
1853
- selector: redeemSelector,
1854
2430
  encodedCallArgs: curveStethRedeemArgs({
1855
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1856
- minIncomingWethAmount: minIncomingWethAmount,
1857
2431
  minIncomingStethAmount: minIncomingStethAmount,
2432
+ minIncomingWethAmount: minIncomingWethAmount,
2433
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1858
2434
  receiveSingleAsset: receiveSingleAsset
1859
- })
2435
+ }),
2436
+ selector: redeemSelector
1860
2437
  });
1861
2438
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1862
2439
  }
@@ -1868,10 +2445,10 @@ function curveStethStake(_ref27) {
1868
2445
  outgoingLPTokenAmount = _ref27.outgoingLPTokenAmount;
1869
2446
  var callArgs = callOnIntegrationArgs({
1870
2447
  adapter: curveLiquidityStethAdapter,
1871
- selector: stakeSelector,
1872
2448
  encodedCallArgs: curveStethStakeArgs({
1873
2449
  outgoingLPTokenAmount: outgoingLPTokenAmount
1874
- })
2450
+ }),
2451
+ selector: stakeSelector
1875
2452
  });
1876
2453
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1877
2454
  }
@@ -1886,13 +2463,13 @@ function curveStethUnstakeAndRedeem(_ref28) {
1886
2463
  receiveSingleAsset = _ref28.receiveSingleAsset;
1887
2464
  var callArgs = callOnIntegrationArgs({
1888
2465
  adapter: curveLiquidityStethAdapter,
1889
- selector: unstakeAndRedeemSelector,
1890
2466
  encodedCallArgs: curveStethUnstakeAndRedeemArgs({
1891
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1892
- minIncomingWethAmount: minIncomingWethAmount,
1893
2467
  minIncomingStethAmount: minIncomingStethAmount,
2468
+ minIncomingWethAmount: minIncomingWethAmount,
2469
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1894
2470
  receiveSingleAsset: receiveSingleAsset
1895
- })
2471
+ }),
2472
+ selector: unstakeAndRedeemSelector
1896
2473
  });
1897
2474
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1898
2475
  }
@@ -1904,10 +2481,10 @@ function curveStethUnstake(_ref29) {
1904
2481
  outgoingLiquidityGaugeTokenAmount = _ref29.outgoingLiquidityGaugeTokenAmount;
1905
2482
  var callArgs = callOnIntegrationArgs({
1906
2483
  adapter: curveLiquidityStethAdapter,
1907
- selector: unstakeSelector,
1908
2484
  encodedCallArgs: curveStethUnstakeArgs({
1909
2485
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1910
- })
2486
+ }),
2487
+ selector: unstakeSelector
1911
2488
  });
1912
2489
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1913
2490
  }
@@ -1926,10 +2503,10 @@ function _idleClaimRewards() {
1926
2503
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, idleAdapter = _ref.idleAdapter, idleToken = _ref.idleToken;
1927
2504
  callArgs = callOnIntegrationArgs({
1928
2505
  adapter: idleAdapter,
1929
- selector: claimRewardsSelector,
1930
2506
  encodedCallArgs: idleClaimRewardsArgs({
1931
2507
  idleToken: idleToken
1932
- })
2508
+ }),
2509
+ selector: claimRewardsSelector
1933
2510
  });
1934
2511
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1935
2512
 
@@ -1958,12 +2535,12 @@ function _idleLend() {
1958
2535
  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;
1959
2536
  callArgs = callOnIntegrationArgs({
1960
2537
  adapter: idleAdapter,
1961
- selector: lendSelector,
1962
2538
  encodedCallArgs: idleLendArgs({
1963
2539
  idleToken: idleToken,
1964
- outgoingUnderlyingAmount: outgoingUnderlyingAmount,
1965
- minIncomingIdleTokenAmount: minIncomingIdleTokenAmount
1966
- })
2540
+ minIncomingIdleTokenAmount: minIncomingIdleTokenAmount,
2541
+ outgoingUnderlyingAmount: outgoingUnderlyingAmount
2542
+ }),
2543
+ selector: lendSelector
1967
2544
  });
1968
2545
  return _context2.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
1969
2546
 
@@ -1992,12 +2569,12 @@ function _idleRedeem() {
1992
2569
  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;
1993
2570
  callArgs = callOnIntegrationArgs({
1994
2571
  adapter: idleAdapter,
1995
- selector: redeemSelector,
1996
2572
  encodedCallArgs: idleRedeemArgs({
1997
2573
  idleToken: idleToken,
1998
- outgoingIdleTokenAmount: outgoingIdleTokenAmount,
1999
- minIncomingUnderlyingAmount: minIncomingUnderlyingAmount
2000
- })
2574
+ minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2575
+ outgoingIdleTokenAmount: outgoingIdleTokenAmount
2576
+ }),
2577
+ selector: redeemSelector
2001
2578
  });
2002
2579
  return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2003
2580
 
@@ -2068,17 +2645,17 @@ function _mockGenericSwap() {
2068
2645
 
2069
2646
  case 9:
2070
2647
  swapArgs = mockGenericSwapArgs({
2071
- spendAssets: spendAssets,
2072
- maxSpendAssetAmounts: maxSpendAssetAmounts,
2648
+ actualIncomingAssetAmounts: actualIncomingAssetAmounts,
2073
2649
  actualSpendAssetAmounts: actualSpendAssetAmounts,
2074
2650
  incomingAssets: incomingAssets,
2651
+ maxSpendAssetAmounts: maxSpendAssetAmounts,
2075
2652
  minIncomingAssetAmounts: minIncomingAssetAmounts,
2076
- actualIncomingAssetAmounts: actualIncomingAssetAmounts
2653
+ spendAssets: spendAssets
2077
2654
  });
2078
2655
  callArgs = callOnIntegrationArgs({
2079
2656
  adapter: mockGenericAdapter,
2080
- selector: selector,
2081
- encodedCallArgs: swapArgs
2657
+ encodedCallArgs: swapArgs,
2658
+ selector: selector
2082
2659
  });
2083
2660
  swapTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2084
2661
  _context.next = 14;
@@ -2097,14 +2674,80 @@ function _mockGenericSwap() {
2097
2674
  return _mockGenericSwap.apply(this, arguments);
2098
2675
  }
2099
2676
 
2677
+ function olympusV2Stake(_x) {
2678
+ return _olympusV2Stake.apply(this, arguments);
2679
+ }
2680
+
2681
+ function _olympusV2Stake() {
2682
+ _olympusV2Stake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2683
+ var comptrollerProxy, integrationManager, signer, olympusV2Adapter, amount, stakeArgs, callArgs, stakeTx;
2684
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
2685
+ while (1) {
2686
+ switch (_context.prev = _context.next) {
2687
+ case 0:
2688
+ comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, signer = _ref.signer, olympusV2Adapter = _ref.olympusV2Adapter, amount = _ref.amount;
2689
+ stakeArgs = olympusV2StakeArgs({
2690
+ amount: amount
2691
+ });
2692
+ callArgs = callOnIntegrationArgs({
2693
+ adapter: olympusV2Adapter,
2694
+ encodedCallArgs: stakeArgs,
2695
+ selector: stakeSelector
2696
+ });
2697
+ stakeTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2698
+ return _context.abrupt("return", stakeTx);
2699
+
2700
+ case 5:
2701
+ case "end":
2702
+ return _context.stop();
2703
+ }
2704
+ }
2705
+ }, _callee);
2706
+ }));
2707
+ return _olympusV2Stake.apply(this, arguments);
2708
+ }
2709
+
2710
+ function olympusV2Unstake(_x2) {
2711
+ return _olympusV2Unstake.apply(this, arguments);
2712
+ }
2713
+
2714
+ function _olympusV2Unstake() {
2715
+ _olympusV2Unstake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2716
+ var comptrollerProxy, integrationManager, signer, olympusV2Adapter, amount, unstakeArgs, callArgs, unstakeTx;
2717
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2718
+ while (1) {
2719
+ switch (_context2.prev = _context2.next) {
2720
+ case 0:
2721
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, signer = _ref2.signer, olympusV2Adapter = _ref2.olympusV2Adapter, amount = _ref2.amount;
2722
+ unstakeArgs = olympusV2UnstakeArgs({
2723
+ amount: amount
2724
+ });
2725
+ callArgs = callOnIntegrationArgs({
2726
+ adapter: olympusV2Adapter,
2727
+ encodedCallArgs: unstakeArgs,
2728
+ selector: unstakeSelector
2729
+ });
2730
+ unstakeTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2731
+ return _context2.abrupt("return", unstakeTx);
2732
+
2733
+ case 5:
2734
+ case "end":
2735
+ return _context2.stop();
2736
+ }
2737
+ }
2738
+ }, _callee2);
2739
+ }));
2740
+ return _olympusV2Unstake.apply(this, arguments);
2741
+ }
2742
+
2100
2743
  function paraSwapV4GenerateDummyPaths(_ref) {
2101
2744
  var toTokens = _ref.toTokens;
2102
2745
  return toTokens.map(function (toToken) {
2103
2746
  return {
2104
- to: toToken,
2105
- totalNetworkFee: 0,
2106
2747
  // Not supported in our protocol
2107
- routes: [] // Can ignore this param in the dummy
2748
+ routes: [],
2749
+ to: toToken,
2750
+ totalNetworkFee: 0 // Can ignore this param in the dummy
2108
2751
 
2109
2752
  };
2110
2753
  });
@@ -2123,16 +2766,16 @@ function _paraSwapV4TakeOrder() {
2123
2766
  case 0:
2124
2767
  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;
2125
2768
  takeOrderArgs = paraSwapV4TakeOrderArgs({
2126
- minIncomingAssetAmount: minIncomingAssetAmount,
2127
2769
  expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2770
+ minIncomingAssetAmount: minIncomingAssetAmount,
2128
2771
  outgoingAsset: outgoingAsset,
2129
2772
  outgoingAssetAmount: outgoingAssetAmount,
2130
2773
  paths: paths
2131
2774
  });
2132
2775
  callArgs = callOnIntegrationArgs({
2133
2776
  adapter: paraSwapV4Adapter,
2134
- selector: takeOrderSelector,
2135
- encodedCallArgs: takeOrderArgs
2777
+ encodedCallArgs: takeOrderArgs,
2778
+ selector: takeOrderSelector
2136
2779
  });
2137
2780
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2138
2781
 
@@ -2146,30 +2789,177 @@ function _paraSwapV4TakeOrder() {
2146
2789
  return _paraSwapV4TakeOrder.apply(this, arguments);
2147
2790
  }
2148
2791
 
2792
+ function paraSwapV5GenerateDummyPaths(_ref) {
2793
+ var toTokens = _ref.toTokens;
2794
+ return toTokens.map(function (toToken) {
2795
+ return {
2796
+ // Not supported in our protocol
2797
+ adapters: [],
2798
+ to: toToken,
2799
+ totalNetworkFee: 0 // Can ignore this param in the dummy
2800
+
2801
+ };
2802
+ });
2803
+ }
2804
+ function paraSwapV5TakeOrder(_x) {
2805
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2806
+ }
2807
+
2808
+ function _paraSwapV5TakeOrder() {
2809
+ _paraSwapV5TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
2810
+ var comptrollerProxy, integrationManager, fundOwner, paraSwapV5Adapter, outgoingAsset, outgoingAssetAmount, _ref2$minIncomingAsse, minIncomingAssetAmount, _ref2$expectedIncomin, expectedIncomingAssetAmount, _ref2$uuid, uuid, paths, takeOrderArgs, callArgs;
2811
+
2812
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
2813
+ while (1) {
2814
+ switch (_context.prev = _context.next) {
2815
+ case 0:
2816
+ 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;
2817
+ takeOrderArgs = paraSwapV5TakeOrderArgs({
2818
+ expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2819
+ minIncomingAssetAmount: minIncomingAssetAmount,
2820
+ outgoingAsset: outgoingAsset,
2821
+ outgoingAssetAmount: outgoingAssetAmount,
2822
+ paths: paths,
2823
+ uuid: uuid
2824
+ });
2825
+ callArgs = callOnIntegrationArgs({
2826
+ adapter: paraSwapV5Adapter,
2827
+ encodedCallArgs: takeOrderArgs,
2828
+ selector: takeOrderSelector
2829
+ });
2830
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2831
+
2832
+ case 4:
2833
+ case "end":
2834
+ return _context.stop();
2835
+ }
2836
+ }
2837
+ }, _callee);
2838
+ }));
2839
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2840
+ }
2841
+
2842
+ function poolTogetherV4Lend(_x) {
2843
+ return _poolTogetherV4Lend.apply(this, arguments);
2844
+ }
2845
+
2846
+ function _poolTogetherV4Lend() {
2847
+ _poolTogetherV4Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2848
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
2849
+
2850
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
2851
+ while (1) {
2852
+ switch (_context.prev = _context.next) {
2853
+ case 0:
2854
+ 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;
2855
+ lendArgs = poolTogetherV4LendArgs({
2856
+ amount: amount,
2857
+ ptToken: ptToken
2858
+ });
2859
+ callArgs = callOnIntegrationArgs({
2860
+ adapter: poolTogetherV4Adapter,
2861
+ encodedCallArgs: lendArgs,
2862
+ selector: lendSelector
2863
+ });
2864
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2865
+ return _context.abrupt("return", lendTx);
2866
+
2867
+ case 5:
2868
+ case "end":
2869
+ return _context.stop();
2870
+ }
2871
+ }
2872
+ }, _callee);
2873
+ }));
2874
+ return _poolTogetherV4Lend.apply(this, arguments);
2875
+ }
2876
+
2877
+ function poolTogetherV4Redeem(_x2) {
2878
+ return _poolTogetherV4Redeem.apply(this, arguments);
2879
+ }
2880
+
2881
+ function _poolTogetherV4Redeem() {
2882
+ _poolTogetherV4Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2883
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref2$amount, amount, redeemArgs, callArgs, redeemTx;
2884
+
2885
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2886
+ while (1) {
2887
+ switch (_context2.prev = _context2.next) {
2888
+ case 0:
2889
+ 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;
2890
+ redeemArgs = poolTogetherV4RedeemArgs({
2891
+ amount: amount,
2892
+ ptToken: ptToken
2893
+ });
2894
+ callArgs = callOnIntegrationArgs({
2895
+ adapter: poolTogetherV4Adapter,
2896
+ encodedCallArgs: redeemArgs,
2897
+ selector: redeemSelector
2898
+ });
2899
+ redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2900
+ return _context2.abrupt("return", redeemTx);
2901
+
2902
+ case 5:
2903
+ case "end":
2904
+ return _context2.stop();
2905
+ }
2906
+ }
2907
+ }, _callee2);
2908
+ }));
2909
+ return _poolTogetherV4Redeem.apply(this, arguments);
2910
+ }
2911
+
2912
+ function poolTogetherV4ClaimRewards(_x3) {
2913
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2914
+ }
2915
+
2916
+ function _poolTogetherV4ClaimRewards() {
2917
+ _poolTogetherV4ClaimRewards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2918
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, prizeDistributor, drawIds, winningPicks, claimRewardsArgs, callArgs, claimTx;
2919
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2920
+ while (1) {
2921
+ switch (_context3.prev = _context3.next) {
2922
+ case 0:
2923
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, poolTogetherV4Adapter = _ref3.poolTogetherV4Adapter, prizeDistributor = _ref3.prizeDistributor, drawIds = _ref3.drawIds, winningPicks = _ref3.winningPicks;
2924
+ claimRewardsArgs = poolTogetherV4ClaimRewardsArgs({
2925
+ drawIds: drawIds,
2926
+ prizeDistributor: prizeDistributor,
2927
+ winningPicks: winningPicks
2928
+ });
2929
+ callArgs = callOnIntegrationArgs({
2930
+ adapter: poolTogetherV4Adapter,
2931
+ encodedCallArgs: claimRewardsArgs,
2932
+ selector: claimRewardsSelector
2933
+ });
2934
+ claimTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2935
+ return _context3.abrupt("return", claimTx);
2936
+
2937
+ case 5:
2938
+ case "end":
2939
+ return _context3.stop();
2940
+ }
2941
+ }
2942
+ }, _callee3);
2943
+ }));
2944
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2945
+ }
2946
+
2149
2947
  function synthetixAssignExchangeDelegate(_x) {
2150
2948
  return _synthetixAssignExchangeDelegate.apply(this, arguments);
2151
2949
  }
2152
2950
 
2153
2951
  function _synthetixAssignExchangeDelegate() {
2154
2952
  _synthetixAssignExchangeDelegate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2155
- var comptrollerProxy, addressResolver, fundOwner, delegate, delegateApprovals;
2953
+ var comptrollerProxy, synthetixDelegateApprovals, fundOwner, delegate;
2156
2954
  return _regeneratorRuntime.wrap(function _callee$(_context) {
2157
2955
  while (1) {
2158
2956
  switch (_context.prev = _context.next) {
2159
2957
  case 0:
2160
- comptrollerProxy = _ref.comptrollerProxy, addressResolver = _ref.addressResolver, fundOwner = _ref.fundOwner, delegate = _ref.delegate;
2958
+ comptrollerProxy = _ref.comptrollerProxy, synthetixDelegateApprovals = _ref.synthetixDelegateApprovals, fundOwner = _ref.fundOwner, delegate = _ref.delegate;
2161
2959
  _context.next = 3;
2162
- return synthetixResolveAddress({
2163
- addressResolver: addressResolver,
2164
- name: 'DelegateApprovals'
2165
- });
2960
+ return comptrollerProxy.connect(fundOwner).vaultCallOnContract(synthetixDelegateApprovals, synthetixAssignExchangeDelegateSelector, encodeArgs(['address'], [delegate]));
2166
2961
 
2167
2962
  case 3:
2168
- delegateApprovals = _context.sent;
2169
- _context.next = 6;
2170
- return comptrollerProxy.connect(fundOwner).vaultCallOnContract(delegateApprovals, synthetixAssignExchangeDelegateSelector, encodeArgs(['address'], [delegate]));
2171
-
2172
- case 6:
2173
2963
  case "end":
2174
2964
  return _context.stop();
2175
2965
  }
@@ -2179,28 +2969,36 @@ function _synthetixAssignExchangeDelegate() {
2179
2969
  return _synthetixAssignExchangeDelegate.apply(this, arguments);
2180
2970
  }
2181
2971
 
2182
- function synthetixResolveAddress(_x2) {
2183
- return _synthetixResolveAddress.apply(this, arguments);
2972
+ function synthetixRedeem(_x2) {
2973
+ return _synthetixRedeem.apply(this, arguments);
2184
2974
  }
2185
2975
 
2186
- function _synthetixResolveAddress() {
2187
- _synthetixResolveAddress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2188
- var addressResolver, name;
2976
+ function _synthetixRedeem() {
2977
+ _synthetixRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2978
+ var comptrollerProxy, integrationManager, signer, synthetixAdapter, synths, redeemArgs, callArgs;
2189
2979
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2190
2980
  while (1) {
2191
2981
  switch (_context2.prev = _context2.next) {
2192
2982
  case 0:
2193
- addressResolver = _ref2.addressResolver, name = _ref2.name;
2194
- return _context2.abrupt("return", addressResolver.requireAndGetAddress(utils.formatBytes32String(name), "Missing ".concat(name)));
2983
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, signer = _ref2.signer, synthetixAdapter = _ref2.synthetixAdapter, synths = _ref2.synths;
2984
+ redeemArgs = synthetixRedeemArgs({
2985
+ synths: synths
2986
+ });
2987
+ callArgs = callOnIntegrationArgs({
2988
+ adapter: synthetixAdapter,
2989
+ encodedCallArgs: redeemArgs,
2990
+ selector: redeemSelector
2991
+ });
2992
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2195
2993
 
2196
- case 2:
2994
+ case 4:
2197
2995
  case "end":
2198
2996
  return _context2.stop();
2199
2997
  }
2200
2998
  }
2201
2999
  }, _callee2);
2202
3000
  }));
2203
- return _synthetixResolveAddress.apply(this, arguments);
3001
+ return _synthetixRedeem.apply(this, arguments);
2204
3002
  }
2205
3003
 
2206
3004
  function synthetixTakeOrder(_x3) {
@@ -2209,13 +3007,13 @@ function synthetixTakeOrder(_x3) {
2209
3007
 
2210
3008
  function _synthetixTakeOrder() {
2211
3009
  _synthetixTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2212
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref3$outgoingAssetAm, outgoingAssetAmount, incomingAsset, _ref3$minIncomingAsse, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
3010
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref3$outgoingAssetAm, outgoingAssetAmount, _ref3$minIncomingSusd, minIncomingSusdAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2213
3011
 
2214
3012
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2215
3013
  while (1) {
2216
3014
  switch (_context3.prev = _context3.next) {
2217
3015
  case 0:
2218
- 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;
3016
+ 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, _ref3$minIncomingSusd = _ref3.minIncomingSusdAmount, minIncomingSusdAmount = _ref3$minIncomingSusd === void 0 ? utils.parseEther('1') : _ref3$minIncomingSusd, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2219
3017
 
2220
3018
  if (!seedFund) {
2221
3019
  _context3.next = 4;
@@ -2227,16 +3025,15 @@ function _synthetixTakeOrder() {
2227
3025
 
2228
3026
  case 4:
2229
3027
  takeOrderArgs = synthetixTakeOrderArgs({
2230
- incomingAsset: incomingAsset,
2231
- minIncomingAssetAmount: minIncomingAssetAmount,
3028
+ minIncomingSusdAmount: minIncomingSusdAmount,
2232
3029
  outgoingAsset: outgoingAsset,
2233
3030
  outgoingAssetAmount: outgoingAssetAmount
2234
3031
  });
2235
3032
  _context3.next = 7;
2236
3033
  return callOnIntegrationArgs({
2237
3034
  adapter: synthetixAdapter,
2238
- selector: takeOrderSelector,
2239
- encodedCallArgs: takeOrderArgs
3035
+ encodedCallArgs: takeOrderArgs,
3036
+ selector: takeOrderSelector
2240
3037
  });
2241
3038
 
2242
3039
  case 7:
@@ -2283,18 +3080,18 @@ function _uniswapV2Lend() {
2283
3080
 
2284
3081
  case 6:
2285
3082
  lendArgs = uniswapV2LendArgs({
2286
- tokenA: tokenA,
2287
- tokenB: tokenB,
2288
3083
  amountADesired: amountADesired,
2289
- amountBDesired: amountBDesired,
2290
3084
  amountAMin: amountAMin,
3085
+ amountBDesired: amountBDesired,
2291
3086
  amountBMin: amountBMin,
2292
- minPoolTokenAmount: minPoolTokenAmount
3087
+ minPoolTokenAmount: minPoolTokenAmount,
3088
+ tokenA: tokenA,
3089
+ tokenB: tokenB
2293
3090
  });
2294
3091
  callArgs = callOnIntegrationArgs({
2295
3092
  adapter: uniswapV2LiquidityAdapter,
2296
- selector: lendSelector,
2297
- encodedCallArgs: lendArgs
3093
+ encodedCallArgs: lendArgs,
3094
+ selector: lendSelector
2298
3095
  });
2299
3096
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2300
3097
  _context.next = 11;
@@ -2326,16 +3123,16 @@ function _uniswapV2Redeem() {
2326
3123
  case 0:
2327
3124
  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;
2328
3125
  redeemArgs = uniswapV2RedeemArgs({
3126
+ amountAMin: amountAMin,
3127
+ amountBMin: amountBMin,
2329
3128
  poolTokenAmount: poolTokenAmount,
2330
3129
  tokenA: tokenA,
2331
- tokenB: tokenB,
2332
- amountAMin: amountAMin,
2333
- amountBMin: amountBMin
3130
+ tokenB: tokenB
2334
3131
  });
2335
3132
  callArgs = callOnIntegrationArgs({
2336
3133
  adapter: uniswapV2LiquidityAdapter,
2337
- selector: redeemSelector,
2338
- encodedCallArgs: redeemArgs
3134
+ encodedCallArgs: redeemArgs,
3135
+ selector: redeemSelector
2339
3136
  });
2340
3137
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2341
3138
  _context2.next = 6;
@@ -2378,14 +3175,14 @@ function _uniswapV2TakeOrder() {
2378
3175
 
2379
3176
  case 4:
2380
3177
  takeOrderArgs = uniswapV2TakeOrderArgs({
2381
- path: path,
3178
+ minIncomingAssetAmount: minIncomingAssetAmount,
2382
3179
  outgoingAssetAmount: outgoingAssetAmount,
2383
- minIncomingAssetAmount: minIncomingAssetAmount
3180
+ path: path
2384
3181
  });
2385
3182
  callArgs = callOnIntegrationArgs({
2386
3183
  adapter: uniswapV2ExchangeAdapter,
2387
- selector: takeOrderSelector,
2388
- encodedCallArgs: takeOrderArgs
3184
+ encodedCallArgs: takeOrderArgs,
3185
+ selector: takeOrderSelector
2389
3186
  });
2390
3187
  return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2391
3188
 
@@ -2405,7 +3202,7 @@ function uniswapV3TakeOrder(_x) {
2405
3202
 
2406
3203
  function _uniswapV3TakeOrder() {
2407
3204
  _uniswapV3TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2408
- var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, takeOrderArgs, callArgs;
3205
+ var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, vaultProxy, takeOrderArgs, callArgs;
2409
3206
 
2410
3207
  return _regeneratorRuntime.wrap(function _callee$(_context) {
2411
3208
  while (1) {
@@ -2414,35 +3211,33 @@ function _uniswapV3TakeOrder() {
2414
3211
  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;
2415
3212
 
2416
3213
  if (!seedFund) {
2417
- _context.next = 9;
3214
+ _context.next = 7;
2418
3215
  break;
2419
3216
  }
2420
3217
 
2421
- _context.t0 = pathAddresses[0];
2422
- _context.next = 5;
3218
+ _context.next = 4;
2423
3219
  return comptrollerProxy.getVaultProxy();
2424
3220
 
2425
- case 5:
2426
- _context.t1 = _context.sent;
2427
- _context.t2 = outgoingAssetAmount;
2428
- _context.next = 9;
2429
- return _context.t0.transfer.call(_context.t0, _context.t1, _context.t2);
3221
+ case 4:
3222
+ vaultProxy = _context.sent;
3223
+ _context.next = 7;
3224
+ return pathAddresses[0].transfer(vaultProxy, outgoingAssetAmount);
2430
3225
 
2431
- case 9:
3226
+ case 7:
2432
3227
  takeOrderArgs = uniswapV3TakeOrderArgs({
2433
- pathAddresses: pathAddresses,
2434
- pathFees: pathFees,
3228
+ minIncomingAssetAmount: minIncomingAssetAmount,
2435
3229
  outgoingAssetAmount: outgoingAssetAmount,
2436
- minIncomingAssetAmount: minIncomingAssetAmount
3230
+ pathAddresses: pathAddresses,
3231
+ pathFees: pathFees
2437
3232
  });
2438
3233
  callArgs = callOnIntegrationArgs({
2439
3234
  adapter: uniswapV3Adapter,
2440
- selector: takeOrderSelector,
2441
- encodedCallArgs: takeOrderArgs
3235
+ encodedCallArgs: takeOrderArgs,
3236
+ selector: takeOrderSelector
2442
3237
  });
2443
3238
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2444
3239
 
2445
- case 12:
3240
+ case 10:
2446
3241
  case "end":
2447
3242
  return _context.stop();
2448
3243
  }
@@ -2467,12 +3262,12 @@ function _yearnVaultV2Lend() {
2467
3262
  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;
2468
3263
  callArgs = callOnIntegrationArgs({
2469
3264
  adapter: yearnVaultV2Adapter,
2470
- selector: lendSelector,
2471
3265
  encodedCallArgs: yearnVaultV2LendArgs({
2472
- yVault: yVault,
3266
+ minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount,
2473
3267
  outgoingUnderlyingAmount: outgoingUnderlyingAmount,
2474
- minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount
2475
- })
3268
+ yVault: yVault
3269
+ }),
3270
+ selector: lendSelector
2476
3271
  });
2477
3272
  return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2478
3273
 
@@ -2501,13 +3296,13 @@ function _yearnVaultV2Redeem() {
2501
3296
  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;
2502
3297
  callArgs = callOnIntegrationArgs({
2503
3298
  adapter: yearnVaultV2Adapter,
2504
- selector: redeemSelector,
2505
3299
  encodedCallArgs: yearnVaultV2RedeemArgs({
2506
- yVault: yVault,
2507
3300
  maxOutgoingYVaultSharesAmount: maxOutgoingYVaultSharesAmount,
2508
3301
  minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2509
- slippageToleranceBps: slippageToleranceBps
2510
- })
3302
+ slippageToleranceBps: slippageToleranceBps,
3303
+ yVault: yVault
3304
+ }),
3305
+ selector: redeemSelector
2511
3306
  });
2512
3307
  return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2513
3308
 
@@ -2539,8 +3334,8 @@ function _zeroExV2TakeOrder() {
2539
3334
  });
2540
3335
  callArgs = callOnIntegrationArgs({
2541
3336
  adapter: zeroExV2Adapter,
2542
- selector: takeOrderSelector,
2543
- encodedCallArgs: takeOrderArgs
3337
+ encodedCallArgs: takeOrderArgs,
3338
+ selector: takeOrderSelector
2544
3339
  });
2545
3340
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2546
3341
 
@@ -2683,7 +3478,8 @@ function assertEvent(receipt, event, match) {
2683
3478
  var events = extractEvent(receipt, event);
2684
3479
  expect(events.length).toBe(1);
2685
3480
  expect(receipt).toHaveEmittedWith(event, match);
2686
- var args = (_events$shift = events.shift()) === null || _events$shift === void 0 ? void 0 : _events$shift.args;
3481
+ 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
3482
+
2687
3483
  return args;
2688
3484
  }
2689
3485
  function assertNoEvent(receipt, event) {
@@ -2844,6 +3640,7 @@ function _createComptrollerProxy() {
2844
3640
  comptrollerProxyContract = _context.sent;
2845
3641
  return _context.abrupt("return", {
2846
3642
  comptrollerProxy: new ComptrollerLib(comptrollerProxyContract, signer),
3643
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2847
3644
  receipt: comptrollerProxyContract.deployment
2848
3645
  });
2849
3646
 
@@ -2876,14 +3673,14 @@ function _createMigrationRequest() {
2876
3673
  case 3:
2877
3674
  receipt = _context2.sent;
2878
3675
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2879
- creator: signer,
2880
3676
  comptrollerProxy: expect.any(String),
3677
+ creator: signer,
2881
3678
  denominationAsset: denominationAsset,
2882
3679
  sharesActionTimelock: BigNumber.from(sharesActionTimelock)
2883
3680
  });
2884
3681
  return _context2.abrupt("return", {
2885
- receipt: receipt,
2886
- comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3682
+ comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3683
+ receipt: receipt
2887
3684
  });
2888
3685
 
2889
3686
  case 6:
@@ -2902,29 +3699,29 @@ function createNewFund(_x3) {
2902
3699
 
2903
3700
  function _createNewFund() {
2904
3701
  _createNewFund = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2905
- 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;
3702
+ 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;
2906
3703
 
2907
3704
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2908
3705
  while (1) {
2909
3706
  switch (_context3.prev = _context3.next) {
2910
3707
  case 0:
2911
- 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;
3708
+ 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;
2912
3709
  _context3.next = 3;
2913
- return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
3710
+ return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, fundSymbol, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
2914
3711
 
2915
3712
  case 3:
2916
3713
  receipt = _context3.sent;
2917
3714
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2918
- creator: signer,
2919
3715
  comptrollerProxy: expect.any(String),
3716
+ creator: signer,
2920
3717
  denominationAsset: denominationAsset,
2921
3718
  sharesActionTimelock: BigNumber.from(sharesActionTimelock)
2922
3719
  });
2923
3720
  comptrollerProxy = new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer);
2924
3721
  newFundDeployedArgs = assertEvent(receipt, 'NewFundCreated', {
3722
+ comptrollerProxy: comptrollerProxy,
2925
3723
  creator: signer,
2926
- vaultProxy: expect.any(String),
2927
- comptrollerProxy: comptrollerProxy
3724
+ vaultProxy: expect.any(String)
2928
3725
  });
2929
3726
  vaultProxy = new VaultLib(newFundDeployedArgs.vaultProxy, signer);
2930
3727
 
@@ -2975,14 +3772,14 @@ function _createReconfigurationRequest() {
2975
3772
  case 3:
2976
3773
  receipt = _context4.sent;
2977
3774
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2978
- creator: signer,
2979
3775
  comptrollerProxy: expect.any(String),
3776
+ creator: signer,
2980
3777
  denominationAsset: denominationAsset,
2981
3778
  sharesActionTimelock: BigNumber.from(sharesActionTimelock)
2982
3779
  });
2983
3780
  return _context4.abrupt("return", {
2984
- receipt: receipt,
2985
- comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3781
+ comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3782
+ receipt: receipt
2986
3783
  });
2987
3784
 
2988
3785
  case 6:
@@ -3064,16 +3861,49 @@ function _setupGasRelayerPaymaster() {
3064
3861
  return _setupGasRelayerPaymaster.apply(this, arguments);
3065
3862
  }
3066
3863
 
3067
- function vaultCallCurveMinterMint(_ref) {
3068
- var comptrollerProxy = _ref.comptrollerProxy,
3069
- minter = _ref.minter,
3070
- gauge = _ref.gauge;
3071
- return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintSelector, encodeArgs(['address'], [gauge]));
3864
+ function vaultCallCreateNewList(_x) {
3865
+ return _vaultCallCreateNewList.apply(this, arguments);
3866
+ }
3867
+
3868
+ function _vaultCallCreateNewList() {
3869
+ _vaultCallCreateNewList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
3870
+ var addressListRegistry, comptrollerProxy, items, owner, signer, updateType, listCount;
3871
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
3872
+ while (1) {
3873
+ switch (_context.prev = _context.next) {
3874
+ case 0:
3875
+ addressListRegistry = _ref.addressListRegistry, comptrollerProxy = _ref.comptrollerProxy, items = _ref.items, owner = _ref.owner, signer = _ref.signer, updateType = _ref.updateType;
3876
+ _context.next = 3;
3877
+ return comptrollerProxy.connect(signer).vaultCallOnContract(addressListRegistry.address, addressListRegistryCreateListSelector, encodeArgs(['address', 'uint8', 'address[]'], [owner, updateType, items]));
3878
+
3879
+ case 3:
3880
+ _context.next = 5;
3881
+ return addressListRegistry.getListCount();
3882
+
3883
+ case 5:
3884
+ listCount = _context.sent;
3885
+ return _context.abrupt("return", listCount.sub(1));
3886
+
3887
+ case 7:
3888
+ case "end":
3889
+ return _context.stop();
3890
+ }
3891
+ }
3892
+ }, _callee);
3893
+ }));
3894
+ return _vaultCallCreateNewList.apply(this, arguments);
3072
3895
  }
3073
- function vaultCallCurveMinterMintMany(_ref2) {
3896
+
3897
+ function vaultCallCurveMinterMint(_ref2) {
3074
3898
  var comptrollerProxy = _ref2.comptrollerProxy,
3075
3899
  minter = _ref2.minter,
3076
- gauges = _ref2.gauges;
3900
+ gauge = _ref2.gauge;
3901
+ return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintSelector, encodeArgs(['address'], [gauge]));
3902
+ }
3903
+ function vaultCallCurveMinterMintMany(_ref3) {
3904
+ var comptrollerProxy = _ref3.comptrollerProxy,
3905
+ minter = _ref3.minter,
3906
+ gauges = _ref3.gauges;
3077
3907
  var gaugesFormatted = new Array(8).fill(constants.AddressZero);
3078
3908
 
3079
3909
  for (var i in gauges) {
@@ -3082,16 +3912,16 @@ function vaultCallCurveMinterMintMany(_ref2) {
3082
3912
 
3083
3913
  return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintManySelector, encodeArgs(['address[8]'], [gaugesFormatted]));
3084
3914
  }
3085
- function vaultCallCurveMinterToggleApproveMint(_ref3) {
3086
- var comptrollerProxy = _ref3.comptrollerProxy,
3087
- minter = _ref3.minter,
3088
- account = _ref3.account;
3915
+ function vaultCallCurveMinterToggleApproveMint(_ref4) {
3916
+ var comptrollerProxy = _ref4.comptrollerProxy,
3917
+ minter = _ref4.minter,
3918
+ account = _ref4.account;
3089
3919
  return comptrollerProxy.vaultCallOnContract(minter, curveMinterToggleApproveMintSelector, encodeArgs(['address'], [account]));
3090
3920
  }
3091
- function vaultCallStartAssetBypassTimelock(_ref4) {
3092
- var comptrollerProxy = _ref4.comptrollerProxy,
3093
- contract = _ref4.contract,
3094
- asset = _ref4.asset;
3921
+ function vaultCallStartAssetBypassTimelock(_ref5) {
3922
+ var comptrollerProxy = _ref5.comptrollerProxy,
3923
+ contract = _ref5.contract,
3924
+ asset = _ref5.asset;
3095
3925
  return comptrollerProxy.vaultCallOnContract(contract, sighash(utils.FunctionFragment.fromString('startAssetBypassTimelock(address)')), encodeArgs(['address'], [asset]));
3096
3926
  }
3097
3927
 
@@ -3147,8 +3977,8 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
3147
3977
  // 50% discount
3148
3978
  mlnAmountToBurn = mlnValueOfBuyback.div(2);
3149
3979
  return _context2.abrupt("return", {
3150
- mlnValue: mlnValueOfBuyback,
3151
- mlnAmountToBurn: mlnAmountToBurn
3980
+ mlnAmountToBurn: mlnAmountToBurn,
3981
+ mlnValue: mlnValueOfBuyback
3152
3982
  });
3153
3983
 
3154
3984
  case 8:
@@ -3164,43 +3994,60 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
3164
3994
  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; }
3165
3995
 
3166
3996
  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; }
3997
+
3998
+ /* eslint-disable sort-keys-fix/sort-keys-fix */
3167
3999
  var whales = {
3168
- wdgld: '0x9aa65464b4cfbe3dc2bdb3df412aee2b3de86687',
3169
- adai: '0x62e41b1185023bcc14a465d350e1dde341557925',
3170
- ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
4000
+ // primitives
3171
4001
  bat: '0x12274c71304bc0e6b38a56b94d2949b118feb838',
3172
4002
  bnb: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3173
- bnt: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3174
- comp: '0xC89b6f0146642688bb254bF93C28fcCF1E182C81',
4003
+ bnt: '0x7d1ed1601a12a172269436fa95fe156650603c1d',
4004
+ busd: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
4005
+ comp: '0x0f50d31b3eaefd65236dd3736b863cffa4c63c4e',
3175
4006
  crv: '0x4ce799e6eD8D64536b67dD428565d52A531B3640',
3176
- dai: '0x16463c0fdb6ba9618909f5b120ea1581618c1b9e',
3177
- knc: '0x9d1167df52328db20d5d77288dce6ae3ef3a3e1f',
4007
+ dai: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
4008
+ knc: '0x09d51654bd9efbfcb56da3491989cc1444095fff',
3178
4009
  ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
3179
4010
  link: '0xbe6977e08d4479c0a6777539ae0e8fa27be4e9d6',
3180
4011
  mana: '0xefb94ac00f1cee8a89d5c3f49faa799da6f03024',
3181
4012
  mln: '0xd8f8a53945bcfbbc19da162aa405e662ef71c40d',
4013
+ ohm: '0x71a53aff36a699110d66d6bdfff2320caf8d2d59',
3182
4014
  rep: '0xc6a043b07d33b6f30d8cb501026c391cfd25abe1',
3183
4015
  ren: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
4016
+ susd: '0xa5f7a39e55d7878bc5bd754ee5d6bd7a7662355b',
4017
+ sohm: '0xf280f037cdbda99727ddf5dfede91e68fa78605c',
3184
4018
  uni: '0x47173b170c64d16393a52e6c480b3ad8c302ba1e',
3185
4019
  usdc: '0xae2d4617c862309a3d75a0ffb358c7a5009c673f',
3186
4020
  usdt: '0x5041ed759dd4afc3a72b8192c143f72f4724081a',
3187
4021
  weth: '0xe08A8b19e5722a201EaF20A6BC595eF655397bd5',
3188
4022
  zrx: '0x206376e8940e42538781cd94ef024df3c1e0fd43',
3189
- cbat: '0x285306442cd985cab2c30515cfdab106fca7bc44',
4023
+ // aTokens
4024
+ ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
4025
+ ausdt: '0x7d6149ad9a573a6e2ca6ebf7d4897c1b766841b4',
4026
+ // cTokens
3190
4027
  ccomp: '0xd74f186194ab9219fafac5c2fe4b3270169666db',
3191
- cdai: '0x2bddEd18E2CA464355091266B7616956944ee7eE',
4028
+ cdai: '0xab4ce310054a11328685ece1043211b68ba5d082',
3192
4029
  ceth: '0x8aceab8167c80cb8b3de7fa6228b889bb1130ee8',
3193
- crep: '0xc2386de1b7271a87b416f4605d500846e826a185',
3194
- cuni: '0x8889ff5b6323e71c28c26d2c34b8bb52654f00a6',
3195
- cusdc: '0xb3bd459e0598dde1fe84b1d0a1430be175b5d5be',
3196
- czrx: '0x57ca561798413a20508b6bc997481e784f3e6e5f',
4030
+ cuni: '0x39d8014b4f40d2cbc441137011d32023f4f1fd87',
4031
+ cusdc: '0xe1ed4da4284924ddaf69983b4d813fb1be58c380',
4032
+ // fTokens
4033
+ fdai7: '0x88884e35d7006ae84efef09ee6bc6a43dd8e2bb8',
4034
+ feth7: '0xcd2ba6a4d50745b0b4096186f925115387852c15',
4035
+ fdai8: '0x93f3f612a525a59523e91cc5552f718df9fc0746',
4036
+ ftribe8: '0xdb5ac83c137321da29a59a7592232bc4ed461730',
4037
+ // ptTokens
4038
+ ptUsdc: '0xd18236cd213f39d078177b6f6908f0e44e88e4aa',
4039
+ // synths (unsupported)
3197
4040
  seth: '0xc34a7c65aa08cb36744bda8eeec7b8e9891e147c',
3198
- seur: '0xe896e539e557bc751860a7763c8dd589af1698ce',
3199
- susd: '0x49BE88F0fcC3A8393a59d3688480d7D253C37D2A',
4041
+ sxag: '0x40d68c490bf7262ec40048099aec23535f734be2',
4042
+ sxau: '0x92eb453b7b5b8d41edb44e2c8b8b53eb70a482c7',
4043
+ // misc
3200
4044
  lidoSteth: '0x31f644e2dd5d74f5c8d6d9de89dd517474d51800',
3201
- eurs: '0x98ed26de6451db36246672df78ae7c50f2c76f6d',
3202
- idle: '0x34aaa3d5a73d6f9594326d0422ce69748f09b14f'
4045
+ ust: '0xf584f8728b874a6a5c7a8d4d387c9aae9172d621',
4046
+ // Curve steth pool related
4047
+ stecrv: '0x56c915758ad3f76fd287fff7563ee313142fb663'
3203
4048
  };
4049
+ /* eslint-enable sort-keys-fix/sort-keys-fix */
4050
+
3204
4051
  function unlockWhale(_x) {
3205
4052
  return _unlockWhale.apply(this, arguments);
3206
4053
  }
@@ -3372,8 +4219,8 @@ function _relayTransaction() {
3372
4219
  defaultMaxAcceptance = BigNumber.from(150000); // NOTE: There is an inconsistency between how the typed data object shape and the relayCall argument.
3373
4220
 
3374
4221
  mergedRelayRequest = {
3375
- request: relayRequest,
3376
- relayData: relayData
4222
+ relayData: relayData,
4223
+ request: relayRequest
3377
4224
  };
3378
4225
  relayHub = new IGsnRelayHub(options.relayHub, provider.getSigner(options.relayWorker));
3379
4226
  return _context.abrupt("return", relayHub.relayCall.args(defaultMaxAcceptance, mergedRelayRequest, signedRelayRequest, '0x', defaultGasLimit).gas(defaultGasLimit, relayData.gasPrice).send());
@@ -3392,14 +4239,14 @@ var relayed = utils.EventFragment.fromString('TransactionRelayed(address indexed
3392
4239
  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)');
3393
4240
  function assertDidRelay(receipt) {
3394
4241
  return assertEvent(receipt, relayed, {
3395
- relayManager: expect.any(String),
3396
- relayWorker: expect.any(String),
4242
+ charge: expect.anything(),
3397
4243
  from: expect.any(String),
3398
- to: expect.any(String),
3399
4244
  paymaster: expect.any(String),
4245
+ relayManager: expect.any(String),
4246
+ relayWorker: expect.any(String),
3400
4247
  selector: expect.any(String),
3401
4248
  status: expect.anything(),
3402
- charge: expect.anything()
4249
+ to: expect.any(String)
3403
4250
  });
3404
4251
  }
3405
4252
  function assertDidRelaySuccessfully(receipt) {
@@ -3416,14 +4263,14 @@ function assertDidRelayWithCharge(receipt, amount, tolerance) {
3416
4263
  }
3417
4264
  function assertPaymasterDidReject(receipt) {
3418
4265
  return assertEvent(receipt, rejected, {
3419
- relayManager: expect.any(String),
3420
- paymaster: expect.any(String),
3421
4266
  from: expect.any(String),
3422
- to: expect.any(String),
4267
+ innerGasUsed: expect.anything(),
4268
+ paymaster: expect.any(String),
4269
+ reason: expect.any(String),
4270
+ relayManager: expect.any(String),
3423
4271
  relayWorker: expect.any(String),
3424
4272
  selector: expect.any(String),
3425
- innerGasUsed: expect.anything(),
3426
- reason: expect.any(String)
4273
+ to: expect.any(String)
3427
4274
  });
3428
4275
  }
3429
4276
  function assertPaymasterDidRejectForReason(receipt, reason) {
@@ -3431,4 +4278,4 @@ function assertPaymasterDidRejectForReason(receipt, reason) {
3431
4278
  expect(utils.toUtf8String('0x' + params.reason.substr(138))).toMatch(reason);
3432
4279
  }
3433
4280
 
3434
- export { CurveLiquidityGaugeV2, CurveMinter, CurveSwaps, ICompoundComptroller, UniswapV2Factory, 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, 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, mockExternalPositionAddDebtAssets, mockExternalPositionAddManagedAssets, mockExternalPositionRemoveDebtAssets, mockExternalPositionRemoveManagedAssets, mockGenericRemoveOnlySelector, mockGenericSwap, mockGenericSwapASelector, mockGenericSwapArgs, mockGenericSwapBSelector, mockGenericSwapDirectFromVaultSelector, mockGenericSwapViaApprovalSelector, paraSwapV4GenerateDummyPaths, paraSwapV4TakeOrder, reactivateExternalPosition, redeemSharesForSpecificAssets, redeemSharesInKind, relayTransaction, removeExternalPosition, removeTrackedAssetsFromVault, setupGasRelayerPaymaster, synthetixAssignExchangeDelegate, synthetixResolveAddress, synthetixTakeOrder, transactionTimestamp, uniswapV2Lend, uniswapV2Redeem, uniswapV2TakeOrder, uniswapV3TakeOrder, unlockAllWhales, unlockWhale, unlockWhales, updateChainlinkAggregator, vaultCallCurveMinterMint, vaultCallCurveMinterMintMany, vaultCallCurveMinterToggleApproveMint, vaultCallStartAssetBypassTimelock, yearnVaultV2Lend, yearnVaultV2Redeem, zeroExV2TakeOrder };
4281
+ export { CurveLiquidityGaugeV2, CurveMinter, CurveRegistry, CurveSwaps, ICompoundComptroller, IUniswapV3NonFungibleTokenManager, UniswapV2Factory, UniswapV3FeeAmount, aaveLend, aaveRedeem, addNewAssetsToFund, addTrackedAssetsToVault, assertCompoundLend, assertCompoundRedeem, assertDidRelay, assertDidRelaySuccessfully, assertDidRelayWithCharge, assertDidRelayWithError, assertEvent, assertNoEvent, assertPaymasterDidReject, assertPaymasterDidRejectForReason, buyShares, buySharesFunction, calcMlnValueAndBurnAmountForSharesBuyback, callOnExtension, callOnExternalPosition, compoundClaim, compoundDebtPositionAddCollateral, compoundDebtPositionBorrow, compoundDebtPositionClaimComp, compoundDebtPositionRemoveCollateral, compoundDebtPositionRepayBorrow, compoundLend, compoundRedeem, createCompoundDebtPosition, createComptrollerProxy, createExternalPosition, createFundDeployer, createMigrationRequest, createMockExternalPosition, createNewFund, createReconfigurationRequest, createUniswapV3LiquidityPosition, createVaultProxy, curveAaveClaimRewards, curveAaveLend, curveAaveLendAndStake, curveAaveRedeem, curveAaveStake, curveAaveUnstake, curveAaveUnstakeAndRedeem, curveClaimRewards, curveLend, curveLendAndStake, curveRedeem, curveSethClaimRewards, curveSethLend, curveSethLendAndStake, curveSethRedeem, curveSethStake, curveSethUnstake, curveSethUnstakeAndRedeem, curveStake, curveStethClaimRewards, curveStethLend, curveStethLendAndStake, curveStethRedeem, curveStethStake, curveStethUnstake, curveStethUnstakeAndRedeem, curveTakeOrder, curveUnstake, curveUnstakeAndRedeem, deployProtocolFixture, generateFeeManagerConfigWithMockFees, generateMockFees, generateMockPolicies, generatePolicyManagerConfigWithMockPolicies, getAssetBalances, getAssetUnit, getNamedSigner, getUnnamedSigners, idleClaimRewards, idleLend, idleRedeem, mockExternalPositionAddDebtAssets, mockExternalPositionAddManagedAssets, mockExternalPositionRemoveDebtAssets, mockExternalPositionRemoveManagedAssets, mockGenericRemoveOnlySelector, mockGenericSwap, mockGenericSwapASelector, mockGenericSwapArgs, mockGenericSwapBSelector, mockGenericSwapDirectFromVaultSelector, mockGenericSwapViaApprovalSelector, olympusV2Stake, olympusV2Unstake, paraSwapV4GenerateDummyPaths, paraSwapV4TakeOrder, paraSwapV5GenerateDummyPaths, paraSwapV5TakeOrder, poolTogetherV4ClaimRewards, poolTogetherV4Lend, poolTogetherV4Redeem, reactivateExternalPosition, redeemSharesForSpecificAssets, redeemSharesInKind, relayTransaction, removeExternalPosition, removeTrackedAssetsFromVault, setupGasRelayerPaymaster, synthetixAssignExchangeDelegate, synthetixRedeem, 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 };