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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -7,8 +7,8 @@ var _regeneratorRuntime = require('@babel/runtime/regenerator');
7
7
  var protocol = require('@enzymefinance/protocol');
8
8
  var ethers = require('ethers');
9
9
  var ethers$1 = require('@enzymefinance/ethers');
10
- var src = require('@enzymefinance/protocol/src');
11
10
  var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
11
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
12
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
13
13
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
14
14
 
@@ -112,77 +112,84 @@ function _deployProtocolFixture() {
112
112
  config = fixture['Config'].linkedData; // prettier-ignore
113
113
 
114
114
  deployment = {
115
- dispatcher: new protocol.Dispatcher(fixture['Dispatcher'].address, deployer),
116
- vaultLib: new protocol.VaultLib(fixture['VaultLib'].address, deployer),
117
- fundDeployer: new protocol.FundDeployer(fixture['FundDeployer'].address, deployer),
118
- policyManager: new protocol.PolicyManager(fixture['PolicyManager'].address, deployer),
115
+ aaveAdapter: new protocol.AaveAdapter(fixture['AaveAdapter'].address, deployer),
119
116
  aavePriceFeed: new protocol.AavePriceFeed(fixture['AavePriceFeed'].address, deployer),
117
+ addressListRegistry: new protocol.AddressListRegistry(fixture['AddressListRegistry'].address, deployer),
118
+ allowedAdapterIncomingAssetsPolicy: new protocol.AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
119
+ allowedAdaptersPolicy: new protocol.AllowedAdaptersPolicy(fixture['AllowedAdaptersPolicy'].address, deployer),
120
+ allowedAssetsForRedemptionPolicy: new protocol.AllowedAssetsForRedemptionPolicy(fixture['AllowedAssetsForRedemptionPolicy'].address, deployer),
121
+ allowedDepositRecipientsPolicy: new protocol.AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
122
+ allowedExternalPositionTypesPolicy: new protocol.AllowedExternalPositionTypesPolicy(fixture['AllowedExternalPositionTypesPolicy'].address, deployer),
123
+ allowedSharesTransferRecipientsPolicy: new protocol.AllowedSharesTransferRecipientsPolicy(fixture['AllowedSharesTransferRecipientsPolicy'].address, deployer),
124
+ compoundAdapter: new protocol.CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
120
125
  compoundDebtPositionLib: new protocol.CompoundDebtPositionLib(fixture['CompoundDebtPositionLib'].address, deployer),
121
126
  compoundDebtPositionParser: new protocol.CompoundDebtPositionParser(fixture['CompoundDebtPositionParser'].address, deployer),
122
127
  compoundPriceFeed: new protocol.CompoundPriceFeed(fixture['CompoundPriceFeed'].address, deployer),
123
- curvePriceFeed: new protocol.CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
124
- idlePriceFeed: new protocol.IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
125
- lidoStethPriceFeed: new protocol.LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
126
- revertingPriceFeed: new protocol.RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
127
- synthetixPriceFeed: new protocol.SynthetixPriceFeed(fixture['SynthetixPriceFeed'].address, deployer),
128
- stakehoundEthPriceFeed: new protocol.StakehoundEthPriceFeed(fixture['StakehoundEthPriceFeed'].address, deployer),
129
- yearnVaultV2PriceFeed: new protocol.YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
130
- valueInterpreter: new protocol.ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
131
- uniswapV2PoolPriceFeed: new protocol.UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
132
- integrationManager: new protocol.IntegrationManager(fixture['IntegrationManager'].address, deployer),
133
- externalPositionManager: new protocol.ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
134
- externalPositionFactory: new protocol.ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
128
+ comptrollerLib: new protocol.ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
129
+ convexCurveLpStakingAdapter: new protocol.ConvexCurveLpStakingAdapter(fixture['ConvexCurveLpStakingAdapter'].address, deployer),
130
+ convexCurveLpStakingWrapperFactory: new protocol.ConvexCurveLpStakingWrapperFactory(fixture['ConvexCurveLpStakingWrapperFactory'].address, deployer),
131
+ convexCurveLpStakingWrapperPriceFeed: new protocol.ConvexCurveLpStakingWrapperPriceFeed(fixture['ConvexCurveLpStakingWrapperPriceFeed'].address, deployer),
132
+ cumulativeSlippageTolerancePolicy: new protocol.CumulativeSlippageTolerancePolicy(fixture['CumulativeSlippageTolerancePolicy'].address, deployer),
133
+ curveExchangeAdapter: new protocol.CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
135
134
  curveLiquidityAaveAdapter: new protocol.CurveLiquidityAaveAdapter(fixture['CurveLiquidityAaveAdapter'].address, deployer),
136
- curveLiquidityEursAdapter: new protocol.CurveLiquidityEursAdapter(fixture['CurveLiquidityEursAdapter'].address, deployer),
135
+ curveLiquidityAdapter: new protocol.CurveLiquidityAdapter(fixture['CurveLiquidityAdapter'].address, deployer),
137
136
  curveLiquiditySethAdapter: new protocol.CurveLiquiditySethAdapter(fixture['CurveLiquiditySethAdapter'].address, deployer),
138
137
  curveLiquidityStethAdapter: new protocol.CurveLiquidityStethAdapter(fixture['CurveLiquidityStethAdapter'].address, deployer),
139
- aaveAdapter: new protocol.AaveAdapter(fixture['AaveAdapter'].address, deployer),
140
- idleAdapter: new protocol.IdleAdapter(fixture['IdleAdapter'].address, deployer),
141
- paraSwapV4Adapter: new protocol.ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
142
- synthetixAdapter: new protocol.SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
143
- yearnVaultV2Adapter: new protocol.YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
144
- zeroExV2Adapter: new protocol.ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer),
145
- compoundAdapter: new protocol.CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
146
- uniswapV2ExchangeAdapter: new protocol.UniswapV2ExchangeAdapter(fixture['UniswapV2ExchangeAdapter'].address, deployer),
147
- uniswapV2LiquidityAdapter: new protocol.UniswapV2LiquidityAdapter(fixture['UniswapV2LiquidityAdapter'].address, deployer),
148
- uniswapV3Adapter: new protocol.UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
149
- curveExchangeAdapter: new protocol.CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
150
- feeManager: new protocol.FeeManager(fixture['FeeManager'].address, deployer),
151
- comptrollerLib: new protocol.ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
138
+ curvePriceFeed: new protocol.CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
139
+ depositWrapper: new protocol.DepositWrapper(fixture['DepositWrapper'].address, deployer),
140
+ dispatcher: new protocol.Dispatcher(fixture['Dispatcher'].address, deployer),
152
141
  entranceRateBurnFee: new protocol.EntranceRateBurnFee(fixture['EntranceRateBurnFee'].address, deployer),
153
142
  entranceRateDirectFee: new protocol.EntranceRateDirectFee(fixture['EntranceRateDirectFee'].address, deployer),
154
143
  exitRateBurnFee: new protocol.ExitRateBurnFee(fixture['ExitRateBurnFee'].address, deployer),
155
144
  exitRateDirectFee: new protocol.ExitRateDirectFee(fixture['ExitRateDirectFee'].address, deployer),
145
+ externalPositionFactory: new protocol.ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
146
+ externalPositionManager: new protocol.ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
147
+ feeManager: new protocol.FeeManager(fixture['FeeManager'].address, deployer),
148
+ fundDeployer: new protocol.FundDeployer(fixture['FundDeployer'].address, deployer),
149
+ fundValueCalculator: new protocol.FundValueCalculator(fixture['FundValueCalculator'].address, deployer),
150
+ fundValueCalculatorRouter: new protocol.FundValueCalculatorRouter(fixture['FundValueCalculatorRouter'].address, deployer),
151
+ fundValueCalculatorUsdWrapper: new protocol.FundValueCalculatorUsdWrapper(fixture['FundValueCalculatorUsdWrapper'].address, deployer),
152
+ fuseAdapter: new protocol.FuseAdapter(fixture['FuseAdapter'].address, deployer),
153
+ fusePriceFeed: new protocol.FusePriceFeed(fixture['FusePriceFeed'].address, deployer),
154
+ gasRelayPaymasterFactory: new protocol.GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer),
155
+ idleAdapter: new protocol.IdleAdapter(fixture['IdleAdapter'].address, deployer),
156
+ idlePriceFeed: new protocol.IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
157
+ integrationManager: new protocol.IntegrationManager(fixture['IntegrationManager'].address, deployer),
158
+ lidoStethPriceFeed: new protocol.LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
156
159
  managementFee: new protocol.ManagementFee(fixture['ManagementFee'].address, deployer),
157
- performanceFee: new protocol.PerformanceFee(fixture['PerformanceFee'].address, deployer),
158
- depositWrapper: new protocol.DepositWrapper(fixture['DepositWrapper'].address, deployer),
159
- unpermissionedActionsWrapper: new protocol.UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
160
- allowedAdapterIncomingAssetsPolicy: new protocol.AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
160
+ minAssetBalancesPostRedemptionPolicy: new protocol.MinAssetBalancesPostRedemptionPolicy(fixture['MinAssetBalancesPostRedemptionPolicy'].address, deployer),
161
161
  minMaxInvestmentPolicy: new protocol.MinMaxInvestmentPolicy(fixture['MinMaxInvestmentPolicy'].address, deployer),
162
- allowedDepositRecipientsPolicy: new protocol.AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
163
- guaranteedRedemptionPolicy: new protocol.GuaranteedRedemptionPolicy(fixture['GuaranteedRedemptionPolicy'].address, deployer),
164
- assetFinalityResolver: new protocol.AssetFinalityResolver(fixture['AssetFinalityResolver'].address, deployer),
162
+ olympusV2Adapter: new protocol.OlympusV2Adapter(fixture['OlympusV2Adapter'].address, deployer),
163
+ onlyRemoveDustExternalPositionPolicy: new protocol.OnlyRemoveDustExternalPositionPolicy(fixture['OnlyRemoveDustExternalPositionPolicy'].address, deployer),
164
+ onlyUntrackDustOrPricelessAssetsPolicy: new protocol.OnlyUntrackDustOrPricelessAssetsPolicy(fixture['OnlyUntrackDustOrPricelessAssetsPolicy'].address, deployer),
165
+ paraSwapV4Adapter: new protocol.ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
166
+ paraSwapV5Adapter: new protocol.ParaSwapV5Adapter(fixture['ParaSwapV5Adapter'].address, deployer),
167
+ performanceFee: new protocol.PerformanceFee(fixture['PerformanceFee'].address, deployer),
168
+ policyManager: new protocol.PolicyManager(fixture['PolicyManager'].address, deployer),
169
+ poolTogetherV4Adapter: new protocol.PoolTogetherV4Adapter(fixture['PoolTogetherV4Adapter'].address, deployer),
170
+ poolTogetherV4PriceFeed: new protocol.PoolTogetherV4PriceFeed(fixture['PoolTogetherV4PriceFeed'].address, deployer),
165
171
  protocolFeeReserveLib: new protocol.ProtocolFeeReserveLib(fixture['ProtocolFeeReserveLib'].address, deployer),
166
172
  protocolFeeReserveProxy: new protocol.ProtocolFeeReserveLib(fixture['ProtocolFeeReserveProxy'].address, deployer),
167
173
  protocolFeeTracker: new protocol.ProtocolFeeTracker(fixture['ProtocolFeeTracker'].address, deployer),
168
- gasRelayPaymasterFactory: new protocol.GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer),
169
- addressListRegistry: new protocol.AddressListRegistry(fixture['AddressListRegistry'].address, deployer),
170
- allowedAdaptersPolicy: new protocol.AllowedAdaptersPolicy(fixture['AllowedAdaptersPolicy'].address, deployer),
171
- allowedAssetsForRedemptionPolicy: new protocol.AllowedAssetsForRedemptionPolicy(fixture['AllowedAssetsForRedemptionPolicy'].address, deployer),
172
- allowedExternalPositionTypesPolicy: new protocol.AllowedExternalPositionTypesPolicy(fixture['AllowedExternalPositionTypesPolicy'].address, deployer),
173
- allowedSharesTransferRecipientsPolicy: new protocol.AllowedSharesTransferRecipientsPolicy(fixture['AllowedSharesTransferRecipientsPolicy'].address, deployer),
174
- cumulativeSlippageTolerancePolicy: new protocol.CumulativeSlippageTolerancePolicy(fixture['CumulativeSlippageTolerancePolicy'].address, deployer),
175
- minAssetBalancesPostRedemptionPolicy: new protocol.MinAssetBalancesPostRedemptionPolicy(fixture['MinAssetBalancesPostRedemptionPolicy'].address, deployer),
176
- onlyRemoveDustExternalPositionPolicy: new protocol.OnlyRemoveDustExternalPositionPolicy(fixture['OnlyRemoveDustExternalPositionPolicy'].address, deployer),
177
- onlyUntrackDustOrPricelessAssetsPolicy: new protocol.OnlyUntrackDustOrPricelessAssetsPolicy(fixture['OnlyUntrackDustOrPricelessAssetsPolicy'].address, deployer),
178
- fundValueCalculatorRouter: new protocol.FundValueCalculatorRouter(fixture['FundValueCalculatorRouter'].address, deployer),
179
- fundValueCalculator: new protocol.FundValueCalculator(fixture['FundValueCalculator'].address, deployer)
174
+ revertingPriceFeed: new protocol.RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
175
+ stakehoundEthPriceFeed: new protocol.StakehoundEthPriceFeed(fixture['StakehoundEthPriceFeed'].address, deployer),
176
+ synthetixAdapter: new protocol.SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
177
+ uniswapV2ExchangeAdapter: new protocol.UniswapV2ExchangeAdapter(fixture['UniswapV2ExchangeAdapter'].address, deployer),
178
+ uniswapV2LiquidityAdapter: new protocol.UniswapV2LiquidityAdapter(fixture['UniswapV2LiquidityAdapter'].address, deployer),
179
+ uniswapV2PoolPriceFeed: new protocol.UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
180
+ uniswapV3Adapter: new protocol.UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
181
+ unpermissionedActionsWrapper: new protocol.UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
182
+ valueInterpreter: new protocol.ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
183
+ vaultLib: new protocol.VaultLib(fixture['VaultLib'].address, deployer),
184
+ yearnVaultV2Adapter: new protocol.YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
185
+ yearnVaultV2PriceFeed: new protocol.YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
186
+ zeroExV2Adapter: new protocol.ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer)
180
187
  };
181
188
  return _context3.abrupt("return", {
182
- deployer: deployer,
183
- deployment: deployment,
184
189
  accounts: accounts,
185
- config: config
190
+ config: config,
191
+ deployer: deployer,
192
+ deployment: deployment
186
193
  });
187
194
 
188
195
  case 12:
@@ -195,30 +202,6 @@ function _deployProtocolFixture() {
195
202
  return _deployProtocolFixture.apply(this, arguments);
196
203
  }
197
204
 
