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

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 (81) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/declarations/src/assertions.d.ts +4 -4
  3. package/dist/declarations/src/deployment.d.ts +181 -82
  4. package/dist/declarations/src/gasRelayer.d.ts +56 -54
  5. package/dist/declarations/src/helpers.d.ts +16 -15
  6. package/dist/declarations/src/index.d.ts +6 -6
  7. package/dist/declarations/src/scaffolding/assets.d.ts +10 -10
  8. package/dist/declarations/src/scaffolding/chainlink.d.ts +3 -3
  9. package/dist/declarations/src/scaffolding/common.d.ts +7 -7
  10. package/dist/declarations/src/scaffolding/core.d.ts +17 -16
  11. package/dist/declarations/src/scaffolding/extensions/common.d.ts +11 -11
  12. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +35 -0
  13. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +56 -59
  14. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +4 -2
  15. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +53 -20
  16. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +99 -0
  17. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +12 -12
  18. package/dist/declarations/src/scaffolding/extensions/index.d.ts +5 -5
  19. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +20 -19
  20. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +28 -28
  21. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +272 -271
  22. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +28 -28
  23. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +14 -12
  24. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +32 -32
  25. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +23 -22
  26. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
  28. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +33 -25
  29. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +15 -15
  30. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +46 -46
  31. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +15 -15
  32. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +22 -22
  33. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +12 -12
  34. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +17 -17
  35. package/dist/declarations/src/scaffolding/index.d.ts +8 -8
  36. package/dist/declarations/src/scaffolding/setup.d.ts +77 -75
  37. package/dist/declarations/src/scaffolding/shares.d.ts +35 -35
  38. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +32 -17
  39. package/dist/declarations/src/whales.d.ts +42 -44
  40. package/dist/enzymefinance-testutils.browser.cjs.js +1470 -697
  41. package/dist/enzymefinance-testutils.browser.esm.js +1257 -508
  42. package/dist/enzymefinance-testutils.cjs.dev.js +1470 -697
  43. package/dist/enzymefinance-testutils.cjs.prod.js +1470 -697
  44. package/dist/enzymefinance-testutils.esm.js +1257 -508
  45. package/package.json +6 -6
  46. package/src/assertions.ts +5 -2
  47. package/src/deployment.ts +202 -99
  48. package/src/gasRelayer.ts +17 -18
  49. package/src/helpers.ts +6 -4
  50. package/src/scaffolding/assets.ts +6 -5
  51. package/src/scaffolding/chainlink.ts +2 -2
  52. package/src/scaffolding/common.ts +1 -1
  53. package/src/scaffolding/core.ts +28 -12
  54. package/src/scaffolding/extensions/common.ts +4 -4
  55. package/src/scaffolding/extensions/external-positions/actions.ts +103 -0
  56. package/src/scaffolding/extensions/external-positions/compound.ts +69 -114
  57. package/src/scaffolding/extensions/external-positions/index.ts +2 -0
  58. package/src/scaffolding/extensions/external-positions/mocks.ts +132 -10
  59. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +290 -0
  60. package/src/scaffolding/extensions/fees.ts +1 -1
  61. package/src/scaffolding/extensions/integrations/aave.ts +6 -8
  62. package/src/scaffolding/extensions/integrations/compound.ts +10 -11
  63. package/src/scaffolding/extensions/integrations/curve.ts +72 -68
  64. package/src/scaffolding/extensions/integrations/idle.ts +9 -11
  65. package/src/scaffolding/extensions/integrations/index.ts +2 -0
  66. package/src/scaffolding/extensions/integrations/mock.ts +11 -13
  67. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
  68. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
  69. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
  70. package/src/scaffolding/extensions/integrations/synthetix.ts +45 -12
  71. package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
  72. package/src/scaffolding/extensions/integrations/uniswapV2.ts +31 -27
  73. package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
  74. package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
  75. package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
  76. package/src/scaffolding/extensions/policies.ts +2 -1
  77. package/src/scaffolding/setup.ts +27 -19
  78. package/src/scaffolding/shares.ts +5 -4
  79. package/src/scaffolding/vaultCalls.ts +50 -3
  80. package/src/whales.ts +26 -17
  81. package/tsconfig.json +2 -1
@@ -4,11 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
6
6
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
7
- var protocol$1 = require('@enzymefinance/protocol');
7
+ var protocol = require('@enzymefinance/protocol');
8
8
  var ethers = require('ethers');
9
- var src = require('@enzymefinance/protocol/src');
10
- var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
11
9
  var ethers$1 = require('@enzymefinance/ethers');
10
+ var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
12
11
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
13
12
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
14
13
 
@@ -112,68 +111,81 @@ function _deployProtocolFixture() {
112
111
  config = fixture['Config'].linkedData; // prettier-ignore
113
112
 
114
113
  deployment = {
115
- dispatcher: new protocol$1.Dispatcher(fixture['Dispatcher'].address, deployer),
116
- vaultLib: new protocol$1.VaultLib(fixture['VaultLib'].address, deployer),
117
- fundDeployer: new protocol$1.FundDeployer(fixture['FundDeployer'].address, deployer),
118
- policyManager: new protocol$1.PolicyManager(fixture['PolicyManager'].address, deployer),
119
- aavePriceFeed: new protocol$1.AavePriceFeed(fixture['AavePriceFeed'].address, deployer),
120
- compoundDebtPositionLib: new protocol$1.CompoundDebtPositionLib(fixture['CompoundDebtPositionLib'].address, deployer),
121
- compoundDebtPositionParser: new protocol$1.CompoundDebtPositionParser(fixture['CompoundDebtPositionParser'].address, deployer),
122
- compoundPriceFeed: new protocol$1.CompoundPriceFeed(fixture['CompoundPriceFeed'].address, deployer),
123
- curvePriceFeed: new protocol$1.CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
124
- idlePriceFeed: new protocol$1.IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
125
- lidoStethPriceFeed: new protocol$1.LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
126
- revertingPriceFeed: new protocol$1.RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
127
- synthetixPriceFeed: new protocol$1.SynthetixPriceFeed(fixture['SynthetixPriceFeed'].address, deployer),
128
- stakehoundEthPriceFeed: new protocol$1.StakehoundEthPriceFeed(fixture['StakehoundEthPriceFeed'].address, deployer),
129
- wdgldPriceFeed: new protocol$1.WdgldPriceFeed(fixture['WdgldPriceFeed'].address, deployer),
130
- yearnVaultV2PriceFeed: new protocol$1.YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
131
- valueInterpreter: new protocol$1.ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
132
- uniswapV2PoolPriceFeed: new protocol$1.UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
133
- integrationManager: new protocol$1.IntegrationManager(fixture['IntegrationManager'].address, deployer),
134
- externalPositionManager: new protocol$1.ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
135
- externalPositionFactory: new protocol$1.ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
136
- curveLiquidityAaveAdapter: new protocol$1.CurveLiquidityAaveAdapter(fixture['CurveLiquidityAaveAdapter'].address, deployer),
137
- curveLiquidityEursAdapter: new protocol$1.CurveLiquidityEursAdapter(fixture['CurveLiquidityEursAdapter'].address, deployer),
138
- curveLiquiditySethAdapter: new protocol$1.CurveLiquiditySethAdapter(fixture['CurveLiquiditySethAdapter'].address, deployer),
139
- curveLiquidityStethAdapter: new protocol$1.CurveLiquidityStethAdapter(fixture['CurveLiquidityStethAdapter'].address, deployer),
140
- aaveAdapter: new protocol$1.AaveAdapter(fixture['AaveAdapter'].address, deployer),
141
- idleAdapter: new protocol$1.IdleAdapter(fixture['IdleAdapter'].address, deployer),
142
- paraSwapV4Adapter: new protocol$1.ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
143
- synthetixAdapter: new protocol$1.SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
144
- yearnVaultV2Adapter: new protocol$1.YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
145
- zeroExV2Adapter: new protocol$1.ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer),
146
- compoundAdapter: new protocol$1.CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
147
- uniswapV2Adapter: new protocol$1.UniswapV2Adapter(fixture['UniswapV2Adapter'].address, deployer),
148
- uniswapV3Adapter: new protocol$1.UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
149
- curveExchangeAdapter: new protocol$1.CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
150
- feeManager: new protocol$1.FeeManager(fixture['FeeManager'].address, deployer),
151
- comptrollerLib: new protocol$1.ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
152
- entranceRateBurnFee: new protocol$1.EntranceRateBurnFee(fixture['EntranceRateBurnFee'].address, deployer),
153
- entranceRateDirectFee: new protocol$1.EntranceRateDirectFee(fixture['EntranceRateDirectFee'].address, deployer),
154
- exitRateBurnFee: new protocol$1.ExitRateBurnFee(fixture['ExitRateBurnFee'].address, deployer),
155
- exitRateDirectFee: new protocol$1.ExitRateDirectFee(fixture['ExitRateDirectFee'].address, deployer),
156
- managementFee: new protocol$1.ManagementFee(fixture['ManagementFee'].address, deployer),
157
- performanceFee: new protocol$1.PerformanceFee(fixture['PerformanceFee'].address, deployer),
158
- depositWrapper: new protocol$1.DepositWrapper(fixture['DepositWrapper'].address, deployer),
159
- unpermissionedActionsWrapper: new protocol$1.UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
160
- allowedAdapterIncomingAssetsPolicy: new protocol$1.AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
161
- minMaxInvestmentPolicy: new protocol$1.MinMaxInvestmentPolicy(fixture['MinMaxInvestmentPolicy'].address, deployer),
162
- allowedDepositRecipientsPolicy: new protocol$1.AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
163
- guaranteedRedemptionPolicy: new protocol$1.GuaranteedRedemptionPolicy(fixture['GuaranteedRedemptionPolicy'].address, deployer),
164
- globalConfigLib: new protocol$1.GlobalConfigLib(fixture['GlobalConfigLib'].address, deployer),
165
- globalConfigProxy: new protocol$1.GlobalConfigLib(fixture['GlobalConfigProxy'].address, deployer),
166
- assetFinalityResolver: new protocol$1.AssetFinalityResolver(fixture['AssetFinalityResolver'].address, deployer),
167
- protocolFeeReserveLib: new protocol$1.ProtocolFeeReserveLib(fixture['ProtocolFeeReserveLib'].address, deployer),
168
- protocolFeeReserveProxy: new protocol$1.ProtocolFeeReserveLib(fixture['ProtocolFeeReserveProxy'].address, deployer),
169
- protocolFeeTracker: new protocol$1.ProtocolFeeTracker(fixture['ProtocolFeeTracker'].address, deployer),
170
- gasRelayPaymasterFactory: new protocol$1.GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer)
114
+ aaveAdapter: new protocol.AaveAdapter(fixture['AaveAdapter'].address, deployer),
115
+ aavePriceFeed: new protocol.AavePriceFeed(fixture['AavePriceFeed'].address, deployer),
116
+ addressListRegistry: new protocol.AddressListRegistry(fixture['AddressListRegistry'].address, deployer),
117
+ allowedAdapterIncomingAssetsPolicy: new protocol.AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
118
+ allowedAdaptersPolicy: new protocol.AllowedAdaptersPolicy(fixture['AllowedAdaptersPolicy'].address, deployer),
119
+ allowedAssetsForRedemptionPolicy: new protocol.AllowedAssetsForRedemptionPolicy(fixture['AllowedAssetsForRedemptionPolicy'].address, deployer),
120
+ allowedDepositRecipientsPolicy: new protocol.AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
121
+ allowedExternalPositionTypesPolicy: new protocol.AllowedExternalPositionTypesPolicy(fixture['AllowedExternalPositionTypesPolicy'].address, deployer),
122
+ allowedSharesTransferRecipientsPolicy: new protocol.AllowedSharesTransferRecipientsPolicy(fixture['AllowedSharesTransferRecipientsPolicy'].address, deployer),
123
+ assetFinalityResolver: new protocol.AssetFinalityResolver(fixture['AssetFinalityResolver'].address, deployer),
124
+ compoundAdapter: new protocol.CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
125
+ compoundDebtPositionLib: new protocol.CompoundDebtPositionLib(fixture['CompoundDebtPositionLib'].address, deployer),
126
+ compoundDebtPositionParser: new protocol.CompoundDebtPositionParser(fixture['CompoundDebtPositionParser'].address, deployer),
127
+ compoundPriceFeed: new protocol.CompoundPriceFeed(fixture['CompoundPriceFeed'].address, deployer),
128
+ comptrollerLib: new protocol.ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
129
+ cumulativeSlippageTolerancePolicy: new protocol.CumulativeSlippageTolerancePolicy(fixture['CumulativeSlippageTolerancePolicy'].address, deployer),
130
+ curveExchangeAdapter: new protocol.CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
131
+ curveLiquidityAaveAdapter: new protocol.CurveLiquidityAaveAdapter(fixture['CurveLiquidityAaveAdapter'].address, deployer),
132
+ curveLiquidityEursAdapter: new protocol.CurveLiquidityEursAdapter(fixture['CurveLiquidityEursAdapter'].address, deployer),
133
+ curveLiquiditySethAdapter: new protocol.CurveLiquiditySethAdapter(fixture['CurveLiquiditySethAdapter'].address, deployer),
134
+ curveLiquidityStethAdapter: new protocol.CurveLiquidityStethAdapter(fixture['CurveLiquidityStethAdapter'].address, deployer),
135
+ curvePriceFeed: new protocol.CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
136
+ depositWrapper: new protocol.DepositWrapper(fixture['DepositWrapper'].address, deployer),
137
+ dispatcher: new protocol.Dispatcher(fixture['Dispatcher'].address, deployer),
138
+ entranceRateBurnFee: new protocol.EntranceRateBurnFee(fixture['EntranceRateBurnFee'].address, deployer),
139
+ entranceRateDirectFee: new protocol.EntranceRateDirectFee(fixture['EntranceRateDirectFee'].address, deployer),
140
+ exitRateBurnFee: new protocol.ExitRateBurnFee(fixture['ExitRateBurnFee'].address, deployer),
141
+ exitRateDirectFee: new protocol.ExitRateDirectFee(fixture['ExitRateDirectFee'].address, deployer),
142
+ externalPositionFactory: new protocol.ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
143
+ externalPositionManager: new protocol.ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
144
+ feeManager: new protocol.FeeManager(fixture['FeeManager'].address, deployer),
145
+ fundDeployer: new protocol.FundDeployer(fixture['FundDeployer'].address, deployer),
146
+ fundValueCalculator: new protocol.FundValueCalculator(fixture['FundValueCalculator'].address, deployer),
147
+ fundValueCalculatorRouter: new protocol.FundValueCalculatorRouter(fixture['FundValueCalculatorRouter'].address, deployer),
148
+ fundValueCalculatorUsdWrapper: new protocol.FundValueCalculatorUsdWrapper(fixture['FundValueCalculatorUsdWrapper'].address, deployer),
149
+ gasRelayPaymasterFactory: new protocol.GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer),
150
+ guaranteedRedemptionPolicy: new protocol.GuaranteedRedemptionPolicy(fixture['GuaranteedRedemptionPolicy'].address, deployer),
151
+ idleAdapter: new protocol.IdleAdapter(fixture['IdleAdapter'].address, deployer),
152
+ idlePriceFeed: new protocol.IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
153
+ integrationManager: new protocol.IntegrationManager(fixture['IntegrationManager'].address, deployer),
154
+ lidoStethPriceFeed: new protocol.LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
155
+ managementFee: new protocol.ManagementFee(fixture['ManagementFee'].address, deployer),
156
+ minAssetBalancesPostRedemptionPolicy: new protocol.MinAssetBalancesPostRedemptionPolicy(fixture['MinAssetBalancesPostRedemptionPolicy'].address, deployer),
157
+ minMaxInvestmentPolicy: new protocol.MinMaxInvestmentPolicy(fixture['MinMaxInvestmentPolicy'].address, deployer),
158
+ onlyRemoveDustExternalPositionPolicy: new protocol.OnlyRemoveDustExternalPositionPolicy(fixture['OnlyRemoveDustExternalPositionPolicy'].address, deployer),
159
+ onlyUntrackDustOrPricelessAssetsPolicy: new protocol.OnlyUntrackDustOrPricelessAssetsPolicy(fixture['OnlyUntrackDustOrPricelessAssetsPolicy'].address, deployer),
160
+ paraSwapV4Adapter: new protocol.ParaSwapV4Adapter(fixture['ParaSwapV4Adapter'].address, deployer),
161
+ paraSwapV5Adapter: new protocol.ParaSwapV5Adapter(fixture['ParaSwapV5Adapter'].address, deployer),
162
+ performanceFee: new protocol.PerformanceFee(fixture['PerformanceFee'].address, deployer),
163
+ policyManager: new protocol.PolicyManager(fixture['PolicyManager'].address, deployer),
164
+ poolTogetherV4Adapter: new protocol.PoolTogetherV4Adapter(fixture['PoolTogetherV4Adapter'].address, deployer),
165
+ poolTogetherV4PriceFeed: new protocol.PoolTogetherV4PriceFeed(fixture['PoolTogetherV4PriceFeed'].address, deployer),
166
+ protocolFeeReserveLib: new protocol.ProtocolFeeReserveLib(fixture['ProtocolFeeReserveLib'].address, deployer),
167
+ protocolFeeReserveProxy: new protocol.ProtocolFeeReserveLib(fixture['ProtocolFeeReserveProxy'].address, deployer),
168
+ protocolFeeTracker: new protocol.ProtocolFeeTracker(fixture['ProtocolFeeTracker'].address, deployer),
169
+ revertingPriceFeed: new protocol.RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
170
+ stakehoundEthPriceFeed: new protocol.StakehoundEthPriceFeed(fixture['StakehoundEthPriceFeed'].address, deployer),
171
+ synthetixAdapter: new protocol.SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
172
+ synthetixPriceFeed: new protocol.SynthetixPriceFeed(fixture['SynthetixPriceFeed'].address, deployer),
173
+ uniswapV2ExchangeAdapter: new protocol.UniswapV2ExchangeAdapter(fixture['UniswapV2ExchangeAdapter'].address, deployer),
174
+ uniswapV2LiquidityAdapter: new protocol.UniswapV2LiquidityAdapter(fixture['UniswapV2LiquidityAdapter'].address, deployer),
175
+ uniswapV2PoolPriceFeed: new protocol.UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
176
+ uniswapV3Adapter: new protocol.UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
177
+ unpermissionedActionsWrapper: new protocol.UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
178
+ valueInterpreter: new protocol.ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
179
+ vaultLib: new protocol.VaultLib(fixture['VaultLib'].address, deployer),
180
+ yearnVaultV2Adapter: new protocol.YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
181
+ yearnVaultV2PriceFeed: new protocol.YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
182
+ zeroExV2Adapter: new protocol.ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer)
171
183
  };
172
184
  return _context3.abrupt("return", {
173
- deployer: deployer,
174
- deployment: deployment,
175
185
  accounts: accounts,
176
- config: config
186
+ config: config,
187
+ deployer: deployer,
188
+ deployment: deployment
177
189
  });
178
190
 
179
191
  case 12:
@@ -186,36 +198,12 @@ function _deployProtocolFixture() {
186
198
  return _deployProtocolFixture.apply(this, arguments);
187
199
  }
188
200
 