198
- // TODO: Remove this.
199
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
200
- function defaultTestDeployment(_x2) {
201
- return _defaultTestDeployment.apply(this, arguments);
202
- }
203
-
204
- function _defaultTestDeployment() {
205
- _defaultTestDeployment = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_) {
206
- return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
207
- while (1) {
208
- switch (_context4.prev = _context4.next) {
209
- case 0:
210
- throw new Error('Removed');
211
-
212
- case 1:
213
- case "end":
214
- return _context4.stop();
215
- }
216
- }
217
- }, _callee4);
218
- }));
219
- return _defaultTestDeployment.apply(this, arguments);
220
- }
221
-
222
205
  function addTrackedAssetsToVault(_ref) {
223
206
  var signer = _ref.signer,
224
207
  comptrollerProxy = _ref.comptrollerProxy,
@@ -251,12 +234,12 @@ function _addNewAssetsToFund() {
251
234
  switch (_context.prev = _context.next) {
252
235
  case 0:
253
236
  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;
254
- // First, add tracked assets while their balances are 0
237
+ // First, add tracked assets
255
238
  receipt = addTrackedAssetsToVault({
256
- signer: signer,
239
+ assets: assets,
257
240
  comptrollerProxy: comptrollerProxy,
258
241
  integrationManager: integrationManager,
259
- assets: assets
242
+ signer: signer
260
243
  }); // Then seed the vault with balances as necessary
261
244
 
262
245
  _context.next = 4;
@@ -408,13 +391,13 @@ function createFundDeployer(_x) {
408
391
 
409
392
  function _createFundDeployer() {
410
393
  _createFundDeployer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
411
- 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;
394
+ var deployer, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, _ref$setOnDispatcher, setOnDispatcher, _ref$setReleaseLive, setReleaseLive, mlnToken, wethToken, protocolFeeReserve, nextFundDeployer, nextPolicyManager, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextComptrollerLib, nextProtocolFeeTracker, nextVaultLib;
412
395
 
413
396
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
414
397
  while (1) {
415
398
  switch (_context.prev = _context.next) {
416
399
  case 0:
417
- 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;
400
+ 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;
418
401
  _context.next = 3;
419
402
  return vaultLib.getMlnToken();
420
403
 
@@ -465,7 +448,7 @@ function _createFundDeployer() {
465
448
  case 31:
466
449
  nextIntegrationManager = _context.sent;
467
450
  _context.next = 34;
468
- return protocol.ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextPolicyManager, assetFinalityResolver, gasRelayPaymasterFactory, mlnToken, wethToken);
451
+ return protocol.ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextPolicyManager, gasRelayPaymasterFactory, mlnToken, wethToken);
469
452
 
470
453
  case 34:
471
454
  nextComptrollerLib = _context.sent;
@@ -502,40 +485,50 @@ function _createFundDeployer() {
502
485
  case 54:
503
486
  _context.t11 = _context.sent;
504
487
  _context.next = 57;
505
- return vaultLib.getWethToken();
488
+ return vaultLib.getMlnBurner();
506
489
 
507
490
  case 57:
508
491
  _context.t12 = _context.sent;
509
492
  _context.next = 60;
510
- return _context.t5.deploy.call(_context.t5, _context.t6, _context.t7, _context.t8, _context.t9, _context.t10, _context.t11, _context.t12);
493
+ return vaultLib.getWethToken();
511
494
 
512
495
  case 60:
513
- nextVaultLib = _context.sent;
496
+ _context.t13 = _context.sent;
514
497
  _context.next = 63;
515
- return nextFundDeployer.setVaultLib(nextVaultLib);
498
+ return vaultLib.getPositionsLimit();
516
499
 
517
500
  case 63:
501
+ _context.t14 = _context.sent;
502
+ _context.next = 66;
503
+ 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);
504
+
505
+ case 66:
506
+ nextVaultLib = _context.sent;
507
+ _context.next = 69;
508
+ return nextFundDeployer.setVaultLib(nextVaultLib);
509
+
510
+ case 69:
518
511
  if (!setReleaseLive) {
519
- _context.next = 66;
512
+ _context.next = 72;
520
513
  break;
521
514
  }
522
515
 
523
- _context.next = 66;
516
+ _context.next = 72;
524
517
  return nextFundDeployer.setReleaseLive();
525
518
 
526
- case 66:
519
+ case 72:
527
520
  if (!setOnDispatcher) {
528
- _context.next = 69;
521
+ _context.next = 75;
529
522
  break;
530
523
  }
531
524
 
532
- _context.next = 69;
525
+ _context.next = 75;
533
526
  return dispatcher.setCurrentFundDeployer(nextFundDeployer);
534
527
 
535
- case 69:
528
+ case 75:
536
529
  return _context.abrupt("return", nextFundDeployer);
537
530
 
538
- case 70:
531
+ case 76:
539
532
  case "end":
540
533
  return _context.stop();
541
534
  }
@@ -594,9 +587,9 @@ function _callOnExternalPosition() {
594
587
  case 0:
595
588
  signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionProxy = _ref.externalPositionProxy, actionId = _ref.actionId, actionArgs = _ref.actionArgs;
596
589
  callArgs = protocol.callOnExternalPositionArgs({
597
- externalPositionProxy: externalPositionProxy,
590
+ actionArgs: actionArgs,
598
591
  actionId: actionId,
599
- actionArgs: actionArgs
592
+ externalPositionProxy: externalPositionProxy
600
593
  });
601
594
  return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
602
595
 
@@ -616,23 +609,23 @@ function createExternalPosition(_x2) {
616
609
 
617
610
  function _createExternalPosition() {
618
611
  _createExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
619
- var signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, _ref2$initializationD, initializationData, receipt, event, externalPositionProxy;
612
+ var signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, _ref2$initializationD, initializationData, _ref2$callOnExternalP, callOnExternalPositionData, receipt, event, externalPositionProxy;
620
613
 
621
614
  return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
622
615
  while (1) {
623
616
  switch (_context2.prev = _context2.next) {
624
617
  case 0:
625
- signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionTypeId = _ref2.externalPositionTypeId, _ref2$initializationD = _ref2.initializationData, initializationData = _ref2$initializationD === void 0 ? '0x' : _ref2$initializationD;
618
+ 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;
626
619
  _context2.next = 3;
627
- return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CreateExternalPosition, protocol.encodeArgs(['uint256', 'bytes'], [externalPositionTypeId, initializationData]));
620
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CreateExternalPosition, protocol.encodeArgs(['uint256', 'bytes', 'bytes'], [externalPositionTypeId, initializationData, callOnExternalPositionData]));
628
621
 
629
622
  case 3:
630
623
  receipt = _context2.sent;
631
624
  event = ethers$1.extractEvent(receipt, externalPositionManager.abi.getEvent('ExternalPositionDeployedForFund'));
632
625
  externalPositionProxy = new protocol.IExternalPositionProxy(event[0].args.externalPosition, signer);
633
626
  return _context2.abrupt("return", {
634
- receipt: receipt,
635
- externalPositionProxy: externalPositionProxy
627
+ externalPositionProxy: externalPositionProxy,
628
+ receipt: receipt
636
629
  });
637
630
 
638
631
  case 7:
@@ -712,17 +705,17 @@ function _compoundDebtPositionAddCollateral() {
712
705
  case 0:
713
706
  comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, fundOwner = _ref.fundOwner, assets = _ref.assets, amounts = _ref.amounts, externalPositionProxy = _ref.externalPositionProxy, cTokens = _ref.cTokens;
714
707
  actionArgs = protocol.compoundExternalPositionActionArgs({
715
- assets: assets,
716
708
  amounts: amounts,
709
+ assets: assets,
717
710
  data: protocol.encodeArgs(['address[]'], [cTokens])
718
711
  });
719
712
  return _context.abrupt("return", callOnExternalPosition({
720
- signer: fundOwner,
713
+ actionArgs: actionArgs,
714
+ actionId: protocol.CompoundDebtPositionActionId.AddCollateralAssets,
721
715
  comptrollerProxy: comptrollerProxy,
722
716
  externalPositionManager: externalPositionManager,
723
717
  externalPositionProxy: externalPositionProxy,
724
- actionId: protocol.CompoundDebtPositionActionId.AddCollateralAssets,
725
- actionArgs: actionArgs
718
+ signer: fundOwner
726
719
  }));
727
720
 
728
721
  case 3:
@@ -748,17 +741,17 @@ function _compoundDebtPositionBorrow() {
748
741
  case 0:
749
742
  comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, fundOwner = _ref2.fundOwner, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts, cTokens = _ref2.cTokens;
750
743
  actionArgs = protocol.compoundExternalPositionActionArgs({
751
- assets: assets,
752
744
  amounts: amounts,
745
+ assets: assets,
753
746
  data: protocol.encodeArgs(['address[]'], [cTokens])
754
747
  });
755
748
  return _context2.abrupt("return", callOnExternalPosition({
756
- signer: fundOwner,
749
+ actionArgs: actionArgs,
750
+ actionId: protocol.CompoundDebtPositionActionId.BorrowAsset,
757
751
  comptrollerProxy: comptrollerProxy,
758
752
  externalPositionManager: externalPositionManager,
759
753
  externalPositionProxy: externalPositionProxy,
760
- actionId: protocol.CompoundDebtPositionActionId.BorrowAsset,
761
- actionArgs: actionArgs
754
+ signer: fundOwner
762
755
  }));
763
756
 
764
757
  case 3:
@@ -784,17 +777,17 @@ function _compoundDebtPositionClaimComp() {
784
777
  case 0:
785
778
  comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, fundOwner = _ref3.fundOwner, externalPositionProxy = _ref3.externalPositionProxy;
786
779
  actionArgs = protocol.compoundExternalPositionActionArgs({
787
- assets: [],
788
780
  amounts: [],
781
+ assets: [],
789
782
  data: '0x'
790
783
  });
791
784
  return _context3.abrupt("return", callOnExternalPosition({
792
- signer: fundOwner,
785
+ actionArgs: actionArgs,
786
+ actionId: protocol.CompoundDebtPositionActionId.ClaimComp,
793
787
  comptrollerProxy: comptrollerProxy,
794
788
  externalPositionManager: externalPositionManager,
795
789
  externalPositionProxy: externalPositionProxy,
796
- actionId: protocol.CompoundDebtPositionActionId.ClaimComp,
797
- actionArgs: actionArgs
790
+ signer: fundOwner
798
791
  }));
799
792
 
800
793
  case 3:
@@ -820,17 +813,17 @@ function _compoundDebtPositionRemoveCollateral() {
820
813
  case 0:
821
814
  comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, fundOwner = _ref4.fundOwner, assets = _ref4.assets, amounts = _ref4.amounts, externalPositionProxy = _ref4.externalPositionProxy, cTokens = _ref4.cTokens;
822
815
  actionArgs = protocol.compoundExternalPositionActionArgs({
823
- assets: assets,
824
816
  amounts: amounts,
817
+ assets: assets,
825
818
  data: protocol.encodeArgs(['address[]'], [cTokens])
826
819
  });
827
820
  return _context4.abrupt("return", callOnExternalPosition({
828
- signer: fundOwner,
821
+ actionArgs: actionArgs,
822
+ actionId: protocol.CompoundDebtPositionActionId.RemoveCollateralAssets,
829
823
  comptrollerProxy: comptrollerProxy,
830
824
  externalPositionManager: externalPositionManager,
831
825
  externalPositionProxy: externalPositionProxy,
832
- actionId: protocol.CompoundDebtPositionActionId.RemoveCollateralAssets,
833
- actionArgs: actionArgs
826
+ signer: fundOwner
834
827
  }));
835
828
 
836
829
  case 3:
@@ -856,17 +849,17 @@ function _compoundDebtPositionRepayBorrow() {
856
849
  case 0:
857
850
  comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, fundOwner = _ref5.fundOwner, assets = _ref5.assets, amounts = _ref5.amounts, externalPositionProxy = _ref5.externalPositionProxy, cTokens = _ref5.cTokens;
858
851
  actionArgs = protocol.compoundExternalPositionActionArgs({
859
- assets: assets,
860
852
  amounts: amounts,
853
+ assets: assets,
861
854
  data: protocol.encodeArgs(['address[]'], [cTokens])
862
855
  });
863
856
  return _context5.abrupt("return", callOnExternalPosition({
864
- signer: fundOwner,
857
+ actionArgs: actionArgs,
858
+ actionId: protocol.CompoundDebtPositionActionId.RepayBorrowedAssets,
865
859
  comptrollerProxy: comptrollerProxy,
866
860
  externalPositionManager: externalPositionManager,
867
861
  externalPositionProxy: externalPositionProxy,
868
- actionId: protocol.CompoundDebtPositionActionId.RepayBorrowedAssets,
869
- actionArgs: actionArgs
862
+ signer: fundOwner
870
863
  }));
871
864
 
872
865
  case 3:
@@ -892,10 +885,10 @@ function _createCompoundDebtPosition() {
892
885
  case 0:
893
886
  signer = _ref6.signer, comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager;
894
887
  return _context6.abrupt("return", createExternalPosition({
895
- signer: signer,
896
888
  comptrollerProxy: comptrollerProxy,
897
889
  externalPositionManager: externalPositionManager,
898
- externalPositionTypeId: protocol.ExternalPositionType.CompoundDebtPosition
890
+ externalPositionTypeId: protocol.ExternalPositionType.CompoundDebtPosition,
891
+ signer: signer
899
892
  }));
900
893
 
901
894
  case 2:
@@ -920,7 +913,7 @@ function _createMockExternalPosition() {
920
913
  switch (_context.prev = _context.next) {
921
914
  case 0:
922
915
  comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionFactory = _ref.externalPositionFactory, defaultActionAssetsToTransfer = _ref.defaultActionAssetsToTransfer, defaultActionAmountsToTransfer = _ref.defaultActionAmountsToTransfer, defaultActionAssetsToReceive = _ref.defaultActionAssetsToReceive, fundOwner = _ref.fundOwner, deployer = _ref.deployer;
923
- _context.t0 = src.VaultLib;
916
+ _context.t0 = protocol.VaultLib;
924
917
  _context.next = 4;
925
918
  return comptrollerProxy.getVaultProxy();
926
919
 
@@ -938,12 +931,12 @@ function _createMockExternalPosition() {
938
931
 
939
932
  case 12:
940
933
  _context.next = 14;
941
- return src.MockGenericExternalPositionLib.deploy(deployer);
934
+ return protocol.MockGenericExternalPositionLib.deploy(deployer);
942
935
 
943
936
  case 14:
944
937
  mockGenericExternalPositionLib = _context.sent;
945
938
  _context.next = 17;
946
- return src.MockGenericExternalPositionParser.deploy(deployer);
939
+ return protocol.MockGenericExternalPositionParser.deploy(deployer);
947
940
 
948
941
  case 17:
949
942
  mockExternalPositionParser = _context.sent;
@@ -953,7 +946,12 @@ function _createMockExternalPosition() {
953
946
 
954
947
  case 21:
955
948
  _context.next = 23;
956
- return comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, src.ExternalPositionManagerActionId.CreateExternalPosition, src.encodeArgs(['uint256', 'bytes'], [typeId, '0x']));
949
+ return createExternalPosition({
950
+ comptrollerProxy: comptrollerProxy,
951
+ externalPositionManager: externalPositionManager,
952
+ externalPositionTypeId: typeId,
953
+ signer: fundOwner
954
+ });
957
955
 
958
956
  case 23:
959
957
  receipt = _context.sent;
@@ -963,11 +961,11 @@ function _createMockExternalPosition() {
963
961
  case 26:
964
962
  externalPositionProxy = _context.sent[0];
965
963
  return _context.abrupt("return", {
966
- typeId: typeId,
967
- mockGenericExternalPositionLib: mockGenericExternalPositionLib,
968
- mockExternalPositionParser: mockExternalPositionParser,
969
964
  externalPositionProxy: externalPositionProxy,
970
- receipt: receipt
965
+ mockExternalPositionParser: mockExternalPositionParser,
966
+ mockGenericExternalPositionLib: mockGenericExternalPositionLib,
967
+ receipt: receipt,
968
+ typeId: typeId
971
969
  });
972
970
 
973
971
  case 28:
@@ -992,17 +990,17 @@ function _mockExternalPositionAddDebtAssets() {
992
990
  switch (_context2.prev = _context2.next) {
993
991
  case 0:
994
992
  signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts;
995
- actionArgs = src.mockGenericExternalPositionActionArgs({
996
- assets: assets,
997
- amounts: amounts
993
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
994
+ amounts: amounts,
995
+ assets: assets
998
996
  });
999
997
  return _context2.abrupt("return", callOnExternalPosition({
1000
- signer: signer,
998
+ actionArgs: actionArgs,
999
+ actionId: protocol.MockGenericExternalPositionActionId.AddDebtAssets,
1001
1000
  comptrollerProxy: comptrollerProxy,
1002
1001
  externalPositionManager: externalPositionManager,
1003
1002
  externalPositionProxy: externalPositionProxy,
1004
- actionId: src.MockGenericExternalPositionActionId.AddDebtAssets,
1005
- actionArgs: actionArgs
1003
+ signer: signer
1006
1004
  }));
1007
1005
 
1008
1006
  case 3:
@@ -1027,17 +1025,17 @@ function _mockExternalPositionAddManagedAssets() {
1027
1025
  switch (_context3.prev = _context3.next) {
1028
1026
  case 0:
1029
1027
  signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, assets = _ref3.assets, amounts = _ref3.amounts;
1030
- actionArgs = src.mockGenericExternalPositionActionArgs({
1031
- assets: assets,
1032
- amounts: amounts
1028
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
1029
+ amounts: amounts,
1030
+ assets: assets
1033
1031
  });
1034
1032
  return _context3.abrupt("return", callOnExternalPosition({
1035
- signer: signer,
1033
+ actionArgs: actionArgs,
1034
+ actionId: protocol.MockGenericExternalPositionActionId.AddManagedAssets,
1036
1035
  comptrollerProxy: comptrollerProxy,
1037
1036
  externalPositionManager: externalPositionManager,
1038
1037
  externalPositionProxy: externalPositionProxy,
1039
- actionId: src.MockGenericExternalPositionActionId.AddManagedAssets,
1040
- actionArgs: actionArgs
1038
+ signer: signer
1041
1039
  }));
1042
1040
 
1043
1041
  case 3:
@@ -1062,17 +1060,17 @@ function _mockExternalPositionRemoveDebtAssets() {
1062
1060
  switch (_context4.prev = _context4.next) {
1063
1061
  case 0:
1064
1062
  signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, assets = _ref4.assets, amounts = _ref4.amounts;
1065
- actionArgs = src.mockGenericExternalPositionActionArgs({
1066
- assets: assets,
1067
- amounts: amounts
1063
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
1064
+ amounts: amounts,
1065
+ assets: assets
1068
1066
  });
1069
1067
  return _context4.abrupt("return", callOnExternalPosition({
1070
- signer: signer,
1068
+ actionArgs: actionArgs,
1069
+ actionId: protocol.MockGenericExternalPositionActionId.RemoveDebtAssets,
1071
1070
  comptrollerProxy: comptrollerProxy,
1072
1071
  externalPositionManager: externalPositionManager,
1073
1072
  externalPositionProxy: externalPositionProxy,
1074
- actionId: src.MockGenericExternalPositionActionId.RemoveDebtAssets,
1075
- actionArgs: actionArgs
1073
+ signer: signer
1076
1074
  }));
1077
1075
 
1078
1076
  case 3:
@@ -1097,17 +1095,17 @@ function _mockExternalPositionRemoveManagedAssets() {
1097
1095
  switch (_context5.prev = _context5.next) {
1098
1096
  case 0:
1099
1097
  signer = _ref5.signer, comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, externalPositionProxy = _ref5.externalPositionProxy, assets = _ref5.assets, amounts = _ref5.amounts;
1100
- actionArgs = src.mockGenericExternalPositionActionArgs({
1101
- assets: assets,
1102
- amounts: amounts
1098
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
1099
+ amounts: amounts,
1100
+ assets: assets
1103
1101
  });
1104
1102
  return _context5.abrupt("return", callOnExternalPosition({
1105
- signer: signer,
1103
+ actionArgs: actionArgs,
1104
+ actionId: protocol.MockGenericExternalPositionActionId.RemoveManagedAssets,
1106
1105
  comptrollerProxy: comptrollerProxy,
1107
1106
  externalPositionManager: externalPositionManager,
1108
1107
  externalPositionProxy: externalPositionProxy,
1109
- actionId: src.MockGenericExternalPositionActionId.RemoveManagedAssets,
1110
- actionArgs: actionArgs
1108
+ signer: signer
1111
1109
  }));
1112
1110
 
1113
1111
  case 3:
@@ -1120,117 +1118,380 @@ function _mockExternalPositionRemoveManagedAssets() {
1120
1118
  return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1121
1119
  }
1122
1120
 
1123
- function generateFeeManagerConfigWithMockFees(_x) {
1124
- return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1121
+ var _templateObject$3;
1122
+ exports.UniswapV3FeeAmount = void 0;
1123
+
1124
+ (function (UniswapV3FeeAmount) {
1125
+ UniswapV3FeeAmount[UniswapV3FeeAmount["LOW"] = 500] = "LOW";
1126
+ UniswapV3FeeAmount[UniswapV3FeeAmount["MEDIUM"] = 3000] = "MEDIUM";
1127
+ UniswapV3FeeAmount[UniswapV3FeeAmount["HIGH"] = 10000] = "HIGH";
1128
+ })(exports.UniswapV3FeeAmount || (exports.UniswapV3FeeAmount = {}));
1129
+
1130
+ var uniswapV3LiquidityPositionGetMinTick = function uniswapV3LiquidityPositionGetMinTick(tickSpacing) {
1131
+ return Math.ceil(-887272 / tickSpacing) * tickSpacing;
1132
+ };
1133
+ var uniswapV3LiquidityPositionGetMaxTick = function uniswapV3LiquidityPositionGetMaxTick(tickSpacing) {
1134
+ return Math.floor(887272 / tickSpacing) * tickSpacing;
1135
+ };
1136
+ var IUniswapV3NonFungibleTokenManager = ethers$1.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"])));
1137
+ function createUniswapV3LiquidityPosition(_x) {
1138
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1125
1139
  }
1126
1140
 
1127
- function _generateFeeManagerConfigWithMockFees() {
1128
- _generateFeeManagerConfigWithMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1129
- var deployer, fees, feeManagerSettingsData;
1141
+ function _createUniswapV3LiquidityPosition() {
1142
+ _createUniswapV3LiquidityPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1143
+ var signer, comptrollerProxy, externalPositionManager, _ref$callOnExternalPo, callOnExternalPositionData, _yield$createExternal, externalPositionProxyContract, receipt;
1144
+
1130
1145
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
1131
1146
  while (1) {
1132
1147
  switch (_context.prev = _context.next) {
1133
1148
  case 0:
1134
- deployer = _ref.deployer;
1149
+ signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, _ref$callOnExternalPo = _ref.callOnExternalPositionData, callOnExternalPositionData = _ref$callOnExternalPo === void 0 ? '0x' : _ref$callOnExternalPo;
1135
1150
  _context.next = 3;
1136
- return generateMockFees({
1137
- deployer: deployer
1151
+ return createExternalPosition({
1152
+ callOnExternalPositionData: callOnExternalPositionData,
1153
+ comptrollerProxy: comptrollerProxy,
1154
+ externalPositionManager: externalPositionManager,
1155
+ externalPositionTypeId: protocol.ExternalPositionType.UniswapV3LiquidityPosition,
1156
+ signer: signer
1138
1157
  });
1139
1158
 
1140
1159
  case 3:
1141
- fees = _context.sent;
1142
- feeManagerSettingsData = [ethers.utils.randomBytes(10), '0x', ethers.utils.randomBytes(2)];
1143
- return _context.abrupt("return", protocol.feeManagerConfigArgs({
1144
- fees: Object.values(fees),
1145
- settings: feeManagerSettingsData
1146
- }));
1160
+ _yield$createExternal = _context.sent;
1161
+ externalPositionProxyContract = _yield$createExternal.externalPositionProxy;
1162
+ receipt = _yield$createExternal.receipt;
1163
+ return _context.abrupt("return", {
1164
+ externalPositionProxyAddress: externalPositionProxyContract.address,
1165
+ receipt: receipt
1166
+ });
1147
1167
 
1148
- case 6:
1168
+ case 7:
1149
1169
  case "end":
1150
1170
  return _context.stop();
1151
1171
  }
1152
1172
  }
1153
1173
  }, _callee);
1154
1174
  }));
1155
- return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1175
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1156
1176
  }
1157
1177
 
1158
- function generateMockFees(_x2) {
1159
- return _generateMockFees.apply(this, arguments);
1178
+ function uniswapV3LiquidityPositionAddLiquidity(_x2) {
1179
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1160
1180
  }
1161
1181
 
1162
- function _generateMockFees() {
1163
- _generateMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
1164
- var deployer, mockContinuousFeeSettleOnly, mockContinuousFeeWithGavAndUpdates, mockPostBuySharesFee;
1182
+ function _uniswapV3LiquidityPositionAddLiquidity() {
1183
+ _uniswapV3LiquidityPositionAddLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
1184
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, amount0Desired, amount1Desired, _ref2$amount0Min, amount0Min, _ref2$amount1Min, amount1Min, actionArgs, callArgs;
1185
+
1165
1186
  return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
1166
1187
  while (1) {
1167
1188
  switch (_context2.prev = _context2.next) {
1168
1189
  case 0:
1169
- deployer = _ref2.deployer;
1170
- _context2.next = 3;
1171
- return protocol.IFee.mock(deployer);
1172
-
1173
- case 3:
1174
- mockContinuousFeeSettleOnly = _context2.sent;
1175
- _context2.next = 6;
1176
- return protocol.IFee.mock(deployer);
1177
-
1178
- case 6:
1179
- mockContinuousFeeWithGavAndUpdates = _context2.sent;
1180
- _context2.next = 9;
1181
- return protocol.IFee.mock(deployer);
1182
-
1183
- case 9:
1184
- mockPostBuySharesFee = _context2.sent;
1185
- _context2.next = 12;
1186
- return Promise.all([// Continuous fee the mimics ManagementFee
1187
- mockContinuousFeeSettleOnly.getRecipientForFund.returns(ethers.constants.AddressZero), mockContinuousFeeSettleOnly.settle.returns(protocol.FeeSettlementType.None, ethers.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(protocol.FeeHook.Continuous).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(protocol.FeeHook.PreBuyShares).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(protocol.FeeHook.PreRedeemShares).returns(true, false), mockContinuousFeeSettleOnly.updatesOnHook.returns(false, false), // Continuous fee the mimics PerformanceFee
1188
- mockContinuousFeeWithGavAndUpdates.getRecipientForFund.returns(ethers.constants.AddressZero), mockContinuousFeeWithGavAndUpdates.settle.returns(protocol.FeeSettlementType.None, ethers.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(protocol.FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(protocol.FeeHook.PreBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(protocol.FeeHook.PreRedeemShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol.FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol.FeeHook.PostBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol.FeeHook.PreRedeemShares).returns(true, true), // PostBuyShares fee
1189
- mockPostBuySharesFee.getRecipientForFund.returns(ethers.constants.AddressZero), mockPostBuySharesFee.settle.returns(protocol.FeeSettlementType.None, ethers.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(protocol.FeeHook.PostBuyShares).returns(true, false), mockPostBuySharesFee.updatesOnHook.returns(false, false)]);
1190
-
1191
- case 12:
1192
- return _context2.abrupt("return", {
1193
- mockContinuousFeeSettleOnly: mockContinuousFeeSettleOnly,
1194
- mockContinuousFeeWithGavAndUpdates: mockContinuousFeeWithGavAndUpdates,
1195
- mockPostBuySharesFee: mockPostBuySharesFee
1190
+ 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;
1191
+ actionArgs = protocol.uniswapV3LiquidityPositionAddLiquidityArgs({
1192
+ amount0Desired: amount0Desired,
1193
+ amount0Min: amount0Min,
1194
+ amount1Desired: amount1Desired,
1195
+ amount1Min: amount1Min,
1196
+ nftId: nftId
1196
1197
  });
1198
+ callArgs = protocol.callOnExternalPositionArgs({
1199
+ actionArgs: actionArgs,
1200
+ actionId: protocol.UniswapV3LiquidityPositionActionId.AddLiquidity,
1201
+ externalPositionProxy: externalPositionProxy
1202
+ });
1203
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1197
1204
 
1198
- case 13:
1205
+ case 4:
1199
1206
  case "end":
1200
1207
  return _context2.stop();
1201
1208
  }
1202
1209
  }
1203
1210
  }, _callee2);
1204
1211
  }));
1205
- return _generateMockFees.apply(this, arguments);
1212
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1206
1213
  }
1207
1214
 
1208
- function aaveLend(_x) {
1209
- return _aaveLend.apply(this, arguments);
1215
+ function uniswapV3LiquidityPositionCollect(_x3) {
1216
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1210
1217
  }
1211
1218
 
1212
- function _aaveLend() {
1213
- _aaveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1214
- var comptrollerProxy, integrationManager, fundOwner, aaveAdapter, aToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
1215
-
1216
- return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
1219
+ function _uniswapV3LiquidityPositionCollect() {
1220
+ _uniswapV3LiquidityPositionCollect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
1221
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, actionArgs, callArgs;
1222
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
1217
1223
  while (1) {
1218
- switch (_context.prev = _context.next) {
1224
+ switch (_context3.prev = _context3.next) {
1219
1225
  case 0:
1220
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, aaveAdapter = _ref.aaveAdapter, aToken = _ref.aToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? ethers.utils.parseEther('1') : _ref$amount;
1221
- lendArgs = protocol.aaveLendArgs({
1222
- aToken: aToken,
1223
- amount: amount
1226
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, nftId = _ref3.nftId;
1227
+ actionArgs = protocol.uniswapV3LiquidityPositionCollectArgs({
1228
+ nftId: nftId
1224
1229
  });
1225
- callArgs = protocol.callOnIntegrationArgs({
1226
- adapter: aaveAdapter,
1227
- selector: protocol.lendSelector,
1228
- encodedCallArgs: lendArgs
1230
+ callArgs = protocol.callOnExternalPositionArgs({
1231
+ actionArgs: actionArgs,
1232
+ actionId: protocol.UniswapV3LiquidityPositionActionId.Collect,
1233
+ externalPositionProxy: externalPositionProxy
1229
1234
  });
1230
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1231
- return _context.abrupt("return", lendTx);
1235
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1232
1236
 
1233
- case 5:
1237
+ case 4:
1238
+ case "end":
1239
+ return _context3.stop();
1240
+ }
1241
+ }
1242
+ }, _callee3);
1243
+ }));
1244
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1245
+ }
1246
+
1247
+ function uniswapV3LiquidityPositionMint(_x4) {
1248
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1249
+ }
1250
+
1251
+ function _uniswapV3LiquidityPositionMint() {
1252
+ _uniswapV3LiquidityPositionMint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
1253
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, token0, token1, fee, tickLower, tickUpper, amount0Desired, amount1Desired, _ref4$amount0Min, amount0Min, _ref4$amount1Min, amount1Min, actionArgs, callArgs, receipt, externalPosition, nftId;
1254
+
1255
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
1256
+ while (1) {
1257
+ switch (_context4.prev = _context4.next) {
1258
+ case 0:
1259
+ 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;
1260
+ actionArgs = protocol.uniswapV3LiquidityPositionMintArgs({
1261
+ amount0Desired: amount0Desired,
1262
+ amount0Min: amount0Min,
1263
+ amount1Desired: amount1Desired,
1264
+ amount1Min: amount1Min,
1265
+ fee: fee,
1266
+ tickLower: tickLower,
1267
+ tickUpper: tickUpper,
1268
+ token0: token0,
1269
+ token1: token1
1270
+ });
1271
+ callArgs = protocol.callOnExternalPositionArgs({
1272
+ actionArgs: actionArgs,
1273
+ actionId: protocol.UniswapV3LiquidityPositionActionId.Mint,
1274
+ externalPositionProxy: externalPositionProxy
1275
+ });
1276
+ _context4.next = 5;
1277
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
1278
+
1279
+ case 5:
1280
+ receipt = _context4.sent;
1281
+ externalPosition = new protocol.UniswapV3LiquidityPositionLib(externalPositionProxy, provider);
1282
+ nftId = ethers$1.extractEvent(receipt, externalPosition.abi.getEvent('NFTPositionAdded'))[0].args.tokenId;
1283
+ return _context4.abrupt("return", {
1284
+ nftId: nftId,
1285
+ receipt: receipt
1286
+ });
1287
+
1288
+ case 9:
1289
+ case "end":
1290
+ return _context4.stop();
1291
+ }
1292
+ }
1293
+ }, _callee4);
1294
+ }));
1295
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1296
+ }
1297
+
1298
+ function uniswapV3LiquidityPositionPurge(_x5) {
1299
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1300
+ }
1301
+
1302
+ function _uniswapV3LiquidityPositionPurge() {
1303
+ _uniswapV3LiquidityPositionPurge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(_ref5) {
1304
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref5$amount0Min, amount0Min, _ref5$amount1Min, amount1Min, actionArgs, callArgs;
1305
+
1306
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
1307
+ while (1) {
1308
+ switch (_context5.prev = _context5.next) {
1309
+ case 0:
1310
+ 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;
1311
+ actionArgs = protocol.uniswapV3LiquidityPositionPurgeArgs({
1312
+ amount0Min: amount0Min,
1313
+ amount1Min: amount1Min,
1314
+ liquidity: liquidity,
1315
+ nftId: nftId
1316
+ });
1317
+ callArgs = protocol.callOnExternalPositionArgs({
1318
+ actionArgs: actionArgs,
1319
+ actionId: protocol.UniswapV3LiquidityPositionActionId.Purge,
1320
+ externalPositionProxy: externalPositionProxy
1321
+ });
1322
+ return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1323
+
1324
+ case 4:
1325
+ case "end":
1326
+ return _context5.stop();
1327
+ }
1328
+ }
1329
+ }, _callee5);
1330
+ }));
1331
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1332
+ }
1333
+
1334
+ function uniswapV3LiquidityPositionRemoveLiquidity(_x6) {
1335
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1336
+ }
1337
+
1338
+ function _uniswapV3LiquidityPositionRemoveLiquidity() {
1339
+ _uniswapV3LiquidityPositionRemoveLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee6(_ref6) {
1340
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref6$amount0Min, amount0Min, _ref6$amount1Min, amount1Min, actionArgs, callArgs;
1341
+
1342
+ return _regeneratorRuntime__default['default'].wrap(function _callee6$(_context6) {
1343
+ while (1) {
1344
+ switch (_context6.prev = _context6.next) {
1345
+ case 0:
1346
+ 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;
1347
+ actionArgs = protocol.uniswapV3LiquidityPositionRemoveLiquidityArgs({
1348
+ amount0Min: amount0Min,
1349
+ amount1Min: amount1Min,
1350
+ liquidity: liquidity,
1351
+ nftId: nftId
1352
+ });
1353
+ callArgs = protocol.callOnExternalPositionArgs({
1354
+ actionArgs: actionArgs,
1355
+ actionId: protocol.UniswapV3LiquidityPositionActionId.RemoveLiquidity,
1356
+ externalPositionProxy: externalPositionProxy
1357
+ });
1358
+ return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1359
+
1360
+ case 4:
1361
+ case "end":
1362
+ return _context6.stop();
1363
+ }
1364
+ }
1365
+ }, _callee6);
1366
+ }));
1367
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1368
+ }
1369
+
1370
+ function uniswapV3OrderTokenPair(_ref7) {
1371
+ var tokenA = _ref7.tokenA,
1372
+ tokenB = _ref7.tokenB;
1373
+ var tokenAAddress = ethers$1.resolveAddress(tokenA);
1374
+ var tokenBAddress = ethers$1.resolveAddress(tokenB);
1375
+ return tokenAAddress < tokenBAddress ? {
1376
+ token0: tokenAAddress,
1377
+ token1: tokenBAddress
1378
+ } : {
1379
+ token0: tokenBAddress,
1380
+ token1: tokenAAddress
1381
+ };
1382
+ }
1383
+
1384
+ function generateFeeManagerConfigWithMockFees(_x) {
1385
+ return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1386
+ }
1387
+
1388
+ function _generateFeeManagerConfigWithMockFees() {
1389
+ _generateFeeManagerConfigWithMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1390
+ var deployer, fees, feeManagerSettingsData;
1391
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
1392
+ while (1) {
1393
+ switch (_context.prev = _context.next) {
1394
+ case 0:
1395
+ deployer = _ref.deployer;
1396
+ _context.next = 3;
1397
+ return generateMockFees({
1398
+ deployer: deployer
1399
+ });
1400
+
1401
+ case 3:
1402
+ fees = _context.sent;
1403
+ feeManagerSettingsData = [ethers.utils.randomBytes(10), '0x', ethers.utils.randomBytes(2)];
1404
+ return _context.abrupt("return", protocol.feeManagerConfigArgs({
1405
+ fees: Object.values(fees),
1406
+ settings: feeManagerSettingsData
1407
+ }));
1408
+
1409
+ case 6:
1410
+ case "end":
1411
+ return _context.stop();
1412
+ }
1413
+ }
1414
+ }, _callee);
1415
+ }));
1416
+ return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1417
+ }
1418
+
1419
+ function generateMockFees(_x2) {
1420
+ return _generateMockFees.apply(this, arguments);
1421
+ }
1422
+
1423
+ function _generateMockFees() {
1424
+ _generateMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
1425
+ var deployer, mockContinuousFeeSettleOnly, mockContinuousFeeWithGavAndUpdates, mockPostBuySharesFee;
1426
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
1427
+ while (1) {
1428
+ switch (_context2.prev = _context2.next) {
1429
+ case 0:
1430
+ deployer = _ref2.deployer;
1431
+ _context2.next = 3;
1432
+ return protocol.IFee.mock(deployer);
1433
+
1434
+ case 3:
1435
+ mockContinuousFeeSettleOnly = _context2.sent;
1436
+ _context2.next = 6;
1437
+ return protocol.IFee.mock(deployer);
1438
+
1439
+ case 6:
1440
+ mockContinuousFeeWithGavAndUpdates = _context2.sent;
1441
+ _context2.next = 9;
1442
+ return protocol.IFee.mock(deployer);
1443
+
1444
+ case 9:
1445
+ mockPostBuySharesFee = _context2.sent;
1446
+ _context2.next = 12;
1447
+ return Promise.all([// Continuous fee the mimics ManagementFee
1448
+ mockContinuousFeeSettleOnly.getRecipientForFund.returns(ethers.constants.AddressZero), mockContinuousFeeSettleOnly.settle.returns(protocol.FeeSettlementType.None, ethers.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(protocol.FeeHook.Continuous).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(protocol.FeeHook.PreBuyShares).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(protocol.FeeHook.PreRedeemShares).returns(true, false), mockContinuousFeeSettleOnly.updatesOnHook.returns(false, false), // Continuous fee the mimics PerformanceFee
1449
+ mockContinuousFeeWithGavAndUpdates.getRecipientForFund.returns(ethers.constants.AddressZero), mockContinuousFeeWithGavAndUpdates.settle.returns(protocol.FeeSettlementType.None, ethers.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(protocol.FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(protocol.FeeHook.PreBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(protocol.FeeHook.PreRedeemShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol.FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol.FeeHook.PostBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol.FeeHook.PreRedeemShares).returns(true, true), // PostBuyShares fee
1450
+ mockPostBuySharesFee.getRecipientForFund.returns(ethers.constants.AddressZero), mockPostBuySharesFee.settle.returns(protocol.FeeSettlementType.None, ethers.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(protocol.FeeHook.PostBuyShares).returns(true, false), mockPostBuySharesFee.updatesOnHook.returns(false, false)]);
1451
+
1452
+ case 12:
1453
+ return _context2.abrupt("return", {
1454
+ mockContinuousFeeSettleOnly: mockContinuousFeeSettleOnly,
1455
+ mockContinuousFeeWithGavAndUpdates: mockContinuousFeeWithGavAndUpdates,
1456
+ mockPostBuySharesFee: mockPostBuySharesFee
1457
+ });
1458
+
1459
+ case 13:
1460
+ case "end":
1461
+ return _context2.stop();
1462
+ }
1463
+ }
1464
+ }, _callee2);
1465
+ }));
1466
+ return _generateMockFees.apply(this, arguments);
1467
+ }
1468
+
1469
+ function aaveLend(_x) {
1470
+ return _aaveLend.apply(this, arguments);
1471
+ }
1472
+
1473
+ function _aaveLend() {
1474
+ _aaveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1475
+ var comptrollerProxy, integrationManager, fundOwner, aaveAdapter, aToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
1476
+
1477
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
1478
+ while (1) {
1479
+ switch (_context.prev = _context.next) {
1480
+ case 0:
1481
+ comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, aaveAdapter = _ref.aaveAdapter, aToken = _ref.aToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? ethers.utils.parseEther('1') : _ref$amount;
1482
+ lendArgs = protocol.aaveLendArgs({
1483
+ aToken: aToken,
1484
+ amount: amount
1485
+ });
1486
+ callArgs = protocol.callOnIntegrationArgs({
1487
+ adapter: aaveAdapter,
1488
+ encodedCallArgs: lendArgs,
1489
+ selector: protocol.lendSelector
1490
+ });
1491
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1492
+ return _context.abrupt("return", lendTx);
1493
+
1494
+ case 5:
1234
1495
  case "end":
1235
1496
  return _context.stop();
1236
1497
  }
@@ -1259,8 +1520,8 @@ function _aaveRedeem() {
1259
1520
  });
1260
1521
  callArgs = protocol.callOnIntegrationArgs({
1261
1522
  adapter: aaveAdapter,
1262
- selector: protocol.redeemSelector,
1263
- encodedCallArgs: redeemArgs
1523
+ encodedCallArgs: redeemArgs,
1524
+ selector: protocol.redeemSelector
1264
1525
  });
1265
1526
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1266
1527
  return _context2.abrupt("return", redeemTx);
@@ -1277,87 +1538,303 @@ function _aaveRedeem() {
1277
1538
 
1278
1539
  var _templateObject$2;
1279
1540
  var ICompoundComptroller = ethers$1.contract()(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n function claimComp(address)\n"])));
1280
- function compoundLend(_x) {
1281
- return _compoundLend.apply(this, arguments);
1541
+ function assertCompoundLend(_x) {
1542
+ return _assertCompoundLend.apply(this, arguments);
1282
1543
  }
1283
1544
 
1284
- function _compoundLend() {
1285
- _compoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1286
- var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref$tokenAmount, tokenAmount, _ref$cTokenAmount, cTokenAmount, lendArgs, callArgs, lendTx;
1545
+ function _assertCompoundLend() {
1546
+ _assertCompoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1547
+ 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;
1287
1548
 
1288
1549
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
1289
1550
  while (1) {
1290
1551
  switch (_context.prev = _context.next) {
1291
1552
  case 0:
1292
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, compoundAdapter = _ref.compoundAdapter, cToken = _ref.cToken, _ref$tokenAmount = _ref.tokenAmount, tokenAmount = _ref$tokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref$tokenAmount, _ref$cTokenAmount = _ref.cTokenAmount, cTokenAmount = _ref$cTokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref$cTokenAmount;
1553
+ 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 ? ethers.utils.parseEther('1') : _ref$tokenAmount, cToken = _ref.cToken, compoundPriceFeed = _ref.compoundPriceFeed;
1554
+ _context.t0 = protocol.StandardToken;
1555
+ _context.next = 4;
1556
+ return compoundPriceFeed.getTokenFromCToken.args(cToken).call();
1557
+
1558
+ case 4:
1559
+ _context.t1 = _context.sent;
1560
+ _context.t2 = tokenWhale;
1561
+ token = new _context.t0(_context.t1, _context.t2);
1562
+ _context.next = 9;
1563
+ return token.connect(tokenWhale).transfer(vaultProxy, tokenAmount);
1564
+
1565
+ case 9:
1566
+ _context.next = 11;
1567
+ return cToken.exchangeRateStored.call();
1568
+
1569
+ case 11:
1570
+ rateBefore = _context.sent;
1571
+ // Exchange rate stored can have a small deviation from exchangeRateStored
1572
+ minIncomingCTokenAmount = tokenAmount.mul(ethers.utils.parseEther('1')).div(rateBefore).mul(ethers.BigNumber.from('999')).div(ethers.BigNumber.from('1000'));
1573
+ _context.next = 15;
1574
+ return getAssetBalances({
1575
+ account: vaultProxy,
1576
+ assets: [cToken, token]
1577
+ });
1578
+
1579
+ case 15:
1580
+ _yield$getAssetBalanc = _context.sent;
1581
+ _yield$getAssetBalanc2 = _slicedToArray(_yield$getAssetBalanc, 2);
1582
+ preTxIncomingAssetBalance = _yield$getAssetBalanc2[0];
1583
+ preTxOutgoingAssetBalance = _yield$getAssetBalanc2[1];
1584
+ _context.next = 21;
1585
+ return compoundLend({
1586
+ cToken: cToken,
1587
+ cTokenAmount: minIncomingCTokenAmount,
1588
+ compoundAdapter: compoundAdapter,
1589
+ comptrollerProxy: comptrollerProxy,
1590
+ fundOwner: fundOwner,
1591
+ integrationManager: integrationManager,
1592
+ tokenAmount: tokenAmount
1593
+ });
1594
+
1595
+ case 21:
1596
+ lendReceipt = _context.sent;
1597
+ _context.next = 24;
1598
+ return cToken.exchangeRateStored();
1599
+
1600
+ case 24:
1601
+ rate = _context.sent;
1602
+ _context.next = 27;
1603
+ return getAssetBalances({
1604
+ account: vaultProxy,
1605
+ assets: [cToken, token]
1606
+ });
1607
+
1608
+ case 27:
1609
+ _yield$getAssetBalanc3 = _context.sent;
1610
+ _yield$getAssetBalanc4 = _slicedToArray(_yield$getAssetBalanc3, 2);
1611
+ postTxIncomingAssetBalance = _yield$getAssetBalanc4[0];
1612
+ postTxOutgoingAssetBalance = _yield$getAssetBalanc4[1];
1613
+ expectedCTokenAmount = tokenAmount.mul(ethers.utils.parseEther('1')).div(rate);
1614
+ expect(postTxIncomingAssetBalance).toEqBigNumber(preTxIncomingAssetBalance.add(expectedCTokenAmount));
1615
+ expect(postTxOutgoingAssetBalance).toEqBigNumber(preTxOutgoingAssetBalance.sub(tokenAmount));
1616
+ return _context.abrupt("return", lendReceipt);
1617
+
1618
+ case 35:
1619
+ case "end":
1620
+ return _context.stop();
1621
+ }
1622
+ }
1623
+ }, _callee);
1624
+ }));
1625
+ return _assertCompoundLend.apply(this, arguments);
1626
+ }
1627
+
1628
+ function assertCompoundRedeem(_x2) {
1629
+ return _assertCompoundRedeem.apply(this, arguments);
1630
+ }
1631
+
1632
+ function _assertCompoundRedeem() {
1633
+ _assertCompoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
1634
+ 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;
1635
+
1636
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
1637
+ while (1) {
1638
+ switch (_context2.prev = _context2.next) {
1639
+ case 0:
1640
+ comptrollerProxy = _ref2.comptrollerProxy, vaultProxy = _ref2.vaultProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, compoundAdapter = _ref2.compoundAdapter, cToken = _ref2.cToken, compoundPriceFeed = _ref2.compoundPriceFeed;
1641
+ _context2.t0 = ethers.utils;
1642
+ _context2.next = 4;
1643
+ return cToken.decimals();
1644
+
1645
+ case 4:
1646
+ _context2.t1 = _context2.sent;
1647
+ cTokenAmount = _context2.t0.parseUnits.call(_context2.t0, '1', _context2.t1);
1648
+ _context2.next = 8;
1649
+ return cToken.transfer(vaultProxy, cTokenAmount);
1650
+
1651
+ case 8:
1652
+ _context2.t2 = protocol.StandardToken;
1653
+ _context2.next = 11;
1654
+ return compoundPriceFeed.getTokenFromCToken.args(cToken).call();
1655
+
1656
+ case 11:
1657
+ _context2.t3 = _context2.sent;
1658
+ _context2.t4 = provider;
1659
+ token = new _context2.t2(_context2.t3, _context2.t4);
1660
+ _context2.next = 16;
1661
+ return getAssetBalances({
1662
+ account: vaultProxy,
1663
+ assets: [token, cToken]
1664
+ });
1665
+
1666
+ case 16:
1667
+ _yield$getAssetBalanc5 = _context2.sent;
1668
+ _yield$getAssetBalanc6 = _slicedToArray(_yield$getAssetBalanc5, 2);
1669
+ preTxIncomingAssetBalance = _yield$getAssetBalanc6[0];
1670
+ preTxOutgoingAssetBalance = _yield$getAssetBalanc6[1];
1671
+ _context2.next = 22;
1672
+ return cToken.exchangeRateStored();
1673
+
1674
+ case 22:
1675
+ rateBefore = _context2.sent;
1676
+ minIncomingTokenAmount = cTokenAmount.mul(rateBefore).div(ethers.utils.parseEther('1'));
1677
+ _context2.next = 26;
1678
+ return compoundRedeem({
1679
+ cToken: cToken,
1680
+ cTokenAmount: cTokenAmount,
1681
+ compoundAdapter: compoundAdapter,
1682
+ comptrollerProxy: comptrollerProxy,
1683
+ fundOwner: fundOwner,
1684
+ integrationManager: integrationManager,
1685
+ tokenAmount: minIncomingTokenAmount,
1686
+ vaultProxy: vaultProxy
1687
+ });
1688
+
1689
+ case 26:
1690
+ redeemReceipt = _context2.sent;
1691
+ _context2.next = 29;
1692
+ return getAssetBalances({
1693
+ account: vaultProxy,
1694
+ assets: [token, cToken]
1695
+ });
1696
+
1697
+ case 29:
1698
+ _yield$getAssetBalanc7 = _context2.sent;
1699
+ _yield$getAssetBalanc8 = _slicedToArray(_yield$getAssetBalanc7, 2);
1700
+ postTxIncomingAssetBalance = _yield$getAssetBalanc8[0];
1701
+ postTxOutgoingAssetBalance = _yield$getAssetBalanc8[1];
1702
+ _context2.next = 35;
1703
+ return cToken.exchangeRateStored();
1704
+
1705
+ case 35:
1706
+ rate = _context2.sent;
1707
+ expectedTokenAmount = cTokenAmount.mul(rate).div(ethers.utils.parseEther('1'));
1708
+ expect(postTxIncomingAssetBalance).toEqBigNumber(preTxIncomingAssetBalance.add(expectedTokenAmount));
1709
+ expect(postTxOutgoingAssetBalance).toEqBigNumber(preTxOutgoingAssetBalance.sub(cTokenAmount));
1710
+ return _context2.abrupt("return", redeemReceipt);
1711
+
1712
+ case 40:
1713
+ case "end":
1714
+ return _context2.stop();
1715
+ }
1716
+ }
1717
+ }, _callee2);
1718
+ }));
1719
+ return _assertCompoundRedeem.apply(this, arguments);
1720
+ }
1721
+
1722
+ function compoundClaim(_x3) {
1723
+ return _compoundClaim.apply(this, arguments);
1724
+ }
1725
+
1726
+ function _compoundClaim() {
1727
+ _compoundClaim = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
1728
+ var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, compoundComptroller, cTokens, claimArgs, callArgs, claimRewardsTx;
1729
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
1730
+ while (1) {
1731
+ switch (_context3.prev = _context3.next) {
1732
+ case 0:
1733
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, compoundAdapter = _ref3.compoundAdapter, compoundComptroller = _ref3.compoundComptroller, cTokens = _ref3.cTokens;
1734
+ claimArgs = protocol.compoundClaimRewardsArgs({
1735
+ cTokens: cTokens,
1736
+ compoundComptroller: compoundComptroller
1737
+ });
1738
+ callArgs = protocol.callOnIntegrationArgs({
1739
+ adapter: compoundAdapter,
1740
+ encodedCallArgs: claimArgs,
1741
+ selector: protocol.claimRewardsSelector
1742
+ });
1743
+ claimRewardsTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1744
+ return _context3.abrupt("return", claimRewardsTx);
1745
+
1746
+ case 5:
1747
+ case "end":
1748
+ return _context3.stop();
1749
+ }
1750
+ }
1751
+ }, _callee3);
1752
+ }));
1753
+ return _compoundClaim.apply(this, arguments);
1754
+ }
1755
+
1756
+ function compoundLend(_x4) {
1757
+ return _compoundLend.apply(this, arguments);
1758
+ }
1759
+
1760
+ function _compoundLend() {
1761
+ _compoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
1762
+ var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref4$tokenAmount, tokenAmount, _ref4$cTokenAmount, cTokenAmount, lendArgs, callArgs, lendTx;
1763
+
1764
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
1765
+ while (1) {
1766
+ switch (_context4.prev = _context4.next) {
1767
+ case 0:
1768
+ comptrollerProxy = _ref4.comptrollerProxy, integrationManager = _ref4.integrationManager, fundOwner = _ref4.fundOwner, compoundAdapter = _ref4.compoundAdapter, cToken = _ref4.cToken, _ref4$tokenAmount = _ref4.tokenAmount, tokenAmount = _ref4$tokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref4$tokenAmount, _ref4$cTokenAmount = _ref4.cTokenAmount, cTokenAmount = _ref4$cTokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref4$cTokenAmount;
1293
1769
  lendArgs = protocol.compoundArgs({
1294
1770
  cToken: cToken,
1295
- outgoingAssetAmount: tokenAmount,
1296
- minIncomingAssetAmount: cTokenAmount
1771
+ minIncomingAssetAmount: cTokenAmount,
1772
+ outgoingAssetAmount: tokenAmount
1297
1773
  });
1298
1774
  callArgs = protocol.callOnIntegrationArgs({
1299
1775
  adapter: compoundAdapter,
1300
- selector: protocol.lendSelector,
1301
- encodedCallArgs: lendArgs
1776
+ encodedCallArgs: lendArgs,
1777
+ selector: protocol.lendSelector
1302
1778
  });
1303
1779
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1304
- return _context.abrupt("return", lendTx);
1780
+ return _context4.abrupt("return", lendTx);
1305
1781
 
1306
1782
  case 5:
1307
1783
  case "end":
1308
- return _context.stop();
1784
+ return _context4.stop();
1309
1785
  }
1310
1786
  }
1311
- }, _callee);
1787
+ }, _callee4);
1312
1788
  }));
1313
1789
  return _compoundLend.apply(this, arguments);
1314
1790
  }
1315
1791
 
1316
- function compoundRedeem(_x2) {
1792
+ function compoundRedeem(_x5) {
1317
1793
  return _compoundRedeem.apply(this, arguments);
1318
1794
  }
1319
1795
 
1320
1796
  function _compoundRedeem() {
1321
- _compoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
1322
- var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref2$tokenAmount, tokenAmount, _ref2$cTokenAmount, cTokenAmount, redeemArgs, callArgs, redeemTx;
1797
+ _compoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(_ref5) {
1798
+ var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref5$tokenAmount, tokenAmount, _ref5$cTokenAmount, cTokenAmount, redeemArgs, callArgs, redeemTx;
1323
1799
 
1324
- return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
1800
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
1325
1801
  while (1) {
1326
- switch (_context2.prev = _context2.next) {
1802
+ switch (_context5.prev = _context5.next) {
1327
1803
  case 0:
1328
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, compoundAdapter = _ref2.compoundAdapter, cToken = _ref2.cToken, _ref2$tokenAmount = _ref2.tokenAmount, tokenAmount = _ref2$tokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref2$tokenAmount, _ref2$cTokenAmount = _ref2.cTokenAmount, cTokenAmount = _ref2$cTokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref2$cTokenAmount;
1804
+ comptrollerProxy = _ref5.comptrollerProxy, integrationManager = _ref5.integrationManager, fundOwner = _ref5.fundOwner, compoundAdapter = _ref5.compoundAdapter, cToken = _ref5.cToken, _ref5$tokenAmount = _ref5.tokenAmount, tokenAmount = _ref5$tokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref5$tokenAmount, _ref5$cTokenAmount = _ref5.cTokenAmount, cTokenAmount = _ref5$cTokenAmount === void 0 ? ethers.utils.parseEther('1') : _ref5$cTokenAmount;
1329
1805
  redeemArgs = protocol.compoundArgs({
1330
1806
  cToken: ethers$1.resolveAddress(cToken),
1331
- outgoingAssetAmount: cTokenAmount,
1332
- minIncomingAssetAmount: tokenAmount
1807
+ minIncomingAssetAmount: tokenAmount,
1808
+ outgoingAssetAmount: cTokenAmount
1333
1809
  });
1334
1810
  callArgs = protocol.callOnIntegrationArgs({
1335
1811
  adapter: compoundAdapter,
1336
- selector: protocol.redeemSelector,
1337
- encodedCallArgs: redeemArgs
1812
+ encodedCallArgs: redeemArgs,
1813
+ selector: protocol.redeemSelector
1338
1814
  });
1339
1815
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1340
- return _context2.abrupt("return", redeemTx);
1816
+ return _context5.abrupt("return", redeemTx);
1341
1817
 
1342
1818
  case 5:
1343
1819
  case "end":
1344
- return _context2.stop();
1820
+ return _context5.stop();
1345
1821
  }
1346
1822
  }
1347
- }, _callee2);
1823
+ }, _callee5);
1348
1824
  }));