189
- // TODO: Remove this.
190
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
191
- function defaultTestDeployment(_x2) {
192
- return _defaultTestDeployment.apply(this, arguments);
193
- }
194
-
195
- function _defaultTestDeployment() {
196
- _defaultTestDeployment = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_) {
197
- return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
198
- while (1) {
199
- switch (_context4.prev = _context4.next) {
200
- case 0:
201
- throw new Error('Removed');
202
-
203
- case 1:
204
- case "end":
205
- return _context4.stop();
206
- }
207
- }
208
- }, _callee4);
209
- }));
210
- return _defaultTestDeployment.apply(this, arguments);
211
- }
212
-
213
201
  function addTrackedAssetsToVault(_ref) {
214
202
  var signer = _ref.signer,
215
203
  comptrollerProxy = _ref.comptrollerProxy,
216
204
  integrationManager = _ref.integrationManager,
217
205
  assets = _ref.assets;
218
- return comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.AddTrackedAssetsToVault, protocol$1.addTrackedAssetsToVaultArgs({
206
+ return comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.AddTrackedAssetsToVault, protocol.addTrackedAssetsToVaultArgs({
219
207
  assets: assets
220
208
  }));
221
209
  }
@@ -224,7 +212,7 @@ function removeTrackedAssetsFromVault(_ref2) {
224
212
  comptrollerProxy = _ref2.comptrollerProxy,
225
213
  integrationManager = _ref2.integrationManager,
226
214
  assets = _ref2.assets;
227
- return comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.RemoveTrackedAssetsFromVault, protocol$1.removeTrackedAssetsFromVaultArgs({
215
+ return comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.RemoveTrackedAssetsFromVault, protocol.removeTrackedAssetsFromVaultArgs({
228
216
  assets: assets
229
217
  }));
230
218
  }
@@ -244,10 +232,10 @@ function _addNewAssetsToFund() {
244
232
  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;
245
233
  // First, add tracked assets while their balances are 0
246
234
  receipt = addTrackedAssetsToVault({
247
- signer: signer,
235
+ assets: assets,
248
236
  comptrollerProxy: comptrollerProxy,
249
237
  integrationManager: integrationManager,
250
- assets: assets
238
+ signer: signer
251
239
  }); // Then seed the vault with balances as necessary
252
240
 
253
241
  _context.next = 4;
@@ -350,7 +338,7 @@ function _getAssetBalances() {
350
338
  case 0:
351
339
  account = _ref.account, assets = _ref.assets;
352
340
  return _context.abrupt("return", Promise.all(assets.map(function (asset) {
353
- return new protocol$1.StandardToken(asset, provider).balanceOf(account);
341
+ return new protocol.StandardToken(asset, provider).balanceOf(account);
354
342
  })));
355
343
 
356
344
  case 2:
@@ -399,13 +387,13 @@ function createFundDeployer(_x) {
399
387
 
400
388
  function _createFundDeployer() {
401
389
  _createFundDeployer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
402
- var deployer, assetFinalityResolver, externalPositionManager, dispatcher, feeManager, gasRelayPaymasterFactory, integrationManager, policyManager, valueInterpreter, vaultLib, _ref$setOnDispatcher, setOnDispatcher, _ref$setReleaseLive, setReleaseLive, mlnToken, wethToken, protocolFeeReserve, nextFundDeployer, nextComptrollerLib, nextProtocolFeeTracker, nextVaultLib;
390
+ 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;
403
391
 
404
392
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
405
393
  while (1) {
406
394
  switch (_context.prev = _context.next) {
407
395
  case 0:
408
- deployer = _ref.deployer, assetFinalityResolver = _ref.assetFinalityResolver, externalPositionManager = _ref.externalPositionManager, dispatcher = _ref.dispatcher, feeManager = _ref.feeManager, gasRelayPaymasterFactory = _ref.gasRelayPaymasterFactory, integrationManager = _ref.integrationManager, policyManager = _ref.policyManager, valueInterpreter = _ref.valueInterpreter, vaultLib = _ref.vaultLib, _ref$setOnDispatcher = _ref.setOnDispatcher, setOnDispatcher = _ref$setOnDispatcher === void 0 ? true : _ref$setOnDispatcher, _ref$setReleaseLive = _ref.setReleaseLive, setReleaseLive = _ref$setReleaseLive === void 0 ? true : _ref$setReleaseLive;
396
+ 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;
409
397
  _context.next = 3;
410
398
  return vaultLib.getMlnToken();
411
399
 
@@ -422,82 +410,111 @@ function _createFundDeployer() {
422
410
  case 9:
423
411
  protocolFeeReserve = _context.sent;
424
412
  _context.next = 12;
425
- return protocol$1.FundDeployer.deploy(deployer, dispatcher, gasRelayPaymasterFactory);
413
+ return protocol.FundDeployer.deploy(deployer, dispatcher, gasRelayPaymasterFactory);
426
414
 
427
415
  case 12:
428
416
  nextFundDeployer = _context.sent;
429
417
  _context.next = 15;
430
- return protocol$1.ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, externalPositionManager, feeManager, integrationManager, policyManager, assetFinalityResolver, gasRelayPaymasterFactory, mlnToken, wethToken);
418
+ return protocol.PolicyManager.deploy(deployer, nextFundDeployer, gasRelayPaymasterFactory);
431
419
 
432
420
  case 15:
421
+ nextPolicyManager = _context.sent;
422
+ _context.t0 = protocol.ExternalPositionManager;
423
+ _context.t1 = deployer;
424
+ _context.t2 = nextFundDeployer;
425
+ _context.next = 21;
426
+ return externalPositionManager.getExternalPositionFactory();
427
+
428
+ case 21:
429
+ _context.t3 = _context.sent;
430
+ _context.t4 = nextPolicyManager;
431
+ _context.next = 25;
432
+ return _context.t0.deploy.call(_context.t0, _context.t1, _context.t2, _context.t3, _context.t4);
433
+
434
+ case 25:
435
+ nextExternalPositionManager = _context.sent;
436
+ _context.next = 28;
437
+ return protocol.FeeManager.deploy(deployer, nextFundDeployer);
438
+
439
+ case 28:
440
+ nextFeeManager = _context.sent;
441
+ _context.next = 31;
442
+ return protocol.IntegrationManager.deploy(deployer, nextFundDeployer, nextPolicyManager, valueInterpreter);
443
+
444
+ case 31:
445
+ nextIntegrationManager = _context.sent;
446
+ _context.next = 34;
447
+ return protocol.ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextPolicyManager, assetFinalityResolver, gasRelayPaymasterFactory, mlnToken, wethToken);
448
+
449
+ case 34:
433
450
  nextComptrollerLib = _context.sent;
434
- _context.next = 18;
451
+ _context.next = 37;
435
452
  return nextFundDeployer.setComptrollerLib(nextComptrollerLib);
436
453
 
437
- case 18:
438
- _context.next = 20;
439
- return protocol$1.ProtocolFeeTracker.deploy(deployer, nextFundDeployer);
454
+ case 37:
455
+ _context.next = 39;
456
+ return protocol.ProtocolFeeTracker.deploy(deployer, nextFundDeployer);
440
457
 
441
- case 20:
458
+ case 39:
442
459
  nextProtocolFeeTracker = _context.sent;
443
- _context.next = 23;
460
+ _context.next = 42;
444
461
  return nextFundDeployer.setProtocolFeeTracker(nextProtocolFeeTracker);
445
462
 
446
- case 23:
447
- _context.t0 = protocol$1.VaultLib;
448
- _context.t1 = deployer;
449
- _context.t2 = externalPositionManager;
450
- _context.next = 28;
463
+ case 42:
464
+ _context.t5 = protocol.VaultLib;
465
+ _context.t6 = deployer;
466
+ _context.t7 = externalPositionManager;
467
+ _context.next = 47;
451
468
  return vaultLib.getGasRelayPaymasterFactory();
452
469
 
453
- case 28:
454
- _context.t3 = _context.sent;
455
- _context.next = 31;
470
+ case 47:
471
+ _context.t8 = _context.sent;
472
+ _context.next = 50;
456
473
  return vaultLib.getProtocolFeeReserve();
457
474
 
458
- case 31:
459
- _context.t4 = _context.sent;
460
- _context.t5 = nextProtocolFeeTracker;
461
- _context.next = 35;
475
+ case 50:
476
+ _context.t9 = _context.sent;
477
+ _context.t10 = nextProtocolFeeTracker;
478
+ _context.next = 54;
462
479
  return vaultLib.getMlnToken();
463
480
 
464
- case 35:
465
- _context.t6 = _context.sent;
466
- _context.next = 38;
481
+ case 54:
482
+ _context.t11 = _context.sent;
483
+ _context.next = 57;
467
484
  return vaultLib.getWethToken();
468
485
 
469
- case 38:
470
- _context.t7 = _context.sent;
471
- _context.next = 41;
472
- return _context.t0.deploy.call(_context.t0, _context.t1, _context.t2, _context.t3, _context.t4, _context.t5, _context.t6, _context.t7);
486
+ case 57:
487
+ _context.t12 = _context.sent;
488
+ _context.next = 60;
489
+ return _context.t5.deploy.call(_context.t5, _context.t6, _context.t7, _context.t8, _context.t9, _context.t10, _context.t11, _context.t12);
473
490
 
474
- case 41:
491
+ case 60:
475
492
  nextVaultLib = _context.sent;
476
- _context.next = 44;
493
+ _context.next = 63;
477
494
  return nextFundDeployer.setVaultLib(nextVaultLib);
478
495
 
479
- case 44:
496
+ case 63:
480
497
  if (!setReleaseLive) {
481
- _context.next = 47;
498
+ _context.next = 66;
482
499
  break;
483
500
  }
484
501
 
485
- _context.next = 47;
502
+ _context.next = 66;
486
503
  return nextFundDeployer.setReleaseLive();
487
504
 
488
- case 47:
505
+ case 66:
489
506
  if (!setOnDispatcher) {
490
- _context.next = 50;
507
+ _context.next = 69;
491
508
  break;
492
509
  }
493
510
 
494
- _context.next = 50;
511
+ _context.next = 69;
495
512
  return dispatcher.setCurrentFundDeployer(nextFundDeployer);
496
513
 
497
- case 50:
514
+ case 69:
498
515
  return _context.abrupt("return", nextFundDeployer);
499
516
 
500
- case 51:
517
+ case 70:
501
518
  case "end":
502
519
  return _context.stop();
503
520
  }
@@ -543,21 +560,24 @@ function _callOnExtension() {
543
560
  return _callOnExtension.apply(this, arguments);
544
561
  }
545
562
 
546
- var protocol = 0;
547
- function createExternalPosition(_x) {
548
- return _createExternalPosition.apply(this, arguments);
563
+ function callOnExternalPosition(_x) {
564
+ return _callOnExternalPosition.apply(this, arguments);
549
565
  }
550
566
 
551
- function _createExternalPosition() {
552
- _createExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
553
- var comptrollerProxy, externalPositionManager, fundOwner, createExternalPositionTx;
567
+ function _callOnExternalPosition() {
568
+ _callOnExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
569
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, actionId, actionArgs, callArgs;
554
570
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
555
571
  while (1) {
556
572
  switch (_context.prev = _context.next) {
557
573
  case 0:
558
- comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, fundOwner = _ref.fundOwner;
559
- createExternalPositionTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol$1.ExternalPositionManagerActionId.CreateExternalPosition, protocol$1.encodeArgs(['uint256', 'bytes'], [protocol, '0x']));
560
- return _context.abrupt("return", createExternalPositionTx);
574
+ signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionProxy = _ref.externalPositionProxy, actionId = _ref.actionId, actionArgs = _ref.actionArgs;
575
+ callArgs = protocol.callOnExternalPositionArgs({
576
+ actionArgs: actionArgs,
577
+ actionId: actionId,
578
+ externalPositionProxy: externalPositionProxy
579
+ });
580
+ return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
561
581
 
562
582
  case 3:
563
583
  case "end":
@@ -566,214 +586,305 @@ function _createExternalPosition() {
566
586
  }
567
587
  }, _callee);
568
588
  }));
569
- return _createExternalPosition.apply(this, arguments);
589
+ return _callOnExternalPosition.apply(this, arguments);
570
590
  }
571
591
 
572
- function addCollateral(_x2) {
573
- return _addCollateral.apply(this, arguments);
592
+ function createExternalPosition(_x2) {
593
+ return _createExternalPosition.apply(this, arguments);
574
594
  }
575
595
 
576
- function _addCollateral() {
577
- _addCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
578
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs, callArgs, addCollateralTx;
596
+ function _createExternalPosition() {
597
+ _createExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
598
+ var signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, _ref2$initializationD, initializationData, receipt, event, externalPositionProxy;
599
+
579
600
  return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
580
601
  while (1) {
581
602
  switch (_context2.prev = _context2.next) {
582
603
  case 0:
583
- comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, fundOwner = _ref2.fundOwner, assets = _ref2.assets, amounts = _ref2.amounts, externalPositionProxy = _ref2.externalPositionProxy, cTokens = _ref2.cTokens;
584
- actionArgs = protocol$1.compoundExternalPositionActionArgs({
585
- assets: assets,
586
- amounts: amounts,
587
- data: protocol$1.encodeArgs(['address[]'], [cTokens])
588
- });
589
- callArgs = protocol$1.callOnExternalPositionArgs({
604
+ signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionTypeId = _ref2.externalPositionTypeId, _ref2$initializationD = _ref2.initializationData, initializationData = _ref2$initializationD === void 0 ? '0x' : _ref2$initializationD;
605
+ _context2.next = 3;
606
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CreateExternalPosition, protocol.encodeArgs(['uint256', 'bytes'], [externalPositionTypeId, initializationData]));
607
+
608
+ case 3:
609
+ receipt = _context2.sent;
610
+ event = ethers$1.extractEvent(receipt, externalPositionManager.abi.getEvent('ExternalPositionDeployedForFund'));
611
+ externalPositionProxy = new protocol.IExternalPositionProxy(event[0].args.externalPosition, signer);
612
+ return _context2.abrupt("return", {
590
613
  externalPositionProxy: externalPositionProxy,
591
- actionId: protocol$1.CompoundDebtPositionActionId.AddCollateralAssets,
592
- encodedCallArgs: actionArgs
614
+ receipt: receipt
593
615
  });
594
- addCollateralTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol$1.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
595
- return _context2.abrupt("return", addCollateralTx);
596
616
 
597
- case 5:
617
+ case 7:
598
618
  case "end":
599
619
  return _context2.stop();
600
620
  }
601
621
  }
602
622
  }, _callee2);
603
623
  }));
604
- return _addCollateral.apply(this, arguments);
624
+ return _createExternalPosition.apply(this, arguments);
605
625
  }
606
626
 
607
- function removeCollateral(_x3) {
608
- return _removeCollateral.apply(this, arguments);
627
+ function reactivateExternalPosition(_x3) {
628
+ return _reactivateExternalPosition.apply(this, arguments);
609
629
  }
610
630
 
611
- function _removeCollateral() {
612
- _removeCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
613
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs, callArgs, removeCollateralTx;
631
+ function _reactivateExternalPosition() {
632
+ _reactivateExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
633
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, callArgs;
614
634
  return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
615
635
  while (1) {
616
636
  switch (_context3.prev = _context3.next) {
617
637
  case 0:
618
- comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, fundOwner = _ref3.fundOwner, assets = _ref3.assets, amounts = _ref3.amounts, externalPositionProxy = _ref3.externalPositionProxy, cTokens = _ref3.cTokens;
619
- actionArgs = protocol$1.compoundExternalPositionActionArgs({
620
- assets: assets,
621
- amounts: amounts,
622
- data: protocol$1.encodeArgs(['address[]'], [cTokens])
623
- });
624
- callArgs = protocol$1.callOnExternalPositionArgs({
625
- externalPositionProxy: externalPositionProxy,
626
- actionId: protocol$1.CompoundDebtPositionActionId.RemoveCollateralAssets,
627
- encodedCallArgs: actionArgs
638
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy;
639
+ callArgs = protocol.externalPositionReactivateArgs({
640
+ externalPositionProxy: externalPositionProxy
628
641
  });
629
- removeCollateralTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol$1.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
630
- return _context3.abrupt("return", removeCollateralTx);
642
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.ReactivateExternalPosition, callArgs));
631
643
 
632
- case 5:
644
+ case 3:
633
645
  case "end":
634
646
  return _context3.stop();
635
647
  }
636
648
  }
637
649
  }, _callee3);
638
650
  }));
639
- return _removeCollateral.apply(this, arguments);
651
+ return _reactivateExternalPosition.apply(this, arguments);
640
652
  }
641
653
 
642
- function borrow(_x4) {
643
- return _borrow.apply(this, arguments);
654
+ function removeExternalPosition(_x4) {
655
+ return _removeExternalPosition.apply(this, arguments);
644
656
  }
645
657
 
646
- function _borrow() {
647
- _borrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
648
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, actionArgs, callArgs, borrowTx;
658
+ function _removeExternalPosition() {
659
+ _removeExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
660
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, callArgs;
649
661
  return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
650
662
  while (1) {
651
663
  switch (_context4.prev = _context4.next) {
652
664
  case 0:
653
- comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, fundOwner = _ref4.fundOwner, externalPositionProxy = _ref4.externalPositionProxy, assets = _ref4.assets, amounts = _ref4.amounts, cTokens = _ref4.cTokens;
654
- actionArgs = protocol$1.compoundExternalPositionActionArgs({
655
- assets: assets,
665
+ signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy;
666
+ callArgs = protocol.externalPositionRemoveArgs({
667
+ externalPositionProxy: externalPositionProxy
668
+ });
669
+ return _context4.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.RemoveExternalPosition, callArgs));
670
+
671
+ case 3:
672
+ case "end":
673
+ return _context4.stop();
674
+ }
675
+ }
676
+ }, _callee4);
677
+ }));
678
+ return _removeExternalPosition.apply(this, arguments);
679
+ }
680
+
681
+ function compoundDebtPositionAddCollateral(_x) {
682
+ return _compoundDebtPositionAddCollateral.apply(this, arguments);
683
+ }
684
+
685
+ function _compoundDebtPositionAddCollateral() {
686
+ _compoundDebtPositionAddCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
687
+ var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
688
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
689
+ while (1) {
690
+ switch (_context.prev = _context.next) {
691
+ case 0:
692
+ comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, fundOwner = _ref.fundOwner, assets = _ref.assets, amounts = _ref.amounts, externalPositionProxy = _ref.externalPositionProxy, cTokens = _ref.cTokens;
693
+ actionArgs = protocol.compoundExternalPositionActionArgs({
656
694
  amounts: amounts,
657
- data: protocol$1.encodeArgs(['address[]'], [cTokens])
695
+ assets: assets,
696
+ data: protocol.encodeArgs(['address[]'], [cTokens])
658
697
  });
659
- callArgs = protocol$1.callOnExternalPositionArgs({
698
+ return _context.abrupt("return", callOnExternalPosition({
699
+ actionArgs: actionArgs,
700
+ actionId: protocol.CompoundDebtPositionActionId.AddCollateralAssets,
701
+ comptrollerProxy: comptrollerProxy,
702
+ externalPositionManager: externalPositionManager,
660
703
  externalPositionProxy: externalPositionProxy,
661
- actionId: protocol$1.CompoundDebtPositionActionId.BorrowAsset,
662
- encodedCallArgs: actionArgs
704
+ signer: fundOwner
705
+ }));
706
+
707
+ case 3:
708
+ case "end":
709
+ return _context.stop();
710
+ }
711
+ }
712
+ }, _callee);
713
+ }));
714
+ return _compoundDebtPositionAddCollateral.apply(this, arguments);
715
+ }
716
+
717
+ function compoundDebtPositionBorrow(_x2) {
718
+ return _compoundDebtPositionBorrow.apply(this, arguments);
719
+ }
720
+
721
+ function _compoundDebtPositionBorrow() {
722
+ _compoundDebtPositionBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
723
+ var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, actionArgs;
724
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
725
+ while (1) {
726
+ switch (_context2.prev = _context2.next) {
727
+ case 0:
728
+ comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, fundOwner = _ref2.fundOwner, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts, cTokens = _ref2.cTokens;
729
+ actionArgs = protocol.compoundExternalPositionActionArgs({
730
+ amounts: amounts,
731
+ assets: assets,
732
+ data: protocol.encodeArgs(['address[]'], [cTokens])
663
733
  });
664
- borrowTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol$1.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
665
- return _context4.abrupt("return", borrowTx);
734
+ return _context2.abrupt("return", callOnExternalPosition({
735
+ actionArgs: actionArgs,
736
+ actionId: protocol.CompoundDebtPositionActionId.BorrowAsset,
737
+ comptrollerProxy: comptrollerProxy,
738
+ externalPositionManager: externalPositionManager,
739
+ externalPositionProxy: externalPositionProxy,
740
+ signer: fundOwner
741
+ }));
666
742
 
667
- case 5:
743
+ case 3:
668
744
  case "end":
669
- return _context4.stop();
745
+ return _context2.stop();
670
746
  }
671
747
  }
672
- }, _callee4);
748
+ }, _callee2);
673
749
  }));
674
- return _borrow.apply(this, arguments);
750
+ return _compoundDebtPositionBorrow.apply(this, arguments);
675
751
  }
676
752
 
677
- function claimComp(_x5) {
678
- return _claimComp.apply(this, arguments);
753
+ function compoundDebtPositionClaimComp(_x3) {
754
+ return _compoundDebtPositionClaimComp.apply(this, arguments);
679
755
  }
680
756
 
681
- function _claimComp() {
682
- _claimComp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(_ref5) {
683
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, actionArgs, callArgs, claimCompTx;
684
- return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
757
+ function _compoundDebtPositionClaimComp() {
758
+ _compoundDebtPositionClaimComp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
759
+ var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, actionArgs;
760
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
685
761
  while (1) {
686
- switch (_context5.prev = _context5.next) {
762
+ switch (_context3.prev = _context3.next) {
687
763
  case 0:
688
- comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, fundOwner = _ref5.fundOwner, externalPositionProxy = _ref5.externalPositionProxy;
689
- actionArgs = protocol$1.compoundExternalPositionActionArgs({
690
- assets: [],
764
+ comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, fundOwner = _ref3.fundOwner, externalPositionProxy = _ref3.externalPositionProxy;
765
+ actionArgs = protocol.compoundExternalPositionActionArgs({
691
766
  amounts: [],
767
+ assets: [],
692
768
  data: '0x'
693
769
  });
694
- callArgs = protocol$1.callOnExternalPositionArgs({
770
+ return _context3.abrupt("return", callOnExternalPosition({
771
+ actionArgs: actionArgs,
772
+ actionId: protocol.CompoundDebtPositionActionId.ClaimComp,
773
+ comptrollerProxy: comptrollerProxy,
774
+ externalPositionManager: externalPositionManager,
695
775
  externalPositionProxy: externalPositionProxy,
696
- actionId: protocol$1.CompoundDebtPositionActionId.ClaimComp,
697
- encodedCallArgs: actionArgs
698
- });
699
- claimCompTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol$1.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
700
- return _context5.abrupt("return", claimCompTx);
776
+ signer: fundOwner
777
+ }));
701
778
 
702
- case 5:
779
+ case 3:
703
780
  case "end":
704
- return _context5.stop();
781
+ return _context3.stop();
705
782
  }
706
783
  }
707
- }, _callee5);
784
+ }, _callee3);
708
785
  }));
709
- return _claimComp.apply(this, arguments);
786
+ return _compoundDebtPositionClaimComp.apply(this, arguments);
710
787
  }
711
788
 
712
- function repayBorrow(_x6) {
713
- return _repayBorrow.apply(this, arguments);
789
+ function compoundDebtPositionRemoveCollateral(_x4) {
790
+ return _compoundDebtPositionRemoveCollateral.apply(this, arguments);
714
791
  }
715
792
 
716
- function _repayBorrow() {
717
- _repayBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee6(_ref6) {
718
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs, callArgs, repayTx;
719
- return _regeneratorRuntime__default['default'].wrap(function _callee6$(_context6) {
793
+ function _compoundDebtPositionRemoveCollateral() {
794
+ _compoundDebtPositionRemoveCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
795
+ var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
796
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
720
797
  while (1) {
721
- switch (_context6.prev = _context6.next) {
798
+ switch (_context4.prev = _context4.next) {
722
799
  case 0:
723
- comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager, fundOwner = _ref6.fundOwner, assets = _ref6.assets, amounts = _ref6.amounts, externalPositionProxy = _ref6.externalPositionProxy, cTokens = _ref6.cTokens;
724
- actionArgs = protocol$1.compoundExternalPositionActionArgs({
725
- assets: assets,
800
+ comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, fundOwner = _ref4.fundOwner, assets = _ref4.assets, amounts = _ref4.amounts, externalPositionProxy = _ref4.externalPositionProxy, cTokens = _ref4.cTokens;
801
+ actionArgs = protocol.compoundExternalPositionActionArgs({
726
802
  amounts: amounts,
727
- data: protocol$1.encodeArgs(['address[]'], [cTokens])
803
+ assets: assets,
804
+ data: protocol.encodeArgs(['address[]'], [cTokens])
728
805
  });
729
- callArgs = protocol$1.callOnExternalPositionArgs({
806
+ return _context4.abrupt("return", callOnExternalPosition({
807
+ actionArgs: actionArgs,
808
+ actionId: protocol.CompoundDebtPositionActionId.RemoveCollateralAssets,
809
+ comptrollerProxy: comptrollerProxy,
810
+ externalPositionManager: externalPositionManager,
730
811
  externalPositionProxy: externalPositionProxy,
731
- actionId: protocol$1.CompoundDebtPositionActionId.RepayBorrowedAssets,
732
- encodedCallArgs: actionArgs
733
- });
734
- repayTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol$1.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
735
- return _context6.abrupt("return", repayTx);
812
+ signer: fundOwner
813
+ }));
736
814
 
737
- case 5:
815
+ case 3:
738
816
  case "end":
739
- return _context6.stop();
817
+ return _context4.stop();
740
818
  }
741
819
  }
742
- }, _callee6);
820
+ }, _callee4);
743
821
  }));
744
- return _repayBorrow.apply(this, arguments);
822
+ return _compoundDebtPositionRemoveCollateral.apply(this, arguments);
745
823
  }
746
824
 
747
- function removeExternalPosition(_x7) {
748
- return _removeExternalPosition.apply(this, arguments);
825
+ function compoundDebtPositionRepayBorrow(_x5) {
826
+ return _compoundDebtPositionRepayBorrow.apply(this, arguments);
749
827
  }
750
828
 
751
- function _removeExternalPosition() {
752
- _removeExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee7(_ref7) {
753
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, actionArgs, callArgs, removeExternalPositionTx;
754
- return _regeneratorRuntime__default['default'].wrap(function _callee7$(_context7) {
829
+ function _compoundDebtPositionRepayBorrow() {
830
+ _compoundDebtPositionRepayBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(_ref5) {
831
+ var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
832
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
755
833
  while (1) {
756
- switch (_context7.prev = _context7.next) {
834
+ switch (_context5.prev = _context5.next) {
757
835
  case 0:
758
- comptrollerProxy = _ref7.comptrollerProxy, externalPositionManager = _ref7.externalPositionManager, fundOwner = _ref7.fundOwner, externalPositionProxy = _ref7.externalPositionProxy;
759
- actionArgs = protocol$1.externalPositionRemoveArgs({
760
- externalPositionProxy: externalPositionProxy
836
+ comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, fundOwner = _ref5.fundOwner, assets = _ref5.assets, amounts = _ref5.amounts, externalPositionProxy = _ref5.externalPositionProxy, cTokens = _ref5.cTokens;
837
+ actionArgs = protocol.compoundExternalPositionActionArgs({
838
+ amounts: amounts,
839
+ assets: assets,
840
+ data: protocol.encodeArgs(['address[]'], [cTokens])
761
841
  });
762
- callArgs = protocol$1.callOnExternalPositionArgs({
842
+ return _context5.abrupt("return", callOnExternalPosition({
843
+ actionArgs: actionArgs,
844
+ actionId: protocol.CompoundDebtPositionActionId.RepayBorrowedAssets,
845
+ comptrollerProxy: comptrollerProxy,
846
+ externalPositionManager: externalPositionManager,
763
847
  externalPositionProxy: externalPositionProxy,
764
- encodedCallArgs: actionArgs
765
- });
766
- removeExternalPositionTx = comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol$1.ExternalPositionManagerActionId.RemoveExternalPosition, callArgs);
767
- return _context7.abrupt("return", removeExternalPositionTx);
848
+ signer: fundOwner
849
+ }));
768
850
 
769
- case 5:
851
+ case 3:
770
852
  case "end":
771
- return _context7.stop();
853
+ return _context5.stop();
772
854
  }
773
855
  }
774
- }, _callee7);
856
+ }, _callee5);
775
857
  }));
776
- return _removeExternalPosition.apply(this, arguments);
858
+ return _compoundDebtPositionRepayBorrow.apply(this, arguments);
859
+ }
860
+
861
+ function createCompoundDebtPosition(_x6) {
862
+ return _createCompoundDebtPosition.apply(this, arguments);
863
+ }
864
+
865
+ function _createCompoundDebtPosition() {
866
+ _createCompoundDebtPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee6(_ref6) {
867
+ var signer, comptrollerProxy, externalPositionManager;
868
+ return _regeneratorRuntime__default['default'].wrap(function _callee6$(_context6) {
869
+ while (1) {
870
+ switch (_context6.prev = _context6.next) {
871
+ case 0:
872
+ signer = _ref6.signer, comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager;
873
+ return _context6.abrupt("return", createExternalPosition({
874
+ comptrollerProxy: comptrollerProxy,
875
+ externalPositionManager: externalPositionManager,
876
+ externalPositionTypeId: protocol.ExternalPositionType.CompoundDebtPosition,
877
+ signer: signer
878
+ }));
879
+
880
+ case 2:
881
+ case "end":
882
+ return _context6.stop();
883
+ }
884
+ }
885
+ }, _callee6);
886
+ }));
887
+ return _createCompoundDebtPosition.apply(this, arguments);
777
888
  }