1349
1825
  return _compoundRedeem.apply(this, arguments);
1350
1826
  }
1351
1827
 
1352
- var _templateObject$1, _templateObject2, _templateObject3;
1353
- var CurveLiquidityGaugeV2 = ethers$1.contract()(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n function claim_rewards(address)\n function integrate_fraction(address) view returns (uint256)\n"]))); // prettier-ignore
1828
+ var _templateObject$1, _templateObject2, _templateObject3, _templateObject4;
1829
+ var CurveLiquidityGaugeV2 = ethers$1.contract()(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n function claim_rewards(address)\n function integrate_fraction(address) view returns (uint256)\n"])));
1830
+ var CurveRegistry = ethers$1.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
1354
1831
 
1355
- var CurveSwaps = ethers$1.contract()(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n function get_best_rate(address _from, address to, uint256 amount) view returns (address bestPool, uint256 amountReceived)\n"])));
1356
- var CurveMinter = ethers$1.contract()(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n function mint_for(address,address)\n"]))); // exchanges
1832
+ var CurveSwaps = ethers$1.contract()(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n function get_best_rate(address _from, address to, uint256 amount) view returns (address bestPool, uint256 amountReceived)\n"])));
1833
+ var CurveMinter = ethers$1.contract()(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n function mint_for(address,address)\n"]))); // exchanges
1357
1834
 
1358
1835
  function curveTakeOrder(_x) {
1359
1836
  return _curveTakeOrder.apply(this, arguments);
1360
- } // aave pool
1837
+ } // combined liquidity
1361
1838
 
1362
1839
  function _curveTakeOrder() {
1363
1840
  _curveTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
@@ -1369,16 +1846,16 @@ function _curveTakeOrder() {
1369
1846
  case 0:
1370
1847
  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 ? ethers.utils.parseEther('1') : _ref$outgoingAssetAmo, incomingAsset = _ref.incomingAsset, _ref$minIncomingAsset = _ref.minIncomingAssetAmount, minIncomingAssetAmount = _ref$minIncomingAsset === void 0 ? ethers.utils.parseEther('1') : _ref$minIncomingAsset;
1371
1848
  takeOrderArgs = protocol.curveTakeOrderArgs({
1372
- pool: pool,
1849
+ incomingAsset: incomingAsset,
1850
+ minIncomingAssetAmount: minIncomingAssetAmount,
1373
1851
  outgoingAsset: outgoingAsset,
1374
1852
  outgoingAssetAmount: outgoingAssetAmount,
1375
- incomingAsset: incomingAsset,
1376
- minIncomingAssetAmount: minIncomingAssetAmount
1853
+ pool: pool
1377
1854
  });
1378
1855
  callArgs = protocol.callOnIntegrationArgs({
1379
1856
  adapter: curveExchangeAdapter,
1380
- selector: protocol.takeOrderSelector,
1381
- encodedCallArgs: takeOrderArgs
1857
+ encodedCallArgs: takeOrderArgs,
1858
+ selector: protocol.takeOrderSelector
1382
1859
  });
1383
1860
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1384
1861
 
@@ -1392,284 +1869,384 @@ function _curveTakeOrder() {
1392
1869
  return _curveTakeOrder.apply(this, arguments);
1393
1870
  }
1394
1871
 
1395
- function curveAaveClaimRewards(_ref2) {
1872
+ function curveClaimRewards(_ref2) {
1396
1873
  var comptrollerProxy = _ref2.comptrollerProxy,
1397
1874
  integrationManager = _ref2.integrationManager,
1398
1875
  fundOwner = _ref2.fundOwner,
1399
- curveLiquidityAaveAdapter = _ref2.curveLiquidityAaveAdapter;
1876
+ curveLiquidityAdapter = _ref2.curveLiquidityAdapter,
1877
+ stakingToken = _ref2.stakingToken;
1400
1878
  var callArgs = protocol.callOnIntegrationArgs({
1401
- adapter: curveLiquidityAaveAdapter,
1402
- selector: protocol.claimRewardsSelector,
1403
- encodedCallArgs: ethers.constants.HashZero
1879
+ adapter: curveLiquidityAdapter,
1880
+ encodedCallArgs: protocol.curveClaimRewardsArgs({
1881
+ stakingToken: stakingToken
1882
+ }),
1883
+ selector: protocol.claimRewardsSelector
1404
1884
  });
1405
1885
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1406
1886
  }
1407
- function curveAaveLend(_ref3) {
1408
- var comptrollerProxy = _ref3.comptrollerProxy,
1409
- integrationManager = _ref3.integrationManager,
1410
- fundOwner = _ref3.fundOwner,
1411
- curveLiquidityAaveAdapter = _ref3.curveLiquidityAaveAdapter,
1412
- _ref3$outgoingAaveDai = _ref3.outgoingAaveDaiAmount,
1413
- outgoingAaveDaiAmount = _ref3$outgoingAaveDai === void 0 ? ethers.BigNumber.from(0) : _ref3$outgoingAaveDai,
1414
- _ref3$outgoingAaveUsd = _ref3.outgoingAaveUsdcAmount,
1415
- outgoingAaveUsdcAmount = _ref3$outgoingAaveUsd === void 0 ? ethers.BigNumber.from(0) : _ref3$outgoingAaveUsd,
1416
- _ref3$outgoingAaveUsd2 = _ref3.outgoingAaveUsdtAmount,
1417
- outgoingAaveUsdtAmount = _ref3$outgoingAaveUsd2 === void 0 ? ethers.BigNumber.from(0) : _ref3$outgoingAaveUsd2,
1418
- _ref3$minIncomingLPTo = _ref3.minIncomingLPTokenAmount,
1419
- minIncomingLPTokenAmount = _ref3$minIncomingLPTo === void 0 ? ethers.BigNumber.from(1) : _ref3$minIncomingLPTo,
1420
- _ref3$useUnderlyings = _ref3.useUnderlyings,
1421
- useUnderlyings = _ref3$useUnderlyings === void 0 ? false : _ref3$useUnderlyings;
1422
- var callArgs = protocol.callOnIntegrationArgs({
1423
- adapter: curveLiquidityAaveAdapter,
1424
- selector: protocol.lendSelector,
1425
- encodedCallArgs: protocol.curveAaveLendArgs({
1426
- outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1427
- outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1428
- outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1429
- minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1430
- useUnderlyings: useUnderlyings
1431
- })
1432
- });
1433
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1887
+ function curveLend(_x2) {
1888
+ return _curveLend.apply(this, arguments);
1434
1889
  }
1435
- function curveAaveLendAndStake(_ref4) {
1436
- var comptrollerProxy = _ref4.comptrollerProxy,
1437
- integrationManager = _ref4.integrationManager,
1438
- fundOwner = _ref4.fundOwner,
1439
- curveLiquidityAaveAdapter = _ref4.curveLiquidityAaveAdapter,
1440
- _ref4$outgoingAaveDai = _ref4.outgoingAaveDaiAmount,
1441
- outgoingAaveDaiAmount = _ref4$outgoingAaveDai === void 0 ? ethers.BigNumber.from(0) : _ref4$outgoingAaveDai,
1442
- _ref4$outgoingAaveUsd = _ref4.outgoingAaveUsdcAmount,
1443
- outgoingAaveUsdcAmount = _ref4$outgoingAaveUsd === void 0 ? ethers.BigNumber.from(0) : _ref4$outgoingAaveUsd,
1444
- _ref4$outgoingAaveUsd2 = _ref4.outgoingAaveUsdtAmount,
1445
- outgoingAaveUsdtAmount = _ref4$outgoingAaveUsd2 === void 0 ? ethers.BigNumber.from(0) : _ref4$outgoingAaveUsd2,
1446
- _ref4$minIncomingLiqu = _ref4.minIncomingLiquidityGaugeTokenAmount,
1447
- minIncomingLiquidityGaugeTokenAmount = _ref4$minIncomingLiqu === void 0 ? ethers.BigNumber.from(1) : _ref4$minIncomingLiqu,
1448
- _ref4$useUnderlyings = _ref4.useUnderlyings,
1449
- useUnderlyings = _ref4$useUnderlyings === void 0 ? false : _ref4$useUnderlyings;
1450
- var callArgs = protocol.callOnIntegrationArgs({
1451
- adapter: curveLiquidityAaveAdapter,
1452
- selector: protocol.lendAndStakeSelector,
1453
- encodedCallArgs: protocol.curveAaveLendAndStakeArgs({
1454
- outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1455
- outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1456
- outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1457
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1458
- useUnderlyings: useUnderlyings
1459
- })
1460
- });
1461
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1890
+
1891
+ function _curveLend() {
1892
+ _curveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref3) {
1893
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, orderedOutgoingAssetAmounts, _ref3$minIncomingLpTo, minIncomingLpTokenAmount, useUnderlyings, callArgs;
1894
+
1895
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
1896
+ while (1) {
1897
+ switch (_context2.prev = _context2.next) {
1898
+ case 0:
1899
+ 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 ? ethers.BigNumber.from(1) : _ref3$minIncomingLpTo, useUnderlyings = _ref3.useUnderlyings;
1900
+ callArgs = protocol.callOnIntegrationArgs({
1901
+ adapter: curveLiquidityAdapter,
1902
+ encodedCallArgs: protocol.curveLendArgs({
1903
+ minIncomingLpTokenAmount: minIncomingLpTokenAmount,
1904
+ orderedOutgoingAssetAmounts: orderedOutgoingAssetAmounts,
1905
+ pool: pool,
1906
+ useUnderlyings: useUnderlyings
1907
+ }),
1908
+ selector: protocol.lendSelector
1909
+ });
1910
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1911
+
1912
+ case 3:
1913
+ case "end":
1914
+ return _context2.stop();
1915
+ }
1916
+ }
1917
+ }, _callee2);
1918
+ }));
1919
+ return _curveLend.apply(this, arguments);
1462
1920
  }
1463
- function curveAaveRedeem(_ref5) {
1464
- var comptrollerProxy = _ref5.comptrollerProxy,
1465
- integrationManager = _ref5.integrationManager,
1466
- fundOwner = _ref5.fundOwner,
1467
- curveLiquidityAaveAdapter = _ref5.curveLiquidityAaveAdapter,
1468
- outgoingLPTokenAmount = _ref5.outgoingLPTokenAmount,
1469
- _ref5$minIncomingAave = _ref5.minIncomingAaveDaiAmount,
1470
- minIncomingAaveDaiAmount = _ref5$minIncomingAave === void 0 ? ethers.BigNumber.from(1) : _ref5$minIncomingAave,
1471
- _ref5$minIncomingAave2 = _ref5.minIncomingAaveUsdcAmount,
1472
- minIncomingAaveUsdcAmount = _ref5$minIncomingAave2 === void 0 ? ethers.BigNumber.from(1) : _ref5$minIncomingAave2,
1473
- _ref5$minIncomingAave3 = _ref5.minIncomingAaveUsdtAmount,
1474
- minIncomingAaveUsdtAmount = _ref5$minIncomingAave3 === void 0 ? ethers.BigNumber.from(1) : _ref5$minIncomingAave3,
1475
- _ref5$receiveSingleAs = _ref5.receiveSingleAsset,
1476
- receiveSingleAsset = _ref5$receiveSingleAs === void 0 ? false : _ref5$receiveSingleAs,
1477
- _ref5$useUnderlyings = _ref5.useUnderlyings,
1478
- useUnderlyings = _ref5$useUnderlyings === void 0 ? false : _ref5$useUnderlyings;
1479
- var callArgs = protocol.callOnIntegrationArgs({
1480
- adapter: curveLiquidityAaveAdapter,
1481
- selector: protocol.redeemSelector,
1482
- encodedCallArgs: protocol.curveAaveRedeemArgs({
1483
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1484
- minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1485
- minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1486
- minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1487
- receiveSingleAsset: receiveSingleAsset,
1488
- useUnderlyings: useUnderlyings
1489
- })
1490
- });
1491
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1921
+
1922
+ function curveLendAndStake(_x3) {
1923
+ return _curveLendAndStake.apply(this, arguments);
1492
1924
  }
1493
- function curveAaveStake(_ref6) {
1494
- var comptrollerProxy = _ref6.comptrollerProxy,
1495
- integrationManager = _ref6.integrationManager,
1496
- fundOwner = _ref6.fundOwner,
1497
- curveLiquidityAaveAdapter = _ref6.curveLiquidityAaveAdapter,
1498
- outgoingLPTokenAmount = _ref6.outgoingLPTokenAmount;
1499
- var callArgs = protocol.callOnIntegrationArgs({
1500
- adapter: curveLiquidityAaveAdapter,
1501
- selector: protocol.stakeSelector,
1502
- encodedCallArgs: protocol.curveAaveStakeArgs({
1503
- outgoingLPTokenAmount: outgoingLPTokenAmount
1504
- })
1505
- });
1506
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1925
+
1926
+ function _curveLendAndStake() {
1927
+ _curveLendAndStake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref4) {
1928
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, orderedOutgoingAssetAmounts, incomingStakingToken, _ref4$minIncomingStak, minIncomingStakingTokenAmount, useUnderlyings, callArgs;
1929
+
1930
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
1931
+ while (1) {
1932
+ switch (_context3.prev = _context3.next) {
1933
+ case 0:
1934
+ 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 ? ethers.BigNumber.from(1) : _ref4$minIncomingStak, useUnderlyings = _ref4.useUnderlyings;
1935
+ callArgs = protocol.callOnIntegrationArgs({
1936
+ adapter: curveLiquidityAdapter,
1937
+ encodedCallArgs: protocol.curveLendAndStakeArgs({
1938
+ incomingStakingToken: incomingStakingToken,
1939
+ minIncomingStakingTokenAmount: minIncomingStakingTokenAmount,
1940
+ orderedOutgoingAssetAmounts: orderedOutgoingAssetAmounts,
1941
+ pool: pool,
1942
+ useUnderlyings: useUnderlyings
1943
+ }),
1944
+ selector: protocol.lendAndStakeSelector
1945
+ });
1946
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1947
+
1948
+ case 3:
1949
+ case "end":
1950
+ return _context3.stop();
1951
+ }
1952
+ }
1953
+ }, _callee3);
1954
+ }));
1955
+ return _curveLendAndStake.apply(this, arguments);
1507
1956
  }
1508
- function curveAaveUnstakeAndRedeem(_ref7) {
1509
- var comptrollerProxy = _ref7.comptrollerProxy,
1510
- integrationManager = _ref7.integrationManager,
1511
- fundOwner = _ref7.fundOwner,
1512
- curveLiquidityAaveAdapter = _ref7.curveLiquidityAaveAdapter,
1513
- outgoingLiquidityGaugeTokenAmount = _ref7.outgoingLiquidityGaugeTokenAmount,
1514
- _ref7$minIncomingAave = _ref7.minIncomingAaveDaiAmount,
1515
- minIncomingAaveDaiAmount = _ref7$minIncomingAave === void 0 ? ethers.BigNumber.from(1) : _ref7$minIncomingAave,
1516
- _ref7$minIncomingAave2 = _ref7.minIncomingAaveUsdcAmount,
1517
- minIncomingAaveUsdcAmount = _ref7$minIncomingAave2 === void 0 ? ethers.BigNumber.from(1) : _ref7$minIncomingAave2,
1518
- _ref7$minIncomingAave3 = _ref7.minIncomingAaveUsdtAmount,
1519
- minIncomingAaveUsdtAmount = _ref7$minIncomingAave3 === void 0 ? ethers.BigNumber.from(1) : _ref7$minIncomingAave3,
1520
- _ref7$receiveSingleAs = _ref7.receiveSingleAsset,
1521
- receiveSingleAsset = _ref7$receiveSingleAs === void 0 ? false : _ref7$receiveSingleAs,
1522
- _ref7$useUnderlyings = _ref7.useUnderlyings,
1523
- useUnderlyings = _ref7$useUnderlyings === void 0 ? false : _ref7$useUnderlyings;
1524
- var callArgs = protocol.callOnIntegrationArgs({
1525
- adapter: curveLiquidityAaveAdapter,
1526
- selector: protocol.unstakeAndRedeemSelector,
1527
- encodedCallArgs: protocol.curveAaveUnstakeAndRedeemArgs({
1528
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1529
- minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1530
- minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1531
- minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1532
- receiveSingleAsset: receiveSingleAsset,
1533
- useUnderlyings: useUnderlyings
1534
- })
1535
- });
1536
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1957
+
1958
+ function curveRedeem(_x4) {
1959
+ return _curveRedeem.apply(this, arguments);
1537
1960
  }
1538
- function curveAaveUnstake(_ref8) {
1539
- var comptrollerProxy = _ref8.comptrollerProxy,
1540
- integrationManager = _ref8.integrationManager,
1541
- fundOwner = _ref8.fundOwner,
1542
- curveLiquidityAaveAdapter = _ref8.curveLiquidityAaveAdapter,
1543
- outgoingLiquidityGaugeTokenAmount = _ref8.outgoingLiquidityGaugeTokenAmount;
1544
- var callArgs = protocol.callOnIntegrationArgs({
1545
- adapter: curveLiquidityAaveAdapter,
1546
- selector: protocol.unstakeSelector,
1547
- encodedCallArgs: protocol.curveAaveUnstakeArgs({
1548
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1549
- })
1550
- });
1551
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1552
- } // eurs pool
1553
1961
 
1554
- function curveEursClaimRewards(_ref9) {
1962
+ function _curveRedeem() {
1963
+ _curveRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref5) {
1964
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingLpTokenAmount, useUnderlyings, redeemType, incomingAssetData, callArgs;
1965
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
1966
+ while (1) {
1967
+ switch (_context4.prev = _context4.next) {
1968
+ case 0:
1969
+ 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;
1970
+ callArgs = protocol.callOnIntegrationArgs({
1971
+ adapter: curveLiquidityAdapter,
1972
+ encodedCallArgs: protocol.curveRedeemArgs({
1973
+ incomingAssetData: incomingAssetData,
1974
+ outgoingLpTokenAmount: outgoingLpTokenAmount,
1975
+ pool: pool,
1976
+ redeemType: redeemType,
1977
+ useUnderlyings: useUnderlyings
1978
+ }),
1979
+ selector: protocol.redeemSelector
1980
+ });
1981
+ return _context4.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1982
+
1983
+ case 3:
1984
+ case "end":
1985
+ return _context4.stop();
1986
+ }
1987
+ }
1988
+ }, _callee4);
1989
+ }));
1990
+ return _curveRedeem.apply(this, arguments);
1991
+ }
1992
+
1993
+ function curveStake(_x5) {
1994
+ return _curveStake.apply(this, arguments);
1995
+ }
1996
+
1997
+ function _curveStake() {
1998
+ _curveStake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(_ref6) {
1999
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, incomingStakingToken, amount, callArgs;
2000
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
2001
+ while (1) {
2002
+ switch (_context5.prev = _context5.next) {
2003
+ case 0:
2004
+ comptrollerProxy = _ref6.comptrollerProxy, integrationManager = _ref6.integrationManager, signer = _ref6.signer, curveLiquidityAdapter = _ref6.curveLiquidityAdapter, pool = _ref6.pool, incomingStakingToken = _ref6.incomingStakingToken, amount = _ref6.amount;
2005
+ callArgs = protocol.callOnIntegrationArgs({
2006
+ adapter: curveLiquidityAdapter,
2007
+ encodedCallArgs: protocol.curveStakeArgs({
2008
+ amount: amount,
2009
+ incomingStakingToken: incomingStakingToken,
2010
+ pool: pool
2011
+ }),
2012
+ selector: protocol.stakeSelector
2013
+ });
2014
+ return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2015
+
2016
+ case 3:
2017
+ case "end":
2018
+ return _context5.stop();
2019
+ }
2020
+ }
2021
+ }, _callee5);
2022
+ }));
2023
+ return _curveStake.apply(this, arguments);
2024
+ }
2025
+
2026
+ function curveUnstake(_x6) {
2027
+ return _curveUnstake.apply(this, arguments);
2028
+ }
2029
+
2030
+ function _curveUnstake() {
2031
+ _curveUnstake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee6(_ref7) {
2032
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingStakingToken, amount, callArgs;
2033
+ return _regeneratorRuntime__default['default'].wrap(function _callee6$(_context6) {
2034
+ while (1) {
2035
+ switch (_context6.prev = _context6.next) {
2036
+ case 0:
2037
+ comptrollerProxy = _ref7.comptrollerProxy, integrationManager = _ref7.integrationManager, signer = _ref7.signer, curveLiquidityAdapter = _ref7.curveLiquidityAdapter, pool = _ref7.pool, outgoingStakingToken = _ref7.outgoingStakingToken, amount = _ref7.amount;
2038
+ callArgs = protocol.callOnIntegrationArgs({
2039
+ adapter: curveLiquidityAdapter,
2040
+ encodedCallArgs: protocol.curveUnstakeArgs({
2041
+ amount: amount,
2042
+ outgoingStakingToken: outgoingStakingToken,
2043
+ pool: pool
2044
+ }),
2045
+ selector: protocol.unstakeSelector
2046
+ });
2047
+ return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2048
+
2049
+ case 3:
2050
+ case "end":
2051
+ return _context6.stop();
2052
+ }
2053
+ }
2054
+ }, _callee6);
2055
+ }));
2056
+ return _curveUnstake.apply(this, arguments);
2057
+ }
2058
+
2059
+ function curveUnstakeAndRedeem(_x7) {
2060
+ return _curveUnstakeAndRedeem.apply(this, arguments);
2061
+ } // aave pool
2062
+
2063
+ function _curveUnstakeAndRedeem() {
2064
+ _curveUnstakeAndRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee7(_ref8) {
2065
+ var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingStakingToken, outgoingStakingTokenAmount, useUnderlyings, redeemType, incomingAssetData, callArgs;
2066
+ return _regeneratorRuntime__default['default'].wrap(function _callee7$(_context7) {
2067
+ while (1) {
2068
+ switch (_context7.prev = _context7.next) {
2069
+ case 0:
2070
+ 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;
2071
+ callArgs = protocol.callOnIntegrationArgs({
2072
+ adapter: curveLiquidityAdapter,
2073
+ encodedCallArgs: protocol.curveUnstakeAndRedeemArgs({
2074
+ incomingAssetData: incomingAssetData,
2075
+ outgoingStakingToken: outgoingStakingToken,
2076
+ outgoingStakingTokenAmount: outgoingStakingTokenAmount,
2077
+ pool: pool,
2078
+ redeemType: redeemType,
2079
+ useUnderlyings: useUnderlyings
2080
+ }),
2081
+ selector: protocol.unstakeAndRedeemSelector
2082
+ });
2083
+ return _context7.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2084
+
2085
+ case 3:
2086
+ case "end":
2087
+ return _context7.stop();
2088
+ }
2089
+ }
2090
+ }, _callee7);
2091
+ }));
2092
+ return _curveUnstakeAndRedeem.apply(this, arguments);
2093
+ }
2094
+
2095
+ function curveAaveClaimRewards(_ref9) {
1555
2096
  var comptrollerProxy = _ref9.comptrollerProxy,
1556
2097
  integrationManager = _ref9.integrationManager,
1557
2098
  fundOwner = _ref9.fundOwner,
1558
- curveLiquidityEursAdapter = _ref9.curveLiquidityEursAdapter;
2099
+ curveLiquidityAaveAdapter = _ref9.curveLiquidityAaveAdapter;
1559
2100
  var callArgs = protocol.callOnIntegrationArgs({
1560
- adapter: curveLiquidityEursAdapter,
1561
- selector: protocol.claimRewardsSelector,
1562
- encodedCallArgs: ethers.constants.HashZero
2101
+ adapter: curveLiquidityAaveAdapter,
2102
+ encodedCallArgs: ethers.constants.HashZero,
2103
+ selector: protocol.claimRewardsSelector
1563
2104
  });
1564
2105
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1565
2106
  }
1566
- function curveEursLend(_ref10) {
2107
+ function curveAaveLend(_ref10) {
1567
2108
  var comptrollerProxy = _ref10.comptrollerProxy,
1568
2109
  integrationManager = _ref10.integrationManager,
1569
2110
  fundOwner = _ref10.fundOwner,
1570
- curveLiquidityEursAdapter = _ref10.curveLiquidityEursAdapter,
1571
- outgoingEursAmount = _ref10.outgoingEursAmount,
1572
- outgoingSeurAmount = _ref10.outgoingSeurAmount,
1573
- minIncomingLPTokenAmount = _ref10.minIncomingLPTokenAmount;
2111
+ curveLiquidityAaveAdapter = _ref10.curveLiquidityAaveAdapter,
2112
+ _ref10$outgoingAaveDa = _ref10.outgoingAaveDaiAmount,
2113
+ outgoingAaveDaiAmount = _ref10$outgoingAaveDa === void 0 ? ethers.BigNumber.from(0) : _ref10$outgoingAaveDa,
2114
+ _ref10$outgoingAaveUs = _ref10.outgoingAaveUsdcAmount,
2115
+ outgoingAaveUsdcAmount = _ref10$outgoingAaveUs === void 0 ? ethers.BigNumber.from(0) : _ref10$outgoingAaveUs,
2116
+ _ref10$outgoingAaveUs2 = _ref10.outgoingAaveUsdtAmount,
2117
+ outgoingAaveUsdtAmount = _ref10$outgoingAaveUs2 === void 0 ? ethers.BigNumber.from(0) : _ref10$outgoingAaveUs2,
2118
+ _ref10$minIncomingLPT = _ref10.minIncomingLPTokenAmount,
2119
+ minIncomingLPTokenAmount = _ref10$minIncomingLPT === void 0 ? ethers.BigNumber.from(1) : _ref10$minIncomingLPT,
2120
+ _ref10$useUnderlyings = _ref10.useUnderlyings,
2121
+ useUnderlyings = _ref10$useUnderlyings === void 0 ? false : _ref10$useUnderlyings;
1574
2122
  var callArgs = protocol.callOnIntegrationArgs({
1575
- adapter: curveLiquidityEursAdapter,
1576
- selector: protocol.lendSelector,
1577
- encodedCallArgs: protocol.curveEursLendArgs({
1578
- outgoingEursAmount: outgoingEursAmount,
1579
- outgoingSeurAmount: outgoingSeurAmount,
1580
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1581
- })
2123
+ adapter: curveLiquidityAaveAdapter,
2124
+ encodedCallArgs: protocol.curveAaveLendArgs({
2125
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
2126
+ outgoingAaveDaiAmount: outgoingAaveDaiAmount,
2127
+ outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
2128
+ outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
2129
+ useUnderlyings: useUnderlyings
2130
+ }),
2131
+ selector: protocol.lendSelector
1582
2132
  });
1583
2133
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1584
2134
  }
1585
- function curveEursLendAndStake(_ref11) {
2135
+ function curveAaveLendAndStake(_ref11) {
1586
2136
  var comptrollerProxy = _ref11.comptrollerProxy,
1587
2137
  integrationManager = _ref11.integrationManager,
1588
2138
  fundOwner = _ref11.fundOwner,
1589
- curveLiquidityEursAdapter = _ref11.curveLiquidityEursAdapter,
1590
- outgoingEursAmount = _ref11.outgoingEursAmount,
1591
- outgoingSeurAmount = _ref11.outgoingSeurAmount,
1592
- minIncomingLiquidityGaugeTokenAmount = _ref11.minIncomingLiquidityGaugeTokenAmount;
2139
+ curveLiquidityAaveAdapter = _ref11.curveLiquidityAaveAdapter,
2140
+ _ref11$outgoingAaveDa = _ref11.outgoingAaveDaiAmount,
2141
+ outgoingAaveDaiAmount = _ref11$outgoingAaveDa === void 0 ? ethers.BigNumber.from(0) : _ref11$outgoingAaveDa,
2142
+ _ref11$outgoingAaveUs = _ref11.outgoingAaveUsdcAmount,
2143
+ outgoingAaveUsdcAmount = _ref11$outgoingAaveUs === void 0 ? ethers.BigNumber.from(0) : _ref11$outgoingAaveUs,
2144
+ _ref11$outgoingAaveUs2 = _ref11.outgoingAaveUsdtAmount,
2145
+ outgoingAaveUsdtAmount = _ref11$outgoingAaveUs2 === void 0 ? ethers.BigNumber.from(0) : _ref11$outgoingAaveUs2,
2146
+ _ref11$minIncomingLiq = _ref11.minIncomingLiquidityGaugeTokenAmount,
2147
+ minIncomingLiquidityGaugeTokenAmount = _ref11$minIncomingLiq === void 0 ? ethers.BigNumber.from(1) : _ref11$minIncomingLiq,
2148
+ _ref11$useUnderlyings = _ref11.useUnderlyings,
2149
+ useUnderlyings = _ref11$useUnderlyings === void 0 ? false : _ref11$useUnderlyings;
1593
2150
  var callArgs = protocol.callOnIntegrationArgs({
1594
- adapter: curveLiquidityEursAdapter,
1595
- selector: protocol.lendAndStakeSelector,
1596
- encodedCallArgs: protocol.curveEursLendAndStakeArgs({
1597
- outgoingEursAmount: outgoingEursAmount,
1598
- outgoingSeurAmount: outgoingSeurAmount,
1599
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1600
- })
2151
+ adapter: curveLiquidityAaveAdapter,
2152
+ encodedCallArgs: protocol.curveAaveLendAndStakeArgs({
2153
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
2154
+ outgoingAaveDaiAmount: outgoingAaveDaiAmount,
2155
+ outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
2156
+ outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
2157
+ useUnderlyings: useUnderlyings
2158
+ }),
2159
+ selector: protocol.lendAndStakeSelector
1601
2160
  });
1602
2161
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1603
2162
  }
1604
- function curveEursRedeem(_ref12) {
2163
+ function curveAaveRedeem(_ref12) {
1605
2164
  var comptrollerProxy = _ref12.comptrollerProxy,
1606
2165
  integrationManager = _ref12.integrationManager,
1607
2166
  fundOwner = _ref12.fundOwner,
1608
- curveLiquidityEursAdapter = _ref12.curveLiquidityEursAdapter,
2167
+ curveLiquidityAaveAdapter = _ref12.curveLiquidityAaveAdapter,
1609
2168
  outgoingLPTokenAmount = _ref12.outgoingLPTokenAmount,
1610
- minIncomingEursAmount = _ref12.minIncomingEursAmount,
1611
- minIncomingSeurAmount = _ref12.minIncomingSeurAmount,
1612
- receiveSingleAsset = _ref12.receiveSingleAsset;
2169
+ _ref12$minIncomingAav = _ref12.minIncomingAaveDaiAmount,
2170
+ minIncomingAaveDaiAmount = _ref12$minIncomingAav === void 0 ? ethers.BigNumber.from(1) : _ref12$minIncomingAav,
2171
+ _ref12$minIncomingAav2 = _ref12.minIncomingAaveUsdcAmount,
2172
+ minIncomingAaveUsdcAmount = _ref12$minIncomingAav2 === void 0 ? ethers.BigNumber.from(1) : _ref12$minIncomingAav2,
2173
+ _ref12$minIncomingAav3 = _ref12.minIncomingAaveUsdtAmount,
2174
+ minIncomingAaveUsdtAmount = _ref12$minIncomingAav3 === void 0 ? ethers.BigNumber.from(1) : _ref12$minIncomingAav3,
2175
+ _ref12$receiveSingleA = _ref12.receiveSingleAsset,
2176
+ receiveSingleAsset = _ref12$receiveSingleA === void 0 ? false : _ref12$receiveSingleA,
2177
+ _ref12$useUnderlyings = _ref12.useUnderlyings,
2178
+ useUnderlyings = _ref12$useUnderlyings === void 0 ? false : _ref12$useUnderlyings;
1613
2179
  var callArgs = protocol.callOnIntegrationArgs({
1614
- adapter: curveLiquidityEursAdapter,
1615
- selector: protocol.redeemSelector,
1616
- encodedCallArgs: protocol.curveEursRedeemArgs({
2180
+ adapter: curveLiquidityAaveAdapter,
2181
+ encodedCallArgs: protocol.curveAaveRedeemArgs({
2182
+ minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
2183
+ minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
2184
+ minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1617
2185
  outgoingLPTokenAmount: outgoingLPTokenAmount,
1618
- minIncomingEursAmount: minIncomingEursAmount,
1619
- minIncomingSeurAmount: minIncomingSeurAmount,
1620
- receiveSingleAsset: receiveSingleAsset
1621
- })
2186
+ receiveSingleAsset: receiveSingleAsset,
2187
+ useUnderlyings: useUnderlyings
2188
+ }),
2189
+ selector: protocol.redeemSelector
1622
2190
  });
1623
2191
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1624
2192
  }
1625
- function curveEursStake(_ref13) {
2193
+ function curveAaveStake(_ref13) {
1626
2194
  var comptrollerProxy = _ref13.comptrollerProxy,
1627
2195
  integrationManager = _ref13.integrationManager,
1628
2196
  fundOwner = _ref13.fundOwner,
1629
- curveLiquidityEursAdapter = _ref13.curveLiquidityEursAdapter,
2197
+ curveLiquidityAaveAdapter = _ref13.curveLiquidityAaveAdapter,
1630
2198
  outgoingLPTokenAmount = _ref13.outgoingLPTokenAmount;
1631
2199
  var callArgs = protocol.callOnIntegrationArgs({
1632
- adapter: curveLiquidityEursAdapter,
1633
- selector: protocol.stakeSelector,
1634
- encodedCallArgs: protocol.curveEursStakeArgs({
2200
+ adapter: curveLiquidityAaveAdapter,
2201
+ encodedCallArgs: protocol.curveAaveStakeArgs({
1635
2202
  outgoingLPTokenAmount: outgoingLPTokenAmount
1636
- })
2203
+ }),
2204
+ selector: protocol.stakeSelector
1637
2205
  });
1638
2206
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1639
2207
  }
1640
- function curveEursUnstakeAndRedeem(_ref14) {
2208
+ function curveAaveUnstakeAndRedeem(_ref14) {
1641
2209
  var comptrollerProxy = _ref14.comptrollerProxy,
1642
2210
  integrationManager = _ref14.integrationManager,
1643
2211
  fundOwner = _ref14.fundOwner,
1644
- curveLiquidityEursAdapter = _ref14.curveLiquidityEursAdapter,
2212
+ curveLiquidityAaveAdapter = _ref14.curveLiquidityAaveAdapter,
1645
2213
  outgoingLiquidityGaugeTokenAmount = _ref14.outgoingLiquidityGaugeTokenAmount,
1646
- minIncomingEursAmount = _ref14.minIncomingEursAmount,
1647
- minIncomingSeurAmount = _ref14.minIncomingSeurAmount,
1648
- receiveSingleAsset = _ref14.receiveSingleAsset;
2214
+ _ref14$minIncomingAav = _ref14.minIncomingAaveDaiAmount,
2215
+ minIncomingAaveDaiAmount = _ref14$minIncomingAav === void 0 ? ethers.BigNumber.from(1) : _ref14$minIncomingAav,
2216
+ _ref14$minIncomingAav2 = _ref14.minIncomingAaveUsdcAmount,
2217
+ minIncomingAaveUsdcAmount = _ref14$minIncomingAav2 === void 0 ? ethers.BigNumber.from(1) : _ref14$minIncomingAav2,
2218
+ _ref14$minIncomingAav3 = _ref14.minIncomingAaveUsdtAmount,
2219
+ minIncomingAaveUsdtAmount = _ref14$minIncomingAav3 === void 0 ? ethers.BigNumber.from(1) : _ref14$minIncomingAav3,
2220
+ _ref14$receiveSingleA = _ref14.receiveSingleAsset,
2221
+ receiveSingleAsset = _ref14$receiveSingleA === void 0 ? false : _ref14$receiveSingleA,
2222
+ _ref14$useUnderlyings = _ref14.useUnderlyings,
2223
+ useUnderlyings = _ref14$useUnderlyings === void 0 ? false : _ref14$useUnderlyings;
1649
2224
  var callArgs = protocol.callOnIntegrationArgs({
1650
- adapter: curveLiquidityEursAdapter,
1651
- selector: protocol.unstakeAndRedeemSelector,
1652
- encodedCallArgs: protocol.curveEursUnstakeAndRedeemArgs({
2225
+ adapter: curveLiquidityAaveAdapter,
2226
+ encodedCallArgs: protocol.curveAaveUnstakeAndRedeemArgs({
2227
+ minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
2228
+ minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
2229
+ minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1653
2230
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1654
- minIncomingEursAmount: minIncomingEursAmount,
1655
- minIncomingSeurAmount: minIncomingSeurAmount,
1656
- receiveSingleAsset: receiveSingleAsset
1657
- })
2231
+ receiveSingleAsset: receiveSingleAsset,
2232
+ useUnderlyings: useUnderlyings
2233
+ }),
2234
+ selector: protocol.unstakeAndRedeemSelector
1658
2235
  });
1659
2236
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1660
2237
  }
1661
- function curveEursUnstake(_ref15) {
2238
+ function curveAaveUnstake(_ref15) {
1662
2239
  var comptrollerProxy = _ref15.comptrollerProxy,
1663
2240
  integrationManager = _ref15.integrationManager,
1664
2241
  fundOwner = _ref15.fundOwner,
1665
- curveLiquidityEursAdapter = _ref15.curveLiquidityEursAdapter,
2242
+ curveLiquidityAaveAdapter = _ref15.curveLiquidityAaveAdapter,
1666
2243
  outgoingLiquidityGaugeTokenAmount = _ref15.outgoingLiquidityGaugeTokenAmount;
1667
2244
  var callArgs = protocol.callOnIntegrationArgs({
1668
- adapter: curveLiquidityEursAdapter,
1669
- selector: protocol.unstakeSelector,
1670
- encodedCallArgs: protocol.curveEursUnstakeArgs({
2245
+ adapter: curveLiquidityAaveAdapter,
2246
+ encodedCallArgs: protocol.curveAaveUnstakeArgs({
1671
2247
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1672
- })
2248
+ }),
2249
+ selector: protocol.unstakeSelector
1673
2250
  });
1674
2251
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1675
2252
  } // sETH pool
@@ -1681,8 +2258,8 @@ function curveSethClaimRewards(_ref16) {
1681
2258
  curveLiquiditySethAdapter = _ref16.curveLiquiditySethAdapter;
1682
2259
  var callArgs = protocol.callOnIntegrationArgs({
1683
2260
  adapter: curveLiquiditySethAdapter,
1684
- selector: protocol.claimRewardsSelector,
1685
- encodedCallArgs: ethers.constants.HashZero
2261
+ encodedCallArgs: ethers.constants.HashZero,
2262
+ selector: protocol.claimRewardsSelector
1686
2263
  });
1687
2264
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1688
2265
  }
@@ -1696,12 +2273,12 @@ function curveSethLend(_ref17) {
1696
2273
  minIncomingLPTokenAmount = _ref17.minIncomingLPTokenAmount;
1697
2274
  var callArgs = protocol.callOnIntegrationArgs({
1698
2275
  adapter: curveLiquiditySethAdapter,
1699
- selector: protocol.lendSelector,
1700
2276
  encodedCallArgs: protocol.curveSethLendArgs({
1701
- outgoingWethAmount: outgoingWethAmount,
2277
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1702
2278
  outgoingSethAmount: outgoingSethAmount,
1703
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1704
- })
2279
+ outgoingWethAmount: outgoingWethAmount
2280
+ }),
2281
+ selector: protocol.lendSelector
1705
2282
  });
1706
2283
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1707
2284
  }
@@ -1715,12 +2292,12 @@ function curveSethLendAndStake(_ref18) {
1715
2292
  minIncomingLiquidityGaugeTokenAmount = _ref18.minIncomingLiquidityGaugeTokenAmount;
1716
2293
  var callArgs = protocol.callOnIntegrationArgs({
1717
2294
  adapter: curveLiquiditySethAdapter,
1718
- selector: protocol.lendAndStakeSelector,
1719
2295
  encodedCallArgs: protocol.curveSethLendAndStakeArgs({
1720
- outgoingWethAmount: outgoingWethAmount,
2296
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1721
2297
  outgoingSethAmount: outgoingSethAmount,
1722
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1723
- })
2298
+ outgoingWethAmount: outgoingWethAmount
2299
+ }),
2300
+ selector: protocol.lendAndStakeSelector
1724
2301
  });
1725
2302
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1726
2303
  }
@@ -1735,13 +2312,13 @@ function curveSethRedeem(_ref19) {
1735
2312
  receiveSingleAsset = _ref19.receiveSingleAsset;
1736
2313
  var callArgs = protocol.callOnIntegrationArgs({
1737
2314
  adapter: curveLiquiditySethAdapter,
1738
- selector: protocol.redeemSelector,
1739
- encodedCallArgs: protocol.curveSethRedeemArgs({
1740
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1741
- minIncomingWethAmount: minIncomingWethAmount,
2315
+ encodedCallArgs: protocol.curveSethRedeemArgs({
1742
2316
  minIncomingSethAmount: minIncomingSethAmount,
2317
+ minIncomingWethAmount: minIncomingWethAmount,
2318
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1743
2319
  receiveSingleAsset: receiveSingleAsset
1744
- })
2320
+ }),
2321
+ selector: protocol.redeemSelector
1745
2322
  });
1746
2323
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1747
2324
  }
@@ -1753,10 +2330,10 @@ function curveSethStake(_ref20) {
1753
2330
  outgoingLPTokenAmount = _ref20.outgoingLPTokenAmount;
1754
2331
  var callArgs = protocol.callOnIntegrationArgs({
1755
2332
  adapter: curveLiquiditySethAdapter,
1756
- selector: protocol.stakeSelector,
1757
2333
  encodedCallArgs: protocol.curveSethStakeArgs({
1758
2334
  outgoingLPTokenAmount: outgoingLPTokenAmount
1759
- })
2335
+ }),
2336
+ selector: protocol.stakeSelector
1760
2337
  });
1761
2338
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1762
2339
  }