778
889
 
779
890
  function createMockExternalPosition(_x) {
@@ -788,7 +899,7 @@ function _createMockExternalPosition() {
788
899
  switch (_context.prev = _context.next) {
789
900
  case 0:
790
901
  comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionFactory = _ref.externalPositionFactory, defaultActionAssetsToTransfer = _ref.defaultActionAssetsToTransfer, defaultActionAmountsToTransfer = _ref.defaultActionAmountsToTransfer, defaultActionAssetsToReceive = _ref.defaultActionAssetsToReceive, fundOwner = _ref.fundOwner, deployer = _ref.deployer;
791
- _context.t0 = src.VaultLib;
902
+ _context.t0 = protocol.VaultLib;
792
903
  _context.next = 4;
793
904
  return comptrollerProxy.getVaultProxy();
794
905
 
@@ -806,12 +917,12 @@ function _createMockExternalPosition() {
806
917
 
807
918
  case 12:
808
919
  _context.next = 14;
809
- return src.MockGenericExternalPositionLib.deploy(deployer);
920
+ return protocol.MockGenericExternalPositionLib.deploy(deployer);
810
921
 
811
922
  case 14:
812
923
  mockGenericExternalPositionLib = _context.sent;
813
924
  _context.next = 17;
814
- return src.MockGenericExternalPositionParser.deploy(deployer);
925
+ return protocol.MockGenericExternalPositionParser.deploy(deployer);
815
926
 
816
927
  case 17:
817
928
  mockExternalPositionParser = _context.sent;
@@ -821,7 +932,7 @@ function _createMockExternalPosition() {
821
932
 
822
933
  case 21:
823
934
  _context.next = 23;
824
- return comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, src.ExternalPositionManagerActionId.CreateExternalPosition, src.encodeArgs(['uint256', 'bytes'], [typeId, '0x']));
935
+ return comptrollerProxy.connect(fundOwner).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CreateExternalPosition, protocol.encodeArgs(['uint256', 'bytes'], [typeId, '0x']));
825
936
 
826
937
  case 23:
827
938
  receipt = _context.sent;
@@ -831,21 +942,431 @@ function _createMockExternalPosition() {
831
942
  case 26:
832
943
  externalPositionProxy = _context.sent[0];
833
944
  return _context.abrupt("return", {
834
- typeId: typeId,
835
- mockGenericExternalPositionLib: mockGenericExternalPositionLib,
945
+ externalPositionProxy: externalPositionProxy,
836
946
  mockExternalPositionParser: mockExternalPositionParser,
947
+ mockGenericExternalPositionLib: mockGenericExternalPositionLib,
948
+ receipt: receipt,
949
+ typeId: typeId
950
+ });
951
+
952
+ case 28:
953
+ case "end":
954
+ return _context.stop();
955
+ }
956
+ }
957
+ }, _callee);
958
+ }));
959
+ return _createMockExternalPosition.apply(this, arguments);
960
+ }
961
+
962
+ function mockExternalPositionAddDebtAssets(_x2) {
963
+ return _mockExternalPositionAddDebtAssets.apply(this, arguments);
964
+ }
965
+
966
+ function _mockExternalPositionAddDebtAssets() {
967
+ _mockExternalPositionAddDebtAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
968
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
969
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
970
+ while (1) {
971
+ switch (_context2.prev = _context2.next) {
972
+ case 0:
973
+ signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts;
974
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
975
+ amounts: amounts,
976
+ assets: assets
977
+ });
978
+ return _context2.abrupt("return", callOnExternalPosition({
979
+ actionArgs: actionArgs,
980
+ actionId: protocol.MockGenericExternalPositionActionId.AddDebtAssets,
981
+ comptrollerProxy: comptrollerProxy,
982
+ externalPositionManager: externalPositionManager,
983
+ externalPositionProxy: externalPositionProxy,
984
+ signer: signer
985
+ }));
986
+
987
+ case 3:
988
+ case "end":
989
+ return _context2.stop();
990
+ }
991
+ }
992
+ }, _callee2);
993
+ }));
994
+ return _mockExternalPositionAddDebtAssets.apply(this, arguments);
995
+ }
996
+
997
+ function mockExternalPositionAddManagedAssets(_x3) {
998
+ return _mockExternalPositionAddManagedAssets.apply(this, arguments);
999
+ }
1000
+
1001
+ function _mockExternalPositionAddManagedAssets() {
1002
+ _mockExternalPositionAddManagedAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
1003
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1004
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
1005
+ while (1) {
1006
+ switch (_context3.prev = _context3.next) {
1007
+ case 0:
1008
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, assets = _ref3.assets, amounts = _ref3.amounts;
1009
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
1010
+ amounts: amounts,
1011
+ assets: assets
1012
+ });
1013
+ return _context3.abrupt("return", callOnExternalPosition({
1014
+ actionArgs: actionArgs,
1015
+ actionId: protocol.MockGenericExternalPositionActionId.AddManagedAssets,
1016
+ comptrollerProxy: comptrollerProxy,
1017
+ externalPositionManager: externalPositionManager,
1018
+ externalPositionProxy: externalPositionProxy,
1019
+ signer: signer
1020
+ }));
1021
+
1022
+ case 3:
1023
+ case "end":
1024
+ return _context3.stop();
1025
+ }
1026
+ }
1027
+ }, _callee3);
1028
+ }));
1029
+ return _mockExternalPositionAddManagedAssets.apply(this, arguments);
1030
+ }
1031
+
1032
+ function mockExternalPositionRemoveDebtAssets(_x4) {
1033
+ return _mockExternalPositionRemoveDebtAssets.apply(this, arguments);
1034
+ }
1035
+
1036
+ function _mockExternalPositionRemoveDebtAssets() {
1037
+ _mockExternalPositionRemoveDebtAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
1038
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1039
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
1040
+ while (1) {
1041
+ switch (_context4.prev = _context4.next) {
1042
+ case 0:
1043
+ signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, assets = _ref4.assets, amounts = _ref4.amounts;
1044
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
1045
+ amounts: amounts,
1046
+ assets: assets
1047
+ });
1048
+ return _context4.abrupt("return", callOnExternalPosition({
1049
+ actionArgs: actionArgs,
1050
+ actionId: protocol.MockGenericExternalPositionActionId.RemoveDebtAssets,
1051
+ comptrollerProxy: comptrollerProxy,
1052
+ externalPositionManager: externalPositionManager,
1053
+ externalPositionProxy: externalPositionProxy,
1054
+ signer: signer
1055
+ }));
1056
+
1057
+ case 3:
1058
+ case "end":
1059
+ return _context4.stop();
1060
+ }
1061
+ }
1062
+ }, _callee4);
1063
+ }));
1064
+ return _mockExternalPositionRemoveDebtAssets.apply(this, arguments);
1065
+ }
1066
+
1067
+ function mockExternalPositionRemoveManagedAssets(_x5) {
1068
+ return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1069
+ }
1070
+
1071
+ function _mockExternalPositionRemoveManagedAssets() {
1072
+ _mockExternalPositionRemoveManagedAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(_ref5) {
1073
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1074
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
1075
+ while (1) {
1076
+ switch (_context5.prev = _context5.next) {
1077
+ case 0:
1078
+ signer = _ref5.signer, comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, externalPositionProxy = _ref5.externalPositionProxy, assets = _ref5.assets, amounts = _ref5.amounts;
1079
+ actionArgs = protocol.mockGenericExternalPositionActionArgs({
1080
+ amounts: amounts,
1081
+ assets: assets
1082
+ });
1083
+ return _context5.abrupt("return", callOnExternalPosition({
1084
+ actionArgs: actionArgs,
1085
+ actionId: protocol.MockGenericExternalPositionActionId.RemoveManagedAssets,
1086
+ comptrollerProxy: comptrollerProxy,
1087
+ externalPositionManager: externalPositionManager,
837
1088
  externalPositionProxy: externalPositionProxy,
1089
+ signer: signer
1090
+ }));
1091
+
1092
+ case 3:
1093
+ case "end":
1094
+ return _context5.stop();
1095
+ }
1096
+ }
1097
+ }, _callee5);
1098
+ }));
1099
+ return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1100
+ }
1101
+
1102
+ var _templateObject$3;
1103
+ exports.UniswapV3FeeAmount = void 0;
1104
+
1105
+ (function (UniswapV3FeeAmount) {
1106
+ UniswapV3FeeAmount[UniswapV3FeeAmount["LOW"] = 500] = "LOW";
1107
+ UniswapV3FeeAmount[UniswapV3FeeAmount["MEDIUM"] = 3000] = "MEDIUM";
1108
+ UniswapV3FeeAmount[UniswapV3FeeAmount["HIGH"] = 10000] = "HIGH";
1109
+ })(exports.UniswapV3FeeAmount || (exports.UniswapV3FeeAmount = {}));
1110
+
1111
+ var uniswapV3LiquidityPositionGetMinTick = function uniswapV3LiquidityPositionGetMinTick(tickSpacing) {
1112
+ return Math.ceil(-887272 / tickSpacing) * tickSpacing;
1113
+ };
1114
+ var uniswapV3LiquidityPositionGetMaxTick = function uniswapV3LiquidityPositionGetMaxTick(tickSpacing) {
1115
+ return Math.floor(887272 / tickSpacing) * tickSpacing;
1116
+ };
1117
+ 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"])));
1118
+ function createUniswapV3LiquidityPosition(_x) {
1119
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1120
+ }
1121
+
1122
+ function _createUniswapV3LiquidityPosition() {
1123
+ _createUniswapV3LiquidityPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
1124
+ var signer, comptrollerProxy, externalPositionManager, token0, token1, initArgs, receipt, vaultProxy, externalPositions, externalPositionProxyAddress;
1125
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
1126
+ while (1) {
1127
+ switch (_context.prev = _context.next) {
1128
+ case 0:
1129
+ signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, token0 = _ref.token0, token1 = _ref.token1;
1130
+ initArgs = protocol.uniswapV3LiquidityPositionInitArgs({
1131
+ token0: token0,
1132
+ token1: token1
1133
+ });
1134
+ _context.next = 4;
1135
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CreateExternalPosition, protocol.encodeArgs(['uint256', 'bytes'], [protocol.ExternalPositionType.UniswapV3LiquidityPosition, initArgs]));
1136
+
1137
+ case 4:
1138
+ receipt = _context.sent;
1139
+ _context.t0 = protocol.VaultLib;
1140
+ _context.next = 8;
1141
+ return comptrollerProxy.getVaultProxy();
1142
+
1143
+ case 8:
1144
+ _context.t1 = _context.sent;
1145
+ _context.t2 = signer;
1146
+ vaultProxy = new _context.t0(_context.t1, _context.t2);
1147
+ _context.next = 13;
1148
+ return vaultProxy.getActiveExternalPositions.call();
1149
+
1150
+ case 13:
1151
+ externalPositions = _context.sent;
1152
+ externalPositionProxyAddress = externalPositions[externalPositions.length - 1];
1153
+ return _context.abrupt("return", {
1154
+ externalPositionProxyAddress: externalPositionProxyAddress,
838
1155
  receipt: receipt
839
1156
  });
840
1157
 
841
- case 28:
1158
+ case 16:
1159
+ case "end":
1160
+ return _context.stop();
1161
+ }
1162
+ }
1163
+ }, _callee);
1164
+ }));
1165
+ return _createUniswapV3LiquidityPosition.apply(this, arguments);
1166
+ }
1167
+
1168
+ function uniswapV3LiquidityPositionAddLiquidity(_x2) {
1169
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1170
+ }
1171
+
1172
+ function _uniswapV3LiquidityPositionAddLiquidity() {
1173
+ _uniswapV3LiquidityPositionAddLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
1174
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, amount0Desired, amount1Desired, _ref2$amount0Min, amount0Min, _ref2$amount1Min, amount1Min, actionArgs, callArgs;
1175
+
1176
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
1177
+ while (1) {
1178
+ switch (_context2.prev = _context2.next) {
1179
+ case 0:
1180
+ 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;
1181
+ actionArgs = protocol.uniswapV3LiquidityPositionAddLiquidityArgs({
1182
+ amount0Desired: amount0Desired,
1183
+ amount0Min: amount0Min,
1184
+ amount1Desired: amount1Desired,
1185
+ amount1Min: amount1Min,
1186
+ nftId: nftId
1187
+ });
1188
+ callArgs = protocol.callOnExternalPositionArgs({
1189
+ actionArgs: actionArgs,
1190
+ actionId: protocol.UniswapV3LiquidityPositionActionId.AddLiquidity,
1191
+ externalPositionProxy: externalPositionProxy
1192
+ });
1193
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1194
+
1195
+ case 4:
1196
+ case "end":
1197
+ return _context2.stop();
1198
+ }
1199
+ }
1200
+ }, _callee2);
1201
+ }));
1202
+ return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1203
+ }
1204
+
1205
+ function uniswapV3LiquidityPositionCollect(_x3) {
1206
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1207
+ }
1208
+
1209
+ function _uniswapV3LiquidityPositionCollect() {
1210
+ _uniswapV3LiquidityPositionCollect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
1211
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, actionArgs, callArgs;
1212
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
1213
+ while (1) {
1214
+ switch (_context3.prev = _context3.next) {
1215
+ case 0:
1216
+ signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, nftId = _ref3.nftId;
1217
+ actionArgs = protocol.uniswapV3LiquidityPositionCollectArgs({
1218
+ nftId: nftId
1219
+ });
1220
+ callArgs = protocol.callOnExternalPositionArgs({
1221
+ actionArgs: actionArgs,
1222
+ actionId: protocol.UniswapV3LiquidityPositionActionId.Collect,
1223
+ externalPositionProxy: externalPositionProxy
1224
+ });
1225
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1226
+
1227
+ case 4:
1228
+ case "end":
1229
+ return _context3.stop();
1230
+ }
1231
+ }
1232
+ }, _callee3);
1233
+ }));
1234
+ return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1235
+ }
1236
+
1237
+ function uniswapV3LiquidityPositionMint(_x4) {
1238
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1239
+ }
1240
+
1241
+ function _uniswapV3LiquidityPositionMint() {
1242
+ _uniswapV3LiquidityPositionMint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
1243
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, fee, tickLower, tickUpper, amount0Desired, amount1Desired, _ref4$amount0Min, amount0Min, _ref4$amount1Min, amount1Min, actionArgs, callArgs, receipt, externalPosition, nftId;
1244
+
1245
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
1246
+ while (1) {
1247
+ switch (_context4.prev = _context4.next) {
1248
+ case 0:
1249
+ signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, fee = _ref4.fee, tickLower = _ref4.tickLower, tickUpper = _ref4.tickUpper, amount0Desired = _ref4.amount0Desired, amount1Desired = _ref4.amount1Desired, _ref4$amount0Min = _ref4.amount0Min, amount0Min = _ref4$amount0Min === void 0 ? 0 : _ref4$amount0Min, _ref4$amount1Min = _ref4.amount1Min, amount1Min = _ref4$amount1Min === void 0 ? 0 : _ref4$amount1Min;
1250
+ actionArgs = protocol.uniswapV3LiquidityPositionMintArgs({
1251
+ amount0Desired: amount0Desired,
1252
+ amount0Min: amount0Min,
1253
+ amount1Desired: amount1Desired,
1254
+ amount1Min: amount1Min,
1255
+ fee: fee,
1256
+ tickLower: tickLower,
1257
+ tickUpper: tickUpper
1258
+ });
1259
+ callArgs = protocol.callOnExternalPositionArgs({
1260
+ actionArgs: actionArgs,
1261
+ actionId: protocol.UniswapV3LiquidityPositionActionId.Mint,
1262
+ externalPositionProxy: externalPositionProxy
1263
+ });
1264
+ _context4.next = 5;
1265
+ return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
1266
+
1267
+ case 5:
1268
+ receipt = _context4.sent;
1269
+ externalPosition = new protocol.UniswapV3LiquidityPositionLib(externalPositionProxy, provider);
1270
+ nftId = ethers$1.extractEvent(receipt, externalPosition.abi.getEvent('NFTPositionAdded'))[0].args.tokenId;
1271
+ return _context4.abrupt("return", {
1272
+ nftId: nftId,
1273
+ receipt: receipt
1274
+ });
1275
+
1276
+ case 9:
1277
+ case "end":
1278
+ return _context4.stop();
1279
+ }
1280
+ }
1281
+ }, _callee4);
1282
+ }));
1283
+ return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1284
+ }
1285
+
1286
+ function uniswapV3LiquidityPositionPurge(_x5) {
1287
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1288
+ }
1289
+
1290
+ function _uniswapV3LiquidityPositionPurge() {
1291
+ _uniswapV3LiquidityPositionPurge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(_ref5) {
1292
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref5$amount0Min, amount0Min, _ref5$amount1Min, amount1Min, actionArgs, callArgs;
1293
+
1294
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
1295
+ while (1) {
1296
+ switch (_context5.prev = _context5.next) {
1297
+ case 0:
1298
+ 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;
1299
+ actionArgs = protocol.uniswapV3LiquidityPositionPurgeArgs({
1300
+ amount0Min: amount0Min,
1301
+ amount1Min: amount1Min,
1302
+ liquidity: liquidity,
1303
+ nftId: nftId
1304
+ });
1305
+ callArgs = protocol.callOnExternalPositionArgs({
1306
+ actionArgs: actionArgs,
1307
+ actionId: protocol.UniswapV3LiquidityPositionActionId.Purge,
1308
+ externalPositionProxy: externalPositionProxy
1309
+ });
1310
+ return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1311
+
1312
+ case 4:
1313
+ case "end":
1314
+ return _context5.stop();
1315
+ }
1316
+ }
1317
+ }, _callee5);
1318
+ }));
1319
+ return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1320
+ }
1321
+
1322
+ function uniswapV3LiquidityPositionRemoveLiquidity(_x6) {
1323
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1324
+ }
1325
+
1326
+ function _uniswapV3LiquidityPositionRemoveLiquidity() {
1327
+ _uniswapV3LiquidityPositionRemoveLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee6(_ref6) {
1328
+ var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref6$amount0Min, amount0Min, _ref6$amount1Min, amount1Min, actionArgs, callArgs;
1329
+
1330
+ return _regeneratorRuntime__default['default'].wrap(function _callee6$(_context6) {
1331
+ while (1) {
1332
+ switch (_context6.prev = _context6.next) {
1333
+ case 0:
1334
+ 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;
1335
+ actionArgs = protocol.uniswapV3LiquidityPositionRemoveLiquidityArgs({
1336
+ amount0Min: amount0Min,
1337
+ amount1Min: amount1Min,
1338
+ liquidity: liquidity,
1339
+ nftId: nftId
1340
+ });
1341
+ callArgs = protocol.callOnExternalPositionArgs({
1342
+ actionArgs: actionArgs,
1343
+ actionId: protocol.UniswapV3LiquidityPositionActionId.RemoveLiquidity,
1344
+ externalPositionProxy: externalPositionProxy
1345
+ });
1346
+ return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, protocol.ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1347
+
1348
+ case 4:
842
1349
  case "end":
843
- return _context.stop();
1350
+ return _context6.stop();
844
1351
  }
845
1352
  }
846
- }, _callee);
1353
+ }, _callee6);
847
1354
  }));
848
- return _createMockExternalPosition.apply(this, arguments);
1355
+ return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1356
+ }
1357
+
1358
+ function uniswapV3OrderTokenPair(_ref7) {
1359
+ var tokenA = _ref7.tokenA,
1360
+ tokenB = _ref7.tokenB;
1361
+ var tokenAAddress = ethers$1.resolveAddress(tokenA);
1362
+ var tokenBAddress = ethers$1.resolveAddress(tokenB);
1363
+ return tokenAAddress < tokenBAddress ? {
1364
+ token0: tokenAAddress,
1365
+ token1: tokenBAddress
1366
+ } : {
1367
+ token0: tokenBAddress,
1368
+ token1: tokenAAddress
1369
+ };
849
1370
  }
850
1371
 