@@ -1771,13 +2348,13 @@ function curveSethUnstakeAndRedeem(_ref21) {
1771
2348
  receiveSingleAsset = _ref21.receiveSingleAsset;
1772
2349
  var callArgs = protocol.callOnIntegrationArgs({
1773
2350
  adapter: curveLiquiditySethAdapter,
1774
- selector: protocol.unstakeAndRedeemSelector,
1775
2351
  encodedCallArgs: protocol.curveSethUnstakeAndRedeemArgs({
1776
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1777
- minIncomingWethAmount: minIncomingWethAmount,
1778
2352
  minIncomingSethAmount: minIncomingSethAmount,
2353
+ minIncomingWethAmount: minIncomingWethAmount,
2354
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1779
2355
  receiveSingleAsset: receiveSingleAsset
1780
- })
2356
+ }),
2357
+ selector: protocol.unstakeAndRedeemSelector
1781
2358
  });
1782
2359
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1783
2360
  }
@@ -1789,10 +2366,10 @@ function curveSethUnstake(_ref22) {
1789
2366
  outgoingLiquidityGaugeTokenAmount = _ref22.outgoingLiquidityGaugeTokenAmount;
1790
2367
  var callArgs = protocol.callOnIntegrationArgs({
1791
2368
  adapter: curveLiquiditySethAdapter,
1792
- selector: protocol.unstakeSelector,
1793
2369
  encodedCallArgs: protocol.curveSethUnstakeArgs({
1794
2370
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1795
- })
2371
+ }),
2372
+ selector: protocol.unstakeSelector
1796
2373
  });
1797
2374
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1798
2375
  } // stETH pool
@@ -1804,8 +2381,8 @@ function curveStethClaimRewards(_ref23) {
1804
2381
  curveLiquidityStethAdapter = _ref23.curveLiquidityStethAdapter;
1805
2382
  var callArgs = protocol.callOnIntegrationArgs({
1806
2383
  adapter: curveLiquidityStethAdapter,
1807
- selector: protocol.claimRewardsSelector,
1808
- encodedCallArgs: ethers.constants.HashZero
2384
+ encodedCallArgs: ethers.constants.HashZero,
2385
+ selector: protocol.claimRewardsSelector
1809
2386
  });
1810
2387
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1811
2388
  }
@@ -1819,12 +2396,12 @@ function curveStethLend(_ref24) {
1819
2396
  minIncomingLPTokenAmount = _ref24.minIncomingLPTokenAmount;
1820
2397
  var callArgs = protocol.callOnIntegrationArgs({
1821
2398
  adapter: curveLiquidityStethAdapter,
1822
- selector: protocol.lendSelector,
1823
2399
  encodedCallArgs: protocol.curveStethLendArgs({
1824
- outgoingWethAmount: outgoingWethAmount,
2400
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1825
2401
  outgoingStethAmount: outgoingStethAmount,
1826
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1827
- })
2402
+ outgoingWethAmount: outgoingWethAmount
2403
+ }),
2404
+ selector: protocol.lendSelector
1828
2405
  });
1829
2406
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1830
2407
  }
@@ -1838,12 +2415,12 @@ function curveStethLendAndStake(_ref25) {
1838
2415
  minIncomingLiquidityGaugeTokenAmount = _ref25.minIncomingLiquidityGaugeTokenAmount;
1839
2416
  var callArgs = protocol.callOnIntegrationArgs({
1840
2417
  adapter: curveLiquidityStethAdapter,
1841
- selector: protocol.lendAndStakeSelector,
1842
2418
  encodedCallArgs: protocol.curveStethLendAndStakeArgs({
1843
- outgoingWethAmount: outgoingWethAmount,
2419
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1844
2420
  outgoingStethAmount: outgoingStethAmount,
1845
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1846
- })
2421
+ outgoingWethAmount: outgoingWethAmount
2422
+ }),
2423
+ selector: protocol.lendAndStakeSelector
1847
2424
  });
1848
2425
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1849
2426
  }
@@ -1858,13 +2435,13 @@ function curveStethRedeem(_ref26) {
1858
2435
  receiveSingleAsset = _ref26.receiveSingleAsset;
1859
2436
  var callArgs = protocol.callOnIntegrationArgs({
1860
2437
  adapter: curveLiquidityStethAdapter,
1861
- selector: protocol.redeemSelector,
1862
2438
  encodedCallArgs: protocol.curveStethRedeemArgs({
1863
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1864
- minIncomingWethAmount: minIncomingWethAmount,
1865
2439
  minIncomingStethAmount: minIncomingStethAmount,
2440
+ minIncomingWethAmount: minIncomingWethAmount,
2441
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1866
2442
  receiveSingleAsset: receiveSingleAsset
1867
- })
2443
+ }),
2444
+ selector: protocol.redeemSelector
1868
2445
  });
1869
2446
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1870
2447
  }
@@ -1876,10 +2453,10 @@ function curveStethStake(_ref27) {
1876
2453
  outgoingLPTokenAmount = _ref27.outgoingLPTokenAmount;
1877
2454
  var callArgs = protocol.callOnIntegrationArgs({
1878
2455
  adapter: curveLiquidityStethAdapter,
1879
- selector: protocol.stakeSelector,
1880
2456
  encodedCallArgs: protocol.curveStethStakeArgs({
1881
2457
  outgoingLPTokenAmount: outgoingLPTokenAmount
1882
- })
2458
+ }),
2459
+ selector: protocol.stakeSelector
1883
2460
  });
1884
2461
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1885
2462
  }
@@ -1894,13 +2471,13 @@ function curveStethUnstakeAndRedeem(_ref28) {
1894
2471
  receiveSingleAsset = _ref28.receiveSingleAsset;
1895
2472
  var callArgs = protocol.callOnIntegrationArgs({
1896
2473
  adapter: curveLiquidityStethAdapter,
1897
- selector: protocol.unstakeAndRedeemSelector,
1898
2474
  encodedCallArgs: protocol.curveStethUnstakeAndRedeemArgs({
1899
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1900
- minIncomingWethAmount: minIncomingWethAmount,
1901
2475
  minIncomingStethAmount: minIncomingStethAmount,
2476
+ minIncomingWethAmount: minIncomingWethAmount,
2477
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1902
2478
  receiveSingleAsset: receiveSingleAsset
1903
- })
2479
+ }),
2480
+ selector: protocol.unstakeAndRedeemSelector
1904
2481
  });
1905
2482
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1906
2483
  }
@@ -1912,10 +2489,10 @@ function curveStethUnstake(_ref29) {
1912
2489
  outgoingLiquidityGaugeTokenAmount = _ref29.outgoingLiquidityGaugeTokenAmount;
1913
2490
  var callArgs = protocol.callOnIntegrationArgs({
1914
2491
  adapter: curveLiquidityStethAdapter,
1915
- selector: protocol.unstakeSelector,
1916
2492
  encodedCallArgs: protocol.curveStethUnstakeArgs({
1917
2493
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1918
- })
2494
+ }),
2495
+ selector: protocol.unstakeSelector
1919
2496
  });
1920
2497
  return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1921
2498
  }
@@ -1934,10 +2511,10 @@ function _idleClaimRewards() {
1934
2511
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, idleAdapter = _ref.idleAdapter, idleToken = _ref.idleToken;
1935
2512
  callArgs = protocol.callOnIntegrationArgs({
1936
2513
  adapter: idleAdapter,
1937
- selector: protocol.claimRewardsSelector,
1938
2514
  encodedCallArgs: protocol.idleClaimRewardsArgs({
1939
2515
  idleToken: idleToken
1940
- })
2516
+ }),
2517
+ selector: protocol.claimRewardsSelector
1941
2518
  });
1942
2519
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1943
2520
 
@@ -1966,12 +2543,12 @@ function _idleLend() {
1966
2543
  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 ? ethers.BigNumber.from(1) : _ref2$minIncomingIdle;
1967
2544
  callArgs = protocol.callOnIntegrationArgs({
1968
2545
  adapter: idleAdapter,
1969
- selector: protocol.lendSelector,
1970
2546
  encodedCallArgs: protocol.idleLendArgs({
1971
2547
  idleToken: idleToken,
1972
- outgoingUnderlyingAmount: outgoingUnderlyingAmount,
1973
- minIncomingIdleTokenAmount: minIncomingIdleTokenAmount
1974
- })
2548
+ minIncomingIdleTokenAmount: minIncomingIdleTokenAmount,
2549
+ outgoingUnderlyingAmount: outgoingUnderlyingAmount
2550
+ }),
2551
+ selector: protocol.lendSelector
1975
2552
  });
1976
2553
  return _context2.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1977
2554
 
@@ -2000,12 +2577,12 @@ function _idleRedeem() {
2000
2577
  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 ? ethers.BigNumber.from(1) : _ref3$minIncomingUnde;
2001
2578
  callArgs = protocol.callOnIntegrationArgs({
2002
2579
  adapter: idleAdapter,
2003
- selector: protocol.redeemSelector,
2004
2580
  encodedCallArgs: protocol.idleRedeemArgs({
2005
2581
  idleToken: idleToken,
2006
- outgoingIdleTokenAmount: outgoingIdleTokenAmount,
2007
- minIncomingUnderlyingAmount: minIncomingUnderlyingAmount
2008
- })
2582
+ minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2583
+ outgoingIdleTokenAmount: outgoingIdleTokenAmount
2584
+ }),
2585
+ selector: protocol.redeemSelector
2009
2586
  });
2010
2587
  return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2011
2588
 
@@ -2076,17 +2653,17 @@ function _mockGenericSwap() {
2076
2653
 
2077
2654
  case 9:
2078
2655
  swapArgs = mockGenericSwapArgs({
2079
- spendAssets: spendAssets,
2080
- maxSpendAssetAmounts: maxSpendAssetAmounts,
2656
+ actualIncomingAssetAmounts: actualIncomingAssetAmounts,
2081
2657
  actualSpendAssetAmounts: actualSpendAssetAmounts,
2082
2658
  incomingAssets: incomingAssets,
2659
+ maxSpendAssetAmounts: maxSpendAssetAmounts,
2083
2660
  minIncomingAssetAmounts: minIncomingAssetAmounts,
2084
- actualIncomingAssetAmounts: actualIncomingAssetAmounts
2661
+ spendAssets: spendAssets
2085
2662
  });
2086
2663
  callArgs = protocol.callOnIntegrationArgs({
2087
2664
  adapter: mockGenericAdapter,
2088
- selector: selector,
2089
- encodedCallArgs: swapArgs
2665
+ encodedCallArgs: swapArgs,
2666
+ selector: selector
2090
2667
  });
2091
2668
  swapTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2092
2669
  _context.next = 14;
@@ -2105,14 +2682,80 @@ function _mockGenericSwap() {
2105
2682
  return _mockGenericSwap.apply(this, arguments);
2106
2683
  }
2107
2684
 
2685
+ function olympusV2Stake(_x) {
2686
+ return _olympusV2Stake.apply(this, arguments);
2687
+ }
2688
+
2689
+ function _olympusV2Stake() {
2690
+ _olympusV2Stake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
2691
+ var comptrollerProxy, integrationManager, signer, olympusV2Adapter, amount, stakeArgs, callArgs, stakeTx;
2692
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2693
+ while (1) {
2694
+ switch (_context.prev = _context.next) {
2695
+ case 0:
2696
+ comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, signer = _ref.signer, olympusV2Adapter = _ref.olympusV2Adapter, amount = _ref.amount;
2697
+ stakeArgs = protocol.olympusV2StakeArgs({
2698
+ amount: amount
2699
+ });
2700
+ callArgs = protocol.callOnIntegrationArgs({
2701
+ adapter: olympusV2Adapter,
2702
+ encodedCallArgs: stakeArgs,
2703
+ selector: protocol.stakeSelector
2704
+ });
2705
+ stakeTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2706
+ return _context.abrupt("return", stakeTx);
2707
+
2708
+ case 5:
2709
+ case "end":
2710
+ return _context.stop();
2711
+ }
2712
+ }
2713
+ }, _callee);
2714
+ }));
2715
+ return _olympusV2Stake.apply(this, arguments);
2716
+ }
2717
+
2718
+ function olympusV2Unstake(_x2) {
2719
+ return _olympusV2Unstake.apply(this, arguments);
2720
+ }
2721
+
2722
+ function _olympusV2Unstake() {
2723
+ _olympusV2Unstake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
2724
+ var comptrollerProxy, integrationManager, signer, olympusV2Adapter, amount, unstakeArgs, callArgs, unstakeTx;
2725
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
2726
+ while (1) {
2727
+ switch (_context2.prev = _context2.next) {
2728
+ case 0:
2729
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, signer = _ref2.signer, olympusV2Adapter = _ref2.olympusV2Adapter, amount = _ref2.amount;
2730
+ unstakeArgs = protocol.olympusV2UnstakeArgs({
2731
+ amount: amount
2732
+ });
2733
+ callArgs = protocol.callOnIntegrationArgs({
2734
+ adapter: olympusV2Adapter,
2735
+ encodedCallArgs: unstakeArgs,
2736
+ selector: protocol.unstakeSelector
2737
+ });
2738
+ unstakeTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2739
+ return _context2.abrupt("return", unstakeTx);
2740
+
2741
+ case 5:
2742
+ case "end":
2743
+ return _context2.stop();
2744
+ }
2745
+ }
2746
+ }, _callee2);
2747
+ }));
2748
+ return _olympusV2Unstake.apply(this, arguments);
2749
+ }
2750
+
2108
2751
  function paraSwapV4GenerateDummyPaths(_ref) {
2109
2752
  var toTokens = _ref.toTokens;
2110
2753
  return toTokens.map(function (toToken) {
2111
2754
  return {
2112
- to: toToken,
2113
- totalNetworkFee: 0,
2114
2755
  // Not supported in our protocol
2115
- routes: [] // Can ignore this param in the dummy
2756
+ routes: [],
2757
+ to: toToken,
2758
+ totalNetworkFee: 0 // Can ignore this param in the dummy
2116
2759
 
2117
2760
  };
2118
2761
  });
@@ -2131,16 +2774,16 @@ function _paraSwapV4TakeOrder() {
2131
2774
  case 0:
2132
2775
  comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, paraSwapV4Adapter = _ref2.paraSwapV4Adapter, outgoingAsset = _ref2.outgoingAsset, _ref2$outgoingAssetAm = _ref2.outgoingAssetAmount, outgoingAssetAmount = _ref2$outgoingAssetAm === void 0 ? ethers.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;
2133
2776
  takeOrderArgs = protocol.paraSwapV4TakeOrderArgs({
2134
- minIncomingAssetAmount: minIncomingAssetAmount,
2135
2777
  expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2778
+ minIncomingAssetAmount: minIncomingAssetAmount,
2136
2779
  outgoingAsset: outgoingAsset,
2137
2780
  outgoingAssetAmount: outgoingAssetAmount,
2138
2781
  paths: paths
2139
2782
  });
2140
2783
  callArgs = protocol.callOnIntegrationArgs({
2141
2784
  adapter: paraSwapV4Adapter,
2142
- selector: protocol.takeOrderSelector,
2143
- encodedCallArgs: takeOrderArgs
2785
+ encodedCallArgs: takeOrderArgs,
2786
+ selector: protocol.takeOrderSelector
2144
2787
  });
2145
2788
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2146
2789
 
@@ -2154,30 +2797,177 @@ function _paraSwapV4TakeOrder() {
2154
2797
  return _paraSwapV4TakeOrder.apply(this, arguments);
2155
2798
  }
2156
2799
 
2800
+ function paraSwapV5GenerateDummyPaths(_ref) {
2801
+ var toTokens = _ref.toTokens;
2802
+ return toTokens.map(function (toToken) {
2803
+ return {
2804
+ // Not supported in our protocol
2805
+ adapters: [],
2806
+ to: toToken,
2807
+ totalNetworkFee: 0 // Can ignore this param in the dummy
2808
+
2809
+ };
2810
+ });
2811
+ }
2812
+ function paraSwapV5TakeOrder(_x) {
2813
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2814
+ }
2815
+
2816
+ function _paraSwapV5TakeOrder() {
2817
+ _paraSwapV5TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref2) {
2818
+ var comptrollerProxy, integrationManager, fundOwner, paraSwapV5Adapter, outgoingAsset, outgoingAssetAmount, _ref2$minIncomingAsse, minIncomingAssetAmount, _ref2$expectedIncomin, expectedIncomingAssetAmount, _ref2$uuid, uuid, paths, takeOrderArgs, callArgs;
2819
+
2820
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2821
+ while (1) {
2822
+ switch (_context.prev = _context.next) {
2823
+ case 0:
2824
+ 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 ? ethers.utils.randomBytes(16) : _ref2$uuid, paths = _ref2.paths;
2825
+ takeOrderArgs = protocol.paraSwapV5TakeOrderArgs({
2826
+ expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2827
+ minIncomingAssetAmount: minIncomingAssetAmount,
2828
+ outgoingAsset: outgoingAsset,
2829
+ outgoingAssetAmount: outgoingAssetAmount,
2830
+ paths: paths,
2831
+ uuid: uuid
2832
+ });
2833
+ callArgs = protocol.callOnIntegrationArgs({
2834
+ adapter: paraSwapV5Adapter,
2835
+ encodedCallArgs: takeOrderArgs,
2836
+ selector: protocol.takeOrderSelector
2837
+ });
2838
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2839
+
2840
+ case 4:
2841
+ case "end":
2842
+ return _context.stop();
2843
+ }
2844
+ }
2845
+ }, _callee);
2846
+ }));
2847
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2848
+ }
2849
+
2850
+ function poolTogetherV4Lend(_x) {
2851
+ return _poolTogetherV4Lend.apply(this, arguments);
2852
+ }
2853
+
2854
+ function _poolTogetherV4Lend() {
2855
+ _poolTogetherV4Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
2856
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
2857
+
2858
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2859
+ while (1) {
2860
+ switch (_context.prev = _context.next) {
2861
+ case 0:
2862
+ comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, poolTogetherV4Adapter = _ref.poolTogetherV4Adapter, ptToken = _ref.ptToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? ethers.utils.parseEther('1') : _ref$amount;
2863
+ lendArgs = protocol.poolTogetherV4LendArgs({
2864
+ amount: amount,
2865
+ ptToken: ptToken
2866
+ });
2867
+ callArgs = protocol.callOnIntegrationArgs({
2868
+ adapter: poolTogetherV4Adapter,
2869
+ encodedCallArgs: lendArgs,
2870
+ selector: protocol.lendSelector
2871
+ });
2872
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2873
+ return _context.abrupt("return", lendTx);
2874
+
2875
+ case 5:
2876
+ case "end":
2877
+ return _context.stop();
2878
+ }
2879
+ }
2880
+ }, _callee);
2881
+ }));
2882
+ return _poolTogetherV4Lend.apply(this, arguments);
2883
+ }
2884
+
2885
+ function poolTogetherV4Redeem(_x2) {
2886
+ return _poolTogetherV4Redeem.apply(this, arguments);
2887
+ }
2888
+
2889
+ function _poolTogetherV4Redeem() {
2890
+ _poolTogetherV4Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
2891
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref2$amount, amount, redeemArgs, callArgs, redeemTx;
2892
+
2893
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
2894
+ while (1) {
2895
+ switch (_context2.prev = _context2.next) {
2896
+ case 0:
2897
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, poolTogetherV4Adapter = _ref2.poolTogetherV4Adapter, ptToken = _ref2.ptToken, _ref2$amount = _ref2.amount, amount = _ref2$amount === void 0 ? ethers.utils.parseEther('1') : _ref2$amount;
2898
+ redeemArgs = protocol.poolTogetherV4RedeemArgs({
2899
+ amount: amount,
2900
+ ptToken: ptToken
2901
+ });
2902
+ callArgs = protocol.callOnIntegrationArgs({
2903
+ adapter: poolTogetherV4Adapter,
2904
+ encodedCallArgs: redeemArgs,
2905
+ selector: protocol.redeemSelector
2906
+ });
2907
+ redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2908
+ return _context2.abrupt("return", redeemTx);
2909
+
2910
+ case 5:
2911
+ case "end":
2912
+ return _context2.stop();
2913
+ }
2914
+ }
2915
+ }, _callee2);
2916
+ }));
2917
+ return _poolTogetherV4Redeem.apply(this, arguments);
2918
+ }
2919
+
2920
+ function poolTogetherV4ClaimRewards(_x3) {
2921
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2922
+ }
2923
+
2924
+ function _poolTogetherV4ClaimRewards() {
2925
+ _poolTogetherV4ClaimRewards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
2926
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, prizeDistributor, drawIds, winningPicks, claimRewardsArgs, callArgs, claimTx;
2927
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2928
+ while (1) {
2929
+ switch (_context3.prev = _context3.next) {
2930
+ case 0:
2931
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, poolTogetherV4Adapter = _ref3.poolTogetherV4Adapter, prizeDistributor = _ref3.prizeDistributor, drawIds = _ref3.drawIds, winningPicks = _ref3.winningPicks;
2932
+ claimRewardsArgs = protocol.poolTogetherV4ClaimRewardsArgs({
2933
+ drawIds: drawIds,
2934
+ prizeDistributor: prizeDistributor,
2935
+ winningPicks: winningPicks
2936
+ });
2937
+ callArgs = protocol.callOnIntegrationArgs({
2938
+ adapter: poolTogetherV4Adapter,
2939
+ encodedCallArgs: claimRewardsArgs,
2940
+ selector: protocol.claimRewardsSelector
2941
+ });
2942
+ claimTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2943
+ return _context3.abrupt("return", claimTx);
2944
+
2945
+ case 5:
2946
+ case "end":
2947
+ return _context3.stop();
2948
+ }
2949
+ }
2950
+ }, _callee3);
2951
+ }));
2952
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2953
+ }
2954
+
2157
2955
  function synthetixAssignExchangeDelegate(_x) {
2158
2956
  return _synthetixAssignExchangeDelegate.apply(this, arguments);
2159
2957
  }
2160
2958
 
2161
2959
  function _synthetixAssignExchangeDelegate() {
2162
2960
  _synthetixAssignExchangeDelegate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
2163
- var comptrollerProxy, addressResolver, fundOwner, delegate, delegateApprovals;
2961
+ var comptrollerProxy, synthetixDelegateApprovals, fundOwner, delegate;
2164
2962
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2165
2963
  while (1) {
2166
2964
  switch (_context.prev = _context.next) {
2167
2965
  case 0:
2168
- comptrollerProxy = _ref.comptrollerProxy, addressResolver = _ref.addressResolver, fundOwner = _ref.fundOwner, delegate = _ref.delegate;
2966
+ comptrollerProxy = _ref.comptrollerProxy, synthetixDelegateApprovals = _ref.synthetixDelegateApprovals, fundOwner = _ref.fundOwner, delegate = _ref.delegate;
2169
2967
  _context.next = 3;
2170
- return synthetixResolveAddress({
2171
- addressResolver: addressResolver,
2172
- name: 'DelegateApprovals'
2173
- });
2968
+ return comptrollerProxy.connect(fundOwner).vaultCallOnContract(synthetixDelegateApprovals, protocol.synthetixAssignExchangeDelegateSelector, protocol.encodeArgs(['address'], [delegate]));
2174
2969
 
2175
2970
  case 3:
2176
- delegateApprovals = _context.sent;
2177
- _context.next = 6;
2178
- return comptrollerProxy.connect(fundOwner).vaultCallOnContract(delegateApprovals, protocol.synthetixAssignExchangeDelegateSelector, protocol.encodeArgs(['address'], [delegate]));
2179
-
2180
- case 6:
2181
2971
  case "end":
2182
2972
  return _context.stop();
2183
2973
  }
@@ -2187,28 +2977,36 @@ function _synthetixAssignExchangeDelegate() {
2187
2977
  return _synthetixAssignExchangeDelegate.apply(this, arguments);
2188
2978
  }
2189
2979
 
2190
- function synthetixResolveAddress(_x2) {
2191
- return _synthetixResolveAddress.apply(this, arguments);
2980
+ function synthetixRedeem(_x2) {
2981
+ return _synthetixRedeem.apply(this, arguments);
2192
2982
  }
2193
2983
 
2194
- function _synthetixResolveAddress() {
2195
- _synthetixResolveAddress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
2196
- var addressResolver, name;
2984
+ function _synthetixRedeem() {
2985
+ _synthetixRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
2986
+ var comptrollerProxy, integrationManager, signer, synthetixAdapter, synths, redeemArgs, callArgs;
2197
2987
  return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
2198
2988
  while (1) {
2199
2989
  switch (_context2.prev = _context2.next) {
2200
2990
  case 0:
2201
- addressResolver = _ref2.addressResolver, name = _ref2.name;
2202
- return _context2.abrupt("return", addressResolver.requireAndGetAddress(ethers.utils.formatBytes32String(name), "Missing ".concat(name)));
2991
+ comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, signer = _ref2.signer, synthetixAdapter = _ref2.synthetixAdapter, synths = _ref2.synths;
2992
+ redeemArgs = protocol.synthetixRedeemArgs({
2993
+ synths: synths
2994
+ });
2995
+ callArgs = protocol.callOnIntegrationArgs({
2996
+ adapter: synthetixAdapter,
2997
+ encodedCallArgs: redeemArgs,
2998
+ selector: protocol.redeemSelector
2999
+ });
3000
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2203
3001
 
2204
- case 2:
3002
+ case 4:
2205
3003
  case "end":
2206
3004
  return _context2.stop();
2207
3005
  }
2208
3006
  }
2209
3007
  }, _callee2);
2210
3008
  }));
2211
- return _synthetixResolveAddress.apply(this, arguments);
3009
+ return _synthetixRedeem.apply(this, arguments);
2212
3010
  }
2213
3011
 