851
1372
  function generateFeeManagerConfigWithMockFees(_x) {
@@ -868,7 +1389,7 @@ function _generateFeeManagerConfigWithMockFees() {
868
1389
  case 3:
869
1390
  fees = _context.sent;
870
1391
  feeManagerSettingsData = [ethers.utils.randomBytes(10), '0x', ethers.utils.randomBytes(2)];
871
- return _context.abrupt("return", protocol$1.feeManagerConfigArgs({
1392
+ return _context.abrupt("return", protocol.feeManagerConfigArgs({
872
1393
  fees: Object.values(fees),
873
1394
  settings: feeManagerSettingsData
874
1395
  }));
@@ -896,25 +1417,25 @@ function _generateMockFees() {
896
1417
  case 0:
897
1418
  deployer = _ref2.deployer;
898
1419
  _context2.next = 3;
899
- return protocol$1.IFee.mock(deployer);
1420
+ return protocol.IFee.mock(deployer);
900
1421
 
901
1422
  case 3:
902
1423
  mockContinuousFeeSettleOnly = _context2.sent;
903
1424
  _context2.next = 6;
904
- return protocol$1.IFee.mock(deployer);
1425
+ return protocol.IFee.mock(deployer);
905
1426
 
906
1427
  case 6:
907
1428
  mockContinuousFeeWithGavAndUpdates = _context2.sent;
908
1429
  _context2.next = 9;
909
- return protocol$1.IFee.mock(deployer);
1430
+ return protocol.IFee.mock(deployer);
910
1431
 
911
1432
  case 9:
912
1433
  mockPostBuySharesFee = _context2.sent;
913
1434
  _context2.next = 12;
914
1435
  return Promise.all([// Continuous fee the mimics ManagementFee
915
- mockContinuousFeeSettleOnly.getRecipientForFund.returns(ethers.constants.AddressZero), mockContinuousFeeSettleOnly.settle.returns(protocol$1.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$1.FeeHook.Continuous).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(protocol$1.FeeHook.PreBuyShares).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(protocol$1.FeeHook.PreRedeemShares).returns(true, false), mockContinuousFeeSettleOnly.updatesOnHook.returns(false, false), // Continuous fee the mimics PerformanceFee
916
- mockContinuousFeeWithGavAndUpdates.getRecipientForFund.returns(ethers.constants.AddressZero), mockContinuousFeeWithGavAndUpdates.settle.returns(protocol$1.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$1.FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(protocol$1.FeeHook.PreBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(protocol$1.FeeHook.PreRedeemShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol$1.FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol$1.FeeHook.PostBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(protocol$1.FeeHook.PreRedeemShares).returns(true, true), // PostBuyShares fee
917
- mockPostBuySharesFee.getRecipientForFund.returns(ethers.constants.AddressZero), mockPostBuySharesFee.settle.returns(protocol$1.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$1.FeeHook.PostBuyShares).returns(true, false), mockPostBuySharesFee.updatesOnHook.returns(false, false)]);
1436
+ 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
1437
+ 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
1438
+ 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)]);
918
1439
 
919
1440
  case 12:
920
1441
  return _context2.abrupt("return", {
@@ -946,16 +1467,16 @@ function _aaveLend() {
946
1467
  switch (_context.prev = _context.next) {
947
1468
  case 0:
948
1469
  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;
949
- lendArgs = protocol$1.aaveLendArgs({
1470
+ lendArgs = protocol.aaveLendArgs({
950
1471
  aToken: aToken,
951
1472
  amount: amount
952
1473
  });
953
- callArgs = protocol$1.callOnIntegrationArgs({
1474
+ callArgs = protocol.callOnIntegrationArgs({
954
1475
  adapter: aaveAdapter,
955
- selector: protocol$1.lendSelector,
956
- encodedCallArgs: lendArgs
1476
+ encodedCallArgs: lendArgs,
1477
+ selector: protocol.lendSelector
957
1478
  });
958
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1479
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
959
1480
  return _context.abrupt("return", lendTx);
960
1481
 
961
1482
  case 5:
@@ -981,16 +1502,16 @@ function _aaveRedeem() {
981
1502
  switch (_context2.prev = _context2.next) {
982
1503
  case 0:
983
1504
  comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, aaveAdapter = _ref2.aaveAdapter, aToken = _ref2.aToken, _ref2$amount = _ref2.amount, amount = _ref2$amount === void 0 ? ethers.utils.parseEther('1') : _ref2$amount;
984
- redeemArgs = protocol$1.aaveRedeemArgs({
1505
+ redeemArgs = protocol.aaveRedeemArgs({
985
1506
  aToken: aToken,
986
1507
  amount: amount
987
1508
  });
988
- callArgs = protocol$1.callOnIntegrationArgs({
1509
+ callArgs = protocol.callOnIntegrationArgs({
989
1510
  adapter: aaveAdapter,
990
- selector: protocol$1.redeemSelector,
991
- encodedCallArgs: redeemArgs
1511
+ encodedCallArgs: redeemArgs,
1512
+ selector: protocol.redeemSelector
992
1513
  });
993
- redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1514
+ redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
994
1515
  return _context2.abrupt("return", redeemTx);
995
1516
 
996
1517
  case 5:
@@ -1018,17 +1539,17 @@ function _compoundLend() {
1018
1539
  switch (_context.prev = _context.next) {
1019
1540
  case 0:
1020
1541
  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;
1021
- lendArgs = protocol$1.compoundArgs({
1542
+ lendArgs = protocol.compoundArgs({
1022
1543
  cToken: cToken,
1023
- outgoingAssetAmount: tokenAmount,
1024
- minIncomingAssetAmount: cTokenAmount
1544
+ minIncomingAssetAmount: cTokenAmount,
1545
+ outgoingAssetAmount: tokenAmount
1025
1546
  });
1026
- callArgs = protocol$1.callOnIntegrationArgs({
1547
+ callArgs = protocol.callOnIntegrationArgs({
1027
1548
  adapter: compoundAdapter,
1028
- selector: protocol$1.lendSelector,
1029
- encodedCallArgs: lendArgs
1549
+ encodedCallArgs: lendArgs,
1550
+ selector: protocol.lendSelector
1030
1551
  });
1031
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1552
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1032
1553
  return _context.abrupt("return", lendTx);
1033
1554
 
1034
1555
  case 5:
@@ -1054,17 +1575,17 @@ function _compoundRedeem() {
1054
1575
  switch (_context2.prev = _context2.next) {
1055
1576
  case 0:
1056
1577
  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;
1057
- redeemArgs = protocol$1.compoundArgs({
1578
+ redeemArgs = protocol.compoundArgs({
1058
1579
  cToken: ethers$1.resolveAddress(cToken),
1059
- outgoingAssetAmount: cTokenAmount,
1060
- minIncomingAssetAmount: tokenAmount
1580
+ minIncomingAssetAmount: tokenAmount,
1581
+ outgoingAssetAmount: cTokenAmount
1061
1582
  });
1062
- callArgs = protocol$1.callOnIntegrationArgs({
1583
+ callArgs = protocol.callOnIntegrationArgs({
1063
1584
  adapter: compoundAdapter,
1064
- selector: protocol$1.redeemSelector,
1065
- encodedCallArgs: redeemArgs
1585
+ encodedCallArgs: redeemArgs,
1586
+ selector: protocol.redeemSelector
1066
1587
  });
1067
- redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1588
+ redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1068
1589
  return _context2.abrupt("return", redeemTx);
1069
1590
 
1070
1591
  case 5:
@@ -1096,19 +1617,19 @@ function _curveTakeOrder() {
1096
1617
  switch (_context.prev = _context.next) {
1097
1618
  case 0:
1098
1619
  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;
1099
- takeOrderArgs = protocol$1.curveTakeOrderArgs({
1100
- pool: pool,
1620
+ takeOrderArgs = protocol.curveTakeOrderArgs({
1621
+ incomingAsset: incomingAsset,
1622
+ minIncomingAssetAmount: minIncomingAssetAmount,
1101
1623
  outgoingAsset: outgoingAsset,
1102
1624
  outgoingAssetAmount: outgoingAssetAmount,
1103
- incomingAsset: incomingAsset,
1104
- minIncomingAssetAmount: minIncomingAssetAmount
1625
+ pool: pool
1105
1626
  });
1106
- callArgs = protocol$1.callOnIntegrationArgs({
1627
+ callArgs = protocol.callOnIntegrationArgs({
1107
1628
  adapter: curveExchangeAdapter,
1108
- selector: protocol$1.takeOrderSelector,
1109
- encodedCallArgs: takeOrderArgs
1629
+ encodedCallArgs: takeOrderArgs,
1630
+ selector: protocol.takeOrderSelector
1110
1631
  });
1111
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
1632
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1112
1633
 
1113
1634
  case 4:
1114
1635
  case "end":
@@ -1125,12 +1646,12 @@ function curveAaveClaimRewards(_ref2) {
1125
1646
  integrationManager = _ref2.integrationManager,
1126
1647
  fundOwner = _ref2.fundOwner,
1127
1648
  curveLiquidityAaveAdapter = _ref2.curveLiquidityAaveAdapter;
1128
- var callArgs = protocol$1.callOnIntegrationArgs({
1649
+ var callArgs = protocol.callOnIntegrationArgs({
1129
1650
  adapter: curveLiquidityAaveAdapter,
1130
- selector: protocol$1.claimRewardsSelector,
1131
- encodedCallArgs: ethers.constants.HashZero
1651
+ encodedCallArgs: ethers.constants.HashZero,
1652
+ selector: protocol.claimRewardsSelector
1132
1653
  });
1133
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1654
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1134
1655
  }
1135
1656
  function curveAaveLend(_ref3) {
1136
1657
  var comptrollerProxy = _ref3.comptrollerProxy,
@@ -1147,18 +1668,18 @@ function curveAaveLend(_ref3) {
1147
1668
  minIncomingLPTokenAmount = _ref3$minIncomingLPTo === void 0 ? ethers.BigNumber.from(1) : _ref3$minIncomingLPTo,
1148
1669
  _ref3$useUnderlyings = _ref3.useUnderlyings,
1149
1670
  useUnderlyings = _ref3$useUnderlyings === void 0 ? false : _ref3$useUnderlyings;
1150
- var callArgs = protocol$1.callOnIntegrationArgs({
1671
+ var callArgs = protocol.callOnIntegrationArgs({
1151
1672
  adapter: curveLiquidityAaveAdapter,
1152
- selector: protocol$1.lendSelector,
1153
- encodedCallArgs: protocol$1.curveAaveLendArgs({
1673
+ encodedCallArgs: protocol.curveAaveLendArgs({
1674
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1154
1675
  outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1155
1676
  outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1156
1677
  outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1157
- minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1158
1678
  useUnderlyings: useUnderlyings
1159
- })
1679
+ }),
1680
+ selector: protocol.lendSelector
1160
1681
  });
1161
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1682
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1162
1683
  }
1163
1684
  function curveAaveLendAndStake(_ref4) {
1164
1685
  var comptrollerProxy = _ref4.comptrollerProxy,
@@ -1175,18 +1696,18 @@ function curveAaveLendAndStake(_ref4) {
1175
1696
  minIncomingLiquidityGaugeTokenAmount = _ref4$minIncomingLiqu === void 0 ? ethers.BigNumber.from(1) : _ref4$minIncomingLiqu,
1176
1697
  _ref4$useUnderlyings = _ref4.useUnderlyings,
1177
1698
  useUnderlyings = _ref4$useUnderlyings === void 0 ? false : _ref4$useUnderlyings;
1178
- var callArgs = protocol$1.callOnIntegrationArgs({
1699
+ var callArgs = protocol.callOnIntegrationArgs({
1179
1700
  adapter: curveLiquidityAaveAdapter,
1180
- selector: protocol$1.lendAndStakeSelector,
1181
- encodedCallArgs: protocol$1.curveAaveLendAndStakeArgs({
1701
+ encodedCallArgs: protocol.curveAaveLendAndStakeArgs({
1702
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1182
1703
  outgoingAaveDaiAmount: outgoingAaveDaiAmount,
1183
1704
  outgoingAaveUsdcAmount: outgoingAaveUsdcAmount,
1184
1705
  outgoingAaveUsdtAmount: outgoingAaveUsdtAmount,
1185
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1186
1706
  useUnderlyings: useUnderlyings
1187
- })
1707
+ }),
1708
+ selector: protocol.lendAndStakeSelector
1188
1709
  });
1189
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1710
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1190
1711
  }
1191
1712
  function curveAaveRedeem(_ref5) {
1192
1713
  var comptrollerProxy = _ref5.comptrollerProxy,
@@ -1204,19 +1725,19 @@ function curveAaveRedeem(_ref5) {
1204
1725
  receiveSingleAsset = _ref5$receiveSingleAs === void 0 ? false : _ref5$receiveSingleAs,
1205
1726
  _ref5$useUnderlyings = _ref5.useUnderlyings,
1206
1727
  useUnderlyings = _ref5$useUnderlyings === void 0 ? false : _ref5$useUnderlyings;
1207
- var callArgs = protocol$1.callOnIntegrationArgs({
1728
+ var callArgs = protocol.callOnIntegrationArgs({
1208
1729
  adapter: curveLiquidityAaveAdapter,
1209
- selector: protocol$1.redeemSelector,
1210
- encodedCallArgs: protocol$1.curveAaveRedeemArgs({
1211
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1730
+ encodedCallArgs: protocol.curveAaveRedeemArgs({
1212
1731
  minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1213
1732
  minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1214
1733
  minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1734
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1215
1735
  receiveSingleAsset: receiveSingleAsset,
1216
1736
  useUnderlyings: useUnderlyings
1217
- })
1737
+ }),
1738
+ selector: protocol.redeemSelector
1218
1739
  });
1219
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1740
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1220
1741
  }
1221
1742
  function curveAaveStake(_ref6) {
1222
1743
  var comptrollerProxy = _ref6.comptrollerProxy,
@@ -1224,14 +1745,14 @@ function curveAaveStake(_ref6) {
1224
1745
  fundOwner = _ref6.fundOwner,
1225
1746
  curveLiquidityAaveAdapter = _ref6.curveLiquidityAaveAdapter,
1226
1747
  outgoingLPTokenAmount = _ref6.outgoingLPTokenAmount;
1227
- var callArgs = protocol$1.callOnIntegrationArgs({
1748
+ var callArgs = protocol.callOnIntegrationArgs({
1228
1749
  adapter: curveLiquidityAaveAdapter,
1229
- selector: protocol$1.stakeSelector,
1230
- encodedCallArgs: protocol$1.curveAaveStakeArgs({
1750
+ encodedCallArgs: protocol.curveAaveStakeArgs({
1231
1751
  outgoingLPTokenAmount: outgoingLPTokenAmount
1232
- })
1752
+ }),
1753
+ selector: protocol.stakeSelector
1233
1754
  });
1234
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1755
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1235
1756
  }
1236
1757
  function curveAaveUnstakeAndRedeem(_ref7) {
1237
1758
  var comptrollerProxy = _ref7.comptrollerProxy,
@@ -1249,19 +1770,19 @@ function curveAaveUnstakeAndRedeem(_ref7) {
1249
1770
  receiveSingleAsset = _ref7$receiveSingleAs === void 0 ? false : _ref7$receiveSingleAs,
1250
1771
  _ref7$useUnderlyings = _ref7.useUnderlyings,
1251
1772
  useUnderlyings = _ref7$useUnderlyings === void 0 ? false : _ref7$useUnderlyings;
1252
- var callArgs = protocol$1.callOnIntegrationArgs({
1773
+ var callArgs = protocol.callOnIntegrationArgs({
1253
1774
  adapter: curveLiquidityAaveAdapter,
1254
- selector: protocol$1.unstakeAndRedeemSelector,
1255
- encodedCallArgs: protocol$1.curveAaveUnstakeAndRedeemArgs({
1256
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1775
+ encodedCallArgs: protocol.curveAaveUnstakeAndRedeemArgs({
1257
1776
  minIncomingAaveDaiAmount: minIncomingAaveDaiAmount,
1258
1777
  minIncomingAaveUsdcAmount: minIncomingAaveUsdcAmount,
1259
1778
  minIncomingAaveUsdtAmount: minIncomingAaveUsdtAmount,
1779
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1260
1780
  receiveSingleAsset: receiveSingleAsset,
1261
1781
  useUnderlyings: useUnderlyings
1262
- })
1782
+ }),
1783
+ selector: protocol.unstakeAndRedeemSelector
1263
1784
  });
1264
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1785
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1265
1786
  }
1266
1787
  function curveAaveUnstake(_ref8) {
1267
1788
  var comptrollerProxy = _ref8.comptrollerProxy,
@@ -1269,14 +1790,14 @@ function curveAaveUnstake(_ref8) {
1269
1790
  fundOwner = _ref8.fundOwner,
1270
1791
  curveLiquidityAaveAdapter = _ref8.curveLiquidityAaveAdapter,
1271
1792
  outgoingLiquidityGaugeTokenAmount = _ref8.outgoingLiquidityGaugeTokenAmount;
1272
- var callArgs = protocol$1.callOnIntegrationArgs({
1793
+ var callArgs = protocol.callOnIntegrationArgs({
1273
1794
  adapter: curveLiquidityAaveAdapter,
1274
- selector: protocol$1.unstakeSelector,
1275
- encodedCallArgs: protocol$1.curveAaveUnstakeArgs({
1795
+ encodedCallArgs: protocol.curveAaveUnstakeArgs({
1276
1796
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1277
- })
1797
+ }),
1798
+ selector: protocol.unstakeSelector
1278
1799
  });
1279
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1800
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1280
1801
  } // eurs pool
1281
1802
 
1282
1803
  function curveEursClaimRewards(_ref9) {
@@ -1284,12 +1805,12 @@ function curveEursClaimRewards(_ref9) {
1284
1805
  integrationManager = _ref9.integrationManager,
1285
1806
  fundOwner = _ref9.fundOwner,
1286
1807
  curveLiquidityEursAdapter = _ref9.curveLiquidityEursAdapter;
1287
- var callArgs = protocol$1.callOnIntegrationArgs({
1808
+ var callArgs = protocol.callOnIntegrationArgs({
1288
1809
  adapter: curveLiquidityEursAdapter,
1289
- selector: protocol$1.claimRewardsSelector,
1290
- encodedCallArgs: ethers.constants.HashZero
1810
+ encodedCallArgs: ethers.constants.HashZero,
1811
+ selector: protocol.claimRewardsSelector
1291
1812
  });
1292
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1813
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1293
1814
  }
1294
1815
  function curveEursLend(_ref10) {
1295
1816
  var comptrollerProxy = _ref10.comptrollerProxy,
@@ -1299,16 +1820,16 @@ function curveEursLend(_ref10) {
1299
1820
  outgoingEursAmount = _ref10.outgoingEursAmount,
1300
1821
  outgoingSeurAmount = _ref10.outgoingSeurAmount,
1301
1822
  minIncomingLPTokenAmount = _ref10.minIncomingLPTokenAmount;
1302
- var callArgs = protocol$1.callOnIntegrationArgs({
1823
+ var callArgs = protocol.callOnIntegrationArgs({
1303
1824
  adapter: curveLiquidityEursAdapter,
1304
- selector: protocol$1.lendSelector,
1305
- encodedCallArgs: protocol$1.curveEursLendArgs({
1825
+ encodedCallArgs: protocol.curveEursLendArgs({
1826
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1306
1827
  outgoingEursAmount: outgoingEursAmount,
1307
- outgoingSeurAmount: outgoingSeurAmount,
1308
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1309
- })
1828
+ outgoingSeurAmount: outgoingSeurAmount
1829
+ }),
1830
+ selector: protocol.lendSelector
1310
1831
  });
1311
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1832
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1312
1833
  }
1313
1834
  function curveEursLendAndStake(_ref11) {
1314
1835
  var comptrollerProxy = _ref11.comptrollerProxy,
@@ -1318,16 +1839,16 @@ function curveEursLendAndStake(_ref11) {
1318
1839
  outgoingEursAmount = _ref11.outgoingEursAmount,
1319
1840
  outgoingSeurAmount = _ref11.outgoingSeurAmount,
1320
1841
  minIncomingLiquidityGaugeTokenAmount = _ref11.minIncomingLiquidityGaugeTokenAmount;
1321
- var callArgs = protocol$1.callOnIntegrationArgs({
1842
+ var callArgs = protocol.callOnIntegrationArgs({
1322
1843
  adapter: curveLiquidityEursAdapter,
1323
- selector: protocol$1.lendAndStakeSelector,
1324
- encodedCallArgs: protocol$1.curveEursLendAndStakeArgs({
1844
+ encodedCallArgs: protocol.curveEursLendAndStakeArgs({
1845
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1325
1846
  outgoingEursAmount: outgoingEursAmount,
1326
- outgoingSeurAmount: outgoingSeurAmount,
1327
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1328
- })
1847
+ outgoingSeurAmount: outgoingSeurAmount
1848
+ }),
1849
+ selector: protocol.lendAndStakeSelector
1329
1850
  });
1330
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1851
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1331
1852
  }
1332
1853
  function curveEursRedeem(_ref12) {
1333
1854
  var comptrollerProxy = _ref12.comptrollerProxy,
@@ -1338,17 +1859,17 @@ function curveEursRedeem(_ref12) {
1338
1859
  minIncomingEursAmount = _ref12.minIncomingEursAmount,
1339
1860
  minIncomingSeurAmount = _ref12.minIncomingSeurAmount,
1340
1861
  receiveSingleAsset = _ref12.receiveSingleAsset;
1341
- var callArgs = protocol$1.callOnIntegrationArgs({
1862
+ var callArgs = protocol.callOnIntegrationArgs({
1342
1863
  adapter: curveLiquidityEursAdapter,
1343
- selector: protocol$1.redeemSelector,
1344
- encodedCallArgs: protocol$1.curveEursRedeemArgs({
1345
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1864
+ encodedCallArgs: protocol.curveEursRedeemArgs({
1346
1865
  minIncomingEursAmount: minIncomingEursAmount,
1347
1866
  minIncomingSeurAmount: minIncomingSeurAmount,
1867
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1348
1868
  receiveSingleAsset: receiveSingleAsset
1349
- })
1869
+ }),
1870
+ selector: protocol.redeemSelector
1350
1871
  });
1351
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1872
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1352
1873
  }
1353
1874
  function curveEursStake(_ref13) {
1354
1875
  var comptrollerProxy = _ref13.comptrollerProxy,
@@ -1356,14 +1877,14 @@ function curveEursStake(_ref13) {
1356
1877
  fundOwner = _ref13.fundOwner,
1357
1878
  curveLiquidityEursAdapter = _ref13.curveLiquidityEursAdapter,
1358
1879
  outgoingLPTokenAmount = _ref13.outgoingLPTokenAmount;
1359
- var callArgs = protocol$1.callOnIntegrationArgs({
1880
+ var callArgs = protocol.callOnIntegrationArgs({
1360
1881
  adapter: curveLiquidityEursAdapter,
1361
- selector: protocol$1.stakeSelector,
1362
- encodedCallArgs: protocol$1.curveEursStakeArgs({
1882
+ encodedCallArgs: protocol.curveEursStakeArgs({
1363
1883
  outgoingLPTokenAmount: outgoingLPTokenAmount
1364
- })
1884
+ }),
1885
+ selector: protocol.stakeSelector
1365
1886
  });
1366
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1887
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1367
1888
  }
1368
1889
  function curveEursUnstakeAndRedeem(_ref14) {
1369
1890
  var comptrollerProxy = _ref14.comptrollerProxy,
@@ -1374,17 +1895,17 @@ function curveEursUnstakeAndRedeem(_ref14) {
1374
1895
  minIncomingEursAmount = _ref14.minIncomingEursAmount,
1375
1896
  minIncomingSeurAmount = _ref14.minIncomingSeurAmount,
1376
1897
  receiveSingleAsset = _ref14.receiveSingleAsset;
1377
- var callArgs = protocol$1.callOnIntegrationArgs({
1898
+ var callArgs = protocol.callOnIntegrationArgs({
1378
1899
  adapter: curveLiquidityEursAdapter,
1379
- selector: protocol$1.unstakeAndRedeemSelector,
1380
- encodedCallArgs: protocol$1.curveEursUnstakeAndRedeemArgs({
1381
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1900
+ encodedCallArgs: protocol.curveEursUnstakeAndRedeemArgs({
1382
1901
  minIncomingEursAmount: minIncomingEursAmount,
1383
1902
  minIncomingSeurAmount: minIncomingSeurAmount,
1903
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1384
1904
  receiveSingleAsset: receiveSingleAsset
1385
- })
1905
+ }),
1906
+ selector: protocol.unstakeAndRedeemSelector
1386
1907
  });
1387
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1908
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1388
1909
  }
1389
1910
  function curveEursUnstake(_ref15) {
1390
1911
  var comptrollerProxy = _ref15.comptrollerProxy,
@@ -1392,14 +1913,14 @@ function curveEursUnstake(_ref15) {
1392
1913
  fundOwner = _ref15.fundOwner,
1393
1914
  curveLiquidityEursAdapter = _ref15.curveLiquidityEursAdapter,
1394
1915
  outgoingLiquidityGaugeTokenAmount = _ref15.outgoingLiquidityGaugeTokenAmount;
1395
- var callArgs = protocol$1.callOnIntegrationArgs({
1916
+ var callArgs = protocol.callOnIntegrationArgs({
1396
1917
  adapter: curveLiquidityEursAdapter,
1397
- selector: protocol$1.unstakeSelector,
1398
- encodedCallArgs: protocol$1.curveEursUnstakeArgs({
1918
+ encodedCallArgs: protocol.curveEursUnstakeArgs({
1399
1919
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1400
- })
1920
+ }),
1921
+ selector: protocol.unstakeSelector
1401
1922
  });
1402
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1923
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1403
1924
  } // sETH pool
1404
1925
 
1405
1926
  function curveSethClaimRewards(_ref16) {
@@ -1407,12 +1928,12 @@ function curveSethClaimRewards(_ref16) {
1407
1928
  integrationManager = _ref16.integrationManager,
1408
1929
  fundOwner = _ref16.fundOwner,
1409
1930
  curveLiquiditySethAdapter = _ref16.curveLiquiditySethAdapter;
1410
- var callArgs = protocol$1.callOnIntegrationArgs({
1931
+ var callArgs = protocol.callOnIntegrationArgs({
1411
1932
  adapter: curveLiquiditySethAdapter,
1412
- selector: protocol$1.claimRewardsSelector,
1413
- encodedCallArgs: ethers.constants.HashZero
1933
+ encodedCallArgs: ethers.constants.HashZero,
1934
+ selector: protocol.claimRewardsSelector
1414
1935
  });
1415
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1936
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1416
1937
  }
1417
1938
  function curveSethLend(_ref17) {
1418
1939
  var comptrollerProxy = _ref17.comptrollerProxy,
@@ -1422,16 +1943,16 @@ function curveSethLend(_ref17) {
1422
1943
  outgoingWethAmount = _ref17.outgoingWethAmount,
1423
1944
  outgoingSethAmount = _ref17.outgoingSethAmount,
1424
1945
  minIncomingLPTokenAmount = _ref17.minIncomingLPTokenAmount;
1425
- var callArgs = protocol$1.callOnIntegrationArgs({
1946
+ var callArgs = protocol.callOnIntegrationArgs({
1426
1947
  adapter: curveLiquiditySethAdapter,
1427
- selector: protocol$1.lendSelector,
1428
- encodedCallArgs: protocol$1.curveSethLendArgs({
1429
- outgoingWethAmount: outgoingWethAmount,
1948
+ encodedCallArgs: protocol.curveSethLendArgs({
1949
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1430
1950
  outgoingSethAmount: outgoingSethAmount,
1431
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1432
- })
1951
+ outgoingWethAmount: outgoingWethAmount
1952
+ }),
1953
+ selector: protocol.lendSelector
1433
1954
  });
1434
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1955
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1435
1956
  }
1436
1957
  function curveSethLendAndStake(_ref18) {
1437
1958
  var comptrollerProxy = _ref18.comptrollerProxy,
@@ -1441,16 +1962,16 @@ function curveSethLendAndStake(_ref18) {
1441
1962
  outgoingWethAmount = _ref18.outgoingWethAmount,
1442
1963
  outgoingSethAmount = _ref18.outgoingSethAmount,
1443
1964
  minIncomingLiquidityGaugeTokenAmount = _ref18.minIncomingLiquidityGaugeTokenAmount;
1444
- var callArgs = protocol$1.callOnIntegrationArgs({
1965
+ var callArgs = protocol.callOnIntegrationArgs({
1445
1966
  adapter: curveLiquiditySethAdapter,
1446
- selector: protocol$1.lendAndStakeSelector,
1447
- encodedCallArgs: protocol$1.curveSethLendAndStakeArgs({
1448
- outgoingWethAmount: outgoingWethAmount,
1967
+ encodedCallArgs: protocol.curveSethLendAndStakeArgs({
1968
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1449
1969
  outgoingSethAmount: outgoingSethAmount,
1450
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1451
- })
1970
+ outgoingWethAmount: outgoingWethAmount
1971
+ }),
1972
+ selector: protocol.lendAndStakeSelector
1452
1973
  });
1453
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1974
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1454
1975
  }
1455
1976
  function curveSethRedeem(_ref19) {
1456
1977
  var comptrollerProxy = _ref19.comptrollerProxy,
@@ -1461,17 +1982,17 @@ function curveSethRedeem(_ref19) {
1461
1982
  minIncomingWethAmount = _ref19.minIncomingWethAmount,
1462
1983
  minIncomingSethAmount = _ref19.minIncomingSethAmount,
1463
1984
  receiveSingleAsset = _ref19.receiveSingleAsset;
1464
- var callArgs = protocol$1.callOnIntegrationArgs({
1985
+ var callArgs = protocol.callOnIntegrationArgs({
1465
1986
  adapter: curveLiquiditySethAdapter,
1466
- selector: protocol$1.redeemSelector,
1467
- encodedCallArgs: protocol$1.curveSethRedeemArgs({
1468
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1469
- minIncomingWethAmount: minIncomingWethAmount,
1987
+ encodedCallArgs: protocol.curveSethRedeemArgs({
1470
1988
  minIncomingSethAmount: minIncomingSethAmount,
1989
+ minIncomingWethAmount: minIncomingWethAmount,
1990
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1471
1991
  receiveSingleAsset: receiveSingleAsset
1472
- })
1992
+ }),
1993
+ selector: protocol.redeemSelector
1473
1994
  });
1474
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
1995
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1475
1996
  }
1476
1997
  function curveSethStake(_ref20) {
1477
1998
  var comptrollerProxy = _ref20.comptrollerProxy,
@@ -1479,14 +2000,14 @@ function curveSethStake(_ref20) {
1479
2000
  fundOwner = _ref20.fundOwner,
1480
2001
  curveLiquiditySethAdapter = _ref20.curveLiquiditySethAdapter,
1481
2002
  outgoingLPTokenAmount = _ref20.outgoingLPTokenAmount;
1482
- var callArgs = protocol$1.callOnIntegrationArgs({
2003
+ var callArgs = protocol.callOnIntegrationArgs({
1483
2004
  adapter: curveLiquiditySethAdapter,
1484
- selector: protocol$1.stakeSelector,
1485
- encodedCallArgs: protocol$1.curveSethStakeArgs({
2005
+ encodedCallArgs: protocol.curveSethStakeArgs({
1486
2006
  outgoingLPTokenAmount: outgoingLPTokenAmount
1487
- })
2007
+ }),
2008
+ selector: protocol.stakeSelector
1488
2009
  });
1489
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2010
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1490
2011
  }
1491
2012
  function curveSethUnstakeAndRedeem(_ref21) {
1492
2013
  var comptrollerProxy = _ref21.comptrollerProxy,
@@ -1497,17 +2018,17 @@ function curveSethUnstakeAndRedeem(_ref21) {
1497
2018
  minIncomingWethAmount = _ref21.minIncomingWethAmount,
1498
2019
  minIncomingSethAmount = _ref21.minIncomingSethAmount,
1499
2020
  receiveSingleAsset = _ref21.receiveSingleAsset;
1500
- var callArgs = protocol$1.callOnIntegrationArgs({
2021
+ var callArgs = protocol.callOnIntegrationArgs({
1501
2022
  adapter: curveLiquiditySethAdapter,
1502
- selector: protocol$1.unstakeAndRedeemSelector,
1503
- encodedCallArgs: protocol$1.curveSethUnstakeAndRedeemArgs({
1504
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1505
- minIncomingWethAmount: minIncomingWethAmount,
2023
+ encodedCallArgs: protocol.curveSethUnstakeAndRedeemArgs({
1506
2024
  minIncomingSethAmount: minIncomingSethAmount,
2025
+ minIncomingWethAmount: minIncomingWethAmount,
2026
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1507
2027
  receiveSingleAsset: receiveSingleAsset
1508
- })
2028
+ }),
2029
+ selector: protocol.unstakeAndRedeemSelector
1509
2030
  });
1510
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2031
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1511
2032
  }
1512
2033
  function curveSethUnstake(_ref22) {
1513
2034
  var comptrollerProxy = _ref22.comptrollerProxy,
@@ -1515,14 +2036,14 @@ function curveSethUnstake(_ref22) {
1515
2036
  fundOwner = _ref22.fundOwner,
1516
2037
  curveLiquiditySethAdapter = _ref22.curveLiquiditySethAdapter,
1517
2038
  outgoingLiquidityGaugeTokenAmount = _ref22.outgoingLiquidityGaugeTokenAmount;
1518
- var callArgs = protocol$1.callOnIntegrationArgs({
2039
+ var callArgs = protocol.callOnIntegrationArgs({
1519
2040
  adapter: curveLiquiditySethAdapter,
1520
- selector: protocol$1.unstakeSelector,
1521
- encodedCallArgs: protocol$1.curveSethUnstakeArgs({
2041
+ encodedCallArgs: protocol.curveSethUnstakeArgs({
1522
2042
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1523
- })
2043
+ }),
2044
+ selector: protocol.unstakeSelector
1524
2045
  });
1525
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2046
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1526
2047
  } // stETH pool
1527
2048
 
1528
2049
  function curveStethClaimRewards(_ref23) {
@@ -1530,12 +2051,12 @@ function curveStethClaimRewards(_ref23) {
1530
2051
  integrationManager = _ref23.integrationManager,
1531
2052
  fundOwner = _ref23.fundOwner,
1532
2053
  curveLiquidityStethAdapter = _ref23.curveLiquidityStethAdapter;
1533
- var callArgs = protocol$1.callOnIntegrationArgs({
2054
+ var callArgs = protocol.callOnIntegrationArgs({
1534
2055
  adapter: curveLiquidityStethAdapter,
1535
- selector: protocol$1.claimRewardsSelector,
1536
- encodedCallArgs: ethers.constants.HashZero
2056
+ encodedCallArgs: ethers.constants.HashZero,
2057
+ selector: protocol.claimRewardsSelector
1537
2058
  });
1538
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2059
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1539
2060
  }
1540
2061
  function curveStethLend(_ref24) {
1541
2062
  var comptrollerProxy = _ref24.comptrollerProxy,
@@ -1545,16 +2066,16 @@ function curveStethLend(_ref24) {
1545
2066
  outgoingWethAmount = _ref24.outgoingWethAmount,
1546
2067
  outgoingStethAmount = _ref24.outgoingStethAmount,
1547
2068
  minIncomingLPTokenAmount = _ref24.minIncomingLPTokenAmount;
1548
- var callArgs = protocol$1.callOnIntegrationArgs({
2069
+ var callArgs = protocol.callOnIntegrationArgs({
1549
2070
  adapter: curveLiquidityStethAdapter,
1550
- selector: protocol$1.lendSelector,
1551
- encodedCallArgs: protocol$1.curveStethLendArgs({
1552
- outgoingWethAmount: outgoingWethAmount,
2071
+ encodedCallArgs: protocol.curveStethLendArgs({
2072
+ minIncomingLPTokenAmount: minIncomingLPTokenAmount,
1553
2073
  outgoingStethAmount: outgoingStethAmount,
1554
- minIncomingLPTokenAmount: minIncomingLPTokenAmount
1555
- })
2074
+ outgoingWethAmount: outgoingWethAmount
2075
+ }),
2076
+ selector: protocol.lendSelector
1556
2077
  });
1557
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2078
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1558
2079
  }
1559
2080
  function curveStethLendAndStake(_ref25) {
1560
2081
  var comptrollerProxy = _ref25.comptrollerProxy,
@@ -1564,16 +2085,16 @@ function curveStethLendAndStake(_ref25) {
1564
2085
  outgoingWethAmount = _ref25.outgoingWethAmount,
1565
2086
  outgoingStethAmount = _ref25.outgoingStethAmount,
1566
2087
  minIncomingLiquidityGaugeTokenAmount = _ref25.minIncomingLiquidityGaugeTokenAmount;
1567
- var callArgs = protocol$1.callOnIntegrationArgs({
2088
+ var callArgs = protocol.callOnIntegrationArgs({
1568
2089
  adapter: curveLiquidityStethAdapter,
1569
- selector: protocol$1.lendAndStakeSelector,
1570
- encodedCallArgs: protocol$1.curveStethLendAndStakeArgs({
1571
- outgoingWethAmount: outgoingWethAmount,
2090
+ encodedCallArgs: protocol.curveStethLendAndStakeArgs({
2091
+ minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount,
1572
2092
  outgoingStethAmount: outgoingStethAmount,
1573
- minIncomingLiquidityGaugeTokenAmount: minIncomingLiquidityGaugeTokenAmount
1574
- })
2093
+ outgoingWethAmount: outgoingWethAmount
2094
+ }),
2095
+ selector: protocol.lendAndStakeSelector
1575
2096
  });
1576
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2097
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1577
2098
  }
1578
2099
  function curveStethRedeem(_ref26) {
1579
2100
  var comptrollerProxy = _ref26.comptrollerProxy,
@@ -1584,17 +2105,17 @@ function curveStethRedeem(_ref26) {
1584
2105
  minIncomingWethAmount = _ref26.minIncomingWethAmount,
1585
2106
  minIncomingStethAmount = _ref26.minIncomingStethAmount,
1586
2107
  receiveSingleAsset = _ref26.receiveSingleAsset;
1587
- var callArgs = protocol$1.callOnIntegrationArgs({
2108
+ var callArgs = protocol.callOnIntegrationArgs({
1588
2109
  adapter: curveLiquidityStethAdapter,
1589
- selector: protocol$1.redeemSelector,
1590
- encodedCallArgs: protocol$1.curveStethRedeemArgs({
1591
- outgoingLPTokenAmount: outgoingLPTokenAmount,
1592
- minIncomingWethAmount: minIncomingWethAmount,
2110
+ encodedCallArgs: protocol.curveStethRedeemArgs({
1593
2111
  minIncomingStethAmount: minIncomingStethAmount,
2112
+ minIncomingWethAmount: minIncomingWethAmount,
2113
+ outgoingLPTokenAmount: outgoingLPTokenAmount,
1594
2114
  receiveSingleAsset: receiveSingleAsset
1595
- })
2115
+ }),
2116
+ selector: protocol.redeemSelector
1596
2117
  });
1597
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2118
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1598
2119
  }
1599
2120
  function curveStethStake(_ref27) {
1600
2121
  var comptrollerProxy = _ref27.comptrollerProxy,
@@ -1602,14 +2123,14 @@ function curveStethStake(_ref27) {
1602
2123
  fundOwner = _ref27.fundOwner,
1603
2124
  curveLiquidityStethAdapter = _ref27.curveLiquidityStethAdapter,
1604
2125
  outgoingLPTokenAmount = _ref27.outgoingLPTokenAmount;
1605
- var callArgs = protocol$1.callOnIntegrationArgs({
2126
+ var callArgs = protocol.callOnIntegrationArgs({
1606
2127
  adapter: curveLiquidityStethAdapter,
1607
- selector: protocol$1.stakeSelector,
1608
- encodedCallArgs: protocol$1.curveStethStakeArgs({
2128
+ encodedCallArgs: protocol.curveStethStakeArgs({
1609
2129
  outgoingLPTokenAmount: outgoingLPTokenAmount
1610
- })
2130
+ }),
2131
+ selector: protocol.stakeSelector
1611
2132
  });
1612
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2133
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1613
2134
  }
1614
2135
  function curveStethUnstakeAndRedeem(_ref28) {
1615
2136
  var comptrollerProxy = _ref28.comptrollerProxy,
@@ -1620,17 +2141,17 @@ function curveStethUnstakeAndRedeem(_ref28) {
1620
2141
  minIncomingWethAmount = _ref28.minIncomingWethAmount,
1621
2142
  minIncomingStethAmount = _ref28.minIncomingStethAmount,
1622
2143
  receiveSingleAsset = _ref28.receiveSingleAsset;
1623
- var callArgs = protocol$1.callOnIntegrationArgs({
2144
+ var callArgs = protocol.callOnIntegrationArgs({
1624
2145
  adapter: curveLiquidityStethAdapter,
1625
- selector: protocol$1.unstakeAndRedeemSelector,
1626
- encodedCallArgs: protocol$1.curveStethUnstakeAndRedeemArgs({
1627
- outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1628
- minIncomingWethAmount: minIncomingWethAmount,
2146
+ encodedCallArgs: protocol.curveStethUnstakeAndRedeemArgs({
1629
2147
  minIncomingStethAmount: minIncomingStethAmount,
2148
+ minIncomingWethAmount: minIncomingWethAmount,
2149
+ outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount,
1630
2150
  receiveSingleAsset: receiveSingleAsset
1631
- })
2151
+ }),
2152
+ selector: protocol.unstakeAndRedeemSelector
1632
2153
  });
1633
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2154
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1634
2155
  }
1635
2156
  function curveStethUnstake(_ref29) {
1636
2157
  var comptrollerProxy = _ref29.comptrollerProxy,
@@ -1638,14 +2159,14 @@ function curveStethUnstake(_ref29) {
1638
2159
  fundOwner = _ref29.fundOwner,
1639
2160
  curveLiquidityStethAdapter = _ref29.curveLiquidityStethAdapter,
1640
2161
  outgoingLiquidityGaugeTokenAmount = _ref29.outgoingLiquidityGaugeTokenAmount;
1641
- var callArgs = protocol$1.callOnIntegrationArgs({
2162
+ var callArgs = protocol.callOnIntegrationArgs({
1642
2163
  adapter: curveLiquidityStethAdapter,
1643
- selector: protocol$1.unstakeSelector,
1644
- encodedCallArgs: protocol$1.curveStethUnstakeArgs({
2164
+ encodedCallArgs: protocol.curveStethUnstakeArgs({
1645
2165
  outgoingLiquidityGaugeTokenAmount: outgoingLiquidityGaugeTokenAmount
1646
- })
2166
+ }),
2167
+ selector: protocol.unstakeSelector
1647
2168
  });
1648
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2169
+ return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1649
2170
  }
1650
2171
 
1651
2172
  function idleClaimRewards(_x) {
@@ -1660,14 +2181,14 @@ function _idleClaimRewards() {
1660
2181
  switch (_context.prev = _context.next) {
1661
2182
  case 0:
1662
2183
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, idleAdapter = _ref.idleAdapter, idleToken = _ref.idleToken;
1663
- callArgs = protocol$1.callOnIntegrationArgs({
2184
+ callArgs = protocol.callOnIntegrationArgs({
1664
2185
  adapter: idleAdapter,
1665
- selector: protocol$1.claimRewardsSelector,
1666
- encodedCallArgs: protocol$1.idleClaimRewardsArgs({
2186
+ encodedCallArgs: protocol.idleClaimRewardsArgs({
1667
2187
  idleToken: idleToken
1668
- })
2188
+ }),
2189
+ selector: protocol.claimRewardsSelector
1669
2190
  });
1670
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2191
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1671
2192
 
1672
2193
  case 3:
1673
2194
  case "end":
@@ -1692,16 +2213,16 @@ function _idleLend() {
1692
2213
  switch (_context2.prev = _context2.next) {
1693
2214
  case 0:
1694
2215
  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;
1695
- callArgs = protocol$1.callOnIntegrationArgs({
2216
+ callArgs = protocol.callOnIntegrationArgs({
1696
2217
  adapter: idleAdapter,
1697
- selector: protocol$1.lendSelector,
1698
- encodedCallArgs: protocol$1.idleLendArgs({
2218
+ encodedCallArgs: protocol.idleLendArgs({
1699
2219
  idleToken: idleToken,
1700
- outgoingUnderlyingAmount: outgoingUnderlyingAmount,
1701
- minIncomingIdleTokenAmount: minIncomingIdleTokenAmount
1702
- })
2220
+ minIncomingIdleTokenAmount: minIncomingIdleTokenAmount,
2221
+ outgoingUnderlyingAmount: outgoingUnderlyingAmount
2222
+ }),
2223
+ selector: protocol.lendSelector
1703
2224
  });
1704
- return _context2.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2225
+ return _context2.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1705
2226
 
1706
2227
  case 3:
1707
2228
  case "end":
@@ -1726,16 +2247,16 @@ function _idleRedeem() {
1726
2247
  switch (_context3.prev = _context3.next) {
1727
2248
  case 0:
1728
2249
  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;
1729
- callArgs = protocol$1.callOnIntegrationArgs({
2250
+ callArgs = protocol.callOnIntegrationArgs({
1730
2251
  adapter: idleAdapter,
1731
- selector: protocol$1.redeemSelector,
1732
- encodedCallArgs: protocol$1.idleRedeemArgs({
2252
+ encodedCallArgs: protocol.idleRedeemArgs({
1733
2253
  idleToken: idleToken,
1734
- outgoingIdleTokenAmount: outgoingIdleTokenAmount,
1735
- minIncomingUnderlyingAmount: minIncomingUnderlyingAmount
1736
- })
2254
+ minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2255
+ outgoingIdleTokenAmount: outgoingIdleTokenAmount
2256
+ }),
2257
+ selector: protocol.redeemSelector
1737
2258
  });
1738
- return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2259
+ return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1739
2260
 
1740
2261
  case 3:
1741
2262
  case "end":
@@ -1747,11 +2268,11 @@ function _idleRedeem() {
1747
2268
  return _idleRedeem.apply(this, arguments);
1748
2269
  }
1749
2270
 
1750
- var mockGenericRemoveOnlySelector = protocol$1.sighash(ethers.utils.FunctionFragment.fromString('removeOnly(address,bytes,bytes)'));
1751
- var mockGenericSwapASelector = protocol$1.sighash(ethers.utils.FunctionFragment.fromString('swapA(address,bytes,bytes)'));
1752
- var mockGenericSwapBSelector = protocol$1.sighash(ethers.utils.FunctionFragment.fromString('swapB(address,bytes,bytes)'));
1753
- var mockGenericSwapDirectFromVaultSelector = protocol$1.sighash(ethers.utils.FunctionFragment.fromString('swapDirectFromVault(address,bytes,bytes)'));
1754
- var mockGenericSwapViaApprovalSelector = protocol$1.sighash(ethers.utils.FunctionFragment.fromString('swapViaApproval(address,bytes,bytes)'));
2271
+ var mockGenericRemoveOnlySelector = protocol.sighash(ethers.utils.FunctionFragment.fromString('removeOnly(address,bytes,bytes)'));
2272
+ var mockGenericSwapASelector = protocol.sighash(ethers.utils.FunctionFragment.fromString('swapA(address,bytes,bytes)'));
2273
+ var mockGenericSwapBSelector = protocol.sighash(ethers.utils.FunctionFragment.fromString('swapB(address,bytes,bytes)'));
2274
+ var mockGenericSwapDirectFromVaultSelector = protocol.sighash(ethers.utils.FunctionFragment.fromString('swapDirectFromVault(address,bytes,bytes)'));
2275
+ var mockGenericSwapViaApprovalSelector = protocol.sighash(ethers.utils.FunctionFragment.fromString('swapViaApproval(address,bytes,bytes)'));
1755
2276
  function mockGenericSwapArgs(_ref) {
1756
2277
  var _ref$spendAssets = _ref.spendAssets,
1757
2278
  spendAssets = _ref$spendAssets === void 0 ? [] : _ref$spendAssets,
@@ -1765,7 +2286,7 @@ function mockGenericSwapArgs(_ref) {
1765
2286
  actualIncomingAssetAmounts = _ref$actualIncomingAs === void 0 ? [] : _ref$actualIncomingAs,
1766
2287
  _ref$minIncomingAsset = _ref.minIncomingAssetAmounts,
1767
2288
  minIncomingAssetAmounts = _ref$minIncomingAsset === void 0 ? actualIncomingAssetAmounts : _ref$minIncomingAsset;
1768
- return protocol$1.encodeArgs(['address[]', 'uint256[]', 'uint256[]', 'address[]', 'uint256[]', 'uint256[]'], [spendAssets, maxSpendAssetAmounts, actualSpendAssetAmounts, incomingAssets, minIncomingAssetAmounts, actualIncomingAssetAmounts]);
2289
+ return protocol.encodeArgs(['address[]', 'uint256[]', 'uint256[]', 'address[]', 'uint256[]', 'uint256[]'], [spendAssets, maxSpendAssetAmounts, actualSpendAssetAmounts, incomingAssets, minIncomingAssetAmounts, actualIncomingAssetAmounts]);
1769
2290
  }
1770
2291
  function mockGenericSwap(_x) {
1771
2292
  return _mockGenericSwap.apply(this, arguments);
@@ -1804,19 +2325,19 @@ function _mockGenericSwap() {
1804
2325
 
1805
2326
  case 9:
1806
2327
  swapArgs = mockGenericSwapArgs({
1807
- spendAssets: spendAssets,
1808
- maxSpendAssetAmounts: maxSpendAssetAmounts,
2328
+ actualIncomingAssetAmounts: actualIncomingAssetAmounts,
1809
2329
  actualSpendAssetAmounts: actualSpendAssetAmounts,
1810
2330
  incomingAssets: incomingAssets,
2331
+ maxSpendAssetAmounts: maxSpendAssetAmounts,
1811
2332
  minIncomingAssetAmounts: minIncomingAssetAmounts,
1812
- actualIncomingAssetAmounts: actualIncomingAssetAmounts
2333
+ spendAssets: spendAssets
1813
2334
  });
1814
- callArgs = protocol$1.callOnIntegrationArgs({
2335
+ callArgs = protocol.callOnIntegrationArgs({
1815
2336
  adapter: mockGenericAdapter,
1816
- selector: selector,
1817
- encodedCallArgs: swapArgs
2337
+ encodedCallArgs: swapArgs,
2338
+ selector: selector
1818
2339
  });
1819
- swapTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2340
+ swapTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
1820
2341
  _context.next = 14;
1821
2342
  return expect(swapTx).resolves.toBeReceipt();
1822
2343
 
@@ -1837,10 +2358,10 @@ function paraSwapV4GenerateDummyPaths(_ref) {
1837
2358
  var toTokens = _ref.toTokens;
1838
2359
  return toTokens.map(function (toToken) {
1839
2360
  return {
1840
- to: toToken,
1841
- totalNetworkFee: 0,
1842
2361
  // Not supported in our protocol
1843
- routes: [] // Can ignore this param in the dummy
2362
+ routes: [],
2363
+ to: toToken,
2364
+ totalNetworkFee: 0 // Can ignore this param in the dummy
1844
2365
 
1845
2366
  };
1846
2367
  });
@@ -1858,19 +2379,19 @@ function _paraSwapV4TakeOrder() {
1858
2379
  switch (_context.prev = _context.next) {
1859
2380
  case 0:
1860
2381
  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;
1861
- takeOrderArgs = protocol$1.paraSwapV4TakeOrderArgs({
1862
- minIncomingAssetAmount: minIncomingAssetAmount,
2382
+ takeOrderArgs = protocol.paraSwapV4TakeOrderArgs({
1863
2383
  expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2384
+ minIncomingAssetAmount: minIncomingAssetAmount,
1864
2385
  outgoingAsset: outgoingAsset,
1865
2386
  outgoingAssetAmount: outgoingAssetAmount,
1866
2387
  paths: paths
1867
2388
  });
1868
- callArgs = protocol$1.callOnIntegrationArgs({
2389
+ callArgs = protocol.callOnIntegrationArgs({
1869
2390
  adapter: paraSwapV4Adapter,
1870
- selector: protocol$1.takeOrderSelector,
1871
- encodedCallArgs: takeOrderArgs
2391
+ encodedCallArgs: takeOrderArgs,
2392
+ selector: protocol.takeOrderSelector
1872
2393
  });
1873
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2394
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1874
2395
 
1875
2396
  case 4:
1876
2397
  case "end":
@@ -1882,6 +2403,161 @@ function _paraSwapV4TakeOrder() {
1882
2403
  return _paraSwapV4TakeOrder.apply(this, arguments);
1883
2404
  }
1884
2405
 
2406
+ function paraSwapV5GenerateDummyPaths(_ref) {
2407
+ var toTokens = _ref.toTokens;
2408
+ return toTokens.map(function (toToken) {
2409
+ return {
2410
+ // Not supported in our protocol
2411
+ adapters: [],
2412
+ to: toToken,
2413
+ totalNetworkFee: 0 // Can ignore this param in the dummy
2414
+
2415
+ };
2416
+ });
2417
+ }
2418
+ function paraSwapV5TakeOrder(_x) {
2419
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2420
+ }
2421
+
2422
+ function _paraSwapV5TakeOrder() {
2423
+ _paraSwapV5TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref2) {
2424
+ var comptrollerProxy, integrationManager, fundOwner, paraSwapV5Adapter, outgoingAsset, outgoingAssetAmount, _ref2$minIncomingAsse, minIncomingAssetAmount, _ref2$expectedIncomin, expectedIncomingAssetAmount, _ref2$uuid, uuid, paths, takeOrderArgs, callArgs;
2425
+
2426
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2427
+ while (1) {
2428
+ switch (_context.prev = _context.next) {
2429
+ case 0:
2430
+ 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;
2431
+ takeOrderArgs = protocol.paraSwapV5TakeOrderArgs({
2432
+ expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2433
+ minIncomingAssetAmount: minIncomingAssetAmount,
2434
+ outgoingAsset: outgoingAsset,
2435
+ outgoingAssetAmount: outgoingAssetAmount,
2436
+ paths: paths,
2437
+ uuid: uuid
2438
+ });
2439
+ callArgs = protocol.callOnIntegrationArgs({
2440
+ adapter: paraSwapV5Adapter,
2441
+ encodedCallArgs: takeOrderArgs,
2442
+ selector: protocol.takeOrderSelector
2443
+ });
2444
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2445
+
2446
+ case 4:
2447
+ case "end":
2448
+ return _context.stop();
2449
+ }
2450
+ }
2451
+ }, _callee);
2452
+ }));
2453
+ return _paraSwapV5TakeOrder.apply(this, arguments);
2454
+ }
2455
+
2456
+ function poolTogetherV4Lend(_x) {
2457
+ return _poolTogetherV4Lend.apply(this, arguments);
2458
+ }
2459
+
2460
+ function _poolTogetherV4Lend() {
2461
+ _poolTogetherV4Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
2462
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
2463
+
2464
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2465
+ while (1) {
2466
+ switch (_context.prev = _context.next) {
2467
+ case 0:
2468
+ 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;
2469
+ lendArgs = protocol.poolTogetherV4LendArgs({
2470
+ amount: amount,
2471
+ ptToken: ptToken
2472
+ });
2473
+ callArgs = protocol.callOnIntegrationArgs({
2474
+ adapter: poolTogetherV4Adapter,
2475
+ encodedCallArgs: lendArgs,
2476
+ selector: protocol.lendSelector
2477
+ });
2478
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2479
+ return _context.abrupt("return", lendTx);
2480
+
2481
+ case 5:
2482
+ case "end":
2483
+ return _context.stop();
2484
+ }
2485
+ }
2486
+ }, _callee);
2487
+ }));
2488
+ return _poolTogetherV4Lend.apply(this, arguments);
2489
+ }
2490
+
2491
+ function poolTogetherV4Redeem(_x2) {
2492
+ return _poolTogetherV4Redeem.apply(this, arguments);
2493
+ }
2494
+
2495
+ function _poolTogetherV4Redeem() {
2496
+ _poolTogetherV4Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
2497
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref2$amount, amount, redeemArgs, callArgs, redeemTx;
2498
+
2499
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
2500
+ while (1) {
2501
+ switch (_context2.prev = _context2.next) {
2502
+ case 0:
2503
+ 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;
2504
+ redeemArgs = protocol.poolTogetherV4RedeemArgs({
2505
+ amount: amount,
2506
+ ptToken: ptToken
2507
+ });
2508
+ callArgs = protocol.callOnIntegrationArgs({
2509
+ adapter: poolTogetherV4Adapter,
2510
+ encodedCallArgs: redeemArgs,
2511
+ selector: protocol.redeemSelector
2512
+ });
2513
+ redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2514
+ return _context2.abrupt("return", redeemTx);
2515
+
2516
+ case 5:
2517
+ case "end":
2518
+ return _context2.stop();
2519
+ }
2520
+ }
2521
+ }, _callee2);
2522
+ }));
2523
+ return _poolTogetherV4Redeem.apply(this, arguments);
2524
+ }
2525
+
2526
+ function poolTogetherV4ClaimRewards(_x3) {
2527
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2528
+ }
2529
+
2530
+ function _poolTogetherV4ClaimRewards() {
2531
+ _poolTogetherV4ClaimRewards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
2532
+ var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, prizeDistributor, drawIds, winningPicks, claimRewardsArgs, callArgs, claimTx;
2533
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2534
+ while (1) {
2535
+ switch (_context3.prev = _context3.next) {
2536
+ case 0:
2537
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, poolTogetherV4Adapter = _ref3.poolTogetherV4Adapter, prizeDistributor = _ref3.prizeDistributor, drawIds = _ref3.drawIds, winningPicks = _ref3.winningPicks;
2538
+ claimRewardsArgs = protocol.poolTogetherV4ClaimRewardsArgs({
2539
+ drawIds: drawIds,
2540
+ prizeDistributor: prizeDistributor,
2541
+ winningPicks: winningPicks
2542
+ });
2543
+ callArgs = protocol.callOnIntegrationArgs({
2544
+ adapter: poolTogetherV4Adapter,
2545
+ encodedCallArgs: claimRewardsArgs,
2546
+ selector: protocol.claimRewardsSelector
2547
+ });
2548
+ claimTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2549
+ return _context3.abrupt("return", claimTx);
2550
+
2551
+ case 5:
2552
+ case "end":
2553
+ return _context3.stop();
2554
+ }
2555
+ }
2556
+ }, _callee3);
2557
+ }));
2558
+ return _poolTogetherV4ClaimRewards.apply(this, arguments);
2559
+ }
2560
+
1885
2561
  function synthetixAssignExchangeDelegate(_x) {
1886
2562
  return _synthetixAssignExchangeDelegate.apply(this, arguments);
1887
2563
  }
@@ -1903,7 +2579,7 @@ function _synthetixAssignExchangeDelegate() {
1903
2579
  case 3:
1904
2580
  delegateApprovals = _context.sent;
1905
2581
  _context.next = 6;
1906
- return comptrollerProxy.connect(fundOwner).vaultCallOnContract(delegateApprovals, protocol$1.synthetixAssignExchangeDelegateSelector, protocol$1.encodeArgs(['address'], [delegate]));
2582
+ return comptrollerProxy.connect(fundOwner).vaultCallOnContract(delegateApprovals, protocol.synthetixAssignExchangeDelegateSelector, protocol.encodeArgs(['address'], [delegate]));
1907
2583
 
1908
2584
  case 6:
1909
2585
  case "end":
@@ -1939,52 +2615,84 @@ function _synthetixResolveAddress() {
1939
2615
  return _synthetixResolveAddress.apply(this, arguments);
1940
2616
  }
1941
2617
 
1942
- function synthetixTakeOrder(_x3) {
2618
+ function synthetixRedeem(_x3) {
2619
+ return _synthetixRedeem.apply(this, arguments);
2620
+ }
2621
+
2622
+ function _synthetixRedeem() {
2623
+ _synthetixRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
2624
+ var comptrollerProxy, integrationManager, signer, synthetixAdapter, synths, redeemArgs, callArgs;
2625
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2626
+ while (1) {
2627
+ switch (_context3.prev = _context3.next) {
2628
+ case 0:
2629
+ comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, signer = _ref3.signer, synthetixAdapter = _ref3.synthetixAdapter, synths = _ref3.synths;
2630
+ redeemArgs = protocol.synthetixRedeemArgs({
2631
+ synths: synths
2632
+ });
2633
+ callArgs = protocol.callOnIntegrationArgs({
2634
+ adapter: synthetixAdapter,
2635
+ encodedCallArgs: redeemArgs,
2636
+ selector: protocol.redeemSelector
2637
+ });
2638
+ return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2639
+
2640
+ case 4:
2641
+ case "end":
2642
+ return _context3.stop();
2643
+ }
2644
+ }
2645
+ }, _callee3);
2646
+ }));
2647
+ return _synthetixRedeem.apply(this, arguments);
2648
+ }
2649
+
2650
+ function synthetixTakeOrder(_x4) {
1943
2651
  return _synthetixTakeOrder.apply(this, arguments);
1944
2652
  }
1945
2653
 
1946
2654
  function _synthetixTakeOrder() {
1947
- _synthetixTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
1948
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref3$outgoingAssetAm, outgoingAssetAmount, incomingAsset, _ref3$minIncomingAsse, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2655
+ _synthetixTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(_ref4) {
2656
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref4$outgoingAssetAm, outgoingAssetAmount, incomingAsset, _ref4$minIncomingAsse, minIncomingAssetAmount, _ref4$seedFund, seedFund, takeOrderArgs, callArgs;
1949
2657
 
1950
- return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2658
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
1951
2659
  while (1) {
1952
- switch (_context3.prev = _context3.next) {
2660
+ switch (_context4.prev = _context4.next) {
1953
2661
  case 0:
1954
- 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;
2662
+ comptrollerProxy = _ref4.comptrollerProxy, vaultProxy = _ref4.vaultProxy, integrationManager = _ref4.integrationManager, fundOwner = _ref4.fundOwner, synthetixAdapter = _ref4.synthetixAdapter, outgoingAsset = _ref4.outgoingAsset, _ref4$outgoingAssetAm = _ref4.outgoingAssetAmount, outgoingAssetAmount = _ref4$outgoingAssetAm === void 0 ? ethers.utils.parseEther('1') : _ref4$outgoingAssetAm, incomingAsset = _ref4.incomingAsset, _ref4$minIncomingAsse = _ref4.minIncomingAssetAmount, minIncomingAssetAmount = _ref4$minIncomingAsse === void 0 ? ethers.utils.parseEther('1') : _ref4$minIncomingAsse, _ref4$seedFund = _ref4.seedFund, seedFund = _ref4$seedFund === void 0 ? false : _ref4$seedFund;
1955
2663
 
1956
2664
  if (!seedFund) {
1957
- _context3.next = 4;
2665
+ _context4.next = 4;
1958
2666
  break;
1959
2667
  }
1960
2668
 
1961
- _context3.next = 4;
2669
+ _context4.next = 4;
1962
2670
  return outgoingAsset.transfer(vaultProxy, outgoingAssetAmount);
1963
2671
 
1964
2672
  case 4:
1965
- takeOrderArgs = protocol$1.synthetixTakeOrderArgs({
2673
+ takeOrderArgs = protocol.synthetixTakeOrderArgs({
1966
2674
  incomingAsset: incomingAsset,
1967
2675
  minIncomingAssetAmount: minIncomingAssetAmount,
1968
2676
  outgoingAsset: outgoingAsset,
1969
2677
  outgoingAssetAmount: outgoingAssetAmount
1970
2678
  });
1971
- _context3.next = 7;
1972
- return protocol$1.callOnIntegrationArgs({
2679
+ _context4.next = 7;
2680
+ return protocol.callOnIntegrationArgs({
1973
2681
  adapter: synthetixAdapter,
1974
- selector: protocol$1.takeOrderSelector,
1975
- encodedCallArgs: takeOrderArgs
2682
+ encodedCallArgs: takeOrderArgs,
2683
+ selector: protocol.takeOrderSelector
1976
2684
  });
1977
2685
 
1978
2686
  case 7:
1979
- callArgs = _context3.sent;
1980
- return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2687
+ callArgs = _context4.sent;
2688
+ return _context4.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
1981
2689
 
1982
2690
  case 9:
1983
2691
  case "end":
1984
- return _context3.stop();
2692
+ return _context4.stop();
1985
2693
  }
1986
2694
  }
1987
- }, _callee3);
2695
+ }, _callee4);
1988
2696
  }));
1989
2697
  return _synthetixTakeOrder.apply(this, arguments);
1990
2698
  }
@@ -1997,13 +2705,13 @@ function uniswapV2Lend(_x) {
1997
2705
 
1998
2706
  function _uniswapV2Lend() {
1999
2707
  _uniswapV2Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
2000
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2Adapter, tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, minPoolTokenAmount, _ref$seedFund, seedFund, lendArgs, callArgs, lendTx;
2708
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2LiquidityAdapter, tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, minPoolTokenAmount, _ref$seedFund, seedFund, lendArgs, callArgs, lendTx;
2001
2709
 
2002
2710
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2003
2711
  while (1) {
2004
2712
  switch (_context.prev = _context.next) {
2005
2713
  case 0:
2006
- comptrollerProxy = _ref.comptrollerProxy, vaultProxy = _ref.vaultProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, uniswapV2Adapter = _ref.uniswapV2Adapter, tokenA = _ref.tokenA, tokenB = _ref.tokenB, amountADesired = _ref.amountADesired, amountBDesired = _ref.amountBDesired, amountAMin = _ref.amountAMin, amountBMin = _ref.amountBMin, minPoolTokenAmount = _ref.minPoolTokenAmount, _ref$seedFund = _ref.seedFund, seedFund = _ref$seedFund === void 0 ? false : _ref$seedFund;
2714
+ comptrollerProxy = _ref.comptrollerProxy, vaultProxy = _ref.vaultProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, uniswapV2LiquidityAdapter = _ref.uniswapV2LiquidityAdapter, tokenA = _ref.tokenA, tokenB = _ref.tokenB, amountADesired = _ref.amountADesired, amountBDesired = _ref.amountBDesired, amountAMin = _ref.amountAMin, amountBMin = _ref.amountBMin, minPoolTokenAmount = _ref.minPoolTokenAmount, _ref$seedFund = _ref.seedFund, seedFund = _ref$seedFund === void 0 ? false : _ref$seedFund;
2007
2715
 
2008
2716
  if (!seedFund) {
2009
2717
  _context.next = 6;
@@ -2018,21 +2726,21 @@ function _uniswapV2Lend() {
2018
2726
  return tokenB.transfer(vaultProxy, amountBDesired);
2019
2727
 
2020
2728
  case 6:
2021
- lendArgs = protocol$1.uniswapV2LendArgs({
2022
- tokenA: tokenA,
2023
- tokenB: tokenB,
2729
+ lendArgs = protocol.uniswapV2LendArgs({
2024
2730
  amountADesired: amountADesired,
2025
- amountBDesired: amountBDesired,
2026
2731
  amountAMin: amountAMin,
2732
+ amountBDesired: amountBDesired,
2027
2733
  amountBMin: amountBMin,
2028
- minPoolTokenAmount: minPoolTokenAmount
2734
+ minPoolTokenAmount: minPoolTokenAmount,
2735
+ tokenA: tokenA,
2736
+ tokenB: tokenB
2029
2737
  });
2030
- callArgs = protocol$1.callOnIntegrationArgs({
2031
- adapter: uniswapV2Adapter,
2032
- selector: protocol$1.lendSelector,
2033
- encodedCallArgs: lendArgs
2738
+ callArgs = protocol.callOnIntegrationArgs({
2739
+ adapter: uniswapV2LiquidityAdapter,
2740
+ encodedCallArgs: lendArgs,
2741
+ selector: protocol.lendSelector
2034
2742
  });
2035
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2743
+ lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2036
2744
  _context.next = 11;
2037
2745
  return expect(lendTx).resolves.toBeReceipt();
2038
2746
 
@@ -2055,25 +2763,25 @@ function uniswapV2Redeem(_x2) {
2055
2763
 
2056
2764
  function _uniswapV2Redeem() {
2057
2765
  _uniswapV2Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(_ref2) {
2058
- var comptrollerProxy, integrationManager, fundOwner, uniswapV2Adapter, poolTokenAmount, tokenA, tokenB, amountAMin, amountBMin, redeemArgs, callArgs, redeemTx;
2766
+ var comptrollerProxy, integrationManager, fundOwner, uniswapV2LiquidityAdapter, poolTokenAmount, tokenA, tokenB, amountAMin, amountBMin, redeemArgs, callArgs, redeemTx;
2059
2767
  return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
2060
2768
  while (1) {
2061
2769
  switch (_context2.prev = _context2.next) {
2062
2770
  case 0:
2063
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, uniswapV2Adapter = _ref2.uniswapV2Adapter, poolTokenAmount = _ref2.poolTokenAmount, tokenA = _ref2.tokenA, tokenB = _ref2.tokenB, amountAMin = _ref2.amountAMin, amountBMin = _ref2.amountBMin;
2064
- redeemArgs = protocol$1.uniswapV2RedeemArgs({
2771
+ 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;
2772
+ redeemArgs = protocol.uniswapV2RedeemArgs({
2773
+ amountAMin: amountAMin,
2774
+ amountBMin: amountBMin,
2065
2775
  poolTokenAmount: poolTokenAmount,
2066
2776
  tokenA: tokenA,
2067
- tokenB: tokenB,
2068
- amountAMin: amountAMin,
2069
- amountBMin: amountBMin
2777
+ tokenB: tokenB
2070
2778
  });
2071
- callArgs = protocol$1.callOnIntegrationArgs({
2072
- adapter: uniswapV2Adapter,
2073
- selector: protocol$1.redeemSelector,
2074
- encodedCallArgs: redeemArgs
2779
+ callArgs = protocol.callOnIntegrationArgs({
2780
+ adapter: uniswapV2LiquidityAdapter,
2781
+ encodedCallArgs: redeemArgs,
2782
+ selector: protocol.redeemSelector
2075
2783
  });
2076
- redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs);
2784
+ redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
2077
2785
  _context2.next = 6;
2078
2786
  return expect(redeemTx).resolves.toBeReceipt();
2079
2787
 
@@ -2096,13 +2804,13 @@ function uniswapV2TakeOrder(_x3) {
2096
2804
 
2097
2805
  function _uniswapV2TakeOrder() {
2098
2806
  _uniswapV2TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
2099
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2Adapter, path, outgoingAssetAmount, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2807
+ var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2ExchangeAdapter, path, outgoingAssetAmount, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2100
2808
 
2101
2809
  return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2102
2810
  while (1) {
2103
2811
  switch (_context3.prev = _context3.next) {
2104
2812
  case 0:
2105
- comptrollerProxy = _ref3.comptrollerProxy, vaultProxy = _ref3.vaultProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, uniswapV2Adapter = _ref3.uniswapV2Adapter, path = _ref3.path, outgoingAssetAmount = _ref3.outgoingAssetAmount, minIncomingAssetAmount = _ref3.minIncomingAssetAmount, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2813
+ comptrollerProxy = _ref3.comptrollerProxy, vaultProxy = _ref3.vaultProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, uniswapV2ExchangeAdapter = _ref3.uniswapV2ExchangeAdapter, path = _ref3.path, outgoingAssetAmount = _ref3.outgoingAssetAmount, minIncomingAssetAmount = _ref3.minIncomingAssetAmount, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2106
2814
 
2107
2815
  if (!seedFund) {
2108
2816
  _context3.next = 4;
@@ -2113,17 +2821,17 @@ function _uniswapV2TakeOrder() {
2113
2821
  return path[0].transfer(vaultProxy, outgoingAssetAmount);
2114
2822
 
2115
2823
  case 4:
2116
- takeOrderArgs = protocol$1.uniswapV2TakeOrderArgs({
2117
- path: path,
2824
+ takeOrderArgs = protocol.uniswapV2TakeOrderArgs({
2825
+ minIncomingAssetAmount: minIncomingAssetAmount,
2118
2826
  outgoingAssetAmount: outgoingAssetAmount,
2119
- minIncomingAssetAmount: minIncomingAssetAmount
2827
+ path: path
2120
2828
  });
2121
- callArgs = protocol$1.callOnIntegrationArgs({
2122
- adapter: uniswapV2Adapter,
2123
- selector: protocol$1.takeOrderSelector,
2124
- encodedCallArgs: takeOrderArgs
2829
+ callArgs = protocol.callOnIntegrationArgs({
2830
+ adapter: uniswapV2ExchangeAdapter,
2831
+ encodedCallArgs: takeOrderArgs,
2832
+ selector: protocol.takeOrderSelector
2125
2833
  });
2126
- return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2834
+ return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2127
2835
 
2128
2836
  case 7:
2129
2837
  case "end":
@@ -2141,7 +2849,7 @@ function uniswapV3TakeOrder(_x) {
2141
2849
 
2142
2850
  function _uniswapV3TakeOrder() {
2143
2851
  _uniswapV3TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
2144
- var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, takeOrderArgs, callArgs;
2852
+ var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, vaultProxy, takeOrderArgs, callArgs;
2145
2853
 
2146
2854
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2147
2855
  while (1) {
@@ -2150,35 +2858,33 @@ function _uniswapV3TakeOrder() {
2150
2858
  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;
2151
2859
 
2152
2860
  if (!seedFund) {
2153
- _context.next = 9;
2861
+ _context.next = 7;
2154
2862
  break;
2155
2863
  }
2156
2864
 
2157
- _context.t0 = pathAddresses[0];
2158
- _context.next = 5;
2865
+ _context.next = 4;
2159
2866
  return comptrollerProxy.getVaultProxy();
2160
2867
 
2161
- case 5:
2162
- _context.t1 = _context.sent;
2163
- _context.t2 = outgoingAssetAmount;
2164
- _context.next = 9;
2165
- return _context.t0.transfer.call(_context.t0, _context.t1, _context.t2);
2868
+ case 4:
2869
+ vaultProxy = _context.sent;
2870
+ _context.next = 7;
2871
+ return pathAddresses[0].transfer(vaultProxy, outgoingAssetAmount);
2166
2872
 
2167
- case 9:
2168
- takeOrderArgs = protocol$1.uniswapV3TakeOrderArgs({
2169
- pathAddresses: pathAddresses,
2170
- pathFees: pathFees,
2873
+ case 7:
2874
+ takeOrderArgs = protocol.uniswapV3TakeOrderArgs({
2875
+ minIncomingAssetAmount: minIncomingAssetAmount,
2171
2876
  outgoingAssetAmount: outgoingAssetAmount,
2172
- minIncomingAssetAmount: minIncomingAssetAmount
2877
+ pathAddresses: pathAddresses,
2878
+ pathFees: pathFees
2173
2879
  });
2174
- callArgs = protocol$1.callOnIntegrationArgs({
2880
+ callArgs = protocol.callOnIntegrationArgs({
2175
2881
  adapter: uniswapV3Adapter,
2176
- selector: protocol$1.takeOrderSelector,
2177
- encodedCallArgs: takeOrderArgs
2882
+ encodedCallArgs: takeOrderArgs,
2883
+ selector: protocol.takeOrderSelector
2178
2884
  });
2179
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2885
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2180
2886
 
2181
- case 12:
2887
+ case 10:
2182
2888
  case "end":
2183
2889
  return _context.stop();
2184
2890
  }
@@ -2201,16 +2907,16 @@ function _yearnVaultV2Lend() {
2201
2907
  switch (_context.prev = _context.next) {
2202
2908
  case 0:
2203
2909
  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;
2204
- callArgs = protocol$1.callOnIntegrationArgs({
2910
+ callArgs = protocol.callOnIntegrationArgs({
2205
2911
  adapter: yearnVaultV2Adapter,
2206
- selector: protocol$1.lendSelector,
2207
- encodedCallArgs: protocol$1.yearnVaultV2LendArgs({
2208
- yVault: yVault,
2912
+ encodedCallArgs: protocol.yearnVaultV2LendArgs({
2913
+ minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount,
2209
2914
  outgoingUnderlyingAmount: outgoingUnderlyingAmount,
2210
- minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount
2211
- })
2915
+ yVault: yVault
2916
+ }),
2917
+ selector: protocol.lendSelector
2212
2918
  });
2213
- return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2919
+ return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2214
2920
 
2215
2921
  case 3:
2216
2922
  case "end":
@@ -2235,17 +2941,17 @@ function _yearnVaultV2Redeem() {
2235
2941
  switch (_context2.prev = _context2.next) {
2236
2942
  case 0:
2237
2943
  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;
2238
- callArgs = protocol$1.callOnIntegrationArgs({
2944
+ callArgs = protocol.callOnIntegrationArgs({
2239
2945
  adapter: yearnVaultV2Adapter,
2240
- selector: protocol$1.redeemSelector,
2241
- encodedCallArgs: protocol$1.yearnVaultV2RedeemArgs({
2242
- yVault: yVault,
2946
+ encodedCallArgs: protocol.yearnVaultV2RedeemArgs({
2243
2947
  maxOutgoingYVaultSharesAmount: maxOutgoingYVaultSharesAmount,
2244
2948
  minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2245
- slippageToleranceBps: slippageToleranceBps
2246
- })
2949
+ slippageToleranceBps: slippageToleranceBps,
2950
+ yVault: yVault
2951
+ }),
2952
+ selector: protocol.redeemSelector
2247
2953
  });
2248
- return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2954
+ return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2249
2955
 
2250
2956
  case 3:
2251
2957
  case "end":
@@ -2269,16 +2975,16 @@ function _zeroExV2TakeOrder() {
2269
2975
  switch (_context.prev = _context.next) {
2270
2976
  case 0:
2271
2977
  comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, zeroExV2Adapter = _ref.zeroExV2Adapter, signedOrder = _ref.signedOrder, takerAssetFillAmount = _ref.takerAssetFillAmount;
2272
- takeOrderArgs = protocol$1.zeroExV2TakeOrderArgs({
2978
+ takeOrderArgs = protocol.zeroExV2TakeOrderArgs({
2273
2979
  signedOrder: signedOrder,
2274
2980
  takerAssetFillAmount: takerAssetFillAmount
2275
2981
  });
2276
- callArgs = protocol$1.callOnIntegrationArgs({
2982
+ callArgs = protocol.callOnIntegrationArgs({
2277
2983
  adapter: zeroExV2Adapter,
2278
- selector: protocol$1.takeOrderSelector,
2279
- encodedCallArgs: takeOrderArgs
2984
+ encodedCallArgs: takeOrderArgs,
2985
+ selector: protocol.takeOrderSelector
2280
2986
  });
2281
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol$1.IntegrationManagerActionId.CallOnIntegration, callArgs));
2987
+ return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, protocol.IntegrationManagerActionId.CallOnIntegration, callArgs));
2282
2988
 
2283
2989
  case 4:
2284
2990
  case "end":
@@ -2313,7 +3019,7 @@ function _generatePolicyManagerConfigWithMockPolicies() {
2313
3019
  policies = _context.t0.values.call(_context.t0, _context.t1);
2314
3020
  // Guarantees one policy has settings data
2315
3021
  policiesSettingsData = [].concat(_toConsumableArray(new Array(policies.length - 1).fill(ethers.constants.HashZero)), [ethers.utils.randomBytes(10)]);
2316
- return _context.abrupt("return", protocol$1.policyManagerConfigArgs({
3022
+ return _context.abrupt("return", protocol.policyManagerConfigArgs({
2317
3023
  policies: policies,
2318
3024
  settings: policiesSettingsData
2319
3025
  }));
@@ -2341,55 +3047,55 @@ function _generateMockPolicies() {
2341
3047
  case 0:
2342
3048
  deployer = _ref2.deployer;
2343
3049
  _context2.next = 3;
2344
- return protocol$1.IPolicy.mock(deployer);
3050
+ return protocol.IPolicy.mock(deployer);
2345
3051
 
2346
3052
  case 3:
2347
3053
  mockAddTrackedAssetsPolicy = _context2.sent;
2348
3054
  _context2.next = 6;
2349
- return protocol$1.IPolicy.mock(deployer);
3055
+ return protocol.IPolicy.mock(deployer);
2350
3056
 
2351
3057
  case 6:
2352
3058
  mockCreateExternalPositionPolicy = _context2.sent;
2353
3059
  _context2.next = 9;
2354
- return protocol$1.IPolicy.mock(deployer);
3060
+ return protocol.IPolicy.mock(deployer);
2355
3061
 
2356
3062
  case 9:
2357
3063
  mockPostBuySharesPolicy = _context2.sent;
2358
3064
  _context2.next = 12;
2359
- return protocol$1.IPolicy.mock(deployer);
3065
+ return protocol.IPolicy.mock(deployer);
2360
3066
 
2361
3067
  case 12:
2362
3068
  mockPostCallOnExternalPositionPolicy = _context2.sent;
2363
3069
  _context2.next = 15;
2364
- return protocol$1.IPolicy.mock(deployer);
3070
+ return protocol.IPolicy.mock(deployer);
2365
3071
 
2366
3072
  case 15:
2367
3073
  mockPostCoIPolicy = _context2.sent;
2368
3074
  _context2.next = 18;
2369
- return protocol$1.IPolicy.mock(deployer);
3075
+ return protocol.IPolicy.mock(deployer);
2370
3076
 
2371
3077
  case 18:
2372
3078
  mockRedeemSharesForSpecificAssetsPolicy = _context2.sent;
2373
3079
  _context2.next = 21;
2374
- return protocol$1.IPolicy.mock(deployer);
3080
+ return protocol.IPolicy.mock(deployer);
2375
3081
 
2376
3082
  case 21:
2377
3083
  mockPreTransferSharesPolicy = _context2.sent;
2378
3084
  _context2.next = 24;
2379
- return protocol$1.IPolicy.mock(deployer);
3085
+ return protocol.IPolicy.mock(deployer);
2380
3086
 
2381
3087
  case 24:
2382
3088
  mockRemoveExternalPositionPolicy = _context2.sent;
2383
3089
  _context2.next = 27;
2384
3090
  return Promise.all([// AddTrackedAssets
2385
- mockAddTrackedAssetsPolicy.identifier.returns("MOCK_ADD_TRACKED_ASSETS"), mockAddTrackedAssetsPolicy.addFundSettings.returns(undefined), mockAddTrackedAssetsPolicy.activateForFund.returns(undefined), mockAddTrackedAssetsPolicy.canDisable.returns(false), mockAddTrackedAssetsPolicy.validateRule.returns(true), mockAddTrackedAssetsPolicy.implementedHooks.returns([protocol$1.PolicyHook.AddTrackedAssets]), mockAddTrackedAssetsPolicy.updateFundSettings.returns(undefined), // CreateExternalPosition
2386
- mockCreateExternalPositionPolicy.identifier.returns("MOCK_CREATE_EXTERNAL_POSITION"), mockCreateExternalPositionPolicy.addFundSettings.returns(undefined), mockCreateExternalPositionPolicy.activateForFund.returns(undefined), mockCreateExternalPositionPolicy.canDisable.returns(false), mockCreateExternalPositionPolicy.validateRule.returns(true), mockCreateExternalPositionPolicy.implementedHooks.returns([protocol$1.PolicyHook.CreateExternalPosition]), mockCreateExternalPositionPolicy.updateFundSettings.returns(undefined), // PostBuyShares
2387
- mockPostBuySharesPolicy.identifier.returns("MOCK_POST_BUY_SHARES"), mockPostBuySharesPolicy.addFundSettings.returns(undefined), mockPostBuySharesPolicy.activateForFund.returns(undefined), mockPostBuySharesPolicy.canDisable.returns(false), mockPostBuySharesPolicy.validateRule.returns(true), mockPostBuySharesPolicy.implementedHooks.returns([protocol$1.PolicyHook.PostBuyShares]), mockPostBuySharesPolicy.updateFundSettings.returns(undefined), // PostCallOnExternalPosition
2388
- mockPostCallOnExternalPositionPolicy.identifier.returns("MOCK_POST_CALL_ON_EXTERNAL_POSITION"), mockPostCallOnExternalPositionPolicy.addFundSettings.returns(undefined), mockPostCallOnExternalPositionPolicy.activateForFund.returns(undefined), mockPostCallOnExternalPositionPolicy.canDisable.returns(false), mockPostCallOnExternalPositionPolicy.validateRule.returns(true), mockPostCallOnExternalPositionPolicy.implementedHooks.returns([protocol$1.PolicyHook.PostCallOnExternalPosition]), mockPostCallOnExternalPositionPolicy.updateFundSettings.returns(undefined), // PostCallOnIntegration
2389
- mockPostCoIPolicy.identifier.returns("MOCK_POST_CALL_ON_INTEGRATION"), mockPostCoIPolicy.addFundSettings.returns(undefined), mockPostCoIPolicy.activateForFund.returns(undefined), mockPostCoIPolicy.canDisable.returns(false), mockPostCoIPolicy.validateRule.returns(true), mockPostCoIPolicy.implementedHooks.returns([protocol$1.PolicyHook.PostCallOnIntegration]), mockPostCoIPolicy.updateFundSettings.returns(undefined), // PreTransferSharesPolicy
2390
- mockPreTransferSharesPolicy.identifier.returns("MOCK_PRE_TRANSFER_SHARES"), mockPreTransferSharesPolicy.addFundSettings.returns(undefined), mockPreTransferSharesPolicy.activateForFund.returns(undefined), mockPreTransferSharesPolicy.canDisable.returns(false), mockPreTransferSharesPolicy.validateRule.returns(true), mockPreTransferSharesPolicy.implementedHooks.returns([protocol$1.PolicyHook.PreTransferShares]), mockPreTransferSharesPolicy.updateFundSettings.returns(undefined), // RedeemSharesForSpecificAssets
2391
- mockRedeemSharesForSpecificAssetsPolicy.identifier.returns("MOCK_REDEEM_SHARES_FOR_SPECIFIC_ASSETS"), mockRedeemSharesForSpecificAssetsPolicy.addFundSettings.returns(undefined), mockRedeemSharesForSpecificAssetsPolicy.activateForFund.returns(undefined), mockRedeemSharesForSpecificAssetsPolicy.canDisable.returns(false), mockRedeemSharesForSpecificAssetsPolicy.validateRule.returns(true), mockRedeemSharesForSpecificAssetsPolicy.implementedHooks.returns([protocol$1.PolicyHook.RedeemSharesForSpecificAssets]), mockRedeemSharesForSpecificAssetsPolicy.updateFundSettings.returns(undefined), // RemoveExternalPosition
2392
- mockRemoveExternalPositionPolicy.identifier.returns("MOCK_REMOVE_EXTERNAL_POSITION"), mockRemoveExternalPositionPolicy.addFundSettings.returns(undefined), mockRemoveExternalPositionPolicy.activateForFund.returns(undefined), mockRemoveExternalPositionPolicy.canDisable.returns(false), mockRemoveExternalPositionPolicy.validateRule.returns(true), mockRemoveExternalPositionPolicy.implementedHooks.returns([protocol$1.PolicyHook.RedeemSharesForSpecificAssets]), mockRemoveExternalPositionPolicy.updateFundSettings.returns(undefined)]);
3091
+ mockAddTrackedAssetsPolicy.identifier.returns("MOCK_ADD_TRACKED_ASSETS"), mockAddTrackedAssetsPolicy.addFundSettings.returns(undefined), mockAddTrackedAssetsPolicy.activateForFund.returns(undefined), mockAddTrackedAssetsPolicy.canDisable.returns(false), mockAddTrackedAssetsPolicy.validateRule.returns(true), mockAddTrackedAssetsPolicy.implementedHooks.returns([protocol.PolicyHook.AddTrackedAssets]), mockAddTrackedAssetsPolicy.updateFundSettings.returns(undefined), // CreateExternalPosition
3092
+ mockCreateExternalPositionPolicy.identifier.returns("MOCK_CREATE_EXTERNAL_POSITION"), mockCreateExternalPositionPolicy.addFundSettings.returns(undefined), mockCreateExternalPositionPolicy.activateForFund.returns(undefined), mockCreateExternalPositionPolicy.canDisable.returns(false), mockCreateExternalPositionPolicy.validateRule.returns(true), mockCreateExternalPositionPolicy.implementedHooks.returns([protocol.PolicyHook.CreateExternalPosition]), mockCreateExternalPositionPolicy.updateFundSettings.returns(undefined), // PostBuyShares
3093
+ mockPostBuySharesPolicy.identifier.returns("MOCK_POST_BUY_SHARES"), mockPostBuySharesPolicy.addFundSettings.returns(undefined), mockPostBuySharesPolicy.activateForFund.returns(undefined), mockPostBuySharesPolicy.canDisable.returns(false), mockPostBuySharesPolicy.validateRule.returns(true), mockPostBuySharesPolicy.implementedHooks.returns([protocol.PolicyHook.PostBuyShares]), mockPostBuySharesPolicy.updateFundSettings.returns(undefined), // PostCallOnExternalPosition
3094
+ mockPostCallOnExternalPositionPolicy.identifier.returns("MOCK_POST_CALL_ON_EXTERNAL_POSITION"), mockPostCallOnExternalPositionPolicy.addFundSettings.returns(undefined), mockPostCallOnExternalPositionPolicy.activateForFund.returns(undefined), mockPostCallOnExternalPositionPolicy.canDisable.returns(false), mockPostCallOnExternalPositionPolicy.validateRule.returns(true), mockPostCallOnExternalPositionPolicy.implementedHooks.returns([protocol.PolicyHook.PostCallOnExternalPosition]), mockPostCallOnExternalPositionPolicy.updateFundSettings.returns(undefined), // PostCallOnIntegration
3095
+ mockPostCoIPolicy.identifier.returns("MOCK_POST_CALL_ON_INTEGRATION"), mockPostCoIPolicy.addFundSettings.returns(undefined), mockPostCoIPolicy.activateForFund.returns(undefined), mockPostCoIPolicy.canDisable.returns(false), mockPostCoIPolicy.validateRule.returns(true), mockPostCoIPolicy.implementedHooks.returns([protocol.PolicyHook.PostCallOnIntegration]), mockPostCoIPolicy.updateFundSettings.returns(undefined), // PreTransferSharesPolicy
3096
+ mockPreTransferSharesPolicy.identifier.returns("MOCK_PRE_TRANSFER_SHARES"), mockPreTransferSharesPolicy.addFundSettings.returns(undefined), mockPreTransferSharesPolicy.activateForFund.returns(undefined), mockPreTransferSharesPolicy.canDisable.returns(false), mockPreTransferSharesPolicy.validateRule.returns(true), mockPreTransferSharesPolicy.implementedHooks.returns([protocol.PolicyHook.PreTransferShares]), mockPreTransferSharesPolicy.updateFundSettings.returns(undefined), // RedeemSharesForSpecificAssets
3097
+ mockRedeemSharesForSpecificAssetsPolicy.identifier.returns("MOCK_REDEEM_SHARES_FOR_SPECIFIC_ASSETS"), mockRedeemSharesForSpecificAssetsPolicy.addFundSettings.returns(undefined), mockRedeemSharesForSpecificAssetsPolicy.activateForFund.returns(undefined), mockRedeemSharesForSpecificAssetsPolicy.canDisable.returns(false), mockRedeemSharesForSpecificAssetsPolicy.validateRule.returns(true), mockRedeemSharesForSpecificAssetsPolicy.implementedHooks.returns([protocol.PolicyHook.RedeemSharesForSpecificAssets]), mockRedeemSharesForSpecificAssetsPolicy.updateFundSettings.returns(undefined), // RemoveExternalPosition
3098
+ mockRemoveExternalPositionPolicy.identifier.returns("MOCK_REMOVE_EXTERNAL_POSITION"), mockRemoveExternalPositionPolicy.addFundSettings.returns(undefined), mockRemoveExternalPositionPolicy.activateForFund.returns(undefined), mockRemoveExternalPositionPolicy.canDisable.returns(false), mockRemoveExternalPositionPolicy.validateRule.returns(true), mockRemoveExternalPositionPolicy.implementedHooks.returns([protocol.PolicyHook.RedeemSharesForSpecificAssets]), mockRemoveExternalPositionPolicy.updateFundSettings.returns(undefined)]);
2393
3099
 
2394
3100
  case 27:
2395
3101
  return _context2.abrupt("return", {
@@ -2419,7 +3125,8 @@ function assertEvent(receipt, event, match) {
2419
3125
  var events = ethers$1.extractEvent(receipt, event);
2420
3126
  expect(events.length).toBe(1);
2421
3127
  expect(receipt).toHaveEmittedWith(event, match);
2422
- var args = (_events$shift = events.shift()) === null || _events$shift === void 0 ? void 0 : _events$shift.args;
3128
+ 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
3129
+
2423
3130
  return args;
2424
3131
  }
2425
3132
  function assertNoEvent(receipt, event) {
@@ -2572,14 +3279,15 @@ function _createComptrollerProxy() {
2572
3279
  switch (_context.prev = _context.next) {
2573
3280
  case 0:
2574
3281
  signer = _ref.signer, comptrollerLib = _ref.comptrollerLib, denominationAsset = _ref.denominationAsset, _ref$sharesActionTime = _ref.sharesActionTimelock, sharesActionTimelock = _ref$sharesActionTime === void 0 ? 0 : _ref$sharesActionTime;
2575
- constructData = protocol$1.encodeFunctionData(comptrollerLib.init.fragment, [denominationAsset, sharesActionTimelock]);
3282
+ constructData = protocol.encodeFunctionData(comptrollerLib.init.fragment, [denominationAsset, sharesActionTimelock]);
2576
3283
  _context.next = 4;
2577
- return protocol$1.ComptrollerProxy.deploy(signer, constructData, comptrollerLib);
3284
+ return protocol.ComptrollerProxy.deploy(signer, constructData, comptrollerLib);
2578
3285
 
2579
3286
  case 4:
2580
3287
  comptrollerProxyContract = _context.sent;
2581
3288
  return _context.abrupt("return", {
2582
- comptrollerProxy: new protocol$1.ComptrollerLib(comptrollerProxyContract, signer),
3289
+ comptrollerProxy: new protocol.ComptrollerLib(comptrollerProxyContract, signer),
3290
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2583
3291
  receipt: comptrollerProxyContract.deployment
2584
3292
  });
2585
3293
 
@@ -2612,16 +3320,14 @@ function _createMigrationRequest() {
2612
3320
  case 3:
2613
3321
  receipt = _context2.sent;
2614
3322
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2615
- creator: signer,
2616
3323
  comptrollerProxy: expect.any(String),
3324
+ creator: signer,
2617
3325
  denominationAsset: denominationAsset,
2618
- sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock),
2619
- feeManagerConfigData: ethers.utils.hexlify(feeManagerConfigData),
2620
- policyManagerConfigData: ethers.utils.hexlify(policyManagerConfigData)
3326
+ sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock)
2621
3327
  });
2622
3328
  return _context2.abrupt("return", {
2623
- receipt: receipt,
2624
- comptrollerProxy: new protocol$1.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3329
+ comptrollerProxy: new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3330
+ receipt: receipt
2625
3331
  });
2626
3332
 
2627
3333
  case 6:
@@ -2640,33 +3346,31 @@ function createNewFund(_x3) {
2640
3346
 
2641
3347
  function _createNewFund() {
2642
3348
  _createNewFund = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3(_ref3) {
2643
- 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;
3349
+ 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;
2644
3350
 
2645
3351
  return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
2646
3352
  while (1) {
2647
3353
  switch (_context3.prev = _context3.next) {
2648
3354
  case 0:
2649
- 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;
3355
+ 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;
2650
3356
  _context3.next = 3;
2651
- return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
3357
+ return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, fundSymbol, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
2652
3358
 
2653
3359
  case 3:
2654
3360
  receipt = _context3.sent;
2655
3361
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2656
- creator: signer,
2657
3362
  comptrollerProxy: expect.any(String),
3363
+ creator: signer,
2658
3364
  denominationAsset: denominationAsset,
2659
- sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock),
2660
- feeManagerConfigData: ethers.utils.hexlify(feeManagerConfig),
2661
- policyManagerConfigData: ethers.utils.hexlify(policyManagerConfig)
3365
+ sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock)
2662
3366
  });
2663
- comptrollerProxy = new protocol$1.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer);
3367
+ comptrollerProxy = new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer);
2664
3368
  newFundDeployedArgs = assertEvent(receipt, 'NewFundCreated', {
3369
+ comptrollerProxy: comptrollerProxy,
2665
3370
  creator: signer,
2666
- vaultProxy: expect.any(String),
2667
- comptrollerProxy: comptrollerProxy
3371
+ vaultProxy: expect.any(String)
2668
3372
  });
2669
- vaultProxy = new protocol$1.VaultLib(newFundDeployedArgs.vaultProxy, signer);
3373
+ vaultProxy = new protocol.VaultLib(newFundDeployedArgs.vaultProxy, signer);
2670
3374
 
2671
3375
  if (!(investment != null)) {
2672
3376
  _context3.next = 11;
@@ -2715,16 +3419,14 @@ function _createReconfigurationRequest() {
2715
3419
  case 3:
2716
3420
  receipt = _context4.sent;
2717
3421
  comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
2718
- creator: signer,
2719
3422
  comptrollerProxy: expect.any(String),
3423
+ creator: signer,
2720
3424
  denominationAsset: denominationAsset,
2721
- sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock),
2722
- feeManagerConfigData: ethers.utils.hexlify(feeManagerConfigData),
2723
- policyManagerConfigData: ethers.utils.hexlify(policyManagerConfigData)
3425
+ sharesActionTimelock: ethers.BigNumber.from(sharesActionTimelock)
2724
3426
  });
2725
3427
  return _context4.abrupt("return", {
2726
- receipt: receipt,
2727
- comptrollerProxy: new protocol$1.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer)
3428
+ comptrollerProxy: new protocol.ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3429
+ receipt: receipt
2728
3430
  });
2729
3431
 
2730
3432
  case 6:
@@ -2750,13 +3452,13 @@ function _createVaultProxy() {
2750
3452
  switch (_context5.prev = _context5.next) {
2751
3453
  case 0:
2752
3454
  signer = _ref5.signer, vaultLib = _ref5.vaultLib, fundOwner = _ref5.fundOwner, fundAccessor = _ref5.fundAccessor, _ref5$fundName = _ref5.fundName, fundName = _ref5$fundName === void 0 ? 'My Fund' : _ref5$fundName;
2753
- constructData = protocol$1.encodeFunctionData(vaultLib.init.fragment, [fundOwner, fundAccessor, fundName]);
3455
+ constructData = protocol.encodeFunctionData(vaultLib.init.fragment, [fundOwner, fundAccessor, fundName]);
2754
3456
  _context5.next = 4;
2755
- return protocol$1.VaultProxy.deploy(signer, constructData, vaultLib);
3457
+ return protocol.VaultProxy.deploy(signer, constructData, vaultLib);
2756
3458
 
2757
3459
  case 4:
2758
3460
  vaultProxyContract = _context5.sent;
2759
- return _context5.abrupt("return", new protocol$1.VaultLib(vaultProxyContract, fundAccessor));
3461
+ return _context5.abrupt("return", new protocol.VaultLib(vaultProxyContract, fundAccessor));
2760
3462
 
2761
3463
  case 6:
2762
3464
  case "end":
@@ -2785,7 +3487,7 @@ function _setupGasRelayerPaymaster() {
2785
3487
  return weth.transfer(vaultProxy, startingBalance);
2786
3488
 
2787
3489
  case 3:
2788
- comptrollerProxy = new protocol$1.ComptrollerLib(fundAccessor, signer);
3490
+ comptrollerProxy = new protocol.ComptrollerLib(fundAccessor, signer);
2789
3491
  _context6.next = 6;
2790
3492
  return comptrollerProxy.deployGasRelayPaymaster();
2791
3493
 
@@ -2794,7 +3496,7 @@ function _setupGasRelayerPaymaster() {
2794
3496
  eventArgs = assertEvent(receipt, 'GasRelayPaymasterSet', {
2795
3497
  gasRelayPaymaster: expect.any(String)
2796
3498
  });
2797
- return _context6.abrupt("return", new protocol$1.GasRelayPaymasterLib(eventArgs.gasRelayPaymaster, signer));
3499
+ return _context6.abrupt("return", new protocol.GasRelayPaymasterLib(eventArgs.gasRelayPaymaster, signer));
2798
3500
 
2799
3501
  case 9:
2800
3502
  case "end":
@@ -2806,29 +3508,68 @@ function _setupGasRelayerPaymaster() {
2806
3508
  return _setupGasRelayerPaymaster.apply(this, arguments);
2807
3509
  }
2808
3510
 
2809
- function vaultCallCurveMinterMint(_ref) {
2810
- var comptrollerProxy = _ref.comptrollerProxy,
2811
- minter = _ref.minter,
2812
- gauge = _ref.gauge;
2813
- return comptrollerProxy.vaultCallOnContract(minter, protocol$1.curveMinterMintSelector, protocol$1.encodeArgs(['address'], [gauge]));
3511
+ function vaultCallCreateNewList(_x) {
3512
+ return _vaultCallCreateNewList.apply(this, arguments);
3513
+ }
3514
+
3515
+ function _vaultCallCreateNewList() {
3516
+ _vaultCallCreateNewList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(_ref) {
3517
+ var addressListRegistry, comptrollerProxy, items, owner, signer, updateType, listCount;
3518
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
3519
+ while (1) {
3520
+ switch (_context.prev = _context.next) {
3521
+ case 0:
3522
+ addressListRegistry = _ref.addressListRegistry, comptrollerProxy = _ref.comptrollerProxy, items = _ref.items, owner = _ref.owner, signer = _ref.signer, updateType = _ref.updateType;
3523
+ _context.next = 3;
3524
+ return comptrollerProxy.connect(signer).vaultCallOnContract(addressListRegistry.address, protocol.addressListRegistryCreateListSelector, protocol.encodeArgs(['address', 'uint8', 'address[]'], [owner, updateType, items]));
3525
+
3526
+ case 3:
3527
+ _context.next = 5;
3528
+ return addressListRegistry.getListCount();
3529
+
3530
+ case 5:
3531
+ listCount = _context.sent;
3532
+ return _context.abrupt("return", listCount.sub(1));
3533
+
3534
+ case 7:
3535
+ case "end":
3536
+ return _context.stop();
3537
+ }
3538
+ }
3539
+ }, _callee);
3540
+ }));
3541
+ return _vaultCallCreateNewList.apply(this, arguments);
2814
3542
  }
2815
- function vaultCallCurveMinterMintMany(_ref2) {
3543
+
3544
+ function vaultCallCurveMinterMint(_ref2) {
2816
3545
  var comptrollerProxy = _ref2.comptrollerProxy,
2817
3546
  minter = _ref2.minter,
2818
- gauges = _ref2.gauges;
3547
+ gauge = _ref2.gauge;
3548
+ return comptrollerProxy.vaultCallOnContract(minter, protocol.curveMinterMintSelector, protocol.encodeArgs(['address'], [gauge]));
3549
+ }
3550
+ function vaultCallCurveMinterMintMany(_ref3) {
3551
+ var comptrollerProxy = _ref3.comptrollerProxy,
3552
+ minter = _ref3.minter,
3553
+ gauges = _ref3.gauges;
2819
3554
  var gaugesFormatted = new Array(8).fill(ethers.constants.AddressZero);
2820
3555
 
2821
3556
  for (var i in gauges) {
2822
3557
  gaugesFormatted[i] = gauges[i];
2823
3558
  }
2824
3559
 
2825
- return comptrollerProxy.vaultCallOnContract(minter, protocol$1.curveMinterMintManySelector, protocol$1.encodeArgs(['address[8]'], [gaugesFormatted]));
3560
+ return comptrollerProxy.vaultCallOnContract(minter, protocol.curveMinterMintManySelector, protocol.encodeArgs(['address[8]'], [gaugesFormatted]));
2826
3561
  }
2827
- function vaultCallCurveMinterToggleApproveMint(_ref3) {
2828
- var comptrollerProxy = _ref3.comptrollerProxy,
2829
- minter = _ref3.minter,
2830
- account = _ref3.account;
2831
- return comptrollerProxy.vaultCallOnContract(minter, protocol$1.curveMinterToggleApproveMintSelector, protocol$1.encodeArgs(['address'], [account]));
3562
+ function vaultCallCurveMinterToggleApproveMint(_ref4) {
3563
+ var comptrollerProxy = _ref4.comptrollerProxy,
3564
+ minter = _ref4.minter,
3565
+ account = _ref4.account;
3566
+ return comptrollerProxy.vaultCallOnContract(minter, protocol.curveMinterToggleApproveMintSelector, protocol.encodeArgs(['address'], [account]));
3567
+ }
3568
+ function vaultCallStartAssetBypassTimelock(_ref5) {
3569
+ var comptrollerProxy = _ref5.comptrollerProxy,
3570
+ contract = _ref5.contract,
3571
+ asset = _ref5.asset;
3572
+ return comptrollerProxy.vaultCallOnContract(contract, protocol.sighash(ethers.utils.FunctionFragment.fromString('startAssetBypassTimelock(address)')), protocol.encodeArgs(['address'], [asset]));
2832
3573
  }
2833
3574
 
2834
3575
  function transactionTimestamp(_x) {
@@ -2883,8 +3624,8 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
2883
3624
  // 50% discount
2884
3625
  mlnAmountToBurn = mlnValueOfBuyback.div(2);
2885
3626
  return _context2.abrupt("return", {
2886
- mlnValue: mlnValueOfBuyback,
2887
- mlnAmountToBurn: mlnAmountToBurn
3627
+ mlnAmountToBurn: mlnAmountToBurn,
3628
+ mlnValue: mlnValueOfBuyback
2888
3629
  });
2889
3630
 
2890
3631
  case 8:
@@ -2900,43 +3641,51 @@ function _calcMlnValueAndBurnAmountForSharesBuyback() {
2900
3641
  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; }
2901
3642
 
2902
3643
  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; }
3644
+
3645
+ /* eslint-disable sort-keys-fix/sort-keys-fix */
2903
3646
  var whales = {
2904
- wdgld: '0x9aa65464b4cfbe3dc2bdb3df412aee2b3de86687',
2905
- adai: '0x62e41b1185023bcc14a465d350e1dde341557925',
2906
- ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
3647
+ // primitives
2907
3648
  bat: '0x12274c71304bc0e6b38a56b94d2949b118feb838',
2908
3649
  bnb: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
2909
- bnt: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
2910
- comp: '0xC89b6f0146642688bb254bF93C28fcCF1E182C81',
3650
+ bnt: '0x7d1ed1601a12a172269436fa95fe156650603c1d',
3651
+ busd: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
3652
+ comp: '0x0f50d31b3eaefd65236dd3736b863cffa4c63c4e',
2911
3653
  crv: '0x4ce799e6eD8D64536b67dD428565d52A531B3640',
2912
- dai: '0x16463c0fdb6ba9618909f5b120ea1581618c1b9e',
2913
- knc: '0x9d1167df52328db20d5d77288dce6ae3ef3a3e1f',
2914
- ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
3654
+ dai: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
3655
+ knc: '0x09d51654bd9efbfcb56da3491989cc1444095fff',
2915
3656
  link: '0xbe6977e08d4479c0a6777539ae0e8fa27be4e9d6',
2916
3657
  mana: '0xefb94ac00f1cee8a89d5c3f49faa799da6f03024',
2917
3658
  mln: '0xd8f8a53945bcfbbc19da162aa405e662ef71c40d',
2918
3659
  rep: '0xc6a043b07d33b6f30d8cb501026c391cfd25abe1',
2919
3660
  ren: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3661
+ susd: '0xa5f7a39e55d7878bc5bd754ee5d6bd7a7662355b',
2920
3662
  uni: '0x47173b170c64d16393a52e6c480b3ad8c302ba1e',
2921
3663
  usdc: '0xae2d4617c862309a3d75a0ffb358c7a5009c673f',
2922
3664
  usdt: '0x5041ed759dd4afc3a72b8192c143f72f4724081a',
2923
3665
  weth: '0xe08A8b19e5722a201EaF20A6BC595eF655397bd5',
2924
3666
  zrx: '0x206376e8940e42538781cd94ef024df3c1e0fd43',
2925
- cbat: '0x285306442cd985cab2c30515cfdab106fca7bc44',
3667
+ // aTokens
3668
+ ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
3669
+ // cTokens
2926
3670
  ccomp: '0xd74f186194ab9219fafac5c2fe4b3270169666db',
2927
- cdai: '0x2bddEd18E2CA464355091266B7616956944ee7eE',
3671
+ cdai: '0xab4ce310054a11328685ece1043211b68ba5d082',
2928
3672
  ceth: '0x8aceab8167c80cb8b3de7fa6228b889bb1130ee8',
2929
- crep: '0xc2386de1b7271a87b416f4605d500846e826a185',
2930
- cuni: '0x8889ff5b6323e71c28c26d2c34b8bb52654f00a6',
3673
+ cuni: '0x39d8014b4f40d2cbc441137011d32023f4f1fd87',
2931
3674
  cusdc: '0xb3bd459e0598dde1fe84b1d0a1430be175b5d5be',
2932
- czrx: '0x57ca561798413a20508b6bc997481e784f3e6e5f',
3675
+ // ptTokens
3676
+ ptUsdc: '0xd18236cd213f39d078177b6f6908f0e44e88e4aa',
3677
+ // synths
2933
3678
  seth: '0xc34a7c65aa08cb36744bda8eeec7b8e9891e147c',
2934
- seur: '0xe896e539e557bc751860a7763c8dd589af1698ce',
2935
- susd: '0x49BE88F0fcC3A8393a59d3688480d7D253C37D2A',
3679
+ seur: '0xc3f2f91723b16b95bef0619b2504c049075d5b0b',
3680
+ sxag: '0x40d68c490bf7262ec40048099aec23535f734be2',
3681
+ sxau: '0x92eb453b7b5b8d41edb44e2c8b8b53eb70a482c7',
3682
+ // misc
2936
3683
  lidoSteth: '0x31f644e2dd5d74f5c8d6d9de89dd517474d51800',
2937
- eurs: '0x98ed26de6451db36246672df78ae7c50f2c76f6d',
2938
- idle: '0x34aaa3d5a73d6f9594326d0422ce69748f09b14f'
3684
+ ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
3685
+ eurs: '0x98ed26de6451db36246672df78ae7c50f2c76f6d'
2939
3686
  };
3687
+ /* eslint-enable sort-keys-fix/sort-keys-fix */
3688
+
2940
3689
  function unlockWhale(_x) {
2941
3690
  return _unlockWhale.apply(this, arguments);
2942
3691
  }
@@ -3087,7 +3836,7 @@ function _relayTransaction() {
3087
3836
  case 0:
3088
3837
  signer = options.sendFunction.contract.signer;
3089
3838
 
3090
- if (signer && protocol$1.isTypedDataSigner(signer)) {
3839
+ if (signer && protocol.isTypedDataSigner(signer)) {
3091
3840
  _context.next = 3;
3092
3841
  break;
3093
3842
  }
@@ -3096,7 +3845,7 @@ function _relayTransaction() {
3096
3845
 
3097
3846
  case 3:
3098
3847
  _context.next = 5;
3099
- return protocol$1.createSignedRelayRequest(options);
3848
+ return protocol.createSignedRelayRequest(options);
3100
3849
 
3101
3850
  case 5:
3102
3851
  _yield$createSignedRe = _context.sent;
@@ -3108,10 +3857,10 @@ function _relayTransaction() {
3108
3857
  defaultMaxAcceptance = ethers.BigNumber.from(150000); // NOTE: There is an inconsistency between how the typed data object shape and the relayCall argument.
3109
3858
 
3110
3859
  mergedRelayRequest = {
3111
- request: relayRequest,
3112
- relayData: relayData
3860
+ relayData: relayData,
3861
+ request: relayRequest
3113
3862
  };
3114
- relayHub = new protocol$1.IGsnRelayHub(options.relayHub, provider.getSigner(options.relayWorker));
3863
+ relayHub = new protocol.IGsnRelayHub(options.relayHub, provider.getSigner(options.relayWorker));
3115
3864
  return _context.abrupt("return", relayHub.relayCall.args(defaultMaxAcceptance, mergedRelayRequest, signedRelayRequest, '0x', defaultGasLimit).gas(defaultGasLimit, relayData.gasPrice).send());
3116
3865
 
3117
3866
  case 14:
@@ -3128,14 +3877,14 @@ var relayed = ethers.utils.EventFragment.fromString('TransactionRelayed(address
3128
3877
  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)');
3129
3878
  function assertDidRelay(receipt) {
3130
3879
  return assertEvent(receipt, relayed, {
3131
- relayManager: expect.any(String),
3132
- relayWorker: expect.any(String),
3880
+ charge: expect.anything(),
3133
3881
  from: expect.any(String),
3134
- to: expect.any(String),
3135
3882
  paymaster: expect.any(String),
3883
+ relayManager: expect.any(String),
3884
+ relayWorker: expect.any(String),
3136
3885
  selector: expect.any(String),
3137
3886
  status: expect.anything(),
3138
- charge: expect.anything()
3887
+ to: expect.any(String)
3139
3888
  });
3140
3889
  }
3141
3890
  function assertDidRelaySuccessfully(receipt) {
@@ -3152,14 +3901,14 @@ function assertDidRelayWithCharge(receipt, amount, tolerance) {
3152
3901
  }
3153
3902
  function assertPaymasterDidReject(receipt) {
3154
3903
  return assertEvent(receipt, rejected, {
3155
- relayManager: expect.any(String),
3156
- paymaster: expect.any(String),
3157
3904
  from: expect.any(String),
3158
- to: expect.any(String),
3905
+ innerGasUsed: expect.anything(),
3906
+ paymaster: expect.any(String),
3907
+ reason: expect.any(String),
3908
+ relayManager: expect.any(String),
3159
3909
  relayWorker: expect.any(String),
3160
3910
  selector: expect.any(String),
3161
- innerGasUsed: expect.anything(),
3162
- reason: expect.any(String)
3911
+ to: expect.any(String)
3163
3912
  });
3164
3913
  }
3165
3914
  function assertPaymasterDidRejectForReason(receipt, reason) {
@@ -3171,10 +3920,10 @@ exports.CurveLiquidityGaugeV2 = CurveLiquidityGaugeV2;
3171
3920
  exports.CurveMinter = CurveMinter;
3172
3921
  exports.CurveSwaps = CurveSwaps;
3173
3922
  exports.ICompoundComptroller = ICompoundComptroller;
3923
+ exports.IUniswapV3NonFungibleTokenManager = IUniswapV3NonFungibleTokenManager;
3174
3924
  exports.UniswapV2Factory = UniswapV2Factory;
3175
3925
  exports.aaveLend = aaveLend;
3176
3926
  exports.aaveRedeem = aaveRedeem;
3177
- exports.addCollateral = addCollateral;
3178
3927
  exports.addNewAssetsToFund = addNewAssetsToFund;
3179
3928
  exports.addTrackedAssetsToVault = addTrackedAssetsToVault;
3180
3929
  exports.assertDidRelay = assertDidRelay;
@@ -3185,14 +3934,19 @@ exports.assertEvent = assertEvent;
3185
3934
  exports.assertNoEvent = assertNoEvent;
3186
3935
  exports.assertPaymasterDidReject = assertPaymasterDidReject;
3187
3936
  exports.assertPaymasterDidRejectForReason = assertPaymasterDidRejectForReason;
3188
- exports.borrow = borrow;
3189
3937
  exports.buyShares = buyShares;
3190
3938
  exports.buySharesFunction = buySharesFunction;
3191
3939
  exports.calcMlnValueAndBurnAmountForSharesBuyback = calcMlnValueAndBurnAmountForSharesBuyback;
3192
3940
  exports.callOnExtension = callOnExtension;
3193
- exports.claimComp = claimComp;
3941
+ exports.callOnExternalPosition = callOnExternalPosition;
3942
+ exports.compoundDebtPositionAddCollateral = compoundDebtPositionAddCollateral;
3943
+ exports.compoundDebtPositionBorrow = compoundDebtPositionBorrow;
3944
+ exports.compoundDebtPositionClaimComp = compoundDebtPositionClaimComp;
3945
+ exports.compoundDebtPositionRemoveCollateral = compoundDebtPositionRemoveCollateral;
3946
+ exports.compoundDebtPositionRepayBorrow = compoundDebtPositionRepayBorrow;
3194
3947
  exports.compoundLend = compoundLend;
3195
3948
  exports.compoundRedeem = compoundRedeem;
3949
+ exports.createCompoundDebtPosition = createCompoundDebtPosition;
3196
3950
  exports.createComptrollerProxy = createComptrollerProxy;
3197
3951
  exports.createExternalPosition = createExternalPosition;
3198
3952
  exports.createFundDeployer = createFundDeployer;
@@ -3200,6 +3954,7 @@ exports.createMigrationRequest = createMigrationRequest;
3200
3954
  exports.createMockExternalPosition = createMockExternalPosition;
3201
3955
  exports.createNewFund = createNewFund;
3202
3956
  exports.createReconfigurationRequest = createReconfigurationRequest;
3957
+ exports.createUniswapV3LiquidityPosition = createUniswapV3LiquidityPosition;
3203
3958
  exports.createVaultProxy = createVaultProxy;
3204
3959
  exports.curveAaveClaimRewards = curveAaveClaimRewards;
3205
3960
  exports.curveAaveLend = curveAaveLend;
@@ -3230,7 +3985,6 @@ exports.curveStethStake = curveStethStake;
3230
3985
  exports.curveStethUnstake = curveStethUnstake;
3231
3986
  exports.curveStethUnstakeAndRedeem = curveStethUnstakeAndRedeem;
3232
3987
  exports.curveTakeOrder = curveTakeOrder;
3233
- exports.defaultTestDeployment = defaultTestDeployment;
3234
3988
  exports.deployProtocolFixture = deployProtocolFixture;
3235
3989
  exports.generateFeeManagerConfigWithMockFees = generateFeeManagerConfigWithMockFees;
3236
3990
  exports.generateMockFees = generateMockFees;
@@ -3243,6 +3997,10 @@ exports.getUnnamedSigners = getUnnamedSigners;
3243
3997
  exports.idleClaimRewards = idleClaimRewards;
3244
3998
  exports.idleLend = idleLend;
3245
3999
  exports.idleRedeem = idleRedeem;
4000
+ exports.mockExternalPositionAddDebtAssets = mockExternalPositionAddDebtAssets;
4001
+ exports.mockExternalPositionAddManagedAssets = mockExternalPositionAddManagedAssets;
4002
+ exports.mockExternalPositionRemoveDebtAssets = mockExternalPositionRemoveDebtAssets;
4003
+ exports.mockExternalPositionRemoveManagedAssets = mockExternalPositionRemoveManagedAssets;
3246
4004
  exports.mockGenericRemoveOnlySelector = mockGenericRemoveOnlySelector;
3247
4005
  exports.mockGenericSwap = mockGenericSwap;
3248
4006
  exports.mockGenericSwapASelector = mockGenericSwapASelector;
@@ -3252,29 +4010,44 @@ exports.mockGenericSwapDirectFromVaultSelector = mockGenericSwapDirectFromVaultS
3252
4010
  exports.mockGenericSwapViaApprovalSelector = mockGenericSwapViaApprovalSelector;
3253
4011
  exports.paraSwapV4GenerateDummyPaths = paraSwapV4GenerateDummyPaths;
3254
4012
  exports.paraSwapV4TakeOrder = paraSwapV4TakeOrder;
4013
+ exports.paraSwapV5GenerateDummyPaths = paraSwapV5GenerateDummyPaths;
4014
+ exports.paraSwapV5TakeOrder = paraSwapV5TakeOrder;
4015
+ exports.poolTogetherV4ClaimRewards = poolTogetherV4ClaimRewards;
4016
+ exports.poolTogetherV4Lend = poolTogetherV4Lend;
4017
+ exports.poolTogetherV4Redeem = poolTogetherV4Redeem;
4018
+ exports.reactivateExternalPosition = reactivateExternalPosition;
3255
4019
  exports.redeemSharesForSpecificAssets = redeemSharesForSpecificAssets;
3256
4020
  exports.redeemSharesInKind = redeemSharesInKind;
3257
4021
  exports.relayTransaction = relayTransaction;
3258
- exports.removeCollateral = removeCollateral;
3259
4022
  exports.removeExternalPosition = removeExternalPosition;
3260
4023
  exports.removeTrackedAssetsFromVault = removeTrackedAssetsFromVault;
3261
- exports.repayBorrow = repayBorrow;
3262
4024
  exports.setupGasRelayerPaymaster = setupGasRelayerPaymaster;
3263
4025
  exports.synthetixAssignExchangeDelegate = synthetixAssignExchangeDelegate;
4026
+ exports.synthetixRedeem = synthetixRedeem;
3264
4027
  exports.synthetixResolveAddress = synthetixResolveAddress;
3265
4028
  exports.synthetixTakeOrder = synthetixTakeOrder;
3266
4029
  exports.transactionTimestamp = transactionTimestamp;
3267
4030
  exports.uniswapV2Lend = uniswapV2Lend;
3268
4031
  exports.uniswapV2Redeem = uniswapV2Redeem;
3269
4032
  exports.uniswapV2TakeOrder = uniswapV2TakeOrder;
4033
+ exports.uniswapV3LiquidityPositionAddLiquidity = uniswapV3LiquidityPositionAddLiquidity;
4034
+ exports.uniswapV3LiquidityPositionCollect = uniswapV3LiquidityPositionCollect;
4035
+ exports.uniswapV3LiquidityPositionGetMaxTick = uniswapV3LiquidityPositionGetMaxTick;
4036
+ exports.uniswapV3LiquidityPositionGetMinTick = uniswapV3LiquidityPositionGetMinTick;
4037
+ exports.uniswapV3LiquidityPositionMint = uniswapV3LiquidityPositionMint;
4038
+ exports.uniswapV3LiquidityPositionPurge = uniswapV3LiquidityPositionPurge;
4039
+ exports.uniswapV3LiquidityPositionRemoveLiquidity = uniswapV3LiquidityPositionRemoveLiquidity;
4040
+ exports.uniswapV3OrderTokenPair = uniswapV3OrderTokenPair;
3270
4041
  exports.uniswapV3TakeOrder = uniswapV3TakeOrder;
3271
4042
  exports.unlockAllWhales = unlockAllWhales;
3272
4043
  exports.unlockWhale = unlockWhale;
3273
4044
  exports.unlockWhales = unlockWhales;
3274
4045
  exports.updateChainlinkAggregator = updateChainlinkAggregator;
4046
+ exports.vaultCallCreateNewList = vaultCallCreateNewList;
3275
4047
  exports.vaultCallCurveMinterMint = vaultCallCurveMinterMint;
3276
4048
  exports.vaultCallCurveMinterMintMany = vaultCallCurveMinterMintMany;
3277
4049
  exports.vaultCallCurveMinterToggleApproveMint = vaultCallCurveMinterToggleApproveMint;
4050
+ exports.vaultCallStartAssetBypassTimelock = vaultCallStartAssetBypassTimelock;
3278
4051
  exports.yearnVaultV2Lend = yearnVaultV2Lend;
3279
4052
  exports.yearnVaultV2Redeem = yearnVaultV2Redeem;
3280
4053
  exports.zeroExV2TakeOrder = zeroExV2TakeOrder;