2214
3012
  function synthetixTakeOrder(_x3) {
@@ -2217,13 +3015,13 @@ function synthetixTakeOrder(_x3) {
2217
3015
 
2218
3016
  function _synthetixTakeOrder() {
2219
3017
  _synthetixTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
2220
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref3$outgoingAssetAm, outgoingAssetAmount, incomingAsset, _ref3$minIncomingAsse, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
3018
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref3$outgoingAssetAm, outgoingAssetAmount, _ref3$minIncomingSusd, minIncomingSusdAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2221
3019
 
2222
3020
  return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2223
3021
  while (1) {
2224
3022
  switch (_context3.prev = _context3.next) {
2225
3023
  case 0:
2226
- 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 ? ethers.utils.parseEther('1') : _ref3$outgoingAssetAm, incomingAsset = _ref3.incomingAsset, _ref3$minIncomingAsse = _ref3.minIncomingAssetAmount, minIncomingAssetAmount = _ref3$minIncomingAsse === void 0 ? ethers.utils.parseEther('1') : _ref3$minIncomingAsse, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
3024
+ 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 ? ethers.utils.parseEther('1') : _ref3$outgoingAssetAm, _ref3$minIncomingSusd = _ref3.minIncomingSusdAmount, minIncomingSusdAmount = _ref3$minIncomingSusd === void 0 ? ethers.utils.parseEther('1') : _ref3$minIncomingSusd, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2227
3025
 
2228
3026
  if (!seedFund) {
2229
3027
  _context3.next = 4;
@@ -2235,16 +3033,15 @@ function _synthetixTakeOrder() {
2235
3033
 
2236
3034
  case 4:
2237
3035
  takeOrderArgs = protocol.synthetixTakeOrderArgs({
2238
- incomingAsset: incomingAsset,
2239
- minIncomingAssetAmount: minIncomingAssetAmount,
3036
+ minIncomingSusdAmount: minIncomingSusdAmount,
2240
3037
  outgoingAsset: outgoingAsset,
2241
3038
  outgoingAssetAmount: outgoingAssetAmount
2242
3039
  });
2243
3040
  _context3.next = 7;
2244
3041
  return protocol.callOnIntegrationArgs({
2245
3042
  adapter: synthetixAdapter,
2246
- selector: protocol.takeOrderSelector,
2247
- encodedCallArgs: takeOrderArgs
3043
+ encodedCallArgs: takeOrderArgs,
3044
+ selector: protocol.takeOrderSelector
2248
3045
  });
2249
3046
 
2250
3047
  case 7:
@@ -2291,18 +3088,18 @@ function _uniswapV2Lend() {
2291
3088
 
2292
3089
  case 6:
2293
3090
  lendArgs = protocol.uniswapV2LendArgs({
2294
- tokenA: tokenA,
2295
- tokenB: tokenB,
2296
3091
  amountADesired: amountADesired,
2297
- amountBDesired: amountBDesired,
2298
3092
  amountAMin: amountAMin,
3093
+ amountBDesired: amountBDesired,
2299
3094
  amountBMin: amountBMin,
2300
- minPoolTokenAmount: minPoolTokenAmount
3095
+ minPoolTokenAmount: minPoolTokenAmount,
3096
+ tokenA: tokenA,
3097
+ tokenB: tokenB
2301
3098
  });
2302
3099
  callArgs = protocol.callOnIntegrationArgs({
2303
3100
  adapter: uniswapV2LiquidityAdapter,
2304
- selector: protocol.lendSelector,
2305
- encodedCallArgs: lendArgs
3101
+ encodedCallArgs: lendArgs,
3102
+ selector: protocol.lendSelector
2306
3103
  });
2307
3104
  lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2308
3105
  _context.next = 11;
@@ -2334,16 +3131,16 @@ function _uniswapV2Redeem() {
2334
3131
  case 0:
2335
3132
  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;
2336
3133
  redeemArgs = protocol.uniswapV2RedeemArgs({
3134
+ amountAMin: amountAMin,
3135
+ amountBMin: amountBMin,
2337
3136
  poolTokenAmount: poolTokenAmount,
2338
3137
  tokenA: tokenA,
2339
- tokenB: tokenB,
2340
- amountAMin: amountAMin,
2341
- amountBMin: amountBMin
3138
+ tokenB: tokenB
2342
3139
  });
2343
3140
  callArgs = protocol.callOnIntegrationArgs({
2344
3141
  adapter: uniswapV2LiquidityAdapter,
2345
- selector: protocol.redeemSelector,
2346
- encodedCallArgs: redeemArgs
3142
+ encodedCallArgs: redeemArgs,
3143
+ selector: protocol.redeemSelector
2347
3144
  });
2348
3145
  redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2349
3146
  _context2.next = 6;
@@ -2386,14 +3183,14 @@ function _uniswapV2TakeOrder() {
2386
3183
 
2387
3184
  case 4:
2388
3185
  takeOrderArgs = protocol.uniswapV2TakeOrderArgs({
2389
- path: path,
3186
+ minIncomingAssetAmount: minIncomingAssetAmount,
2390
3187
  outgoingAssetAmount: outgoingAssetAmount,
2391
- minIncomingAssetAmount: minIncomingAssetAmount
3188
+ path: path
2392
3189
  });
2393
3190
  callArgs = protocol.callOnIntegrationArgs({
2394
3191
  adapter: uniswapV2ExchangeAdapter,
2395
- selector: protocol.takeOrderSelector,
2396
- encodedCallArgs: takeOrderArgs
3192
+ encodedCallArgs: takeOrderArgs,
3193
+ selector: protocol.takeOrderSelector
2397
3194
  });
2398
3195
  return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2399
3196
 
@@ -2413,7 +3210,7 @@ function uniswapV3TakeOrder(_x) {
2413
3210
 
2414
3211
  function _uniswapV3TakeOrder() {
2415
3212
  _uniswapV3TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
2416
- var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, takeOrderArgs, callArgs;
3213
+ var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, vaultProxy, takeOrderArgs, callArgs;
2417
3214
 
2418
3215
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2419
3216
  while (1) {
@@ -2422,35 +3219,33 @@ function _uniswapV3TakeOrder() {
2422
3219
  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;
2423
3220
 
2424
3221
  if (!seedFund) {
2425
- _context.next = 9;
3222
+ _context.next = 7;
2426
3223
  break;
2427
3224
  }
2428
3225
 
2429
- _context.t0 = pathAddresses[0];
2430
- _context.next = 5;
3226
+ _context.next = 4;
2431
3227
  return comptrollerProxy.getVaultProxy();
2432
3228
 
2433
- case 5:
2434
- _context.t1 = _context.sent;
2435
- _context.t2 = outgoingAssetAmount;
2436
- _context.next = 9;
2437
- return _context.t0.transfer.call(_context.t0, _context.t1, _context.t2);
3229
+ case 4:
3230
+ vaultProxy = _context.sent;
3231
+ _context.next = 7;
3232
+ return pathAddresses[0].transfer(vaultProxy, outgoingAssetAmount);
2438
3233
 
2439
- case 9:
3234
+ case 7:
2440
3235
  takeOrderArgs = protocol.uniswapV3TakeOrderArgs({
2441
- pathAddresses: pathAddresses,
2442
- pathFees: pathFees,
3236
+ minIncomingAssetAmount: minIncomingAssetAmount,
2443
3237
  outgoingAssetAmount: outgoingAssetAmount,
2444
- minIncomingAssetAmount: minIncomingAssetAmount
3238
+ pathAddresses: pathAddresses,
3239
+ pathFees: pathFees
2445
3240
  });
2446
3241
  callArgs = protocol.callOnIntegrationArgs({
2447
3242
  adapter: uniswapV3Adapter,
2448
- selector: protocol.takeOrderSelector,
2449
- encodedCallArgs: takeOrderArgs
3243
+ encodedCallArgs: takeOrderArgs,
3244
+ selector: protocol.takeOrderSelector
2450
3245
  });
2451
3246
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2452
3247
 
2453
- case 12:
3248
+ case 10:
2454
3249
  case "end":
2455
3250
  return _context.stop();
2456
3251
  }
@@ -2475,12 +3270,12 @@ function _yearnVaultV2Lend() {
2475
3270
  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 ? ethers.BigNumber.from(1) : _ref$minIncomingYVaul;
2476
3271
  callArgs = protocol.callOnIntegrationArgs({
2477
3272
  adapter: yearnVaultV2Adapter,
2478
- selector: protocol.lendSelector,
2479
3273
  encodedCallArgs: protocol.yearnVaultV2LendArgs({
2480
- yVault: yVault,
3274
+ minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount,
2481
3275
  outgoingUnderlyingAmount: outgoingUnderlyingAmount,
2482
- minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount
2483
- })
3276
+ yVault: yVault
3277
+ }),
3278
+ selector: protocol.lendSelector
2484
3279
  });
2485
3280
  return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2486
3281
 
@@ -2509,13 +3304,13 @@ function _yearnVaultV2Redeem() {
2509
3304
  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 ? ethers.BigNumber.from(1) : _ref2$minIncomingUnde, _ref2$slippageToleran = _ref2.slippageToleranceBps, slippageToleranceBps = _ref2$slippageToleran === void 0 ? 1 : _ref2$slippageToleran;
2510
3305
  callArgs = protocol.callOnIntegrationArgs({
2511
3306
  adapter: yearnVaultV2Adapter,
2512
- selector: protocol.redeemSelector,
2513
3307
  encodedCallArgs: protocol.yearnVaultV2RedeemArgs({
2514
- yVault: yVault,
2515
3308
  maxOutgoingYVaultSharesAmount: maxOutgoingYVaultSharesAmount,
2516
3309
  minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2517
- slippageToleranceBps: slippageToleranceBps
2518
- })
3310
+ slippageToleranceBps: slippageToleranceBps,
3311
+ yVault: yVault
3312
+ }),
3313
+ selector: protocol.redeemSelector
2519
3314
  });
2520
3315
  return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2521
3316
 
@@ -2547,8 +3342,8 @@ function _zeroExV2TakeOrder() {
2547
3342
  });
2548
3343
  callArgs = protocol.callOnIntegrationArgs({
2549
3344
  adapter: zeroExV2Adapter,
2550
- selector: protocol.takeOrderSelector,
2551
- encodedCallArgs: takeOrderArgs
3345
+ encodedCallArgs: takeOrderArgs,
3346
+ selector: protocol.takeOrderSelector
2552
3347
  });
2553
3348
  return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2554
3349
 
@@ -2691,7 +3486,8 @@ function assertEvent(receipt, event, match) {
2691
3486
  var events = ethers$1.extractEvent(receipt, event);
2692
3487
  expect(events.length).toBe(1);
2693
3488
  expect(receipt).toHaveEmittedWith(event, match);
2694
- var args = (_events$shift = events.shift()) === null || _events$shift === void 0 ? void 0 : _events$shift.args;
3489
+ 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
3490
+
2695
3491
  return args;
2696
3492
  }
2697
3493
  function assertNoEvent(receipt, event) {
@@ -2852,6 +3648,7 @@ function _createComptrollerProxy() {
2852
3648
  comptrollerProxyContract = _context.sent;
2853
3649
  return _context.abrupt("return", {
2854
3650
  comptrollerProxy: new protocol.ComptrollerLib(comptrollerProxyContract, signer),
3651
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2855
3652
  receipt: comptrollerProxyContract.deployment
2856
3653
  });
2857
3654
 
@@ -2884,14 +3681,14 @@ function _createMigrationRequest() {
2884
3681
  case 3:
2885
3682
  receipt = _context2.sent;
2886
3683
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2887
- creator: signer,
2888
3684
  comptrollerProxy: expect.any(String),
3685
+ creator: signer,
2889
3686
  denominationAsset: denominationAsset,
2890
3687
  sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock)
2891
3688
  });
2892
3689
  return _context2.abrupt("return", {
2893
- receipt: receipt,
2894
- comptrollerProxy: new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3690
+ comptrollerProxy: new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3691
+ receipt: receipt
2895
3692
  });
2896
3693
 
2897
3694
  case 6:
@@ -2910,29 +3707,29 @@ function createNewFund(_x3) {
2910
3707
 
2911
3708
  function _createNewFund() {
2912
3709
  _createNewFund = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
2913
- 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;
3710
+ 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;
2914
3711
 
2915
3712
  return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2916
3713
  while (1) {
2917
3714
  switch (_context3.prev = _context3.next) {
2918
3715
  case 0:
2919
- 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 ? ethers$1.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;
3716
+ 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 ? ethers$1.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;
2920
3717
  _context3.next = 3;
2921
- return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
3718
+ return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, fundSymbol, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
2922
3719
 
2923
3720
  case 3:
2924
3721
  receipt = _context3.sent;
2925
3722
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2926
- creator: signer,
2927
3723
  comptrollerProxy: expect.any(String),
3724
+ creator: signer,
2928
3725
  denominationAsset: denominationAsset,
2929
3726
  sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock)
2930
3727
  });
2931
3728
  comptrollerProxy = new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer);
2932
3729
  newFundDeployedArgs = assertEvent(receipt, 'NewFundCreated', {
3730
+ comptrollerProxy: comptrollerProxy,
2933
3731
  creator: signer,
2934
- vaultProxy: expect.any(String),
2935
- comptrollerProxy: comptrollerProxy
3732
+ vaultProxy: expect.any(String)
2936
3733
  });
2937
3734
  vaultProxy = new protocol.VaultLib(newFundDeployedArgs.vaultProxy, signer);
2938
3735
 
@@ -2983,14 +3780,14 @@ function _createReconfigurationRequest() {
2983
3780
  case 3:
2984
3781
  receipt = _context4.sent;
2985
3782
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2986
- creator: signer,
2987
3783
  comptrollerProxy: expect.any(String),
3784
+ creator: signer,
2988
3785
  denominationAsset: denominationAsset,
2989
3786
  sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock)
2990
3787
  });
2991
3788
  return _context4.abrupt("return", {
2992
- receipt: receipt,
2993
- comptrollerProxy: new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3789
+ comptrollerProxy: new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3790
+ receipt: receipt
2994
3791
  });
2995
3792
 
2996
3793
  case 6:
@@ -3072,16 +3869,49 @@ function _setupGasRelayerPaymaster() {
3072
3869
  return _setupGasRelayerPaymaster.apply(this, arguments);
3073
3870
  }
3074
3871
 
3075
- function vaultCallCurveMinterMint(_ref) {
3076
- var comptrollerProxy = _ref.comptrollerProxy,
3077
- minter = _ref.minter,
3078
- gauge = _ref.gauge;
3079
- return comptrollerProxy.vaultCallOnContract(minter, protocol.curveMinterMintSelector, protocol.encodeArgs(['address'], [gauge]));
3872
+ function vaultCallCreateNewList(_x) {
3873
+ return _vaultCallCreateNewList.apply(this, arguments);
3874
+ }
3875
+
3876
+ function _vaultCallCreateNewList() {
3877
+ _vaultCallCreateNewList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
3878
+ var addressListRegistry, comptrollerProxy, items, owner, signer, updateType, listCount;
3879
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
3880
+ while (1) {
3881
+ switch (_context.prev = _context.next) {
3882
+ case 0:
3883
+ addressListRegistry = _ref.addressListRegistry, comptrollerProxy = _ref.comptrollerProxy, items = _ref.items, owner = _ref.owner, signer = _ref.signer, updateType = _ref.updateType;
3884
+ _context.next = 3;
3885
+ return comptrollerProxy.connect(signer).vaultCallOnContract(addressListRegistry.address, protocol.addressListRegistryCreateListSelector, protocol.encodeArgs(['address', 'uint8', 'address[]'], [owner, updateType, items]));
3886
+
3887
+ case 3:
3888
+ _context.next = 5;
3889
+ return addressListRegistry.getListCount();
3890
+
3891
+ case 5:
3892
+ listCount = _context.sent;
3893
+ return _context.abrupt("return", listCount.sub(1));
3894
+
3895
+ case 7:
3896
+ case "end":
3897
+ return _context.stop();
3898
+ }
3899
+ }
3900
+ }, _callee);
3901
+ }));
3902
+ return _vaultCallCreateNewList.apply(this, arguments);
3080
3903
  }
3081
- function vaultCallCurveMinterMintMany(_ref2) {
3904
+
3905
+ function vaultCallCurveMinterMint(_ref2) {
3082
3906
  var comptrollerProxy = _ref2.comptrollerProxy,
3083
3907
  minter = _ref2.minter,
3084
- gauges = _ref2.gauges;
3908
+ gauge = _ref2.gauge;
3909
+ return comptrollerProxy.vaultCallOnContract(minter, protocol.curveMinterMintSelector, protocol.encodeArgs(['address'], [gauge]));
3910
+ }
3911
+ function vaultCallCurveMinterMintMany(_ref3) {
3912
+ var comptrollerProxy = _ref3.comptrollerProxy,
3913
+ minter = _ref3.minter,
3914
+ gauges = _ref3.gauges;
3085
3915
  var gaugesFormatted = new Array(8).fill(ethers.constants.AddressZero);
3086
3916
 
3087
3917
  for (var i in gauges) {
@@ -3090,16 +3920,16 @@ function vaultCallCurveMinterMintMany(_ref2) {
3090
3920
 
3091
3921
  return comptrollerProxy.vaultCallOnContract(minter, protocol.curveMinterMintManySelector, protocol.encodeArgs(['address[8]'], [gaugesFormatted]));
3092
3922
  }
3093
- function vaultCallCurveMinterToggleApproveMint(_ref3) {
3094
- var comptrollerProxy = _ref3.comptrollerProxy,
3095
- minter = _ref3.minter,
3096
- account = _ref3.account;
3923
+ function vaultCallCurveMinterToggleApproveMint(_ref4) {
3924
+ var comptrollerProxy = _ref4.comptrollerProxy,
3925
+ minter = _ref4.minter,
3926
+ account = _ref4.account;
3097
3927
  return comptrollerProxy.vaultCallOnContract(minter, protocol.curveMinterToggleApproveMintSelector, protocol.encodeArgs(['address'], [account]));
3098
3928
  }
3099
- function vaultCallStartAssetBypassTimelock(_ref4) {
3100
- var comptrollerProxy = _ref4.comptrollerProxy,
3101
- contract = _ref4.contract,
3102
- asset = _ref4.asset;
3929
+ function vaultCallStartAssetBypassTimelock(_ref5) {
3930
+ var comptrollerProxy = _ref5.comptrollerProxy,
3931
+ contract = _ref5.contract,
3932
+ asset = _ref5.asset;
3103
3933
  return comptrollerProxy.vaultCallOnContract(contract, protocol.sighash(ethers.utils.FunctionFragment.fromString('startAssetBypassTimelock(address)')), protocol.encodeArgs(['address'], [asset]));
3104
3934
  }
3105
3935
 
@@ -3155,8 +3985,8 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
3155
3985
  // 50% discount
3156
3986
  mlnAmountToBurn = mlnValueOfBuyback.div(2);
3157
3987
  return _context2.abrupt("return", {
3158
- mlnValue: mlnValueOfBuyback,
3159
- mlnAmountToBurn: mlnAmountToBurn
3988
+ mlnAmountToBurn: mlnAmountToBurn,
3989
+ mlnValue: mlnValueOfBuyback
3160
3990
  });
3161
3991
 
3162
3992
  case 8:
@@ -3172,43 +4002,60 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
3172
4002
  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; }
3173
4003
 
3174
4004
  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; }
4005
+
4006
+ /* eslint-disable sort-keys-fix/sort-keys-fix */
3175
4007
  var whales = {
3176
- wdgld: '0x9aa65464b4cfbe3dc2bdb3df412aee2b3de86687',
3177
- adai: '0x62e41b1185023bcc14a465d350e1dde341557925',
3178
- ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
4008
+ // primitives
3179
4009
  bat: '0x12274c71304bc0e6b38a56b94d2949b118feb838',
3180
4010
  bnb: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3181
- bnt: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3182
- comp: '0xC89b6f0146642688bb254bF93C28fcCF1E182C81',
4011
+ bnt: '0x7d1ed1601a12a172269436fa95fe156650603c1d',
4012
+ busd: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
4013
+ comp: '0x0f50d31b3eaefd65236dd3736b863cffa4c63c4e',
3183
4014
  crv: '0x4ce799e6eD8D64536b67dD428565d52A531B3640',
3184
- dai: '0x16463c0fdb6ba9618909f5b120ea1581618c1b9e',
3185
- knc: '0x9d1167df52328db20d5d77288dce6ae3ef3a3e1f',
4015
+ dai: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
4016
+ knc: '0x09d51654bd9efbfcb56da3491989cc1444095fff',
3186
4017
  ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
3187
4018
  link: '0xbe6977e08d4479c0a6777539ae0e8fa27be4e9d6',
3188
4019
  mana: '0xefb94ac00f1cee8a89d5c3f49faa799da6f03024',
3189
4020
  mln: '0xd8f8a53945bcfbbc19da162aa405e662ef71c40d',
4021
+ ohm: '0x71a53aff36a699110d66d6bdfff2320caf8d2d59',
3190
4022
  rep: '0xc6a043b07d33b6f30d8cb501026c391cfd25abe1',
3191
4023
  ren: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
4024
+ susd: '0xa5f7a39e55d7878bc5bd754ee5d6bd7a7662355b',
4025
+ sohm: '0xf280f037cdbda99727ddf5dfede91e68fa78605c',
3192
4026
  uni: '0x47173b170c64d16393a52e6c480b3ad8c302ba1e',
3193
4027
  usdc: '0xae2d4617c862309a3d75a0ffb358c7a5009c673f',
3194
4028
  usdt: '0x5041ed759dd4afc3a72b8192c143f72f4724081a',
3195
4029
  weth: '0xe08A8b19e5722a201EaF20A6BC595eF655397bd5',
3196
4030
  zrx: '0x206376e8940e42538781cd94ef024df3c1e0fd43',
3197
- cbat: '0x285306442cd985cab2c30515cfdab106fca7bc44',
4031
+ // aTokens
4032
+ ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
4033
+ ausdt: '0x7d6149ad9a573a6e2ca6ebf7d4897c1b766841b4',
4034
+ // cTokens
3198
4035
  ccomp: '0xd74f186194ab9219fafac5c2fe4b3270169666db',
3199
- cdai: '0x2bddEd18E2CA464355091266B7616956944ee7eE',
4036
+ cdai: '0xab4ce310054a11328685ece1043211b68ba5d082',
3200
4037
  ceth: '0x8aceab8167c80cb8b3de7fa6228b889bb1130ee8',
3201
- crep: '0xc2386de1b7271a87b416f4605d500846e826a185',
3202
- cuni: '0x8889ff5b6323e71c28c26d2c34b8bb52654f00a6',
3203
- cusdc: '0xb3bd459e0598dde1fe84b1d0a1430be175b5d5be',
3204
- czrx: '0x57ca561798413a20508b6bc997481e784f3e6e5f',
4038
+ cuni: '0x39d8014b4f40d2cbc441137011d32023f4f1fd87',
4039
+ cusdc: '0xe1ed4da4284924ddaf69983b4d813fb1be58c380',
4040
+ // fTokens
4041
+ fdai7: '0x88884e35d7006ae84efef09ee6bc6a43dd8e2bb8',
4042
+ feth7: '0xcd2ba6a4d50745b0b4096186f925115387852c15',
4043
+ fdai8: '0x93f3f612a525a59523e91cc5552f718df9fc0746',
4044
+ ftribe8: '0xdb5ac83c137321da29a59a7592232bc4ed461730',
4045
+ // ptTokens
4046
+ ptUsdc: '0xd18236cd213f39d078177b6f6908f0e44e88e4aa',
4047
+ // synths (unsupported)
3205
4048
  seth: '0xc34a7c65aa08cb36744bda8eeec7b8e9891e147c',
3206
- seur: '0xe896e539e557bc751860a7763c8dd589af1698ce',
3207
- susd: '0x49BE88F0fcC3A8393a59d3688480d7D253C37D2A',
4049
+ sxag: '0x40d68c490bf7262ec40048099aec23535f734be2',
4050
+ sxau: '0x92eb453b7b5b8d41edb44e2c8b8b53eb70a482c7',
4051
+ // misc
3208
4052
  lidoSteth: '0x31f644e2dd5d74f5c8d6d9de89dd517474d51800',
3209
- eurs: '0x98ed26de6451db36246672df78ae7c50f2c76f6d',
3210
- idle: '0x34aaa3d5a73d6f9594326d0422ce69748f09b14f'
4053
+ ust: '0xf584f8728b874a6a5c7a8d4d387c9aae9172d621',
4054
+ // Curve steth pool related
4055
+ stecrv: '0x56c915758ad3f76fd287fff7563ee313142fb663'
3211
4056
  };
4057
+ /* eslint-enable sort-keys-fix/sort-keys-fix */
4058
+
3212
4059
  function unlockWhale(_x) {
3213
4060
  return _unlockWhale.apply(this, arguments);
3214
4061
  }
@@ -3380,8 +4227,8 @@ function _relayTransaction() {
3380
4227
  defaultMaxAcceptance = ethers.BigNumber.from(150000); // NOTE: There is an inconsistency between how the typed data object shape and the relayCall argument.
3381
4228
 
3382
4229
  mergedRelayRequest = {
3383
- request: relayRequest,
3384
- relayData: relayData
4230
+ relayData: relayData,
4231
+ request: relayRequest
3385
4232
  };
3386
4233
  relayHub = new protocol.IGsnRelayHub(options.relayHub, provider.getSigner(options.relayWorker));
3387
4234
  return _context.abrupt("return", relayHub.relayCall.args(defaultMaxAcceptance, mergedRelayRequest, signedRelayRequest, '0x', defaultGasLimit).gas(defaultGasLimit, relayData.gasPrice).send());
@@ -3400,14 +4247,14 @@ var relayed = ethers.utils.EventFragment.fromString('TransactionRelayed(address
3400
4247
  var rejected = ethers.utils.EventFragment.fromString('TransactionRejectedByPaymaster(address indexed relayManager, address indexed paymaster, address indexed from, address to, address relayWorker, bytes4 selector, uint256 innerGasUsed, bytes reason)');
3401
4248
  function assertDidRelay(receipt) {
3402
4249
  return assertEvent(receipt, relayed, {
3403
- relayManager: expect.any(String),
3404
- relayWorker: expect.any(String),
4250
+ charge: expect.anything(),
3405
4251
  from: expect.any(String),
3406
- to: expect.any(String),
3407
4252
  paymaster: expect.any(String),
4253
+ relayManager: expect.any(String),
4254
+ relayWorker: expect.any(String),
3408
4255
  selector: expect.any(String),
3409
4256
  status: expect.anything(),
3410
- charge: expect.anything()
4257
+ to: expect.any(String)
3411
4258
  });
3412
4259
  }
3413
4260
  function assertDidRelaySuccessfully(receipt) {
@@ -3424,14 +4271,14 @@ function assertDidRelayWithCharge(receipt, amount, tolerance) {
3424
4271
  }
3425
4272
  function assertPaymasterDidReject(receipt) {
3426
4273
  return assertEvent(receipt, rejected, {
3427
- relayManager: expect.any(String),
3428
- paymaster: expect.any(String),
3429
4274
  from: expect.any(String),
3430
- to: expect.any(String),
4275
+ innerGasUsed: expect.anything(),
4276
+ paymaster: expect.any(String),
4277
+ reason: expect.any(String),
4278
+ relayManager: expect.any(String),
3431
4279
  relayWorker: expect.any(String),
3432
4280
  selector: expect.any(String),
3433
- innerGasUsed: expect.anything(),
3434
- reason: expect.any(String)
4281
+ to: expect.any(String)
3435
4282
  });
3436
4283
  }
3437
4284
  function assertPaymasterDidRejectForReason(receipt, reason) {
@@ -3441,13 +4288,17 @@ function assertPaymasterDidRejectForReason(receipt, reason) {
3441
4288
 
3442
4289
  exports.CurveLiquidityGaugeV2 = CurveLiquidityGaugeV2;
3443
4290
  exports.CurveMinter = CurveMinter;
4291
+ exports.CurveRegistry = CurveRegistry;
3444
4292
  exports.CurveSwaps = CurveSwaps;
3445
4293
  exports.ICompoundComptroller = ICompoundComptroller;
4294
+ exports.IUniswapV3NonFungibleTokenManager = IUniswapV3NonFungibleTokenManager;
3446
4295
  exports.UniswapV2Factory = UniswapV2Factory;
3447
4296
  exports.aaveLend = aaveLend;
3448
4297
  exports.aaveRedeem = aaveRedeem;
3449
4298
  exports.addNewAssetsToFund = addNewAssetsToFund;
3450
4299
  exports.addTrackedAssetsToVault = addTrackedAssetsToVault;
4300
+ exports.assertCompoundLend = assertCompoundLend;
4301
+ exports.assertCompoundRedeem = assertCompoundRedeem;
3451
4302
  exports.assertDidRelay = assertDidRelay;
3452
4303
  exports.assertDidRelaySuccessfully = assertDidRelaySuccessfully;
3453
4304
  exports.assertDidRelayWithCharge = assertDidRelayWithCharge;
@@ -3461,6 +4312,7 @@ exports.buySharesFunction = buySharesFunction;
3461
4312
  exports.calcMlnValueAndBurnAmountForSharesBuyback = calcMlnValueAndBurnAmountForSharesBuyback;
3462
4313
  exports.callOnExtension = callOnExtension;
3463
4314
  exports.callOnExternalPosition = callOnExternalPosition;
4315
+ exports.compoundClaim = compoundClaim;
3464
4316
  exports.compoundDebtPositionAddCollateral = compoundDebtPositionAddCollateral;
3465
4317
  exports.compoundDebtPositionBorrow = compoundDebtPositionBorrow;
3466
4318
  exports.compoundDebtPositionClaimComp = compoundDebtPositionClaimComp;
@@ -3476,6 +4328,7 @@ exports.createMigrationRequest = createMigrationRequest;
3476
4328
  exports.createMockExternalPosition = createMockExternalPosition;
3477
4329
  exports.createNewFund = createNewFund;
3478
4330
  exports.createReconfigurationRequest = createReconfigurationRequest;
4331
+ exports.createUniswapV3LiquidityPosition = createUniswapV3LiquidityPosition;
3479
4332
  exports.createVaultProxy = createVaultProxy;
3480
4333
  exports.curveAaveClaimRewards = curveAaveClaimRewards;
3481
4334
  exports.curveAaveLend = curveAaveLend;
@@ -3484,13 +4337,10 @@ exports.curveAaveRedeem = curveAaveRedeem;
3484
4337
  exports.curveAaveStake = curveAaveStake;
3485
4338
  exports.curveAaveUnstake = curveAaveUnstake;
3486
4339
  exports.curveAaveUnstakeAndRedeem = curveAaveUnstakeAndRedeem;
3487
- exports.curveEursClaimRewards = curveEursClaimRewards;
3488
- exports.curveEursLend = curveEursLend;
3489
- exports.curveEursLendAndStake = curveEursLendAndStake;
3490
- exports.curveEursRedeem = curveEursRedeem;
3491
- exports.curveEursStake = curveEursStake;
3492
- exports.curveEursUnstake = curveEursUnstake;
3493
- exports.curveEursUnstakeAndRedeem = curveEursUnstakeAndRedeem;
4340
+ exports.curveClaimRewards = curveClaimRewards;
4341
+ exports.curveLend = curveLend;
4342
+ exports.curveLendAndStake = curveLendAndStake;
4343
+ exports.curveRedeem = curveRedeem;
3494
4344
  exports.curveSethClaimRewards = curveSethClaimRewards;
3495
4345
  exports.curveSethLend = curveSethLend;
3496
4346
  exports.curveSethLendAndStake = curveSethLendAndStake;
@@ -3498,6 +4348,7 @@ exports.curveSethRedeem = curveSethRedeem;
3498
4348
  exports.curveSethStake = curveSethStake;
3499
4349
  exports.curveSethUnstake = curveSethUnstake;
3500
4350
  exports.curveSethUnstakeAndRedeem = curveSethUnstakeAndRedeem;
4351
+ exports.curveStake = curveStake;
3501
4352
  exports.curveStethClaimRewards = curveStethClaimRewards;
3502
4353
  exports.curveStethLend = curveStethLend;
3503
4354
  exports.curveStethLendAndStake = curveStethLendAndStake;
@@ -3506,7 +4357,8 @@ exports.curveStethStake = curveStethStake;
3506
4357
  exports.curveStethUnstake = curveStethUnstake;
3507
4358
  exports.curveStethUnstakeAndRedeem = curveStethUnstakeAndRedeem;
3508
4359
  exports.curveTakeOrder = curveTakeOrder;
3509
- exports.defaultTestDeployment = defaultTestDeployment;
4360
+ exports.curveUnstake = curveUnstake;
4361
+ exports.curveUnstakeAndRedeem = curveUnstakeAndRedeem;
3510
4362
  exports.deployProtocolFixture = deployProtocolFixture;
3511
4363
  exports.generateFeeManagerConfigWithMockFees = generateFeeManagerConfigWithMockFees;
3512
4364
  exports.generateMockFees = generateMockFees;
@@ -3530,8 +4382,15 @@ exports.mockGenericSwapArgs = mockGenericSwapArgs;
3530
4382
  exports.mockGenericSwapBSelector = mockGenericSwapBSelector;
3531
4383
  exports.mockGenericSwapDirectFromVaultSelector = mockGenericSwapDirectFromVaultSelector;
3532
4384
  exports.mockGenericSwapViaApprovalSelector = mockGenericSwapViaApprovalSelector;
4385
+ exports.olympusV2Stake = olympusV2Stake;
4386
+ exports.olympusV2Unstake = olympusV2Unstake;
3533
4387
  exports.paraSwapV4GenerateDummyPaths = paraSwapV4GenerateDummyPaths;
3534
4388
  exports.paraSwapV4TakeOrder = paraSwapV4TakeOrder;
4389
+ exports.paraSwapV5GenerateDummyPaths = paraSwapV5GenerateDummyPaths;
4390
+ exports.paraSwapV5TakeOrder = paraSwapV5TakeOrder;
4391
+ exports.poolTogetherV4ClaimRewards = poolTogetherV4ClaimRewards;
4392
+ exports.poolTogetherV4Lend = poolTogetherV4Lend;
4393
+ exports.poolTogetherV4Redeem = poolTogetherV4Redeem;
3535
4394
  exports.reactivateExternalPosition = reactivateExternalPosition;
3536
4395
  exports.redeemSharesForSpecificAssets = redeemSharesForSpecificAssets;
3537
4396
  exports.redeemSharesInKind = redeemSharesInKind;
@@ -3540,17 +4399,26 @@ exports.removeExternalPosition = removeExternalPosition;
3540
4399
  exports.removeTrackedAssetsFromVault = removeTrackedAssetsFromVault;
3541
4400
  exports.setupGasRelayerPaymaster = setupGasRelayerPaymaster;
3542
4401
  exports.synthetixAssignExchangeDelegate = synthetixAssignExchangeDelegate;
3543
- exports.synthetixResolveAddress = synthetixResolveAddress;
4402
+ exports.synthetixRedeem = synthetixRedeem;
3544
4403
  exports.synthetixTakeOrder = synthetixTakeOrder;
3545
4404
  exports.transactionTimestamp = transactionTimestamp;
3546
4405
  exports.uniswapV2Lend = uniswapV2Lend;
3547
4406
  exports.uniswapV2Redeem = uniswapV2Redeem;
3548
4407
  exports.uniswapV2TakeOrder = uniswapV2TakeOrder;
4408
+ exports.uniswapV3LiquidityPositionAddLiquidity = uniswapV3LiquidityPositionAddLiquidity;
4409
+ exports.uniswapV3LiquidityPositionCollect = uniswapV3LiquidityPositionCollect;
4410
+ exports.uniswapV3LiquidityPositionGetMaxTick = uniswapV3LiquidityPositionGetMaxTick;
4411
+ exports.uniswapV3LiquidityPositionGetMinTick = uniswapV3LiquidityPositionGetMinTick;
4412
+ exports.uniswapV3LiquidityPositionMint = uniswapV3LiquidityPositionMint;
4413
+ exports.uniswapV3LiquidityPositionPurge = uniswapV3LiquidityPositionPurge;
4414
+ exports.uniswapV3LiquidityPositionRemoveLiquidity = uniswapV3LiquidityPositionRemoveLiquidity;
4415
+ exports.uniswapV3OrderTokenPair = uniswapV3OrderTokenPair;
3549
4416
  exports.uniswapV3TakeOrder = uniswapV3TakeOrder;
3550
4417
  exports.unlockAllWhales = unlockAllWhales;
3551
4418
  exports.unlockWhale = unlockWhale;
3552
4419
  exports.unlockWhales = unlockWhales;
3553
4420
  exports.updateChainlinkAggregator = updateChainlinkAggregator;
4421
+ exports.vaultCallCreateNewList = vaultCallCreateNewList;
3554
4422
  exports.vaultCallCurveMinterMint = vaultCallCurveMinterMint;
3555
4423
  exports.vaultCallCurveMinterMintMany = vaultCallCurveMinterMintMany;
3556
4424
  exports.vaultCallCurveMinterToggleApproveMint = vaultCallCurveMinterToggleApproveMint;