@enzymefinance/testutils 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. package/dist/index.d.ts +1548 -0
  2. package/dist/index.js +3352 -0
  3. package/dist/index.mjs +3352 -0
  4. package/package.json +74 -11
  5. package/CHANGELOG.md +0 -84
  6. package/dist/declarations/src/assertions.d.ts +0 -4
  7. package/dist/declarations/src/deployment.d.ts +0 -188
  8. package/dist/declarations/src/gasRelayer.d.ts +0 -56
  9. package/dist/declarations/src/helpers.d.ts +0 -16
  10. package/dist/declarations/src/index.d.ts +0 -6
  11. package/dist/declarations/src/scaffolding/assets.d.ts +0 -10
  12. package/dist/declarations/src/scaffolding/chainlink.d.ts +0 -3
  13. package/dist/declarations/src/scaffolding/common.d.ts +0 -7
  14. package/dist/declarations/src/scaffolding/core.d.ts +0 -16
  15. package/dist/declarations/src/scaffolding/extensions/common.d.ts +0 -11
  16. package/dist/declarations/src/scaffolding/extensions/external-positions/aave-debt.d.ts +0 -51
  17. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +0 -36
  18. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +0 -56
  19. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +0 -5
  20. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +0 -56
  21. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +0 -100
  22. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +0 -12
  23. package/dist/declarations/src/scaffolding/extensions/index.d.ts +0 -5
  24. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +0 -20
  25. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +0 -56
  26. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +0 -106
  27. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +0 -28
  28. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +0 -14
  29. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +0 -32
  30. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +0 -17
  31. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +0 -23
  32. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +0 -29
  33. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +0 -28
  34. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +0 -15
  35. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +0 -46
  36. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +0 -15
  37. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +0 -22
  38. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +0 -12
  39. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +0 -17
  40. package/dist/declarations/src/scaffolding/index.d.ts +0 -8
  41. package/dist/declarations/src/scaffolding/setup.d.ts +0 -77
  42. package/dist/declarations/src/scaffolding/shares.d.ts +0 -35
  43. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +0 -32
  44. package/dist/declarations/src/whales.d.ts +0 -49
  45. package/dist/enzymefinance-testutils.browser.cjs.js +0 -4158
  46. package/dist/enzymefinance-testutils.browser.esm.js +0 -4028
  47. package/dist/enzymefinance-testutils.cjs.d.ts +0 -1
  48. package/dist/enzymefinance-testutils.cjs.dev.js +0 -4158
  49. package/dist/enzymefinance-testutils.cjs.js +0 -7
  50. package/dist/enzymefinance-testutils.cjs.prod.js +0 -4158
  51. package/dist/enzymefinance-testutils.esm.js +0 -4028
  52. package/src/assertions.ts +0 -23
  53. package/src/deployment.ts +0 -280
  54. package/src/gasRelayer.ts +0 -95
  55. package/src/helpers.ts +0 -39
  56. package/src/index.ts +0 -6
  57. package/src/scaffolding/assets.ts +0 -37
  58. package/src/scaffolding/chainlink.ts +0 -8
  59. package/src/scaffolding/common.ts +0 -11
  60. package/src/scaffolding/core.ts +0 -103
  61. package/src/scaffolding/extensions/common.ts +0 -30
  62. package/src/scaffolding/extensions/external-positions/aave-debt.ts +0 -179
  63. package/src/scaffolding/extensions/external-positions/actions.ts +0 -108
  64. package/src/scaffolding/extensions/external-positions/compound.ts +0 -190
  65. package/src/scaffolding/extensions/external-positions/index.ts +0 -5
  66. package/src/scaffolding/extensions/external-positions/mocks.ts +0 -191
  67. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +0 -284
  68. package/src/scaffolding/extensions/fees.ts +0 -70
  69. package/src/scaffolding/extensions/index.ts +0 -5
  70. package/src/scaffolding/extensions/integrations/aave.ts +0 -78
  71. package/src/scaffolding/extensions/integrations/compound.ts +0 -255
  72. package/src/scaffolding/extensions/integrations/curve.ts +0 -354
  73. package/src/scaffolding/extensions/integrations/idle.ts +0 -104
  74. package/src/scaffolding/extensions/integrations/index.ts +0 -14
  75. package/src/scaffolding/extensions/integrations/mock.ts +0 -116
  76. package/src/scaffolding/extensions/integrations/olympusV2.ts +0 -71
  77. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +0 -73
  78. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +0 -117
  79. package/src/scaffolding/extensions/integrations/synthetix.ts +0 -111
  80. package/src/scaffolding/extensions/integrations/trackedAssets.ts +0 -48
  81. package/src/scaffolding/extensions/integrations/uniswapV2.ts +0 -175
  82. package/src/scaffolding/extensions/integrations/uniswapV3.ts +0 -55
  83. package/src/scaffolding/extensions/integrations/yearn.ts +0 -79
  84. package/src/scaffolding/extensions/integrations/zeroExV2.ts +0 -47
  85. package/src/scaffolding/extensions/policies.ts +0 -112
  86. package/src/scaffolding/index.ts +0 -8
  87. package/src/scaffolding/setup.ts +0 -243
  88. package/src/scaffolding/shares.ts +0 -80
  89. package/src/scaffolding/vaultCalls.ts +0 -105
  90. package/src/types.d.ts +0 -2
  91. package/src/whales.ts +0 -82
  92. package/tsconfig.json +0 -5
@@ -1,4028 +0,0 @@
1
- import _asyncToGenerator from '@babel/runtime/helpers/esm/asyncToGenerator';
2
- import _regeneratorRuntime from '@babel/runtime/regenerator';
3
- import { AaveAdapter, AaveDebtPositionLib, AaveDebtPositionParser, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, ConvexCurveLpStakingAdapter, ConvexCurveLpStakingWrapperFactory, ConvexCurveLpStakingWrapperPriceFeed, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, FuseAdapter, FusePriceFeed, GasRelayPaymasterFactory, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, ManagementFee, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, OlympusV2Adapter, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, SynthetixAdapter, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV2PoolPriceFeed, UniswapV3Adapter, UnpermissionedActionsWrapper, UsdEthSimulatedAggregator, ValueInterpreter, VaultLib, YearnVaultV2Adapter, YearnVaultV2PriceFeed, ZeroExV2Adapter, IntegrationManagerActionId, addTrackedAssetsToVaultArgs, removeTrackedAssetsFromVaultArgs, StandardToken, callOnExternalPositionArgs, ExternalPositionManagerActionId, IExternalPositionProxy, encodeArgs, externalPositionReactivateArgs, externalPositionRemoveArgs, compoundExternalPositionActionArgs, CompoundDebtPositionActionId, ExternalPositionType, MockGenericExternalPositionParser, MockGenericExternalPositionLib, mockGenericExternalPositionActionArgs, MockGenericExternalPositionActionId, aaveDebtPositionAddCollateralArgs, AaveDebtPositionActionId, aaveDebtPositionBorrowArgs, aaveDebtPositionClaimRewardsArgs, aaveDebtPositionRemoveCollateralArgs, aaveDebtPositionRepayBorrowArgs, uniswapV3LiquidityPositionAddLiquidityArgs, UniswapV3LiquidityPositionActionId, uniswapV3LiquidityPositionCollectArgs, UniswapV3LiquidityPositionLib, uniswapV3LiquidityPositionMintArgs, uniswapV3LiquidityPositionPurgeArgs, uniswapV3LiquidityPositionRemoveLiquidityArgs, feeManagerConfigArgs, FeeSettlementType, FeeHook, IFee, aaveLendArgs, callOnIntegrationArgs, lendSelector, aaveRedeemArgs, redeemSelector, compoundClaimRewardsArgs, claimRewardsSelector, compoundArgs, curveTakeOrderArgs, takeOrderSelector, curveClaimRewardsArgs, curveLendArgs, curveLendAndStakeArgs, lendAndStakeSelector, curveRedeemArgs, curveStakeArgs, stakeSelector, curveUnstakeArgs, unstakeSelector, curveUnstakeAndRedeemArgs, unstakeAndRedeemSelector, idleClaimRewardsArgs, idleLendArgs, idleRedeemArgs, sighash, olympusV2StakeArgs, olympusV2UnstakeArgs, paraSwapV5TakeOrderArgs, poolTogetherV4LendArgs, poolTogetherV4RedeemArgs, poolTogetherV4ClaimRewardsArgs, synthetixAssignExchangeDelegateSelector, synthetixRedeemArgs, synthetixTakeOrderArgs, uniswapV2LendArgs, uniswapV2RedeemArgs, uniswapV2TakeOrderArgs, uniswapV3TakeOrderArgs, yearnVaultV2LendArgs, yearnVaultV2RedeemArgs, zeroExV2TakeOrderArgs, policyManagerConfigArgs, PolicyHook, IPolicy, encodeFunctionData, ComptrollerProxy, VaultProxy, GasRelayPaymasterLib, addressListRegistryCreateListSelector, curveMinterMintSelector, curveMinterMintManySelector, curveMinterToggleApproveMintSelector, IGsnRelayHub, createSignedRelayRequest, isTypedDataSigner } from '@enzymefinance/protocol';
4
- import { utils, constants, BigNumber } from 'ethers';
5
- import { extractEvent, contract, resolveAddress, randomAddress } from '@enzymefinance/ethers';
6
- import _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';
7
- import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
8
- import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';
9
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
10
-
11
- function getNamedSigner(_x) {
12
- return _getNamedSigner.apply(this, arguments);
13
- }
14
-
15
- function _getNamedSigner() {
16
- _getNamedSigner = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(name) {
17
- var accounts;
18
- return _regeneratorRuntime.wrap(function _callee$(_context) {
19
- while (1) {
20
- switch (_context.prev = _context.next) {
21
- case 0:
22
- _context.next = 2;
23
- return hre.getNamedAccounts();
24
-
25
- case 2:
26
- accounts = _context.sent;
27
-
28
- if (accounts[name]) {
29
- _context.next = 5;
30
- break;
31
- }
32
-
33
- throw new Error("Missing account with name ".concat(name));
34
-
35
- case 5:
36
- return _context.abrupt("return", provider.getSignerWithAddress(accounts[name]));
37
-
38
- case 6:
39
- case "end":
40
- return _context.stop();
41
- }
42
- }
43
- }, _callee);
44
- }));
45
- return _getNamedSigner.apply(this, arguments);
46
- }
47
-
48
- function getUnnamedSigners() {
49
- return _getUnnamedSigners.apply(this, arguments);
50
- }
51
-
52
- function _getUnnamedSigners() {
53
- _getUnnamedSigners = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
54
- var accounts;
55
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
56
- while (1) {
57
- switch (_context2.prev = _context2.next) {
58
- case 0:
59
- _context2.next = 2;
60
- return hre.getUnnamedAccounts();
61
-
62
- case 2:
63
- accounts = _context2.sent;
64
- return _context2.abrupt("return", Promise.all(accounts.map(function (account) {
65
- return provider.getSignerWithAddress(account);
66
- })));
67
-
68
- case 4:
69
- case "end":
70
- return _context2.stop();
71
- }
72
- }
73
- }, _callee2);
74
- }));
75
- return _getUnnamedSigners.apply(this, arguments);
76
- }
77
-
78
- function deployProtocolFixture() {
79
- return _deployProtocolFixture.apply(this, arguments);
80
- }
81
-
82
- function _deployProtocolFixture() {
83
- _deployProtocolFixture = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
84
- var fixture, deployer, accounts, config, deployment;
85
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
86
- while (1) {
87
- switch (_context3.prev = _context3.next) {
88
- case 0:
89
- _context3.next = 2;
90
- return hre.deployments.fixture();
91
-
92
- case 2:
93
- fixture = _context3.sent;
94
- _context3.next = 5;
95
- return getNamedSigner('deployer');
96
-
97
- case 5:
98
- deployer = _context3.sent;
99
- _context3.next = 8;
100
- return getUnnamedSigners();
101
-
102
- case 8:
103
- accounts = _context3.sent;
104
- config = fixture['Config'].linkedData; // prettier-ignore
105
-
106
- deployment = {
107
- aaveAdapter: new AaveAdapter(fixture['AaveAdapter'].address, deployer),
108
- aaveDebtPositionLib: new AaveDebtPositionLib(fixture['AaveDebtPositionLib'].address, deployer),
109
- aaveDebtPositionParser: new AaveDebtPositionParser(fixture['AaveDebtPositionParser'].address, deployer),
110
- aavePriceFeed: new AavePriceFeed(fixture['AavePriceFeed'].address, deployer),
111
- addressListRegistry: new AddressListRegistry(fixture['AddressListRegistry'].address, deployer),
112
- allowedAdapterIncomingAssetsPolicy: new AllowedAdapterIncomingAssetsPolicy(fixture['AllowedAdapterIncomingAssetsPolicy'].address, deployer),
113
- allowedAdaptersPolicy: new AllowedAdaptersPolicy(fixture['AllowedAdaptersPolicy'].address, deployer),
114
- allowedAssetsForRedemptionPolicy: new AllowedAssetsForRedemptionPolicy(fixture['AllowedAssetsForRedemptionPolicy'].address, deployer),
115
- allowedDepositRecipientsPolicy: new AllowedDepositRecipientsPolicy(fixture['AllowedDepositRecipientsPolicy'].address, deployer),
116
- allowedExternalPositionTypesPolicy: new AllowedExternalPositionTypesPolicy(fixture['AllowedExternalPositionTypesPolicy'].address, deployer),
117
- allowedSharesTransferRecipientsPolicy: new AllowedSharesTransferRecipientsPolicy(fixture['AllowedSharesTransferRecipientsPolicy'].address, deployer),
118
- compoundAdapter: new CompoundAdapter(fixture['CompoundAdapter'].address, deployer),
119
- compoundDebtPositionLib: new CompoundDebtPositionLib(fixture['CompoundDebtPositionLib'].address, deployer),
120
- compoundDebtPositionParser: new CompoundDebtPositionParser(fixture['CompoundDebtPositionParser'].address, deployer),
121
- compoundPriceFeed: new CompoundPriceFeed(fixture['CompoundPriceFeed'].address, deployer),
122
- comptrollerLib: new ComptrollerLib(fixture['ComptrollerLib'].address, deployer),
123
- convexCurveLpStakingAdapter: new ConvexCurveLpStakingAdapter(fixture['ConvexCurveLpStakingAdapter'].address, deployer),
124
- convexCurveLpStakingWrapperFactory: new ConvexCurveLpStakingWrapperFactory(fixture['ConvexCurveLpStakingWrapperFactory'].address, deployer),
125
- convexCurveLpStakingWrapperPriceFeed: new ConvexCurveLpStakingWrapperPriceFeed(fixture['ConvexCurveLpStakingWrapperPriceFeed'].address, deployer),
126
- cumulativeSlippageTolerancePolicy: new CumulativeSlippageTolerancePolicy(fixture['CumulativeSlippageTolerancePolicy'].address, deployer),
127
- curveExchangeAdapter: new CurveExchangeAdapter(fixture['CurveExchangeAdapter'].address, deployer),
128
- curveLiquidityAdapter: new CurveLiquidityAdapter(fixture['CurveLiquidityAdapter'].address, deployer),
129
- curvePriceFeed: new CurvePriceFeed(fixture['CurvePriceFeed'].address, deployer),
130
- depositWrapper: new DepositWrapper(fixture['DepositWrapper'].address, deployer),
131
- dispatcher: new Dispatcher(fixture['Dispatcher'].address, deployer),
132
- entranceRateBurnFee: new EntranceRateBurnFee(fixture['EntranceRateBurnFee'].address, deployer),
133
- entranceRateDirectFee: new EntranceRateDirectFee(fixture['EntranceRateDirectFee'].address, deployer),
134
- exitRateBurnFee: new ExitRateBurnFee(fixture['ExitRateBurnFee'].address, deployer),
135
- exitRateDirectFee: new ExitRateDirectFee(fixture['ExitRateDirectFee'].address, deployer),
136
- externalPositionFactory: new ExternalPositionFactory(fixture['ExternalPositionFactory'].address, deployer),
137
- externalPositionManager: new ExternalPositionManager(fixture['ExternalPositionManager'].address, deployer),
138
- feeManager: new FeeManager(fixture['FeeManager'].address, deployer),
139
- fundDeployer: new FundDeployer(fixture['FundDeployer'].address, deployer),
140
- fundValueCalculator: new FundValueCalculator(fixture['FundValueCalculator'].address, deployer),
141
- fundValueCalculatorRouter: new FundValueCalculatorRouter(fixture['FundValueCalculatorRouter'].address, deployer),
142
- fundValueCalculatorUsdWrapper: new FundValueCalculatorUsdWrapper(fixture['FundValueCalculatorUsdWrapper'].address, deployer),
143
- fuseAdapter: new FuseAdapter(fixture['FuseAdapter'].address, deployer),
144
- fusePriceFeed: new FusePriceFeed(fixture['FusePriceFeed'].address, deployer),
145
- gasRelayPaymasterFactory: new GasRelayPaymasterFactory(fixture['GasRelayPaymasterFactory'].address, deployer),
146
- idleAdapter: new IdleAdapter(fixture['IdleAdapter'].address, deployer),
147
- idlePriceFeed: new IdlePriceFeed(fixture['IdlePriceFeed'].address, deployer),
148
- integrationManager: new IntegrationManager(fixture['IntegrationManager'].address, deployer),
149
- lidoStethPriceFeed: new LidoStethPriceFeed(fixture['LidoStethPriceFeed'].address, deployer),
150
- managementFee: new ManagementFee(fixture['ManagementFee'].address, deployer),
151
- minAssetBalancesPostRedemptionPolicy: new MinAssetBalancesPostRedemptionPolicy(fixture['MinAssetBalancesPostRedemptionPolicy'].address, deployer),
152
- minMaxInvestmentPolicy: new MinMaxInvestmentPolicy(fixture['MinMaxInvestmentPolicy'].address, deployer),
153
- olympusV2Adapter: new OlympusV2Adapter(fixture['OlympusV2Adapter'].address, deployer),
154
- onlyRemoveDustExternalPositionPolicy: new OnlyRemoveDustExternalPositionPolicy(fixture['OnlyRemoveDustExternalPositionPolicy'].address, deployer),
155
- onlyUntrackDustOrPricelessAssetsPolicy: new OnlyUntrackDustOrPricelessAssetsPolicy(fixture['OnlyUntrackDustOrPricelessAssetsPolicy'].address, deployer),
156
- paraSwapV5Adapter: new ParaSwapV5Adapter(fixture['ParaSwapV5Adapter'].address, deployer),
157
- performanceFee: new PerformanceFee(fixture['PerformanceFee'].address, deployer),
158
- policyManager: new PolicyManager(fixture['PolicyManager'].address, deployer),
159
- poolTogetherV4Adapter: new PoolTogetherV4Adapter(fixture['PoolTogetherV4Adapter'].address, deployer),
160
- poolTogetherV4PriceFeed: new PoolTogetherV4PriceFeed(fixture['PoolTogetherV4PriceFeed'].address, deployer),
161
- protocolFeeReserveLib: new ProtocolFeeReserveLib(fixture['ProtocolFeeReserveLib'].address, deployer),
162
- protocolFeeReserveProxy: new ProtocolFeeReserveLib(fixture['ProtocolFeeReserveProxy'].address, deployer),
163
- protocolFeeTracker: new ProtocolFeeTracker(fixture['ProtocolFeeTracker'].address, deployer),
164
- revertingPriceFeed: new RevertingPriceFeed(fixture['RevertingPriceFeed'].address, deployer),
165
- synthetixAdapter: new SynthetixAdapter(fixture['SynthetixAdapter'].address, deployer),
166
- uniswapV2ExchangeAdapter: new UniswapV2ExchangeAdapter(fixture['UniswapV2ExchangeAdapter'].address, deployer),
167
- uniswapV2LiquidityAdapter: new UniswapV2LiquidityAdapter(fixture['UniswapV2LiquidityAdapter'].address, deployer),
168
- uniswapV2PoolPriceFeed: new UniswapV2PoolPriceFeed(fixture['UniswapV2PoolPriceFeed'].address, deployer),
169
- uniswapV3Adapter: new UniswapV3Adapter(fixture['UniswapV3Adapter'].address, deployer),
170
- unpermissionedActionsWrapper: new UnpermissionedActionsWrapper(fixture['UnpermissionedActionsWrapper'].address, deployer),
171
- usdEthSimulatedAggregator: new UsdEthSimulatedAggregator(fixture['UsdEthSimulatedAggregator'].address, deployer),
172
- valueInterpreter: new ValueInterpreter(fixture['ValueInterpreter'].address, deployer),
173
- vaultLib: new VaultLib(fixture['VaultLib'].address, deployer),
174
- yearnVaultV2Adapter: new YearnVaultV2Adapter(fixture['YearnVaultV2Adapter'].address, deployer),
175
- yearnVaultV2PriceFeed: new YearnVaultV2PriceFeed(fixture['YearnVaultV2PriceFeed'].address, deployer),
176
- zeroExV2Adapter: new ZeroExV2Adapter(fixture['ZeroExV2Adapter'].address, deployer)
177
- };
178
- return _context3.abrupt("return", {
179
- accounts: accounts,
180
- config: config,
181
- deployer: deployer,
182
- deployment: deployment
183
- });
184
-
185
- case 12:
186
- case "end":
187
- return _context3.stop();
188
- }
189
- }
190
- }, _callee3);
191
- }));
192
- return _deployProtocolFixture.apply(this, arguments);
193
- }
194
-
195
- function addTrackedAssetsToVault(_ref) {
196
- var signer = _ref.signer,
197
- comptrollerProxy = _ref.comptrollerProxy,
198
- integrationManager = _ref.integrationManager,
199
- assets = _ref.assets;
200
- return comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.AddTrackedAssetsToVault, addTrackedAssetsToVaultArgs({
201
- assets: assets
202
- }));
203
- }
204
- function removeTrackedAssetsFromVault(_ref2) {
205
- var signer = _ref2.signer,
206
- comptrollerProxy = _ref2.comptrollerProxy,
207
- integrationManager = _ref2.integrationManager,
208
- assets = _ref2.assets;
209
- return comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.RemoveTrackedAssetsFromVault, removeTrackedAssetsFromVaultArgs({
210
- assets: assets
211
- }));
212
- }
213
-
214
- function addNewAssetsToFund(_x) {
215
- return _addNewAssetsToFund.apply(this, arguments);
216
- }
217
-
218
- function _addNewAssetsToFund() {
219
- _addNewAssetsToFund = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
220
- var signer, comptrollerProxy, integrationManager, assets, _ref$amounts, amounts, receipt, vaultProxy, i;
221
-
222
- return _regeneratorRuntime.wrap(function _callee$(_context) {
223
- while (1) {
224
- switch (_context.prev = _context.next) {
225
- case 0:
226
- 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;
227
- // First, add tracked assets
228
- receipt = addTrackedAssetsToVault({
229
- assets: assets,
230
- comptrollerProxy: comptrollerProxy,
231
- integrationManager: integrationManager,
232
- signer: signer
233
- }); // Then seed the vault with balances as necessary
234
-
235
- _context.next = 4;
236
- return comptrollerProxy.getVaultProxy();
237
-
238
- case 4:
239
- vaultProxy = _context.sent;
240
- _context.t0 = _regeneratorRuntime.keys(assets);
241
-
242
- case 6:
243
- if ((_context.t1 = _context.t0()).done) {
244
- _context.next = 13;
245
- break;
246
- }
247
-
248
- i = _context.t1.value;
249
-
250
- if (!(amounts[i] > 0)) {
251
- _context.next = 11;
252
- break;
253
- }
254
-
255
- _context.next = 11;
256
- return assets[i].transfer(vaultProxy, amounts[i]);
257
-
258
- case 11:
259
- _context.next = 6;
260
- break;
261
-
262
- case 13:
263
- return _context.abrupt("return", receipt);
264
-
265
- case 14:
266
- case "end":
267
- return _context.stop();
268
- }
269
- }
270
- }, _callee);
271
- }));
272
- return _addNewAssetsToFund.apply(this, arguments);
273
- }
274
-
275
- function updateChainlinkAggregator(_x, _x2) {
276
- return _updateChainlinkAggregator.apply(this, arguments);
277
- }
278
-
279
- function _updateChainlinkAggregator() {
280
- _updateChainlinkAggregator = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(aggregator, price) {
281
- var answer, block;
282
- return _regeneratorRuntime.wrap(function _callee$(_context) {
283
- while (1) {
284
- switch (_context.prev = _context.next) {
285
- case 0:
286
- if (!(price !== null && price !== void 0)) {
287
- _context.next = 4;
288
- break;
289
- }
290
-
291
- _context.t0 = price;
292
- _context.next = 7;
293
- break;
294
-
295
- case 4:
296
- _context.next = 6;
297
- return aggregator.latestAnswer();
298
-
299
- case 6:
300
- _context.t0 = _context.sent;
301
-
302
- case 7:
303
- answer = _context.t0;
304
- _context.next = 10;
305
- return aggregator.provider.getBlock('latest');
306
-
307
- case 10:
308
- block = _context.sent;
309
- _context.next = 13;
310
- return aggregator.setLatestAnswer(answer, block.timestamp);
311
-
312
- case 13:
313
- case "end":
314
- return _context.stop();
315
- }
316
- }
317
- }, _callee);
318
- }));
319
- return _updateChainlinkAggregator.apply(this, arguments);
320
- }
321
-
322
- function getAssetBalances(_x) {
323
- return _getAssetBalances.apply(this, arguments);
324
- }
325
-
326
- function _getAssetBalances() {
327
- _getAssetBalances = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
328
- var account, assets;
329
- return _regeneratorRuntime.wrap(function _callee$(_context) {
330
- while (1) {
331
- switch (_context.prev = _context.next) {
332
- case 0:
333
- account = _ref.account, assets = _ref.assets;
334
- return _context.abrupt("return", Promise.all(assets.map(function (asset) {
335
- return new StandardToken(asset, provider).balanceOf(account);
336
- })));
337
-
338
- case 2:
339
- case "end":
340
- return _context.stop();
341
- }
342
- }
343
- }, _callee);
344
- }));
345
- return _getAssetBalances.apply(this, arguments);
346
- }
347
-
348
- function getAssetUnit(_x2) {
349
- return _getAssetUnit.apply(this, arguments);
350
- }
351
-
352
- function _getAssetUnit() {
353
- _getAssetUnit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(asset) {
354
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
355
- while (1) {
356
- switch (_context2.prev = _context2.next) {
357
- case 0:
358
- _context2.t0 = utils;
359
- _context2.next = 3;
360
- return asset.decimals();
361
-
362
- case 3:
363
- _context2.t1 = _context2.sent;
364
- return _context2.abrupt("return", _context2.t0.parseUnits.call(_context2.t0, '1', _context2.t1));
365
-
366
- case 5:
367
- case "end":
368
- return _context2.stop();
369
- }
370
- }
371
- }, _callee2);
372
- }));
373
- return _getAssetUnit.apply(this, arguments);
374
- }
375
-
376
- // TODO: Should refactor this function to take all deployment contracts and set up everything by default,
377
- // unless overrides are passed-in
378
- function createFundDeployer(_x) {
379
- return _createFundDeployer.apply(this, arguments);
380
- }
381
-
382
- function _createFundDeployer() {
383
- _createFundDeployer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
384
- var deployer, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, _ref$setOnDispatcher, setOnDispatcher, _ref$setReleaseLive, setReleaseLive, mlnToken, wethToken, protocolFeeReserve, nextFundDeployer, nextPolicyManager, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextComptrollerLib, nextProtocolFeeTracker, nextVaultLib;
385
-
386
- return _regeneratorRuntime.wrap(function _callee$(_context) {
387
- while (1) {
388
- switch (_context.prev = _context.next) {
389
- case 0:
390
- deployer = _ref.deployer, externalPositionManager = _ref.externalPositionManager, dispatcher = _ref.dispatcher, gasRelayPaymasterFactory = _ref.gasRelayPaymasterFactory, valueInterpreter = _ref.valueInterpreter, vaultLib = _ref.vaultLib, _ref$setOnDispatcher = _ref.setOnDispatcher, setOnDispatcher = _ref$setOnDispatcher === void 0 ? true : _ref$setOnDispatcher, _ref$setReleaseLive = _ref.setReleaseLive, setReleaseLive = _ref$setReleaseLive === void 0 ? true : _ref$setReleaseLive;
391
- _context.next = 3;
392
- return vaultLib.getMlnToken();
393
-
394
- case 3:
395
- mlnToken = _context.sent;
396
- _context.next = 6;
397
- return vaultLib.getWethToken();
398
-
399
- case 6:
400
- wethToken = _context.sent;
401
- _context.next = 9;
402
- return vaultLib.getProtocolFeeReserve();
403
-
404
- case 9:
405
- protocolFeeReserve = _context.sent;
406
- _context.next = 12;
407
- return FundDeployer.deploy(deployer, dispatcher, gasRelayPaymasterFactory);
408
-
409
- case 12:
410
- nextFundDeployer = _context.sent;
411
- _context.next = 15;
412
- return PolicyManager.deploy(deployer, nextFundDeployer, gasRelayPaymasterFactory);
413
-
414
- case 15:
415
- nextPolicyManager = _context.sent;
416
- _context.t0 = ExternalPositionManager;
417
- _context.t1 = deployer;
418
- _context.t2 = nextFundDeployer;
419
- _context.next = 21;
420
- return externalPositionManager.getExternalPositionFactory();
421
-
422
- case 21:
423
- _context.t3 = _context.sent;
424
- _context.t4 = nextPolicyManager;
425
- _context.next = 25;
426
- return _context.t0.deploy.call(_context.t0, _context.t1, _context.t2, _context.t3, _context.t4);
427
-
428
- case 25:
429
- nextExternalPositionManager = _context.sent;
430
- _context.next = 28;
431
- return FeeManager.deploy(deployer, nextFundDeployer);
432
-
433
- case 28:
434
- nextFeeManager = _context.sent;
435
- _context.next = 31;
436
- return IntegrationManager.deploy(deployer, nextFundDeployer, nextPolicyManager, valueInterpreter);
437
-
438
- case 31:
439
- nextIntegrationManager = _context.sent;
440
- _context.next = 34;
441
- return ComptrollerLib.deploy(deployer, dispatcher, protocolFeeReserve, nextFundDeployer, valueInterpreter, nextExternalPositionManager, nextFeeManager, nextIntegrationManager, nextPolicyManager, gasRelayPaymasterFactory, mlnToken, wethToken);
442
-
443
- case 34:
444
- nextComptrollerLib = _context.sent;
445
- _context.next = 37;
446
- return nextFundDeployer.setComptrollerLib(nextComptrollerLib);
447
-
448
- case 37:
449
- _context.next = 39;
450
- return ProtocolFeeTracker.deploy(deployer, nextFundDeployer);
451
-
452
- case 39:
453
- nextProtocolFeeTracker = _context.sent;
454
- _context.next = 42;
455
- return nextFundDeployer.setProtocolFeeTracker(nextProtocolFeeTracker);
456
-
457
- case 42:
458
- _context.t5 = VaultLib;
459
- _context.t6 = deployer;
460
- _context.t7 = externalPositionManager;
461
- _context.next = 47;
462
- return vaultLib.getGasRelayPaymasterFactory();
463
-
464
- case 47:
465
- _context.t8 = _context.sent;
466
- _context.next = 50;
467
- return vaultLib.getProtocolFeeReserve();
468
-
469
- case 50:
470
- _context.t9 = _context.sent;
471
- _context.t10 = nextProtocolFeeTracker;
472
- _context.next = 54;
473
- return vaultLib.getMlnToken();
474
-
475
- case 54:
476
- _context.t11 = _context.sent;
477
- _context.next = 57;
478
- return vaultLib.getMlnBurner();
479
-
480
- case 57:
481
- _context.t12 = _context.sent;
482
- _context.next = 60;
483
- return vaultLib.getWethToken();
484
-
485
- case 60:
486
- _context.t13 = _context.sent;
487
- _context.next = 63;
488
- return vaultLib.getPositionsLimit();
489
-
490
- case 63:
491
- _context.t14 = _context.sent;
492
- _context.next = 66;
493
- return _context.t5.deploy.call(_context.t5, _context.t6, _context.t7, _context.t8, _context.t9, _context.t10, _context.t11, _context.t12, _context.t13, _context.t14);
494
-
495
- case 66:
496
- nextVaultLib = _context.sent;
497
- _context.next = 69;
498
- return nextFundDeployer.setVaultLib(nextVaultLib);
499
-
500
- case 69:
501
- if (!setReleaseLive) {
502
- _context.next = 72;
503
- break;
504
- }
505
-
506
- _context.next = 72;
507
- return nextFundDeployer.setReleaseLive();
508
-
509
- case 72:
510
- if (!setOnDispatcher) {
511
- _context.next = 75;
512
- break;
513
- }
514
-
515
- _context.next = 75;
516
- return dispatcher.setCurrentFundDeployer(nextFundDeployer);
517
-
518
- case 75:
519
- return _context.abrupt("return", nextFundDeployer);
520
-
521
- case 76:
522
- case "end":
523
- return _context.stop();
524
- }
525
- }
526
- }, _callee);
527
- }));
528
- return _createFundDeployer.apply(this, arguments);
529
- }
530
-
531
- function callOnExtension(_x) {
532
- return _callOnExtension.apply(this, arguments);
533
- }
534
-
535
- function _callOnExtension() {
536
- _callOnExtension = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
537
- var comptrollerProxy, extension, actionId, _ref$callArgs, callArgs, signer, callOnExtensionTx;
538
-
539
- return _regeneratorRuntime.wrap(function _callee$(_context) {
540
- while (1) {
541
- switch (_context.prev = _context.next) {
542
- case 0:
543
- comptrollerProxy = _ref.comptrollerProxy, extension = _ref.extension, actionId = _ref.actionId, _ref$callArgs = _ref.callArgs, callArgs = _ref$callArgs === void 0 ? '0x' : _ref$callArgs, signer = _ref.signer;
544
-
545
- if (signer) {
546
- callOnExtensionTx = comptrollerProxy.connect(signer).callOnExtension(extension, actionId, callArgs);
547
- } else {
548
- callOnExtensionTx = comptrollerProxy.callOnExtension(extension, actionId, callArgs);
549
- }
550
-
551
- _context.next = 4;
552
- return expect(callOnExtensionTx).resolves.toBeReceipt();
553
-
554
- case 4:
555
- return _context.abrupt("return", callOnExtensionTx);
556
-
557
- case 5:
558
- case "end":
559
- return _context.stop();
560
- }
561
- }
562
- }, _callee);
563
- }));
564
- return _callOnExtension.apply(this, arguments);
565
- }
566
-
567
- function callOnExternalPosition(_x) {
568
- return _callOnExternalPosition.apply(this, arguments);
569
- }
570
-
571
- function _callOnExternalPosition() {
572
- _callOnExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
573
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, actionId, actionArgs, callArgs;
574
- return _regeneratorRuntime.wrap(function _callee$(_context) {
575
- while (1) {
576
- switch (_context.prev = _context.next) {
577
- case 0:
578
- signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionProxy = _ref.externalPositionProxy, actionId = _ref.actionId, actionArgs = _ref.actionArgs;
579
- callArgs = callOnExternalPositionArgs({
580
- actionArgs: actionArgs,
581
- actionId: actionId,
582
- externalPositionProxy: externalPositionProxy
583
- });
584
- return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
585
-
586
- case 3:
587
- case "end":
588
- return _context.stop();
589
- }
590
- }
591
- }, _callee);
592
- }));
593
- return _callOnExternalPosition.apply(this, arguments);
594
- }
595
-
596
- function createExternalPosition(_x2) {
597
- return _createExternalPosition.apply(this, arguments);
598
- }
599
-
600
- function _createExternalPosition() {
601
- _createExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
602
- var signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, _ref2$initializationD, initializationData, _ref2$callOnExternalP, callOnExternalPositionData, receipt, event, externalPositionProxy;
603
-
604
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
605
- while (1) {
606
- switch (_context2.prev = _context2.next) {
607
- case 0:
608
- signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionTypeId = _ref2.externalPositionTypeId, _ref2$initializationD = _ref2.initializationData, initializationData = _ref2$initializationD === void 0 ? '0x' : _ref2$initializationD, _ref2$callOnExternalP = _ref2.callOnExternalPositionData, callOnExternalPositionData = _ref2$callOnExternalP === void 0 ? '0x' : _ref2$callOnExternalP;
609
- _context2.next = 3;
610
- return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CreateExternalPosition, encodeArgs(['uint256', 'bytes', 'bytes'], [externalPositionTypeId, initializationData, callOnExternalPositionData]));
611
-
612
- case 3:
613
- receipt = _context2.sent;
614
- event = extractEvent(receipt, externalPositionManager.abi.getEvent('ExternalPositionDeployedForFund'));
615
- externalPositionProxy = new IExternalPositionProxy(event[0].args.externalPosition, signer);
616
- return _context2.abrupt("return", {
617
- externalPositionProxy: externalPositionProxy,
618
- receipt: receipt
619
- });
620
-
621
- case 7:
622
- case "end":
623
- return _context2.stop();
624
- }
625
- }
626
- }, _callee2);
627
- }));
628
- return _createExternalPosition.apply(this, arguments);
629
- }
630
-
631
- function reactivateExternalPosition(_x3) {
632
- return _reactivateExternalPosition.apply(this, arguments);
633
- }
634
-
635
- function _reactivateExternalPosition() {
636
- _reactivateExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
637
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, callArgs;
638
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
639
- while (1) {
640
- switch (_context3.prev = _context3.next) {
641
- case 0:
642
- signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy;
643
- callArgs = externalPositionReactivateArgs({
644
- externalPositionProxy: externalPositionProxy
645
- });
646
- return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.ReactivateExternalPosition, callArgs));
647
-
648
- case 3:
649
- case "end":
650
- return _context3.stop();
651
- }
652
- }
653
- }, _callee3);
654
- }));
655
- return _reactivateExternalPosition.apply(this, arguments);
656
- }
657
-
658
- function removeExternalPosition(_x4) {
659
- return _removeExternalPosition.apply(this, arguments);
660
- }
661
-
662
- function _removeExternalPosition() {
663
- _removeExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
664
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, callArgs;
665
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
666
- while (1) {
667
- switch (_context4.prev = _context4.next) {
668
- case 0:
669
- signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy;
670
- callArgs = externalPositionRemoveArgs({
671
- externalPositionProxy: externalPositionProxy
672
- });
673
- return _context4.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.RemoveExternalPosition, callArgs));
674
-
675
- case 3:
676
- case "end":
677
- return _context4.stop();
678
- }
679
- }
680
- }, _callee4);
681
- }));
682
- return _removeExternalPosition.apply(this, arguments);
683
- }
684
-
685
- function compoundDebtPositionAddCollateral(_x) {
686
- return _compoundDebtPositionAddCollateral.apply(this, arguments);
687
- }
688
-
689
- function _compoundDebtPositionAddCollateral() {
690
- _compoundDebtPositionAddCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
691
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
692
- return _regeneratorRuntime.wrap(function _callee$(_context) {
693
- while (1) {
694
- switch (_context.prev = _context.next) {
695
- case 0:
696
- comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, fundOwner = _ref.fundOwner, assets = _ref.assets, amounts = _ref.amounts, externalPositionProxy = _ref.externalPositionProxy, cTokens = _ref.cTokens;
697
- actionArgs = compoundExternalPositionActionArgs({
698
- amounts: amounts,
699
- assets: assets,
700
- data: encodeArgs(['address[]'], [cTokens])
701
- });
702
- return _context.abrupt("return", callOnExternalPosition({
703
- actionArgs: actionArgs,
704
- actionId: CompoundDebtPositionActionId.AddCollateralAssets,
705
- comptrollerProxy: comptrollerProxy,
706
- externalPositionManager: externalPositionManager,
707
- externalPositionProxy: externalPositionProxy,
708
- signer: fundOwner
709
- }));
710
-
711
- case 3:
712
- case "end":
713
- return _context.stop();
714
- }
715
- }
716
- }, _callee);
717
- }));
718
- return _compoundDebtPositionAddCollateral.apply(this, arguments);
719
- }
720
-
721
- function compoundDebtPositionBorrow(_x2) {
722
- return _compoundDebtPositionBorrow.apply(this, arguments);
723
- }
724
-
725
- function _compoundDebtPositionBorrow() {
726
- _compoundDebtPositionBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
727
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, actionArgs;
728
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
729
- while (1) {
730
- switch (_context2.prev = _context2.next) {
731
- case 0:
732
- comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, fundOwner = _ref2.fundOwner, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts, cTokens = _ref2.cTokens;
733
- actionArgs = compoundExternalPositionActionArgs({
734
- amounts: amounts,
735
- assets: assets,
736
- data: encodeArgs(['address[]'], [cTokens])
737
- });
738
- return _context2.abrupt("return", callOnExternalPosition({
739
- actionArgs: actionArgs,
740
- actionId: CompoundDebtPositionActionId.BorrowAsset,
741
- comptrollerProxy: comptrollerProxy,
742
- externalPositionManager: externalPositionManager,
743
- externalPositionProxy: externalPositionProxy,
744
- signer: fundOwner
745
- }));
746
-
747
- case 3:
748
- case "end":
749
- return _context2.stop();
750
- }
751
- }
752
- }, _callee2);
753
- }));
754
- return _compoundDebtPositionBorrow.apply(this, arguments);
755
- }
756
-
757
- function compoundDebtPositionClaimComp(_x3) {
758
- return _compoundDebtPositionClaimComp.apply(this, arguments);
759
- }
760
-
761
- function _compoundDebtPositionClaimComp() {
762
- _compoundDebtPositionClaimComp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
763
- var comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, actionArgs;
764
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
765
- while (1) {
766
- switch (_context3.prev = _context3.next) {
767
- case 0:
768
- comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, fundOwner = _ref3.fundOwner, externalPositionProxy = _ref3.externalPositionProxy;
769
- actionArgs = compoundExternalPositionActionArgs({
770
- amounts: [],
771
- assets: [],
772
- data: '0x'
773
- });
774
- return _context3.abrupt("return", callOnExternalPosition({
775
- actionArgs: actionArgs,
776
- actionId: CompoundDebtPositionActionId.ClaimComp,
777
- comptrollerProxy: comptrollerProxy,
778
- externalPositionManager: externalPositionManager,
779
- externalPositionProxy: externalPositionProxy,
780
- signer: fundOwner
781
- }));
782
-
783
- case 3:
784
- case "end":
785
- return _context3.stop();
786
- }
787
- }
788
- }, _callee3);
789
- }));
790
- return _compoundDebtPositionClaimComp.apply(this, arguments);
791
- }
792
-
793
- function compoundDebtPositionRemoveCollateral(_x4) {
794
- return _compoundDebtPositionRemoveCollateral.apply(this, arguments);
795
- }
796
-
797
- function _compoundDebtPositionRemoveCollateral() {
798
- _compoundDebtPositionRemoveCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
799
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
800
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
801
- while (1) {
802
- switch (_context4.prev = _context4.next) {
803
- case 0:
804
- comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, fundOwner = _ref4.fundOwner, assets = _ref4.assets, amounts = _ref4.amounts, externalPositionProxy = _ref4.externalPositionProxy, cTokens = _ref4.cTokens;
805
- actionArgs = compoundExternalPositionActionArgs({
806
- amounts: amounts,
807
- assets: assets,
808
- data: encodeArgs(['address[]'], [cTokens])
809
- });
810
- return _context4.abrupt("return", callOnExternalPosition({
811
- actionArgs: actionArgs,
812
- actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
813
- comptrollerProxy: comptrollerProxy,
814
- externalPositionManager: externalPositionManager,
815
- externalPositionProxy: externalPositionProxy,
816
- signer: fundOwner
817
- }));
818
-
819
- case 3:
820
- case "end":
821
- return _context4.stop();
822
- }
823
- }
824
- }, _callee4);
825
- }));
826
- return _compoundDebtPositionRemoveCollateral.apply(this, arguments);
827
- }
828
-
829
- function compoundDebtPositionRepayBorrow(_x5) {
830
- return _compoundDebtPositionRepayBorrow.apply(this, arguments);
831
- }
832
-
833
- function _compoundDebtPositionRepayBorrow() {
834
- _compoundDebtPositionRepayBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
835
- var comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, actionArgs;
836
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
837
- while (1) {
838
- switch (_context5.prev = _context5.next) {
839
- case 0:
840
- comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, fundOwner = _ref5.fundOwner, assets = _ref5.assets, amounts = _ref5.amounts, externalPositionProxy = _ref5.externalPositionProxy, cTokens = _ref5.cTokens;
841
- actionArgs = compoundExternalPositionActionArgs({
842
- amounts: amounts,
843
- assets: assets,
844
- data: encodeArgs(['address[]'], [cTokens])
845
- });
846
- return _context5.abrupt("return", callOnExternalPosition({
847
- actionArgs: actionArgs,
848
- actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
849
- comptrollerProxy: comptrollerProxy,
850
- externalPositionManager: externalPositionManager,
851
- externalPositionProxy: externalPositionProxy,
852
- signer: fundOwner
853
- }));
854
-
855
- case 3:
856
- case "end":
857
- return _context5.stop();
858
- }
859
- }
860
- }, _callee5);
861
- }));
862
- return _compoundDebtPositionRepayBorrow.apply(this, arguments);
863
- }
864
-
865
- function createCompoundDebtPosition(_x6) {
866
- return _createCompoundDebtPosition.apply(this, arguments);
867
- }
868
-
869
- function _createCompoundDebtPosition() {
870
- _createCompoundDebtPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
871
- var signer, comptrollerProxy, externalPositionManager;
872
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
873
- while (1) {
874
- switch (_context6.prev = _context6.next) {
875
- case 0:
876
- signer = _ref6.signer, comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager;
877
- return _context6.abrupt("return", createExternalPosition({
878
- comptrollerProxy: comptrollerProxy,
879
- externalPositionManager: externalPositionManager,
880
- externalPositionTypeId: ExternalPositionType.CompoundDebtPosition,
881
- signer: signer
882
- }));
883
-
884
- case 2:
885
- case "end":
886
- return _context6.stop();
887
- }
888
- }
889
- }, _callee6);
890
- }));
891
- return _createCompoundDebtPosition.apply(this, arguments);
892
- }
893
-
894
- function createMockExternalPosition(_x) {
895
- return _createMockExternalPosition.apply(this, arguments);
896
- }
897
-
898
- function _createMockExternalPosition() {
899
- _createMockExternalPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
900
- var comptrollerProxy, externalPositionManager, externalPositionFactory, defaultActionAssetsToTransfer, defaultActionAmountsToTransfer, defaultActionAssetsToReceive, fundOwner, deployer, vaultProxy, typeId, mockGenericExternalPositionLib, mockExternalPositionParser, receipt, externalPositionProxy;
901
- return _regeneratorRuntime.wrap(function _callee$(_context) {
902
- while (1) {
903
- switch (_context.prev = _context.next) {
904
- case 0:
905
- comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, externalPositionFactory = _ref.externalPositionFactory, defaultActionAssetsToTransfer = _ref.defaultActionAssetsToTransfer, defaultActionAmountsToTransfer = _ref.defaultActionAmountsToTransfer, defaultActionAssetsToReceive = _ref.defaultActionAssetsToReceive, fundOwner = _ref.fundOwner, deployer = _ref.deployer;
906
- _context.t0 = VaultLib;
907
- _context.next = 4;
908
- return comptrollerProxy.getVaultProxy();
909
-
910
- case 4:
911
- _context.t1 = _context.sent;
912
- _context.t2 = deployer;
913
- vaultProxy = new _context.t0(_context.t1, _context.t2);
914
- _context.next = 9;
915
- return externalPositionFactory.getPositionTypeCounter();
916
-
917
- case 9:
918
- typeId = _context.sent;
919
- _context.next = 12;
920
- return externalPositionFactory.addNewPositionTypes(['TEST']);
921
-
922
- case 12:
923
- _context.next = 14;
924
- return MockGenericExternalPositionLib.deploy(deployer);
925
-
926
- case 14:
927
- mockGenericExternalPositionLib = _context.sent;
928
- _context.next = 17;
929
- return MockGenericExternalPositionParser.deploy(deployer);
930
-
931
- case 17:
932
- mockExternalPositionParser = _context.sent;
933
- mockExternalPositionParser.setAssetsForAction(0, defaultActionAssetsToTransfer, defaultActionAmountsToTransfer, defaultActionAssetsToReceive);
934
- _context.next = 21;
935
- return externalPositionManager.updateExternalPositionTypesInfo([typeId], [mockGenericExternalPositionLib], [mockExternalPositionParser]);
936
-
937
- case 21:
938
- _context.next = 23;
939
- return createExternalPosition({
940
- comptrollerProxy: comptrollerProxy,
941
- externalPositionManager: externalPositionManager,
942
- externalPositionTypeId: typeId,
943
- signer: fundOwner
944
- });
945
-
946
- case 23:
947
- receipt = _context.sent;
948
- _context.next = 26;
949
- return vaultProxy.getActiveExternalPositions();
950
-
951
- case 26:
952
- externalPositionProxy = _context.sent[0];
953
- return _context.abrupt("return", {
954
- externalPositionProxy: externalPositionProxy,
955
- mockExternalPositionParser: mockExternalPositionParser,
956
- mockGenericExternalPositionLib: mockGenericExternalPositionLib,
957
- receipt: receipt,
958
- typeId: typeId
959
- });
960
-
961
- case 28:
962
- case "end":
963
- return _context.stop();
964
- }
965
- }
966
- }, _callee);
967
- }));
968
- return _createMockExternalPosition.apply(this, arguments);
969
- }
970
-
971
- function mockExternalPositionAddDebtAssets(_x2) {
972
- return _mockExternalPositionAddDebtAssets.apply(this, arguments);
973
- }
974
-
975
- function _mockExternalPositionAddDebtAssets() {
976
- _mockExternalPositionAddDebtAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
977
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
978
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
979
- while (1) {
980
- switch (_context2.prev = _context2.next) {
981
- case 0:
982
- signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, externalPositionProxy = _ref2.externalPositionProxy, assets = _ref2.assets, amounts = _ref2.amounts;
983
- actionArgs = mockGenericExternalPositionActionArgs({
984
- amounts: amounts,
985
- assets: assets
986
- });
987
- return _context2.abrupt("return", callOnExternalPosition({
988
- actionArgs: actionArgs,
989
- actionId: MockGenericExternalPositionActionId.AddDebtAssets,
990
- comptrollerProxy: comptrollerProxy,
991
- externalPositionManager: externalPositionManager,
992
- externalPositionProxy: externalPositionProxy,
993
- signer: signer
994
- }));
995
-
996
- case 3:
997
- case "end":
998
- return _context2.stop();
999
- }
1000
- }
1001
- }, _callee2);
1002
- }));
1003
- return _mockExternalPositionAddDebtAssets.apply(this, arguments);
1004
- }
1005
-
1006
- function mockExternalPositionAddManagedAssets(_x3) {
1007
- return _mockExternalPositionAddManagedAssets.apply(this, arguments);
1008
- }
1009
-
1010
- function _mockExternalPositionAddManagedAssets() {
1011
- _mockExternalPositionAddManagedAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1012
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1013
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1014
- while (1) {
1015
- switch (_context3.prev = _context3.next) {
1016
- case 0:
1017
- signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, assets = _ref3.assets, amounts = _ref3.amounts;
1018
- actionArgs = mockGenericExternalPositionActionArgs({
1019
- amounts: amounts,
1020
- assets: assets
1021
- });
1022
- return _context3.abrupt("return", callOnExternalPosition({
1023
- actionArgs: actionArgs,
1024
- actionId: MockGenericExternalPositionActionId.AddManagedAssets,
1025
- comptrollerProxy: comptrollerProxy,
1026
- externalPositionManager: externalPositionManager,
1027
- externalPositionProxy: externalPositionProxy,
1028
- signer: signer
1029
- }));
1030
-
1031
- case 3:
1032
- case "end":
1033
- return _context3.stop();
1034
- }
1035
- }
1036
- }, _callee3);
1037
- }));
1038
- return _mockExternalPositionAddManagedAssets.apply(this, arguments);
1039
- }
1040
-
1041
- function mockExternalPositionRemoveDebtAssets(_x4) {
1042
- return _mockExternalPositionRemoveDebtAssets.apply(this, arguments);
1043
- }
1044
-
1045
- function _mockExternalPositionRemoveDebtAssets() {
1046
- _mockExternalPositionRemoveDebtAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1047
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1048
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1049
- while (1) {
1050
- switch (_context4.prev = _context4.next) {
1051
- case 0:
1052
- signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, assets = _ref4.assets, amounts = _ref4.amounts;
1053
- actionArgs = mockGenericExternalPositionActionArgs({
1054
- amounts: amounts,
1055
- assets: assets
1056
- });
1057
- return _context4.abrupt("return", callOnExternalPosition({
1058
- actionArgs: actionArgs,
1059
- actionId: MockGenericExternalPositionActionId.RemoveDebtAssets,
1060
- comptrollerProxy: comptrollerProxy,
1061
- externalPositionManager: externalPositionManager,
1062
- externalPositionProxy: externalPositionProxy,
1063
- signer: signer
1064
- }));
1065
-
1066
- case 3:
1067
- case "end":
1068
- return _context4.stop();
1069
- }
1070
- }
1071
- }, _callee4);
1072
- }));
1073
- return _mockExternalPositionRemoveDebtAssets.apply(this, arguments);
1074
- }
1075
-
1076
- function mockExternalPositionRemoveManagedAssets(_x5) {
1077
- return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1078
- }
1079
-
1080
- function _mockExternalPositionRemoveManagedAssets() {
1081
- _mockExternalPositionRemoveManagedAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1082
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, actionArgs;
1083
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1084
- while (1) {
1085
- switch (_context5.prev = _context5.next) {
1086
- case 0:
1087
- signer = _ref5.signer, comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, externalPositionProxy = _ref5.externalPositionProxy, assets = _ref5.assets, amounts = _ref5.amounts;
1088
- actionArgs = mockGenericExternalPositionActionArgs({
1089
- amounts: amounts,
1090
- assets: assets
1091
- });
1092
- return _context5.abrupt("return", callOnExternalPosition({
1093
- actionArgs: actionArgs,
1094
- actionId: MockGenericExternalPositionActionId.RemoveManagedAssets,
1095
- comptrollerProxy: comptrollerProxy,
1096
- externalPositionManager: externalPositionManager,
1097
- externalPositionProxy: externalPositionProxy,
1098
- signer: signer
1099
- }));
1100
-
1101
- case 3:
1102
- case "end":
1103
- return _context5.stop();
1104
- }
1105
- }
1106
- }, _callee5);
1107
- }));
1108
- return _mockExternalPositionRemoveManagedAssets.apply(this, arguments);
1109
- }
1110
-
1111
- function aaveDebtPositionAddCollateral(_x) {
1112
- return _aaveDebtPositionAddCollateral.apply(this, arguments);
1113
- }
1114
-
1115
- function _aaveDebtPositionAddCollateral() {
1116
- _aaveDebtPositionAddCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1117
- var comptrollerProxy, externalPositionManager, signer, aTokens, amounts, externalPositionProxy, actionArgs;
1118
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1119
- while (1) {
1120
- switch (_context.prev = _context.next) {
1121
- case 0:
1122
- comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, signer = _ref.signer, aTokens = _ref.aTokens, amounts = _ref.amounts, externalPositionProxy = _ref.externalPositionProxy;
1123
- actionArgs = aaveDebtPositionAddCollateralArgs({
1124
- aTokens: aTokens,
1125
- amounts: amounts
1126
- });
1127
- return _context.abrupt("return", callOnExternalPosition({
1128
- actionArgs: actionArgs,
1129
- actionId: AaveDebtPositionActionId.AddCollateralAssets,
1130
- comptrollerProxy: comptrollerProxy,
1131
- externalPositionManager: externalPositionManager,
1132
- externalPositionProxy: externalPositionProxy,
1133
- signer: signer
1134
- }));
1135
-
1136
- case 3:
1137
- case "end":
1138
- return _context.stop();
1139
- }
1140
- }
1141
- }, _callee);
1142
- }));
1143
- return _aaveDebtPositionAddCollateral.apply(this, arguments);
1144
- }
1145
-
1146
- function aaveDebtPositionBorrow(_x2) {
1147
- return _aaveDebtPositionBorrow.apply(this, arguments);
1148
- }
1149
-
1150
- function _aaveDebtPositionBorrow() {
1151
- _aaveDebtPositionBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1152
- var comptrollerProxy, externalPositionManager, signer, tokens, amounts, externalPositionProxy, actionArgs;
1153
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1154
- while (1) {
1155
- switch (_context2.prev = _context2.next) {
1156
- case 0:
1157
- comptrollerProxy = _ref2.comptrollerProxy, externalPositionManager = _ref2.externalPositionManager, signer = _ref2.signer, tokens = _ref2.tokens, amounts = _ref2.amounts, externalPositionProxy = _ref2.externalPositionProxy;
1158
- actionArgs = aaveDebtPositionBorrowArgs({
1159
- amounts: amounts,
1160
- tokens: tokens
1161
- });
1162
- return _context2.abrupt("return", callOnExternalPosition({
1163
- actionArgs: actionArgs,
1164
- actionId: AaveDebtPositionActionId.BorrowAsset,
1165
- comptrollerProxy: comptrollerProxy,
1166
- externalPositionManager: externalPositionManager,
1167
- externalPositionProxy: externalPositionProxy,
1168
- signer: signer
1169
- }));
1170
-
1171
- case 3:
1172
- case "end":
1173
- return _context2.stop();
1174
- }
1175
- }
1176
- }, _callee2);
1177
- }));
1178
- return _aaveDebtPositionBorrow.apply(this, arguments);
1179
- }
1180
-
1181
- function aaveDebtPositionClaimRewards(_x3) {
1182
- return _aaveDebtPositionClaimRewards.apply(this, arguments);
1183
- }
1184
-
1185
- function _aaveDebtPositionClaimRewards() {
1186
- _aaveDebtPositionClaimRewards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1187
- var comptrollerProxy, externalPositionManager, signer, assets, externalPositionProxy, actionArgs;
1188
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1189
- while (1) {
1190
- switch (_context3.prev = _context3.next) {
1191
- case 0:
1192
- comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, signer = _ref3.signer, assets = _ref3.assets, externalPositionProxy = _ref3.externalPositionProxy;
1193
- actionArgs = aaveDebtPositionClaimRewardsArgs({
1194
- assets: assets
1195
- });
1196
- return _context3.abrupt("return", callOnExternalPosition({
1197
- actionArgs: actionArgs,
1198
- actionId: AaveDebtPositionActionId.ClaimRewards,
1199
- comptrollerProxy: comptrollerProxy,
1200
- externalPositionManager: externalPositionManager,
1201
- externalPositionProxy: externalPositionProxy,
1202
- signer: signer
1203
- }));
1204
-
1205
- case 3:
1206
- case "end":
1207
- return _context3.stop();
1208
- }
1209
- }
1210
- }, _callee3);
1211
- }));
1212
- return _aaveDebtPositionClaimRewards.apply(this, arguments);
1213
- }
1214
-
1215
- function aaveDebtPositionRemoveCollateral(_x4) {
1216
- return _aaveDebtPositionRemoveCollateral.apply(this, arguments);
1217
- }
1218
-
1219
- function _aaveDebtPositionRemoveCollateral() {
1220
- _aaveDebtPositionRemoveCollateral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1221
- var comptrollerProxy, externalPositionManager, signer, aTokens, amounts, externalPositionProxy, actionArgs;
1222
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1223
- while (1) {
1224
- switch (_context4.prev = _context4.next) {
1225
- case 0:
1226
- comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, signer = _ref4.signer, aTokens = _ref4.aTokens, amounts = _ref4.amounts, externalPositionProxy = _ref4.externalPositionProxy;
1227
- actionArgs = aaveDebtPositionRemoveCollateralArgs({
1228
- aTokens: aTokens,
1229
- amounts: amounts
1230
- });
1231
- return _context4.abrupt("return", callOnExternalPosition({
1232
- actionArgs: actionArgs,
1233
- actionId: AaveDebtPositionActionId.RemoveCollateralAssets,
1234
- comptrollerProxy: comptrollerProxy,
1235
- externalPositionManager: externalPositionManager,
1236
- externalPositionProxy: externalPositionProxy,
1237
- signer: signer
1238
- }));
1239
-
1240
- case 3:
1241
- case "end":
1242
- return _context4.stop();
1243
- }
1244
- }
1245
- }, _callee4);
1246
- }));
1247
- return _aaveDebtPositionRemoveCollateral.apply(this, arguments);
1248
- }
1249
-
1250
- function aaveDebtPositionRepayBorrow(_x5) {
1251
- return _aaveDebtPositionRepayBorrow.apply(this, arguments);
1252
- }
1253
-
1254
- function _aaveDebtPositionRepayBorrow() {
1255
- _aaveDebtPositionRepayBorrow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1256
- var comptrollerProxy, externalPositionManager, signer, tokens, amounts, externalPositionProxy, actionArgs;
1257
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1258
- while (1) {
1259
- switch (_context5.prev = _context5.next) {
1260
- case 0:
1261
- comptrollerProxy = _ref5.comptrollerProxy, externalPositionManager = _ref5.externalPositionManager, signer = _ref5.signer, tokens = _ref5.tokens, amounts = _ref5.amounts, externalPositionProxy = _ref5.externalPositionProxy;
1262
- actionArgs = aaveDebtPositionRepayBorrowArgs({
1263
- amounts: amounts,
1264
- tokens: tokens
1265
- });
1266
- return _context5.abrupt("return", callOnExternalPosition({
1267
- actionArgs: actionArgs,
1268
- actionId: AaveDebtPositionActionId.RepayBorrowedAssets,
1269
- comptrollerProxy: comptrollerProxy,
1270
- externalPositionManager: externalPositionManager,
1271
- externalPositionProxy: externalPositionProxy,
1272
- signer: signer
1273
- }));
1274
-
1275
- case 3:
1276
- case "end":
1277
- return _context5.stop();
1278
- }
1279
- }
1280
- }, _callee5);
1281
- }));
1282
- return _aaveDebtPositionRepayBorrow.apply(this, arguments);
1283
- }
1284
-
1285
- function createAaveDebtPosition(_x6) {
1286
- return _createAaveDebtPosition.apply(this, arguments);
1287
- }
1288
-
1289
- function _createAaveDebtPosition() {
1290
- _createAaveDebtPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
1291
- var signer, comptrollerProxy, externalPositionManager;
1292
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
1293
- while (1) {
1294
- switch (_context6.prev = _context6.next) {
1295
- case 0:
1296
- signer = _ref6.signer, comptrollerProxy = _ref6.comptrollerProxy, externalPositionManager = _ref6.externalPositionManager;
1297
- return _context6.abrupt("return", createExternalPosition({
1298
- comptrollerProxy: comptrollerProxy,
1299
- externalPositionManager: externalPositionManager,
1300
- externalPositionTypeId: ExternalPositionType.AaveDebtPosition,
1301
- signer: signer
1302
- }));
1303
-
1304
- case 2:
1305
- case "end":
1306
- return _context6.stop();
1307
- }
1308
- }
1309
- }, _callee6);
1310
- }));
1311
- return _createAaveDebtPosition.apply(this, arguments);
1312
- }
1313
-
1314
- var _templateObject$3;
1315
- var UniswapV3FeeAmount;
1316
-
1317
- (function (UniswapV3FeeAmount) {
1318
- UniswapV3FeeAmount[UniswapV3FeeAmount["LOW"] = 500] = "LOW";
1319
- UniswapV3FeeAmount[UniswapV3FeeAmount["MEDIUM"] = 3000] = "MEDIUM";
1320
- UniswapV3FeeAmount[UniswapV3FeeAmount["HIGH"] = 10000] = "HIGH";
1321
- })(UniswapV3FeeAmount || (UniswapV3FeeAmount = {}));
1322
-
1323
- var uniswapV3LiquidityPositionGetMinTick = function uniswapV3LiquidityPositionGetMinTick(tickSpacing) {
1324
- return Math.ceil(-887272 / tickSpacing) * tickSpacing;
1325
- };
1326
- var uniswapV3LiquidityPositionGetMaxTick = function uniswapV3LiquidityPositionGetMaxTick(tickSpacing) {
1327
- return Math.floor(887272 / tickSpacing) * tickSpacing;
1328
- };
1329
- var IUniswapV3NonFungibleTokenManager = contract()(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n function positions(uint256 tokenId) view returns (uint96 nonce, address operator, address token0, address token1, uint24 fee, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1)\n"])));
1330
- function createUniswapV3LiquidityPosition(_x) {
1331
- return _createUniswapV3LiquidityPosition.apply(this, arguments);
1332
- }
1333
-
1334
- function _createUniswapV3LiquidityPosition() {
1335
- _createUniswapV3LiquidityPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1336
- var signer, comptrollerProxy, externalPositionManager, _ref$callOnExternalPo, callOnExternalPositionData, _yield$createExternal, externalPositionProxyContract, receipt;
1337
-
1338
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1339
- while (1) {
1340
- switch (_context.prev = _context.next) {
1341
- case 0:
1342
- signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, externalPositionManager = _ref.externalPositionManager, _ref$callOnExternalPo = _ref.callOnExternalPositionData, callOnExternalPositionData = _ref$callOnExternalPo === void 0 ? '0x' : _ref$callOnExternalPo;
1343
- _context.next = 3;
1344
- return createExternalPosition({
1345
- callOnExternalPositionData: callOnExternalPositionData,
1346
- comptrollerProxy: comptrollerProxy,
1347
- externalPositionManager: externalPositionManager,
1348
- externalPositionTypeId: ExternalPositionType.UniswapV3LiquidityPosition,
1349
- signer: signer
1350
- });
1351
-
1352
- case 3:
1353
- _yield$createExternal = _context.sent;
1354
- externalPositionProxyContract = _yield$createExternal.externalPositionProxy;
1355
- receipt = _yield$createExternal.receipt;
1356
- return _context.abrupt("return", {
1357
- externalPositionProxyAddress: externalPositionProxyContract.address,
1358
- receipt: receipt
1359
- });
1360
-
1361
- case 7:
1362
- case "end":
1363
- return _context.stop();
1364
- }
1365
- }
1366
- }, _callee);
1367
- }));
1368
- return _createUniswapV3LiquidityPosition.apply(this, arguments);
1369
- }
1370
-
1371
- function uniswapV3LiquidityPositionAddLiquidity(_x2) {
1372
- return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1373
- }
1374
-
1375
- function _uniswapV3LiquidityPositionAddLiquidity() {
1376
- _uniswapV3LiquidityPositionAddLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1377
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, amount0Desired, amount1Desired, _ref2$amount0Min, amount0Min, _ref2$amount1Min, amount1Min, actionArgs, callArgs;
1378
-
1379
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1380
- while (1) {
1381
- switch (_context2.prev = _context2.next) {
1382
- case 0:
1383
- 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;
1384
- actionArgs = uniswapV3LiquidityPositionAddLiquidityArgs({
1385
- amount0Desired: amount0Desired,
1386
- amount0Min: amount0Min,
1387
- amount1Desired: amount1Desired,
1388
- amount1Min: amount1Min,
1389
- nftId: nftId
1390
- });
1391
- callArgs = callOnExternalPositionArgs({
1392
- actionArgs: actionArgs,
1393
- actionId: UniswapV3LiquidityPositionActionId.AddLiquidity,
1394
- externalPositionProxy: externalPositionProxy
1395
- });
1396
- return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1397
-
1398
- case 4:
1399
- case "end":
1400
- return _context2.stop();
1401
- }
1402
- }
1403
- }, _callee2);
1404
- }));
1405
- return _uniswapV3LiquidityPositionAddLiquidity.apply(this, arguments);
1406
- }
1407
-
1408
- function uniswapV3LiquidityPositionCollect(_x3) {
1409
- return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1410
- }
1411
-
1412
- function _uniswapV3LiquidityPositionCollect() {
1413
- _uniswapV3LiquidityPositionCollect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1414
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, actionArgs, callArgs;
1415
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1416
- while (1) {
1417
- switch (_context3.prev = _context3.next) {
1418
- case 0:
1419
- signer = _ref3.signer, comptrollerProxy = _ref3.comptrollerProxy, externalPositionManager = _ref3.externalPositionManager, externalPositionProxy = _ref3.externalPositionProxy, nftId = _ref3.nftId;
1420
- actionArgs = uniswapV3LiquidityPositionCollectArgs({
1421
- nftId: nftId
1422
- });
1423
- callArgs = callOnExternalPositionArgs({
1424
- actionArgs: actionArgs,
1425
- actionId: UniswapV3LiquidityPositionActionId.Collect,
1426
- externalPositionProxy: externalPositionProxy
1427
- });
1428
- return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1429
-
1430
- case 4:
1431
- case "end":
1432
- return _context3.stop();
1433
- }
1434
- }
1435
- }, _callee3);
1436
- }));
1437
- return _uniswapV3LiquidityPositionCollect.apply(this, arguments);
1438
- }
1439
-
1440
- function uniswapV3LiquidityPositionMint(_x4) {
1441
- return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1442
- }
1443
-
1444
- function _uniswapV3LiquidityPositionMint() {
1445
- _uniswapV3LiquidityPositionMint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1446
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, token0, token1, fee, tickLower, tickUpper, amount0Desired, amount1Desired, _ref4$amount0Min, amount0Min, _ref4$amount1Min, amount1Min, actionArgs, callArgs, receipt, externalPosition, nftId;
1447
-
1448
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1449
- while (1) {
1450
- switch (_context4.prev = _context4.next) {
1451
- case 0:
1452
- signer = _ref4.signer, comptrollerProxy = _ref4.comptrollerProxy, externalPositionManager = _ref4.externalPositionManager, externalPositionProxy = _ref4.externalPositionProxy, token0 = _ref4.token0, token1 = _ref4.token1, fee = _ref4.fee, tickLower = _ref4.tickLower, tickUpper = _ref4.tickUpper, amount0Desired = _ref4.amount0Desired, amount1Desired = _ref4.amount1Desired, _ref4$amount0Min = _ref4.amount0Min, amount0Min = _ref4$amount0Min === void 0 ? 0 : _ref4$amount0Min, _ref4$amount1Min = _ref4.amount1Min, amount1Min = _ref4$amount1Min === void 0 ? 0 : _ref4$amount1Min;
1453
- actionArgs = uniswapV3LiquidityPositionMintArgs({
1454
- amount0Desired: amount0Desired,
1455
- amount0Min: amount0Min,
1456
- amount1Desired: amount1Desired,
1457
- amount1Min: amount1Min,
1458
- fee: fee,
1459
- tickLower: tickLower,
1460
- tickUpper: tickUpper,
1461
- token0: token0,
1462
- token1: token1
1463
- });
1464
- callArgs = callOnExternalPositionArgs({
1465
- actionArgs: actionArgs,
1466
- actionId: UniswapV3LiquidityPositionActionId.Mint,
1467
- externalPositionProxy: externalPositionProxy
1468
- });
1469
- _context4.next = 5;
1470
- return comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
1471
-
1472
- case 5:
1473
- receipt = _context4.sent;
1474
- externalPosition = new UniswapV3LiquidityPositionLib(externalPositionProxy, provider);
1475
- nftId = extractEvent(receipt, externalPosition.abi.getEvent('NFTPositionAdded'))[0].args.tokenId;
1476
- return _context4.abrupt("return", {
1477
- nftId: nftId,
1478
- receipt: receipt
1479
- });
1480
-
1481
- case 9:
1482
- case "end":
1483
- return _context4.stop();
1484
- }
1485
- }
1486
- }, _callee4);
1487
- }));
1488
- return _uniswapV3LiquidityPositionMint.apply(this, arguments);
1489
- }
1490
-
1491
- function uniswapV3LiquidityPositionPurge(_x5) {
1492
- return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1493
- }
1494
-
1495
- function _uniswapV3LiquidityPositionPurge() {
1496
- _uniswapV3LiquidityPositionPurge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1497
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref5$amount0Min, amount0Min, _ref5$amount1Min, amount1Min, actionArgs, callArgs;
1498
-
1499
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1500
- while (1) {
1501
- switch (_context5.prev = _context5.next) {
1502
- case 0:
1503
- 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;
1504
- actionArgs = uniswapV3LiquidityPositionPurgeArgs({
1505
- amount0Min: amount0Min,
1506
- amount1Min: amount1Min,
1507
- liquidity: liquidity,
1508
- nftId: nftId
1509
- });
1510
- callArgs = callOnExternalPositionArgs({
1511
- actionArgs: actionArgs,
1512
- actionId: UniswapV3LiquidityPositionActionId.Purge,
1513
- externalPositionProxy: externalPositionProxy
1514
- });
1515
- return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1516
-
1517
- case 4:
1518
- case "end":
1519
- return _context5.stop();
1520
- }
1521
- }
1522
- }, _callee5);
1523
- }));
1524
- return _uniswapV3LiquidityPositionPurge.apply(this, arguments);
1525
- }
1526
-
1527
- function uniswapV3LiquidityPositionRemoveLiquidity(_x6) {
1528
- return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1529
- }
1530
-
1531
- function _uniswapV3LiquidityPositionRemoveLiquidity() {
1532
- _uniswapV3LiquidityPositionRemoveLiquidity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
1533
- var signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, _ref6$amount0Min, amount0Min, _ref6$amount1Min, amount1Min, actionArgs, callArgs;
1534
-
1535
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
1536
- while (1) {
1537
- switch (_context6.prev = _context6.next) {
1538
- case 0:
1539
- 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;
1540
- actionArgs = uniswapV3LiquidityPositionRemoveLiquidityArgs({
1541
- amount0Min: amount0Min,
1542
- amount1Min: amount1Min,
1543
- liquidity: liquidity,
1544
- nftId: nftId
1545
- });
1546
- callArgs = callOnExternalPositionArgs({
1547
- actionArgs: actionArgs,
1548
- actionId: UniswapV3LiquidityPositionActionId.RemoveLiquidity,
1549
- externalPositionProxy: externalPositionProxy
1550
- });
1551
- return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs));
1552
-
1553
- case 4:
1554
- case "end":
1555
- return _context6.stop();
1556
- }
1557
- }
1558
- }, _callee6);
1559
- }));
1560
- return _uniswapV3LiquidityPositionRemoveLiquidity.apply(this, arguments);
1561
- }
1562
-
1563
- function uniswapV3OrderTokenPair(_ref7) {
1564
- var tokenA = _ref7.tokenA,
1565
- tokenB = _ref7.tokenB;
1566
- var tokenAAddress = resolveAddress(tokenA);
1567
- var tokenBAddress = resolveAddress(tokenB);
1568
- return tokenAAddress < tokenBAddress ? {
1569
- token0: tokenAAddress,
1570
- token1: tokenBAddress
1571
- } : {
1572
- token0: tokenBAddress,
1573
- token1: tokenAAddress
1574
- };
1575
- }
1576
-
1577
- function generateFeeManagerConfigWithMockFees(_x) {
1578
- return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1579
- }
1580
-
1581
- function _generateFeeManagerConfigWithMockFees() {
1582
- _generateFeeManagerConfigWithMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1583
- var deployer, fees, feeManagerSettingsData;
1584
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1585
- while (1) {
1586
- switch (_context.prev = _context.next) {
1587
- case 0:
1588
- deployer = _ref.deployer;
1589
- _context.next = 3;
1590
- return generateMockFees({
1591
- deployer: deployer
1592
- });
1593
-
1594
- case 3:
1595
- fees = _context.sent;
1596
- feeManagerSettingsData = [utils.randomBytes(10), '0x', utils.randomBytes(2)];
1597
- return _context.abrupt("return", feeManagerConfigArgs({
1598
- fees: Object.values(fees),
1599
- settings: feeManagerSettingsData
1600
- }));
1601
-
1602
- case 6:
1603
- case "end":
1604
- return _context.stop();
1605
- }
1606
- }
1607
- }, _callee);
1608
- }));
1609
- return _generateFeeManagerConfigWithMockFees.apply(this, arguments);
1610
- }
1611
-
1612
- function generateMockFees(_x2) {
1613
- return _generateMockFees.apply(this, arguments);
1614
- }
1615
-
1616
- function _generateMockFees() {
1617
- _generateMockFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1618
- var deployer, mockContinuousFeeSettleOnly, mockContinuousFeeWithGavAndUpdates, mockPostBuySharesFee;
1619
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1620
- while (1) {
1621
- switch (_context2.prev = _context2.next) {
1622
- case 0:
1623
- deployer = _ref2.deployer;
1624
- _context2.next = 3;
1625
- return IFee.mock(deployer);
1626
-
1627
- case 3:
1628
- mockContinuousFeeSettleOnly = _context2.sent;
1629
- _context2.next = 6;
1630
- return IFee.mock(deployer);
1631
-
1632
- case 6:
1633
- mockContinuousFeeWithGavAndUpdates = _context2.sent;
1634
- _context2.next = 9;
1635
- return IFee.mock(deployer);
1636
-
1637
- case 9:
1638
- mockPostBuySharesFee = _context2.sent;
1639
- _context2.next = 12;
1640
- return Promise.all([// Continuous fee the mimics ManagementFee
1641
- mockContinuousFeeSettleOnly.getRecipientForFund.returns(constants.AddressZero), mockContinuousFeeSettleOnly.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockContinuousFeeSettleOnly.payout.returns(false), mockContinuousFeeSettleOnly.addFundSettings.returns(undefined), mockContinuousFeeSettleOnly.activateForFund.returns(undefined), mockContinuousFeeSettleOnly.update.returns(undefined), mockContinuousFeeSettleOnly.settlesOnHook.returns(false, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.Continuous).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.PreBuyShares).returns(true, false), mockContinuousFeeSettleOnly.settlesOnHook.given(FeeHook.PreRedeemShares).returns(true, false), mockContinuousFeeSettleOnly.updatesOnHook.returns(false, false), // Continuous fee the mimics PerformanceFee
1642
- mockContinuousFeeWithGavAndUpdates.getRecipientForFund.returns(constants.AddressZero), mockContinuousFeeWithGavAndUpdates.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockContinuousFeeWithGavAndUpdates.payout.returns(false), mockContinuousFeeWithGavAndUpdates.addFundSettings.returns(undefined), mockContinuousFeeWithGavAndUpdates.activateForFund.returns(undefined), mockContinuousFeeWithGavAndUpdates.update.returns(undefined), mockContinuousFeeWithGavAndUpdates.settlesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.PreBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.settlesOnHook.given(FeeHook.PreRedeemShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.returns(false, false), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.Continuous).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.PostBuyShares).returns(true, true), mockContinuousFeeWithGavAndUpdates.updatesOnHook.given(FeeHook.PreRedeemShares).returns(true, true), // PostBuyShares fee
1643
- mockPostBuySharesFee.getRecipientForFund.returns(constants.AddressZero), mockPostBuySharesFee.settle.returns(FeeSettlementType.None, constants.AddressZero, 0), mockPostBuySharesFee.payout.returns(false), mockPostBuySharesFee.addFundSettings.returns(undefined), mockPostBuySharesFee.activateForFund.returns(undefined), mockPostBuySharesFee.update.returns(undefined), mockPostBuySharesFee.settlesOnHook.returns(false, false), mockPostBuySharesFee.settlesOnHook.given(FeeHook.PostBuyShares).returns(true, false), mockPostBuySharesFee.updatesOnHook.returns(false, false)]);
1644
-
1645
- case 12:
1646
- return _context2.abrupt("return", {
1647
- mockContinuousFeeSettleOnly: mockContinuousFeeSettleOnly,
1648
- mockContinuousFeeWithGavAndUpdates: mockContinuousFeeWithGavAndUpdates,
1649
- mockPostBuySharesFee: mockPostBuySharesFee
1650
- });
1651
-
1652
- case 13:
1653
- case "end":
1654
- return _context2.stop();
1655
- }
1656
- }
1657
- }, _callee2);
1658
- }));
1659
- return _generateMockFees.apply(this, arguments);
1660
- }
1661
-
1662
- function aaveLend(_x) {
1663
- return _aaveLend.apply(this, arguments);
1664
- }
1665
-
1666
- function _aaveLend() {
1667
- _aaveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1668
- var comptrollerProxy, integrationManager, fundOwner, aaveAdapter, aToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
1669
-
1670
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1671
- while (1) {
1672
- switch (_context.prev = _context.next) {
1673
- case 0:
1674
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, aaveAdapter = _ref.aaveAdapter, aToken = _ref.aToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? utils.parseEther('1') : _ref$amount;
1675
- lendArgs = aaveLendArgs({
1676
- aToken: aToken,
1677
- amount: amount
1678
- });
1679
- callArgs = callOnIntegrationArgs({
1680
- adapter: aaveAdapter,
1681
- encodedCallArgs: lendArgs,
1682
- selector: lendSelector
1683
- });
1684
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1685
- return _context.abrupt("return", lendTx);
1686
-
1687
- case 5:
1688
- case "end":
1689
- return _context.stop();
1690
- }
1691
- }
1692
- }, _callee);
1693
- }));
1694
- return _aaveLend.apply(this, arguments);
1695
- }
1696
-
1697
- function aaveRedeem(_x2) {
1698
- return _aaveRedeem.apply(this, arguments);
1699
- }
1700
-
1701
- function _aaveRedeem() {
1702
- _aaveRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1703
- var comptrollerProxy, integrationManager, fundOwner, aaveAdapter, aToken, _ref2$amount, amount, redeemArgs, callArgs, redeemTx;
1704
-
1705
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1706
- while (1) {
1707
- switch (_context2.prev = _context2.next) {
1708
- case 0:
1709
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, aaveAdapter = _ref2.aaveAdapter, aToken = _ref2.aToken, _ref2$amount = _ref2.amount, amount = _ref2$amount === void 0 ? utils.parseEther('1') : _ref2$amount;
1710
- redeemArgs = aaveRedeemArgs({
1711
- aToken: aToken,
1712
- amount: amount
1713
- });
1714
- callArgs = callOnIntegrationArgs({
1715
- adapter: aaveAdapter,
1716
- encodedCallArgs: redeemArgs,
1717
- selector: redeemSelector
1718
- });
1719
- redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1720
- return _context2.abrupt("return", redeemTx);
1721
-
1722
- case 5:
1723
- case "end":
1724
- return _context2.stop();
1725
- }
1726
- }
1727
- }, _callee2);
1728
- }));
1729
- return _aaveRedeem.apply(this, arguments);
1730
- }
1731
-
1732
- var _templateObject$2;
1733
- var ICompoundComptroller = contract()(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n function claimComp(address)\n"])));
1734
- function assertCompoundLend(_x) {
1735
- return _assertCompoundLend.apply(this, arguments);
1736
- }
1737
-
1738
- function _assertCompoundLend() {
1739
- _assertCompoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
1740
- var tokenWhale, comptrollerProxy, vaultProxy, integrationManager, fundOwner, compoundAdapter, _ref$tokenAmount, tokenAmount, cToken, compoundPriceFeed, token, rateBefore, minIncomingCTokenAmount, _yield$getAssetBalanc, _yield$getAssetBalanc2, preTxIncomingAssetBalance, preTxOutgoingAssetBalance, lendReceipt, rate, _yield$getAssetBalanc3, _yield$getAssetBalanc4, postTxIncomingAssetBalance, postTxOutgoingAssetBalance, expectedCTokenAmount;
1741
-
1742
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1743
- while (1) {
1744
- switch (_context.prev = _context.next) {
1745
- case 0:
1746
- tokenWhale = _ref.tokenWhale, comptrollerProxy = _ref.comptrollerProxy, vaultProxy = _ref.vaultProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, compoundAdapter = _ref.compoundAdapter, _ref$tokenAmount = _ref.tokenAmount, tokenAmount = _ref$tokenAmount === void 0 ? utils.parseEther('1') : _ref$tokenAmount, cToken = _ref.cToken, compoundPriceFeed = _ref.compoundPriceFeed;
1747
- _context.t0 = StandardToken;
1748
- _context.next = 4;
1749
- return compoundPriceFeed.getTokenFromCToken.args(cToken).call();
1750
-
1751
- case 4:
1752
- _context.t1 = _context.sent;
1753
- _context.t2 = tokenWhale;
1754
- token = new _context.t0(_context.t1, _context.t2);
1755
- _context.next = 9;
1756
- return token.connect(tokenWhale).transfer(vaultProxy, tokenAmount);
1757
-
1758
- case 9:
1759
- _context.next = 11;
1760
- return cToken.exchangeRateStored.call();
1761
-
1762
- case 11:
1763
- rateBefore = _context.sent;
1764
- // Exchange rate stored can have a small deviation from exchangeRateStored
1765
- minIncomingCTokenAmount = tokenAmount.mul(utils.parseEther('1')).div(rateBefore).mul(BigNumber.from('999')).div(BigNumber.from('1000'));
1766
- _context.next = 15;
1767
- return getAssetBalances({
1768
- account: vaultProxy,
1769
- assets: [cToken, token]
1770
- });
1771
-
1772
- case 15:
1773
- _yield$getAssetBalanc = _context.sent;
1774
- _yield$getAssetBalanc2 = _slicedToArray(_yield$getAssetBalanc, 2);
1775
- preTxIncomingAssetBalance = _yield$getAssetBalanc2[0];
1776
- preTxOutgoingAssetBalance = _yield$getAssetBalanc2[1];
1777
- _context.next = 21;
1778
- return compoundLend({
1779
- cToken: cToken,
1780
- cTokenAmount: minIncomingCTokenAmount,
1781
- compoundAdapter: compoundAdapter,
1782
- comptrollerProxy: comptrollerProxy,
1783
- fundOwner: fundOwner,
1784
- integrationManager: integrationManager,
1785
- tokenAmount: tokenAmount
1786
- });
1787
-
1788
- case 21:
1789
- lendReceipt = _context.sent;
1790
- _context.next = 24;
1791
- return cToken.exchangeRateStored();
1792
-
1793
- case 24:
1794
- rate = _context.sent;
1795
- _context.next = 27;
1796
- return getAssetBalances({
1797
- account: vaultProxy,
1798
- assets: [cToken, token]
1799
- });
1800
-
1801
- case 27:
1802
- _yield$getAssetBalanc3 = _context.sent;
1803
- _yield$getAssetBalanc4 = _slicedToArray(_yield$getAssetBalanc3, 2);
1804
- postTxIncomingAssetBalance = _yield$getAssetBalanc4[0];
1805
- postTxOutgoingAssetBalance = _yield$getAssetBalanc4[1];
1806
- expectedCTokenAmount = tokenAmount.mul(utils.parseEther('1')).div(rate);
1807
- expect(postTxIncomingAssetBalance).toEqBigNumber(preTxIncomingAssetBalance.add(expectedCTokenAmount));
1808
- expect(postTxOutgoingAssetBalance).toEqBigNumber(preTxOutgoingAssetBalance.sub(tokenAmount));
1809
- return _context.abrupt("return", lendReceipt);
1810
-
1811
- case 35:
1812
- case "end":
1813
- return _context.stop();
1814
- }
1815
- }
1816
- }, _callee);
1817
- }));
1818
- return _assertCompoundLend.apply(this, arguments);
1819
- }
1820
-
1821
- function assertCompoundRedeem(_x2) {
1822
- return _assertCompoundRedeem.apply(this, arguments);
1823
- }
1824
-
1825
- function _assertCompoundRedeem() {
1826
- _assertCompoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
1827
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, compoundAdapter, cToken, compoundPriceFeed, cTokenAmount, token, _yield$getAssetBalanc5, _yield$getAssetBalanc6, preTxIncomingAssetBalance, preTxOutgoingAssetBalance, rateBefore, minIncomingTokenAmount, redeemReceipt, _yield$getAssetBalanc7, _yield$getAssetBalanc8, postTxIncomingAssetBalance, postTxOutgoingAssetBalance, rate, expectedTokenAmount;
1828
-
1829
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1830
- while (1) {
1831
- switch (_context2.prev = _context2.next) {
1832
- case 0:
1833
- comptrollerProxy = _ref2.comptrollerProxy, vaultProxy = _ref2.vaultProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, compoundAdapter = _ref2.compoundAdapter, cToken = _ref2.cToken, compoundPriceFeed = _ref2.compoundPriceFeed;
1834
- _context2.t0 = utils;
1835
- _context2.next = 4;
1836
- return cToken.decimals();
1837
-
1838
- case 4:
1839
- _context2.t1 = _context2.sent;
1840
- cTokenAmount = _context2.t0.parseUnits.call(_context2.t0, '1', _context2.t1);
1841
- _context2.next = 8;
1842
- return cToken.transfer(vaultProxy, cTokenAmount);
1843
-
1844
- case 8:
1845
- _context2.t2 = StandardToken;
1846
- _context2.next = 11;
1847
- return compoundPriceFeed.getTokenFromCToken.args(cToken).call();
1848
-
1849
- case 11:
1850
- _context2.t3 = _context2.sent;
1851
- _context2.t4 = provider;
1852
- token = new _context2.t2(_context2.t3, _context2.t4);
1853
- _context2.next = 16;
1854
- return getAssetBalances({
1855
- account: vaultProxy,
1856
- assets: [token, cToken]
1857
- });
1858
-
1859
- case 16:
1860
- _yield$getAssetBalanc5 = _context2.sent;
1861
- _yield$getAssetBalanc6 = _slicedToArray(_yield$getAssetBalanc5, 2);
1862
- preTxIncomingAssetBalance = _yield$getAssetBalanc6[0];
1863
- preTxOutgoingAssetBalance = _yield$getAssetBalanc6[1];
1864
- _context2.next = 22;
1865
- return cToken.exchangeRateStored();
1866
-
1867
- case 22:
1868
- rateBefore = _context2.sent;
1869
- minIncomingTokenAmount = cTokenAmount.mul(rateBefore).div(utils.parseEther('1'));
1870
- _context2.next = 26;
1871
- return compoundRedeem({
1872
- cToken: cToken,
1873
- cTokenAmount: cTokenAmount,
1874
- compoundAdapter: compoundAdapter,
1875
- comptrollerProxy: comptrollerProxy,
1876
- fundOwner: fundOwner,
1877
- integrationManager: integrationManager,
1878
- tokenAmount: minIncomingTokenAmount,
1879
- vaultProxy: vaultProxy
1880
- });
1881
-
1882
- case 26:
1883
- redeemReceipt = _context2.sent;
1884
- _context2.next = 29;
1885
- return getAssetBalances({
1886
- account: vaultProxy,
1887
- assets: [token, cToken]
1888
- });
1889
-
1890
- case 29:
1891
- _yield$getAssetBalanc7 = _context2.sent;
1892
- _yield$getAssetBalanc8 = _slicedToArray(_yield$getAssetBalanc7, 2);
1893
- postTxIncomingAssetBalance = _yield$getAssetBalanc8[0];
1894
- postTxOutgoingAssetBalance = _yield$getAssetBalanc8[1];
1895
- _context2.next = 35;
1896
- return cToken.exchangeRateStored();
1897
-
1898
- case 35:
1899
- rate = _context2.sent;
1900
- expectedTokenAmount = cTokenAmount.mul(rate).div(utils.parseEther('1'));
1901
- expect(postTxIncomingAssetBalance).toEqBigNumber(preTxIncomingAssetBalance.add(expectedTokenAmount));
1902
- expect(postTxOutgoingAssetBalance).toEqBigNumber(preTxOutgoingAssetBalance.sub(cTokenAmount));
1903
- return _context2.abrupt("return", redeemReceipt);
1904
-
1905
- case 40:
1906
- case "end":
1907
- return _context2.stop();
1908
- }
1909
- }
1910
- }, _callee2);
1911
- }));
1912
- return _assertCompoundRedeem.apply(this, arguments);
1913
- }
1914
-
1915
- function compoundClaim(_x3) {
1916
- return _compoundClaim.apply(this, arguments);
1917
- }
1918
-
1919
- function _compoundClaim() {
1920
- _compoundClaim = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
1921
- var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, compoundComptroller, cTokens, claimArgs, callArgs, claimRewardsTx;
1922
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1923
- while (1) {
1924
- switch (_context3.prev = _context3.next) {
1925
- case 0:
1926
- comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, compoundAdapter = _ref3.compoundAdapter, compoundComptroller = _ref3.compoundComptroller, cTokens = _ref3.cTokens;
1927
- claimArgs = compoundClaimRewardsArgs({
1928
- cTokens: cTokens,
1929
- compoundComptroller: compoundComptroller
1930
- });
1931
- callArgs = callOnIntegrationArgs({
1932
- adapter: compoundAdapter,
1933
- encodedCallArgs: claimArgs,
1934
- selector: claimRewardsSelector
1935
- });
1936
- claimRewardsTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1937
- return _context3.abrupt("return", claimRewardsTx);
1938
-
1939
- case 5:
1940
- case "end":
1941
- return _context3.stop();
1942
- }
1943
- }
1944
- }, _callee3);
1945
- }));
1946
- return _compoundClaim.apply(this, arguments);
1947
- }
1948
-
1949
- function compoundLend(_x4) {
1950
- return _compoundLend.apply(this, arguments);
1951
- }
1952
-
1953
- function _compoundLend() {
1954
- _compoundLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
1955
- var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref4$tokenAmount, tokenAmount, _ref4$cTokenAmount, cTokenAmount, lendArgs, callArgs, lendTx;
1956
-
1957
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1958
- while (1) {
1959
- switch (_context4.prev = _context4.next) {
1960
- case 0:
1961
- comptrollerProxy = _ref4.comptrollerProxy, integrationManager = _ref4.integrationManager, fundOwner = _ref4.fundOwner, compoundAdapter = _ref4.compoundAdapter, cToken = _ref4.cToken, _ref4$tokenAmount = _ref4.tokenAmount, tokenAmount = _ref4$tokenAmount === void 0 ? utils.parseEther('1') : _ref4$tokenAmount, _ref4$cTokenAmount = _ref4.cTokenAmount, cTokenAmount = _ref4$cTokenAmount === void 0 ? utils.parseEther('1') : _ref4$cTokenAmount;
1962
- lendArgs = compoundArgs({
1963
- cToken: cToken,
1964
- minIncomingAssetAmount: cTokenAmount,
1965
- outgoingAssetAmount: tokenAmount
1966
- });
1967
- callArgs = callOnIntegrationArgs({
1968
- adapter: compoundAdapter,
1969
- encodedCallArgs: lendArgs,
1970
- selector: lendSelector
1971
- });
1972
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1973
- return _context4.abrupt("return", lendTx);
1974
-
1975
- case 5:
1976
- case "end":
1977
- return _context4.stop();
1978
- }
1979
- }
1980
- }, _callee4);
1981
- }));
1982
- return _compoundLend.apply(this, arguments);
1983
- }
1984
-
1985
- function compoundRedeem(_x5) {
1986
- return _compoundRedeem.apply(this, arguments);
1987
- }
1988
-
1989
- function _compoundRedeem() {
1990
- _compoundRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
1991
- var comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, _ref5$tokenAmount, tokenAmount, _ref5$cTokenAmount, cTokenAmount, redeemArgs, callArgs, redeemTx;
1992
-
1993
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
1994
- while (1) {
1995
- switch (_context5.prev = _context5.next) {
1996
- case 0:
1997
- comptrollerProxy = _ref5.comptrollerProxy, integrationManager = _ref5.integrationManager, fundOwner = _ref5.fundOwner, compoundAdapter = _ref5.compoundAdapter, cToken = _ref5.cToken, _ref5$tokenAmount = _ref5.tokenAmount, tokenAmount = _ref5$tokenAmount === void 0 ? utils.parseEther('1') : _ref5$tokenAmount, _ref5$cTokenAmount = _ref5.cTokenAmount, cTokenAmount = _ref5$cTokenAmount === void 0 ? utils.parseEther('1') : _ref5$cTokenAmount;
1998
- redeemArgs = compoundArgs({
1999
- cToken: resolveAddress(cToken),
2000
- minIncomingAssetAmount: tokenAmount,
2001
- outgoingAssetAmount: cTokenAmount
2002
- });
2003
- callArgs = callOnIntegrationArgs({
2004
- adapter: compoundAdapter,
2005
- encodedCallArgs: redeemArgs,
2006
- selector: redeemSelector
2007
- });
2008
- redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2009
- return _context5.abrupt("return", redeemTx);
2010
-
2011
- case 5:
2012
- case "end":
2013
- return _context5.stop();
2014
- }
2015
- }
2016
- }, _callee5);
2017
- }));
2018
- return _compoundRedeem.apply(this, arguments);
2019
- }
2020
-
2021
- var _templateObject$1, _templateObject2, _templateObject3, _templateObject4;
2022
- var CurveLiquidityGaugeV2 = contract()(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n function claim_rewards(address)\n function integrate_fraction(address) view returns (uint256)\n"])));
2023
- var CurveRegistry = contract()(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n function get_coins(address) view returns (address[8])\n function get_lp_token(address) view returns (address)\n"]))); // prettier-ignore
2024
-
2025
- var CurveSwaps = contract()(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n function get_best_rate(address _from, address to, uint256 amount) view returns (address bestPool, uint256 amountReceived)\n"])));
2026
- var CurveMinter = contract()(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n function mint_for(address,address)\n"]))); // exchanges
2027
-
2028
- function curveTakeOrder(_x) {
2029
- return _curveTakeOrder.apply(this, arguments);
2030
- } // combined liquidity
2031
-
2032
- function _curveTakeOrder() {
2033
- _curveTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2034
- var comptrollerProxy, integrationManager, fundOwner, curveExchangeAdapter, pool, outgoingAsset, _ref$outgoingAssetAmo, outgoingAssetAmount, incomingAsset, _ref$minIncomingAsset, minIncomingAssetAmount, takeOrderArgs, callArgs;
2035
-
2036
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2037
- while (1) {
2038
- switch (_context.prev = _context.next) {
2039
- case 0:
2040
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, curveExchangeAdapter = _ref.curveExchangeAdapter, pool = _ref.pool, outgoingAsset = _ref.outgoingAsset, _ref$outgoingAssetAmo = _ref.outgoingAssetAmount, outgoingAssetAmount = _ref$outgoingAssetAmo === void 0 ? utils.parseEther('1') : _ref$outgoingAssetAmo, incomingAsset = _ref.incomingAsset, _ref$minIncomingAsset = _ref.minIncomingAssetAmount, minIncomingAssetAmount = _ref$minIncomingAsset === void 0 ? utils.parseEther('1') : _ref$minIncomingAsset;
2041
- takeOrderArgs = curveTakeOrderArgs({
2042
- incomingAsset: incomingAsset,
2043
- minIncomingAssetAmount: minIncomingAssetAmount,
2044
- outgoingAsset: outgoingAsset,
2045
- outgoingAssetAmount: outgoingAssetAmount,
2046
- pool: pool
2047
- });
2048
- callArgs = callOnIntegrationArgs({
2049
- adapter: curveExchangeAdapter,
2050
- encodedCallArgs: takeOrderArgs,
2051
- selector: takeOrderSelector
2052
- });
2053
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2054
-
2055
- case 4:
2056
- case "end":
2057
- return _context.stop();
2058
- }
2059
- }
2060
- }, _callee);
2061
- }));
2062
- return _curveTakeOrder.apply(this, arguments);
2063
- }
2064
-
2065
- function curveClaimRewards(_ref2) {
2066
- var comptrollerProxy = _ref2.comptrollerProxy,
2067
- integrationManager = _ref2.integrationManager,
2068
- fundOwner = _ref2.fundOwner,
2069
- curveLiquidityAdapter = _ref2.curveLiquidityAdapter,
2070
- stakingToken = _ref2.stakingToken;
2071
- var callArgs = callOnIntegrationArgs({
2072
- adapter: curveLiquidityAdapter,
2073
- encodedCallArgs: curveClaimRewardsArgs({
2074
- stakingToken: stakingToken
2075
- }),
2076
- selector: claimRewardsSelector
2077
- });
2078
- return comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2079
- }
2080
- function curveLend(_x2) {
2081
- return _curveLend.apply(this, arguments);
2082
- }
2083
-
2084
- function _curveLend() {
2085
- _curveLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
2086
- var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, orderedOutgoingAssetAmounts, _ref3$minIncomingLpTo, minIncomingLpTokenAmount, useUnderlyings, callArgs;
2087
-
2088
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2089
- while (1) {
2090
- switch (_context2.prev = _context2.next) {
2091
- case 0:
2092
- comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, signer = _ref3.signer, curveLiquidityAdapter = _ref3.curveLiquidityAdapter, pool = _ref3.pool, orderedOutgoingAssetAmounts = _ref3.orderedOutgoingAssetAmounts, _ref3$minIncomingLpTo = _ref3.minIncomingLpTokenAmount, minIncomingLpTokenAmount = _ref3$minIncomingLpTo === void 0 ? BigNumber.from(1) : _ref3$minIncomingLpTo, useUnderlyings = _ref3.useUnderlyings;
2093
- callArgs = callOnIntegrationArgs({
2094
- adapter: curveLiquidityAdapter,
2095
- encodedCallArgs: curveLendArgs({
2096
- minIncomingLpTokenAmount: minIncomingLpTokenAmount,
2097
- orderedOutgoingAssetAmounts: orderedOutgoingAssetAmounts,
2098
- pool: pool,
2099
- useUnderlyings: useUnderlyings
2100
- }),
2101
- selector: lendSelector
2102
- });
2103
- return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2104
-
2105
- case 3:
2106
- case "end":
2107
- return _context2.stop();
2108
- }
2109
- }
2110
- }, _callee2);
2111
- }));
2112
- return _curveLend.apply(this, arguments);
2113
- }
2114
-
2115
- function curveLendAndStake(_x3) {
2116
- return _curveLendAndStake.apply(this, arguments);
2117
- }
2118
-
2119
- function _curveLendAndStake() {
2120
- _curveLendAndStake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref4) {
2121
- var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, orderedOutgoingAssetAmounts, incomingStakingToken, _ref4$minIncomingStak, minIncomingStakingTokenAmount, useUnderlyings, callArgs;
2122
-
2123
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2124
- while (1) {
2125
- switch (_context3.prev = _context3.next) {
2126
- case 0:
2127
- comptrollerProxy = _ref4.comptrollerProxy, integrationManager = _ref4.integrationManager, signer = _ref4.signer, curveLiquidityAdapter = _ref4.curveLiquidityAdapter, pool = _ref4.pool, orderedOutgoingAssetAmounts = _ref4.orderedOutgoingAssetAmounts, incomingStakingToken = _ref4.incomingStakingToken, _ref4$minIncomingStak = _ref4.minIncomingStakingTokenAmount, minIncomingStakingTokenAmount = _ref4$minIncomingStak === void 0 ? BigNumber.from(1) : _ref4$minIncomingStak, useUnderlyings = _ref4.useUnderlyings;
2128
- callArgs = callOnIntegrationArgs({
2129
- adapter: curveLiquidityAdapter,
2130
- encodedCallArgs: curveLendAndStakeArgs({
2131
- incomingStakingToken: incomingStakingToken,
2132
- minIncomingStakingTokenAmount: minIncomingStakingTokenAmount,
2133
- orderedOutgoingAssetAmounts: orderedOutgoingAssetAmounts,
2134
- pool: pool,
2135
- useUnderlyings: useUnderlyings
2136
- }),
2137
- selector: lendAndStakeSelector
2138
- });
2139
- return _context3.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2140
-
2141
- case 3:
2142
- case "end":
2143
- return _context3.stop();
2144
- }
2145
- }
2146
- }, _callee3);
2147
- }));
2148
- return _curveLendAndStake.apply(this, arguments);
2149
- }
2150
-
2151
- function curveRedeem(_x4) {
2152
- return _curveRedeem.apply(this, arguments);
2153
- }
2154
-
2155
- function _curveRedeem() {
2156
- _curveRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref5) {
2157
- var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingLpTokenAmount, useUnderlyings, redeemType, incomingAssetData, callArgs;
2158
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
2159
- while (1) {
2160
- switch (_context4.prev = _context4.next) {
2161
- case 0:
2162
- comptrollerProxy = _ref5.comptrollerProxy, integrationManager = _ref5.integrationManager, signer = _ref5.signer, curveLiquidityAdapter = _ref5.curveLiquidityAdapter, pool = _ref5.pool, outgoingLpTokenAmount = _ref5.outgoingLpTokenAmount, useUnderlyings = _ref5.useUnderlyings, redeemType = _ref5.redeemType, incomingAssetData = _ref5.incomingAssetData;
2163
- callArgs = callOnIntegrationArgs({
2164
- adapter: curveLiquidityAdapter,
2165
- encodedCallArgs: curveRedeemArgs({
2166
- incomingAssetData: incomingAssetData,
2167
- outgoingLpTokenAmount: outgoingLpTokenAmount,
2168
- pool: pool,
2169
- redeemType: redeemType,
2170
- useUnderlyings: useUnderlyings
2171
- }),
2172
- selector: redeemSelector
2173
- });
2174
- return _context4.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2175
-
2176
- case 3:
2177
- case "end":
2178
- return _context4.stop();
2179
- }
2180
- }
2181
- }, _callee4);
2182
- }));
2183
- return _curveRedeem.apply(this, arguments);
2184
- }
2185
-
2186
- function curveStake(_x5) {
2187
- return _curveStake.apply(this, arguments);
2188
- }
2189
-
2190
- function _curveStake() {
2191
- _curveStake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref6) {
2192
- var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, incomingStakingToken, amount, callArgs;
2193
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
2194
- while (1) {
2195
- switch (_context5.prev = _context5.next) {
2196
- case 0:
2197
- comptrollerProxy = _ref6.comptrollerProxy, integrationManager = _ref6.integrationManager, signer = _ref6.signer, curveLiquidityAdapter = _ref6.curveLiquidityAdapter, pool = _ref6.pool, incomingStakingToken = _ref6.incomingStakingToken, amount = _ref6.amount;
2198
- callArgs = callOnIntegrationArgs({
2199
- adapter: curveLiquidityAdapter,
2200
- encodedCallArgs: curveStakeArgs({
2201
- amount: amount,
2202
- incomingStakingToken: incomingStakingToken,
2203
- pool: pool
2204
- }),
2205
- selector: stakeSelector
2206
- });
2207
- return _context5.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2208
-
2209
- case 3:
2210
- case "end":
2211
- return _context5.stop();
2212
- }
2213
- }
2214
- }, _callee5);
2215
- }));
2216
- return _curveStake.apply(this, arguments);
2217
- }
2218
-
2219
- function curveUnstake(_x6) {
2220
- return _curveUnstake.apply(this, arguments);
2221
- }
2222
-
2223
- function _curveUnstake() {
2224
- _curveUnstake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref7) {
2225
- var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingStakingToken, amount, callArgs;
2226
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
2227
- while (1) {
2228
- switch (_context6.prev = _context6.next) {
2229
- case 0:
2230
- comptrollerProxy = _ref7.comptrollerProxy, integrationManager = _ref7.integrationManager, signer = _ref7.signer, curveLiquidityAdapter = _ref7.curveLiquidityAdapter, pool = _ref7.pool, outgoingStakingToken = _ref7.outgoingStakingToken, amount = _ref7.amount;
2231
- callArgs = callOnIntegrationArgs({
2232
- adapter: curveLiquidityAdapter,
2233
- encodedCallArgs: curveUnstakeArgs({
2234
- amount: amount,
2235
- outgoingStakingToken: outgoingStakingToken,
2236
- pool: pool
2237
- }),
2238
- selector: unstakeSelector
2239
- });
2240
- return _context6.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2241
-
2242
- case 3:
2243
- case "end":
2244
- return _context6.stop();
2245
- }
2246
- }
2247
- }, _callee6);
2248
- }));
2249
- return _curveUnstake.apply(this, arguments);
2250
- }
2251
-
2252
- function curveUnstakeAndRedeem(_x7) {
2253
- return _curveUnstakeAndRedeem.apply(this, arguments);
2254
- }
2255
-
2256
- function _curveUnstakeAndRedeem() {
2257
- _curveUnstakeAndRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref8) {
2258
- var comptrollerProxy, integrationManager, signer, curveLiquidityAdapter, pool, outgoingStakingToken, outgoingStakingTokenAmount, useUnderlyings, redeemType, incomingAssetData, callArgs;
2259
- return _regeneratorRuntime.wrap(function _callee7$(_context7) {
2260
- while (1) {
2261
- switch (_context7.prev = _context7.next) {
2262
- case 0:
2263
- comptrollerProxy = _ref8.comptrollerProxy, integrationManager = _ref8.integrationManager, signer = _ref8.signer, curveLiquidityAdapter = _ref8.curveLiquidityAdapter, pool = _ref8.pool, outgoingStakingToken = _ref8.outgoingStakingToken, outgoingStakingTokenAmount = _ref8.outgoingStakingTokenAmount, useUnderlyings = _ref8.useUnderlyings, redeemType = _ref8.redeemType, incomingAssetData = _ref8.incomingAssetData;
2264
- callArgs = callOnIntegrationArgs({
2265
- adapter: curveLiquidityAdapter,
2266
- encodedCallArgs: curveUnstakeAndRedeemArgs({
2267
- incomingAssetData: incomingAssetData,
2268
- outgoingStakingToken: outgoingStakingToken,
2269
- outgoingStakingTokenAmount: outgoingStakingTokenAmount,
2270
- pool: pool,
2271
- redeemType: redeemType,
2272
- useUnderlyings: useUnderlyings
2273
- }),
2274
- selector: unstakeAndRedeemSelector
2275
- });
2276
- return _context7.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2277
-
2278
- case 3:
2279
- case "end":
2280
- return _context7.stop();
2281
- }
2282
- }
2283
- }, _callee7);
2284
- }));
2285
- return _curveUnstakeAndRedeem.apply(this, arguments);
2286
- }
2287
-
2288
- function idleClaimRewards(_x) {
2289
- return _idleClaimRewards.apply(this, arguments);
2290
- }
2291
-
2292
- function _idleClaimRewards() {
2293
- _idleClaimRewards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2294
- var comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, callArgs;
2295
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2296
- while (1) {
2297
- switch (_context.prev = _context.next) {
2298
- case 0:
2299
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, idleAdapter = _ref.idleAdapter, idleToken = _ref.idleToken;
2300
- callArgs = callOnIntegrationArgs({
2301
- adapter: idleAdapter,
2302
- encodedCallArgs: idleClaimRewardsArgs({
2303
- idleToken: idleToken
2304
- }),
2305
- selector: claimRewardsSelector
2306
- });
2307
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2308
-
2309
- case 3:
2310
- case "end":
2311
- return _context.stop();
2312
- }
2313
- }
2314
- }, _callee);
2315
- }));
2316
- return _idleClaimRewards.apply(this, arguments);
2317
- }
2318
-
2319
- function idleLend(_x2) {
2320
- return _idleLend.apply(this, arguments);
2321
- }
2322
-
2323
- function _idleLend() {
2324
- _idleLend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2325
- var comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, outgoingUnderlyingAmount, _ref2$minIncomingIdle, minIncomingIdleTokenAmount, callArgs;
2326
-
2327
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2328
- while (1) {
2329
- switch (_context2.prev = _context2.next) {
2330
- case 0:
2331
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, idleAdapter = _ref2.idleAdapter, idleToken = _ref2.idleToken, outgoingUnderlyingAmount = _ref2.outgoingUnderlyingAmount, _ref2$minIncomingIdle = _ref2.minIncomingIdleTokenAmount, minIncomingIdleTokenAmount = _ref2$minIncomingIdle === void 0 ? BigNumber.from(1) : _ref2$minIncomingIdle;
2332
- callArgs = callOnIntegrationArgs({
2333
- adapter: idleAdapter,
2334
- encodedCallArgs: idleLendArgs({
2335
- idleToken: idleToken,
2336
- minIncomingIdleTokenAmount: minIncomingIdleTokenAmount,
2337
- outgoingUnderlyingAmount: outgoingUnderlyingAmount
2338
- }),
2339
- selector: lendSelector
2340
- });
2341
- return _context2.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2342
-
2343
- case 3:
2344
- case "end":
2345
- return _context2.stop();
2346
- }
2347
- }
2348
- }, _callee2);
2349
- }));
2350
- return _idleLend.apply(this, arguments);
2351
- }
2352
-
2353
- function idleRedeem(_x3) {
2354
- return _idleRedeem.apply(this, arguments);
2355
- }
2356
-
2357
- function _idleRedeem() {
2358
- _idleRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2359
- var comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, outgoingIdleTokenAmount, _ref3$minIncomingUnde, minIncomingUnderlyingAmount, callArgs;
2360
-
2361
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2362
- while (1) {
2363
- switch (_context3.prev = _context3.next) {
2364
- case 0:
2365
- comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, idleAdapter = _ref3.idleAdapter, idleToken = _ref3.idleToken, outgoingIdleTokenAmount = _ref3.outgoingIdleTokenAmount, _ref3$minIncomingUnde = _ref3.minIncomingUnderlyingAmount, minIncomingUnderlyingAmount = _ref3$minIncomingUnde === void 0 ? BigNumber.from(1) : _ref3$minIncomingUnde;
2366
- callArgs = callOnIntegrationArgs({
2367
- adapter: idleAdapter,
2368
- encodedCallArgs: idleRedeemArgs({
2369
- idleToken: idleToken,
2370
- minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
2371
- outgoingIdleTokenAmount: outgoingIdleTokenAmount
2372
- }),
2373
- selector: redeemSelector
2374
- });
2375
- return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2376
-
2377
- case 3:
2378
- case "end":
2379
- return _context3.stop();
2380
- }
2381
- }
2382
- }, _callee3);
2383
- }));
2384
- return _idleRedeem.apply(this, arguments);
2385
- }
2386
-
2387
- var mockGenericRemoveOnlySelector = sighash(utils.FunctionFragment.fromString('removeOnly(address,bytes,bytes)'));
2388
- var mockGenericSwapASelector = sighash(utils.FunctionFragment.fromString('swapA(address,bytes,bytes)'));
2389
- var mockGenericSwapBSelector = sighash(utils.FunctionFragment.fromString('swapB(address,bytes,bytes)'));
2390
- var mockGenericSwapDirectFromVaultSelector = sighash(utils.FunctionFragment.fromString('swapDirectFromVault(address,bytes,bytes)'));
2391
- var mockGenericSwapViaApprovalSelector = sighash(utils.FunctionFragment.fromString('swapViaApproval(address,bytes,bytes)'));
2392
- function mockGenericSwapArgs(_ref) {
2393
- var _ref$spendAssets = _ref.spendAssets,
2394
- spendAssets = _ref$spendAssets === void 0 ? [] : _ref$spendAssets,
2395
- _ref$actualSpendAsset = _ref.actualSpendAssetAmounts,
2396
- actualSpendAssetAmounts = _ref$actualSpendAsset === void 0 ? [] : _ref$actualSpendAsset,
2397
- _ref$maxSpendAssetAmo = _ref.maxSpendAssetAmounts,
2398
- maxSpendAssetAmounts = _ref$maxSpendAssetAmo === void 0 ? actualSpendAssetAmounts : _ref$maxSpendAssetAmo,
2399
- _ref$incomingAssets = _ref.incomingAssets,
2400
- incomingAssets = _ref$incomingAssets === void 0 ? [] : _ref$incomingAssets,
2401
- _ref$actualIncomingAs = _ref.actualIncomingAssetAmounts,
2402
- actualIncomingAssetAmounts = _ref$actualIncomingAs === void 0 ? [] : _ref$actualIncomingAs,
2403
- _ref$minIncomingAsset = _ref.minIncomingAssetAmounts,
2404
- minIncomingAssetAmounts = _ref$minIncomingAsset === void 0 ? actualIncomingAssetAmounts : _ref$minIncomingAsset;
2405
- return encodeArgs(['address[]', 'uint256[]', 'uint256[]', 'address[]', 'uint256[]', 'uint256[]'], [spendAssets, maxSpendAssetAmounts, actualSpendAssetAmounts, incomingAssets, minIncomingAssetAmounts, actualIncomingAssetAmounts]);
2406
- }
2407
- function mockGenericSwap(_x) {
2408
- return _mockGenericSwap.apply(this, arguments);
2409
- }
2410
-
2411
- function _mockGenericSwap() {
2412
- _mockGenericSwap = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
2413
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, mockGenericAdapter, _ref2$selector, selector, _ref2$spendAssets, spendAssets, _ref2$actualSpendAsse, actualSpendAssetAmounts, _ref2$maxSpendAssetAm, maxSpendAssetAmounts, _ref2$incomingAssets, incomingAssets, _ref2$actualIncomingA, actualIncomingAssetAmounts, _ref2$minIncomingAsse, minIncomingAssetAmounts, _ref2$seedFund, seedFund, key, swapArgs, callArgs, swapTx;
2414
-
2415
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2416
- while (1) {
2417
- switch (_context.prev = _context.next) {
2418
- case 0:
2419
- comptrollerProxy = _ref2.comptrollerProxy, vaultProxy = _ref2.vaultProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, mockGenericAdapter = _ref2.mockGenericAdapter, _ref2$selector = _ref2.selector, selector = _ref2$selector === void 0 ? mockGenericSwapASelector : _ref2$selector, _ref2$spendAssets = _ref2.spendAssets, spendAssets = _ref2$spendAssets === void 0 ? [] : _ref2$spendAssets, _ref2$actualSpendAsse = _ref2.actualSpendAssetAmounts, actualSpendAssetAmounts = _ref2$actualSpendAsse === void 0 ? [] : _ref2$actualSpendAsse, _ref2$maxSpendAssetAm = _ref2.maxSpendAssetAmounts, maxSpendAssetAmounts = _ref2$maxSpendAssetAm === void 0 ? actualSpendAssetAmounts : _ref2$maxSpendAssetAm, _ref2$incomingAssets = _ref2.incomingAssets, incomingAssets = _ref2$incomingAssets === void 0 ? [] : _ref2$incomingAssets, _ref2$actualIncomingA = _ref2.actualIncomingAssetAmounts, actualIncomingAssetAmounts = _ref2$actualIncomingA === void 0 ? [] : _ref2$actualIncomingA, _ref2$minIncomingAsse = _ref2.minIncomingAssetAmounts, minIncomingAssetAmounts = _ref2$minIncomingAsse === void 0 ? actualIncomingAssetAmounts : _ref2$minIncomingAsse, _ref2$seedFund = _ref2.seedFund, seedFund = _ref2$seedFund === void 0 ? false : _ref2$seedFund;
2420
-
2421
- if (!seedFund) {
2422
- _context.next = 9;
2423
- break;
2424
- }
2425
-
2426
- _context.t0 = _regeneratorRuntime.keys(spendAssets);
2427
-
2428
- case 3:
2429
- if ((_context.t1 = _context.t0()).done) {
2430
- _context.next = 9;
2431
- break;
2432
- }
2433
-
2434
- key = _context.t1.value;
2435
- _context.next = 7;
2436
- return spendAssets[key].transfer(vaultProxy, maxSpendAssetAmounts[key]);
2437
-
2438
- case 7:
2439
- _context.next = 3;
2440
- break;
2441
-
2442
- case 9:
2443
- swapArgs = mockGenericSwapArgs({
2444
- actualIncomingAssetAmounts: actualIncomingAssetAmounts,
2445
- actualSpendAssetAmounts: actualSpendAssetAmounts,
2446
- incomingAssets: incomingAssets,
2447
- maxSpendAssetAmounts: maxSpendAssetAmounts,
2448
- minIncomingAssetAmounts: minIncomingAssetAmounts,
2449
- spendAssets: spendAssets
2450
- });
2451
- callArgs = callOnIntegrationArgs({
2452
- adapter: mockGenericAdapter,
2453
- encodedCallArgs: swapArgs,
2454
- selector: selector
2455
- });
2456
- swapTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2457
- _context.next = 14;
2458
- return expect(swapTx).resolves.toBeReceipt();
2459
-
2460
- case 14:
2461
- return _context.abrupt("return", swapTx);
2462
-
2463
- case 15:
2464
- case "end":
2465
- return _context.stop();
2466
- }
2467
- }
2468
- }, _callee);
2469
- }));
2470
- return _mockGenericSwap.apply(this, arguments);
2471
- }
2472
-
2473
- function olympusV2Stake(_x) {
2474
- return _olympusV2Stake.apply(this, arguments);
2475
- }
2476
-
2477
- function _olympusV2Stake() {
2478
- _olympusV2Stake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2479
- var comptrollerProxy, integrationManager, signer, olympusV2Adapter, amount, stakeArgs, callArgs, stakeTx;
2480
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2481
- while (1) {
2482
- switch (_context.prev = _context.next) {
2483
- case 0:
2484
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, signer = _ref.signer, olympusV2Adapter = _ref.olympusV2Adapter, amount = _ref.amount;
2485
- stakeArgs = olympusV2StakeArgs({
2486
- amount: amount
2487
- });
2488
- callArgs = callOnIntegrationArgs({
2489
- adapter: olympusV2Adapter,
2490
- encodedCallArgs: stakeArgs,
2491
- selector: stakeSelector
2492
- });
2493
- stakeTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2494
- return _context.abrupt("return", stakeTx);
2495
-
2496
- case 5:
2497
- case "end":
2498
- return _context.stop();
2499
- }
2500
- }
2501
- }, _callee);
2502
- }));
2503
- return _olympusV2Stake.apply(this, arguments);
2504
- }
2505
-
2506
- function olympusV2Unstake(_x2) {
2507
- return _olympusV2Unstake.apply(this, arguments);
2508
- }
2509
-
2510
- function _olympusV2Unstake() {
2511
- _olympusV2Unstake = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2512
- var comptrollerProxy, integrationManager, signer, olympusV2Adapter, amount, unstakeArgs, callArgs, unstakeTx;
2513
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2514
- while (1) {
2515
- switch (_context2.prev = _context2.next) {
2516
- case 0:
2517
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, signer = _ref2.signer, olympusV2Adapter = _ref2.olympusV2Adapter, amount = _ref2.amount;
2518
- unstakeArgs = olympusV2UnstakeArgs({
2519
- amount: amount
2520
- });
2521
- callArgs = callOnIntegrationArgs({
2522
- adapter: olympusV2Adapter,
2523
- encodedCallArgs: unstakeArgs,
2524
- selector: unstakeSelector
2525
- });
2526
- unstakeTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2527
- return _context2.abrupt("return", unstakeTx);
2528
-
2529
- case 5:
2530
- case "end":
2531
- return _context2.stop();
2532
- }
2533
- }
2534
- }, _callee2);
2535
- }));
2536
- return _olympusV2Unstake.apply(this, arguments);
2537
- }
2538
-
2539
- function paraSwapV5GenerateDummyPaths(_ref) {
2540
- var toTokens = _ref.toTokens;
2541
- return toTokens.map(function (toToken) {
2542
- return {
2543
- // Not supported in our protocol
2544
- adapters: [],
2545
- to: toToken,
2546
- totalNetworkFee: 0 // Can ignore this param in the dummy
2547
-
2548
- };
2549
- });
2550
- }
2551
- function paraSwapV5TakeOrder(_x) {
2552
- return _paraSwapV5TakeOrder.apply(this, arguments);
2553
- }
2554
-
2555
- function _paraSwapV5TakeOrder() {
2556
- _paraSwapV5TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
2557
- var comptrollerProxy, integrationManager, fundOwner, paraSwapV5Adapter, outgoingAsset, outgoingAssetAmount, _ref2$minIncomingAsse, minIncomingAssetAmount, _ref2$expectedIncomin, expectedIncomingAssetAmount, _ref2$uuid, uuid, paths, takeOrderArgs, callArgs;
2558
-
2559
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2560
- while (1) {
2561
- switch (_context.prev = _context.next) {
2562
- case 0:
2563
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, paraSwapV5Adapter = _ref2.paraSwapV5Adapter, outgoingAsset = _ref2.outgoingAsset, outgoingAssetAmount = _ref2.outgoingAssetAmount, _ref2$minIncomingAsse = _ref2.minIncomingAssetAmount, minIncomingAssetAmount = _ref2$minIncomingAsse === void 0 ? 1 : _ref2$minIncomingAsse, _ref2$expectedIncomin = _ref2.expectedIncomingAssetAmount, expectedIncomingAssetAmount = _ref2$expectedIncomin === void 0 ? minIncomingAssetAmount : _ref2$expectedIncomin, _ref2$uuid = _ref2.uuid, uuid = _ref2$uuid === void 0 ? utils.randomBytes(16) : _ref2$uuid, paths = _ref2.paths;
2564
- takeOrderArgs = paraSwapV5TakeOrderArgs({
2565
- expectedIncomingAssetAmount: expectedIncomingAssetAmount,
2566
- minIncomingAssetAmount: minIncomingAssetAmount,
2567
- outgoingAsset: outgoingAsset,
2568
- outgoingAssetAmount: outgoingAssetAmount,
2569
- paths: paths,
2570
- uuid: uuid
2571
- });
2572
- callArgs = callOnIntegrationArgs({
2573
- adapter: paraSwapV5Adapter,
2574
- encodedCallArgs: takeOrderArgs,
2575
- selector: takeOrderSelector
2576
- });
2577
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2578
-
2579
- case 4:
2580
- case "end":
2581
- return _context.stop();
2582
- }
2583
- }
2584
- }, _callee);
2585
- }));
2586
- return _paraSwapV5TakeOrder.apply(this, arguments);
2587
- }
2588
-
2589
- function poolTogetherV4Lend(_x) {
2590
- return _poolTogetherV4Lend.apply(this, arguments);
2591
- }
2592
-
2593
- function _poolTogetherV4Lend() {
2594
- _poolTogetherV4Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2595
- var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref$amount, amount, lendArgs, callArgs, lendTx;
2596
-
2597
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2598
- while (1) {
2599
- switch (_context.prev = _context.next) {
2600
- case 0:
2601
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, poolTogetherV4Adapter = _ref.poolTogetherV4Adapter, ptToken = _ref.ptToken, _ref$amount = _ref.amount, amount = _ref$amount === void 0 ? utils.parseEther('1') : _ref$amount;
2602
- lendArgs = poolTogetherV4LendArgs({
2603
- amount: amount,
2604
- ptToken: ptToken
2605
- });
2606
- callArgs = callOnIntegrationArgs({
2607
- adapter: poolTogetherV4Adapter,
2608
- encodedCallArgs: lendArgs,
2609
- selector: lendSelector
2610
- });
2611
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2612
- return _context.abrupt("return", lendTx);
2613
-
2614
- case 5:
2615
- case "end":
2616
- return _context.stop();
2617
- }
2618
- }
2619
- }, _callee);
2620
- }));
2621
- return _poolTogetherV4Lend.apply(this, arguments);
2622
- }
2623
-
2624
- function poolTogetherV4Redeem(_x2) {
2625
- return _poolTogetherV4Redeem.apply(this, arguments);
2626
- }
2627
-
2628
- function _poolTogetherV4Redeem() {
2629
- _poolTogetherV4Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2630
- var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, ptToken, _ref2$amount, amount, redeemArgs, callArgs, redeemTx;
2631
-
2632
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2633
- while (1) {
2634
- switch (_context2.prev = _context2.next) {
2635
- case 0:
2636
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, fundOwner = _ref2.fundOwner, poolTogetherV4Adapter = _ref2.poolTogetherV4Adapter, ptToken = _ref2.ptToken, _ref2$amount = _ref2.amount, amount = _ref2$amount === void 0 ? utils.parseEther('1') : _ref2$amount;
2637
- redeemArgs = poolTogetherV4RedeemArgs({
2638
- amount: amount,
2639
- ptToken: ptToken
2640
- });
2641
- callArgs = callOnIntegrationArgs({
2642
- adapter: poolTogetherV4Adapter,
2643
- encodedCallArgs: redeemArgs,
2644
- selector: redeemSelector
2645
- });
2646
- redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2647
- return _context2.abrupt("return", redeemTx);
2648
-
2649
- case 5:
2650
- case "end":
2651
- return _context2.stop();
2652
- }
2653
- }
2654
- }, _callee2);
2655
- }));
2656
- return _poolTogetherV4Redeem.apply(this, arguments);
2657
- }
2658
-
2659
- function poolTogetherV4ClaimRewards(_x3) {
2660
- return _poolTogetherV4ClaimRewards.apply(this, arguments);
2661
- }
2662
-
2663
- function _poolTogetherV4ClaimRewards() {
2664
- _poolTogetherV4ClaimRewards = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2665
- var comptrollerProxy, integrationManager, fundOwner, poolTogetherV4Adapter, prizeDistributor, drawIds, winningPicks, claimRewardsArgs, callArgs, claimTx;
2666
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2667
- while (1) {
2668
- switch (_context3.prev = _context3.next) {
2669
- case 0:
2670
- comptrollerProxy = _ref3.comptrollerProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, poolTogetherV4Adapter = _ref3.poolTogetherV4Adapter, prizeDistributor = _ref3.prizeDistributor, drawIds = _ref3.drawIds, winningPicks = _ref3.winningPicks;
2671
- claimRewardsArgs = poolTogetherV4ClaimRewardsArgs({
2672
- drawIds: drawIds,
2673
- prizeDistributor: prizeDistributor,
2674
- winningPicks: winningPicks
2675
- });
2676
- callArgs = callOnIntegrationArgs({
2677
- adapter: poolTogetherV4Adapter,
2678
- encodedCallArgs: claimRewardsArgs,
2679
- selector: claimRewardsSelector
2680
- });
2681
- claimTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2682
- return _context3.abrupt("return", claimTx);
2683
-
2684
- case 5:
2685
- case "end":
2686
- return _context3.stop();
2687
- }
2688
- }
2689
- }, _callee3);
2690
- }));
2691
- return _poolTogetherV4ClaimRewards.apply(this, arguments);
2692
- }
2693
-
2694
- function synthetixAssignExchangeDelegate(_x) {
2695
- return _synthetixAssignExchangeDelegate.apply(this, arguments);
2696
- }
2697
-
2698
- function _synthetixAssignExchangeDelegate() {
2699
- _synthetixAssignExchangeDelegate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2700
- var comptrollerProxy, synthetixDelegateApprovals, fundOwner, delegate;
2701
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2702
- while (1) {
2703
- switch (_context.prev = _context.next) {
2704
- case 0:
2705
- comptrollerProxy = _ref.comptrollerProxy, synthetixDelegateApprovals = _ref.synthetixDelegateApprovals, fundOwner = _ref.fundOwner, delegate = _ref.delegate;
2706
- _context.next = 3;
2707
- return comptrollerProxy.connect(fundOwner).vaultCallOnContract(synthetixDelegateApprovals, synthetixAssignExchangeDelegateSelector, encodeArgs(['address'], [delegate]));
2708
-
2709
- case 3:
2710
- case "end":
2711
- return _context.stop();
2712
- }
2713
- }
2714
- }, _callee);
2715
- }));
2716
- return _synthetixAssignExchangeDelegate.apply(this, arguments);
2717
- }
2718
-
2719
- function synthetixRedeem(_x2) {
2720
- return _synthetixRedeem.apply(this, arguments);
2721
- }
2722
-
2723
- function _synthetixRedeem() {
2724
- _synthetixRedeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2725
- var comptrollerProxy, integrationManager, signer, synthetixAdapter, synths, redeemArgs, callArgs;
2726
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2727
- while (1) {
2728
- switch (_context2.prev = _context2.next) {
2729
- case 0:
2730
- comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, signer = _ref2.signer, synthetixAdapter = _ref2.synthetixAdapter, synths = _ref2.synths;
2731
- redeemArgs = synthetixRedeemArgs({
2732
- synths: synths
2733
- });
2734
- callArgs = callOnIntegrationArgs({
2735
- adapter: synthetixAdapter,
2736
- encodedCallArgs: redeemArgs,
2737
- selector: redeemSelector
2738
- });
2739
- return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2740
-
2741
- case 4:
2742
- case "end":
2743
- return _context2.stop();
2744
- }
2745
- }
2746
- }, _callee2);
2747
- }));
2748
- return _synthetixRedeem.apply(this, arguments);
2749
- }
2750
-
2751
- function synthetixTakeOrder(_x3) {
2752
- return _synthetixTakeOrder.apply(this, arguments);
2753
- }
2754
-
2755
- function _synthetixTakeOrder() {
2756
- _synthetixTakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2757
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, _ref3$outgoingAssetAm, outgoingAssetAmount, _ref3$minIncomingSusd, minIncomingSusdAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2758
-
2759
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2760
- while (1) {
2761
- switch (_context3.prev = _context3.next) {
2762
- case 0:
2763
- comptrollerProxy = _ref3.comptrollerProxy, vaultProxy = _ref3.vaultProxy, integrationManager = _ref3.integrationManager, fundOwner = _ref3.fundOwner, synthetixAdapter = _ref3.synthetixAdapter, outgoingAsset = _ref3.outgoingAsset, _ref3$outgoingAssetAm = _ref3.outgoingAssetAmount, outgoingAssetAmount = _ref3$outgoingAssetAm === void 0 ? utils.parseEther('1') : _ref3$outgoingAssetAm, _ref3$minIncomingSusd = _ref3.minIncomingSusdAmount, minIncomingSusdAmount = _ref3$minIncomingSusd === void 0 ? utils.parseEther('1') : _ref3$minIncomingSusd, _ref3$seedFund = _ref3.seedFund, seedFund = _ref3$seedFund === void 0 ? false : _ref3$seedFund;
2764
-
2765
- if (!seedFund) {
2766
- _context3.next = 4;
2767
- break;
2768
- }
2769
-
2770
- _context3.next = 4;
2771
- return outgoingAsset.transfer(vaultProxy, outgoingAssetAmount);
2772
-
2773
- case 4:
2774
- takeOrderArgs = synthetixTakeOrderArgs({
2775
- minIncomingSusdAmount: minIncomingSusdAmount,
2776
- outgoingAsset: outgoingAsset,
2777
- outgoingAssetAmount: outgoingAssetAmount
2778
- });
2779
- _context3.next = 7;
2780
- return callOnIntegrationArgs({
2781
- adapter: synthetixAdapter,
2782
- encodedCallArgs: takeOrderArgs,
2783
- selector: takeOrderSelector
2784
- });
2785
-
2786
- case 7:
2787
- callArgs = _context3.sent;
2788
- return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2789
-
2790
- case 9:
2791
- case "end":
2792
- return _context3.stop();
2793
- }
2794
- }
2795
- }, _callee3);
2796
- }));
2797
- return _synthetixTakeOrder.apply(this, arguments);
2798
- }
2799
-
2800
- var _templateObject;
2801
- var UniswapV2Factory = contract()(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n function createPair(address,address) returns (address)\n function getPair(address,address) view returns (address)\n"])));
2802
- function uniswapV2Lend(_x) {
2803
- return _uniswapV2Lend.apply(this, arguments);
2804
- }
2805
-
2806
- function _uniswapV2Lend() {
2807
- _uniswapV2Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2808
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2LiquidityAdapter, tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, minPoolTokenAmount, _ref$seedFund, seedFund, lendArgs, callArgs, lendTx;
2809
-
2810
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2811
- while (1) {
2812
- switch (_context.prev = _context.next) {
2813
- case 0:
2814
- 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;
2815
-
2816
- if (!seedFund) {
2817
- _context.next = 6;
2818
- break;
2819
- }
2820
-
2821
- _context.next = 4;
2822
- return tokenA.transfer(vaultProxy, amountADesired);
2823
-
2824
- case 4:
2825
- _context.next = 6;
2826
- return tokenB.transfer(vaultProxy, amountBDesired);
2827
-
2828
- case 6:
2829
- lendArgs = uniswapV2LendArgs({
2830
- amountADesired: amountADesired,
2831
- amountAMin: amountAMin,
2832
- amountBDesired: amountBDesired,
2833
- amountBMin: amountBMin,
2834
- minPoolTokenAmount: minPoolTokenAmount,
2835
- tokenA: tokenA,
2836
- tokenB: tokenB
2837
- });
2838
- callArgs = callOnIntegrationArgs({
2839
- adapter: uniswapV2LiquidityAdapter,
2840
- encodedCallArgs: lendArgs,
2841
- selector: lendSelector
2842
- });
2843
- lendTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2844
- _context.next = 11;
2845
- return expect(lendTx).resolves.toBeReceipt();
2846
-
2847
- case 11:
2848
- return _context.abrupt("return", lendTx);
2849
-
2850
- case 12:
2851
- case "end":
2852
- return _context.stop();
2853
- }
2854
- }
2855
- }, _callee);
2856
- }));
2857
- return _uniswapV2Lend.apply(this, arguments);
2858
- }
2859
-
2860
- function uniswapV2Redeem(_x2) {
2861
- return _uniswapV2Redeem.apply(this, arguments);
2862
- }
2863
-
2864
- function _uniswapV2Redeem() {
2865
- _uniswapV2Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
2866
- var comptrollerProxy, integrationManager, fundOwner, uniswapV2LiquidityAdapter, poolTokenAmount, tokenA, tokenB, amountAMin, amountBMin, redeemArgs, callArgs, redeemTx;
2867
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
2868
- while (1) {
2869
- switch (_context2.prev = _context2.next) {
2870
- case 0:
2871
- 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;
2872
- redeemArgs = uniswapV2RedeemArgs({
2873
- amountAMin: amountAMin,
2874
- amountBMin: amountBMin,
2875
- poolTokenAmount: poolTokenAmount,
2876
- tokenA: tokenA,
2877
- tokenB: tokenB
2878
- });
2879
- callArgs = callOnIntegrationArgs({
2880
- adapter: uniswapV2LiquidityAdapter,
2881
- encodedCallArgs: redeemArgs,
2882
- selector: redeemSelector
2883
- });
2884
- redeemTx = comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
2885
- _context2.next = 6;
2886
- return expect(redeemTx).resolves.toBeReceipt();
2887
-
2888
- case 6:
2889
- return _context2.abrupt("return", redeemTx);
2890
-
2891
- case 7:
2892
- case "end":
2893
- return _context2.stop();
2894
- }
2895
- }
2896
- }, _callee2);
2897
- }));
2898
- return _uniswapV2Redeem.apply(this, arguments);
2899
- }
2900
-
2901
- function uniswapV2TakeOrder(_x3) {
2902
- return _uniswapV2TakeOrder.apply(this, arguments);
2903
- }
2904
-
2905
- function _uniswapV2TakeOrder() {
2906
- _uniswapV2TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
2907
- var comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2ExchangeAdapter, path, outgoingAssetAmount, minIncomingAssetAmount, _ref3$seedFund, seedFund, takeOrderArgs, callArgs;
2908
-
2909
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
2910
- while (1) {
2911
- switch (_context3.prev = _context3.next) {
2912
- case 0:
2913
- 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;
2914
-
2915
- if (!seedFund) {
2916
- _context3.next = 4;
2917
- break;
2918
- }
2919
-
2920
- _context3.next = 4;
2921
- return path[0].transfer(vaultProxy, outgoingAssetAmount);
2922
-
2923
- case 4:
2924
- takeOrderArgs = uniswapV2TakeOrderArgs({
2925
- minIncomingAssetAmount: minIncomingAssetAmount,
2926
- outgoingAssetAmount: outgoingAssetAmount,
2927
- path: path
2928
- });
2929
- callArgs = callOnIntegrationArgs({
2930
- adapter: uniswapV2ExchangeAdapter,
2931
- encodedCallArgs: takeOrderArgs,
2932
- selector: takeOrderSelector
2933
- });
2934
- return _context3.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2935
-
2936
- case 7:
2937
- case "end":
2938
- return _context3.stop();
2939
- }
2940
- }
2941
- }, _callee3);
2942
- }));
2943
- return _uniswapV2TakeOrder.apply(this, arguments);
2944
- }
2945
-
2946
- function uniswapV3TakeOrder(_x) {
2947
- return _uniswapV3TakeOrder.apply(this, arguments);
2948
- }
2949
-
2950
- function _uniswapV3TakeOrder() {
2951
- _uniswapV3TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
2952
- var comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, _ref$minIncomingAsset, minIncomingAssetAmount, _ref$seedFund, seedFund, vaultProxy, takeOrderArgs, callArgs;
2953
-
2954
- return _regeneratorRuntime.wrap(function _callee$(_context) {
2955
- while (1) {
2956
- switch (_context.prev = _context.next) {
2957
- case 0:
2958
- 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;
2959
-
2960
- if (!seedFund) {
2961
- _context.next = 7;
2962
- break;
2963
- }
2964
-
2965
- _context.next = 4;
2966
- return comptrollerProxy.getVaultProxy();
2967
-
2968
- case 4:
2969
- vaultProxy = _context.sent;
2970
- _context.next = 7;
2971
- return pathAddresses[0].transfer(vaultProxy, outgoingAssetAmount);
2972
-
2973
- case 7:
2974
- takeOrderArgs = uniswapV3TakeOrderArgs({
2975
- minIncomingAssetAmount: minIncomingAssetAmount,
2976
- outgoingAssetAmount: outgoingAssetAmount,
2977
- pathAddresses: pathAddresses,
2978
- pathFees: pathFees
2979
- });
2980
- callArgs = callOnIntegrationArgs({
2981
- adapter: uniswapV3Adapter,
2982
- encodedCallArgs: takeOrderArgs,
2983
- selector: takeOrderSelector
2984
- });
2985
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
2986
-
2987
- case 10:
2988
- case "end":
2989
- return _context.stop();
2990
- }
2991
- }
2992
- }, _callee);
2993
- }));
2994
- return _uniswapV3TakeOrder.apply(this, arguments);
2995
- }
2996
-
2997
- function yearnVaultV2Lend(_x) {
2998
- return _yearnVaultV2Lend.apply(this, arguments);
2999
- }
3000
-
3001
- function _yearnVaultV2Lend() {
3002
- _yearnVaultV2Lend = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
3003
- var signer, comptrollerProxy, integrationManager, yearnVaultV2Adapter, yVault, outgoingUnderlyingAmount, _ref$minIncomingYVaul, minIncomingYVaultSharesAmount, callArgs;
3004
-
3005
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3006
- while (1) {
3007
- switch (_context.prev = _context.next) {
3008
- case 0:
3009
- signer = _ref.signer, comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, yearnVaultV2Adapter = _ref.yearnVaultV2Adapter, yVault = _ref.yVault, outgoingUnderlyingAmount = _ref.outgoingUnderlyingAmount, _ref$minIncomingYVaul = _ref.minIncomingYVaultSharesAmount, minIncomingYVaultSharesAmount = _ref$minIncomingYVaul === void 0 ? BigNumber.from(1) : _ref$minIncomingYVaul;
3010
- callArgs = callOnIntegrationArgs({
3011
- adapter: yearnVaultV2Adapter,
3012
- encodedCallArgs: yearnVaultV2LendArgs({
3013
- minIncomingYVaultSharesAmount: minIncomingYVaultSharesAmount,
3014
- outgoingUnderlyingAmount: outgoingUnderlyingAmount,
3015
- yVault: yVault
3016
- }),
3017
- selector: lendSelector
3018
- });
3019
- return _context.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
3020
-
3021
- case 3:
3022
- case "end":
3023
- return _context.stop();
3024
- }
3025
- }
3026
- }, _callee);
3027
- }));
3028
- return _yearnVaultV2Lend.apply(this, arguments);
3029
- }
3030
-
3031
- function yearnVaultV2Redeem(_x2) {
3032
- return _yearnVaultV2Redeem.apply(this, arguments);
3033
- }
3034
-
3035
- function _yearnVaultV2Redeem() {
3036
- _yearnVaultV2Redeem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
3037
- var signer, comptrollerProxy, integrationManager, yearnVaultV2Adapter, yVault, maxOutgoingYVaultSharesAmount, _ref2$minIncomingUnde, minIncomingUnderlyingAmount, _ref2$slippageToleran, slippageToleranceBps, callArgs;
3038
-
3039
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
3040
- while (1) {
3041
- switch (_context2.prev = _context2.next) {
3042
- case 0:
3043
- signer = _ref2.signer, comptrollerProxy = _ref2.comptrollerProxy, integrationManager = _ref2.integrationManager, yearnVaultV2Adapter = _ref2.yearnVaultV2Adapter, yVault = _ref2.yVault, maxOutgoingYVaultSharesAmount = _ref2.maxOutgoingYVaultSharesAmount, _ref2$minIncomingUnde = _ref2.minIncomingUnderlyingAmount, minIncomingUnderlyingAmount = _ref2$minIncomingUnde === void 0 ? BigNumber.from(1) : _ref2$minIncomingUnde, _ref2$slippageToleran = _ref2.slippageToleranceBps, slippageToleranceBps = _ref2$slippageToleran === void 0 ? 1 : _ref2$slippageToleran;
3044
- callArgs = callOnIntegrationArgs({
3045
- adapter: yearnVaultV2Adapter,
3046
- encodedCallArgs: yearnVaultV2RedeemArgs({
3047
- maxOutgoingYVaultSharesAmount: maxOutgoingYVaultSharesAmount,
3048
- minIncomingUnderlyingAmount: minIncomingUnderlyingAmount,
3049
- slippageToleranceBps: slippageToleranceBps,
3050
- yVault: yVault
3051
- }),
3052
- selector: redeemSelector
3053
- });
3054
- return _context2.abrupt("return", comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
3055
-
3056
- case 3:
3057
- case "end":
3058
- return _context2.stop();
3059
- }
3060
- }
3061
- }, _callee2);
3062
- }));
3063
- return _yearnVaultV2Redeem.apply(this, arguments);
3064
- }
3065
-
3066
- function zeroExV2TakeOrder(_x) {
3067
- return _zeroExV2TakeOrder.apply(this, arguments);
3068
- }
3069
-
3070
- function _zeroExV2TakeOrder() {
3071
- _zeroExV2TakeOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
3072
- var comptrollerProxy, integrationManager, fundOwner, zeroExV2Adapter, signedOrder, takerAssetFillAmount, takeOrderArgs, callArgs;
3073
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3074
- while (1) {
3075
- switch (_context.prev = _context.next) {
3076
- case 0:
3077
- comptrollerProxy = _ref.comptrollerProxy, integrationManager = _ref.integrationManager, fundOwner = _ref.fundOwner, zeroExV2Adapter = _ref.zeroExV2Adapter, signedOrder = _ref.signedOrder, takerAssetFillAmount = _ref.takerAssetFillAmount;
3078
- takeOrderArgs = zeroExV2TakeOrderArgs({
3079
- signedOrder: signedOrder,
3080
- takerAssetFillAmount: takerAssetFillAmount
3081
- });
3082
- callArgs = callOnIntegrationArgs({
3083
- adapter: zeroExV2Adapter,
3084
- encodedCallArgs: takeOrderArgs,
3085
- selector: takeOrderSelector
3086
- });
3087
- return _context.abrupt("return", comptrollerProxy.connect(fundOwner).callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs));
3088
-
3089
- case 4:
3090
- case "end":
3091
- return _context.stop();
3092
- }
3093
- }
3094
- }, _callee);
3095
- }));
3096
- return _zeroExV2TakeOrder.apply(this, arguments);
3097
- }
3098
-
3099
- function generatePolicyManagerConfigWithMockPolicies(_x) {
3100
- return _generatePolicyManagerConfigWithMockPolicies.apply(this, arguments);
3101
- }
3102
-
3103
- function _generatePolicyManagerConfigWithMockPolicies() {
3104
- _generatePolicyManagerConfigWithMockPolicies = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
3105
- var deployer, policies, policiesSettingsData;
3106
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3107
- while (1) {
3108
- switch (_context.prev = _context.next) {
3109
- case 0:
3110
- deployer = _ref.deployer;
3111
- _context.t0 = Object;
3112
- _context.next = 4;
3113
- return generateMockPolicies({
3114
- deployer: deployer
3115
- });
3116
-
3117
- case 4:
3118
- _context.t1 = _context.sent;
3119
- policies = _context.t0.values.call(_context.t0, _context.t1);
3120
- // Guarantees one policy has settings data
3121
- policiesSettingsData = [].concat(_toConsumableArray(new Array(policies.length - 1).fill(constants.HashZero)), [utils.randomBytes(10)]);
3122
- return _context.abrupt("return", policyManagerConfigArgs({
3123
- policies: policies,
3124
- settings: policiesSettingsData
3125
- }));
3126
-
3127
- case 8:
3128
- case "end":
3129
- return _context.stop();
3130
- }
3131
- }
3132
- }, _callee);
3133
- }));
3134
- return _generatePolicyManagerConfigWithMockPolicies.apply(this, arguments);
3135
- }
3136
-
3137
- function generateMockPolicies(_x2) {
3138
- return _generateMockPolicies.apply(this, arguments);
3139
- }
3140
-
3141
- function _generateMockPolicies() {
3142
- _generateMockPolicies = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
3143
- var deployer, mockAddTrackedAssetsPolicy, mockCreateExternalPositionPolicy, mockPostBuySharesPolicy, mockPostCallOnExternalPositionPolicy, mockPostCoIPolicy, mockRedeemSharesForSpecificAssetsPolicy, mockPreTransferSharesPolicy, mockRemoveExternalPositionPolicy;
3144
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
3145
- while (1) {
3146
- switch (_context2.prev = _context2.next) {
3147
- case 0:
3148
- deployer = _ref2.deployer;
3149
- _context2.next = 3;
3150
- return IPolicy.mock(deployer);
3151
-
3152
- case 3:
3153
- mockAddTrackedAssetsPolicy = _context2.sent;
3154
- _context2.next = 6;
3155
- return IPolicy.mock(deployer);
3156
-
3157
- case 6:
3158
- mockCreateExternalPositionPolicy = _context2.sent;
3159
- _context2.next = 9;
3160
- return IPolicy.mock(deployer);
3161
-
3162
- case 9:
3163
- mockPostBuySharesPolicy = _context2.sent;
3164
- _context2.next = 12;
3165
- return IPolicy.mock(deployer);
3166
-
3167
- case 12:
3168
- mockPostCallOnExternalPositionPolicy = _context2.sent;
3169
- _context2.next = 15;
3170
- return IPolicy.mock(deployer);
3171
-
3172
- case 15:
3173
- mockPostCoIPolicy = _context2.sent;
3174
- _context2.next = 18;
3175
- return IPolicy.mock(deployer);
3176
-
3177
- case 18:
3178
- mockRedeemSharesForSpecificAssetsPolicy = _context2.sent;
3179
- _context2.next = 21;
3180
- return IPolicy.mock(deployer);
3181
-
3182
- case 21:
3183
- mockPreTransferSharesPolicy = _context2.sent;
3184
- _context2.next = 24;
3185
- return IPolicy.mock(deployer);
3186
-
3187
- case 24:
3188
- mockRemoveExternalPositionPolicy = _context2.sent;
3189
- _context2.next = 27;
3190
- return Promise.all([// AddTrackedAssets
3191
- 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([PolicyHook.AddTrackedAssets]), mockAddTrackedAssetsPolicy.updateFundSettings.returns(undefined), // CreateExternalPosition
3192
- 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([PolicyHook.CreateExternalPosition]), mockCreateExternalPositionPolicy.updateFundSettings.returns(undefined), // PostBuyShares
3193
- 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([PolicyHook.PostBuyShares]), mockPostBuySharesPolicy.updateFundSettings.returns(undefined), // PostCallOnExternalPosition
3194
- 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([PolicyHook.PostCallOnExternalPosition]), mockPostCallOnExternalPositionPolicy.updateFundSettings.returns(undefined), // PostCallOnIntegration
3195
- 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([PolicyHook.PostCallOnIntegration]), mockPostCoIPolicy.updateFundSettings.returns(undefined), // PreTransferSharesPolicy
3196
- 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([PolicyHook.PreTransferShares]), mockPreTransferSharesPolicy.updateFundSettings.returns(undefined), // RedeemSharesForSpecificAssets
3197
- 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([PolicyHook.RedeemSharesForSpecificAssets]), mockRedeemSharesForSpecificAssetsPolicy.updateFundSettings.returns(undefined), // RemoveExternalPosition
3198
- 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([PolicyHook.RedeemSharesForSpecificAssets]), mockRemoveExternalPositionPolicy.updateFundSettings.returns(undefined)]);
3199
-
3200
- case 27:
3201
- return _context2.abrupt("return", {
3202
- mockAddTrackedAssetsPolicy: mockAddTrackedAssetsPolicy,
3203
- mockCreateExternalPositionPolicy: mockCreateExternalPositionPolicy,
3204
- mockPostBuySharesPolicy: mockPostBuySharesPolicy,
3205
- mockPostCallOnExternalPositionPolicy: mockPostCallOnExternalPositionPolicy,
3206
- mockPostCoIPolicy: mockPostCoIPolicy,
3207
- mockPreTransferSharesPolicy: mockPreTransferSharesPolicy,
3208
- mockRedeemSharesForSpecificAssetsPolicy: mockRedeemSharesForSpecificAssetsPolicy,
3209
- mockRemoveExternalPositionPolicy: mockRemoveExternalPositionPolicy
3210
- });
3211
-
3212
- case 28:
3213
- case "end":
3214
- return _context2.stop();
3215
- }
3216
- }
3217
- }, _callee2);
3218
- }));
3219
- return _generateMockPolicies.apply(this, arguments);
3220
- }
3221
-
3222
- function assertEvent(receipt, event, match) {
3223
- var _events$shift;
3224
-
3225
- var events = extractEvent(receipt, event);
3226
- expect(events.length).toBe(1);
3227
- expect(receipt).toHaveEmittedWith(event, match);
3228
- 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
3229
-
3230
- return args;
3231
- }
3232
- function assertNoEvent(receipt, event) {
3233
- var events = extractEvent(receipt, event);
3234
- expect(events.length).toBe(0);
3235
- }
3236
-
3237
- function buyShares(_x) {
3238
- return _buyShares.apply(this, arguments);
3239
- }
3240
-
3241
- function _buyShares() {
3242
- _buyShares = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(options) {
3243
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3244
- while (1) {
3245
- switch (_context.prev = _context.next) {
3246
- case 0:
3247
- _context.next = 2;
3248
- return buySharesFunction(options);
3249
-
3250
- case 2:
3251
- return _context.abrupt("return", _context.sent.send());
3252
-
3253
- case 3:
3254
- case "end":
3255
- return _context.stop();
3256
- }
3257
- }
3258
- }, _callee);
3259
- }));
3260
- return _buyShares.apply(this, arguments);
3261
- }
3262
-
3263
- function buySharesFunction(_x2) {
3264
- return _buySharesFunction.apply(this, arguments);
3265
- }
3266
-
3267
- function _buySharesFunction() {
3268
- _buySharesFunction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref) {
3269
- var comptrollerProxy, denominationAsset, buyer, investmentAmount, _ref$minSharesQuantit, minSharesQuantity, _ref$seedBuyer, seedBuyer;
3270
-
3271
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
3272
- while (1) {
3273
- switch (_context2.prev = _context2.next) {
3274
- case 0:
3275
- comptrollerProxy = _ref.comptrollerProxy, denominationAsset = _ref.denominationAsset, buyer = _ref.buyer, investmentAmount = _ref.investmentAmount, _ref$minSharesQuantit = _ref.minSharesQuantity, minSharesQuantity = _ref$minSharesQuantit === void 0 ? 1 : _ref$minSharesQuantit, _ref$seedBuyer = _ref.seedBuyer, seedBuyer = _ref$seedBuyer === void 0 ? false : _ref$seedBuyer;
3276
-
3277
- if (!(investmentAmount == undefined)) {
3278
- _context2.next = 7;
3279
- break;
3280
- }
3281
-
3282
- _context2.t0 = utils;
3283
- _context2.next = 5;
3284
- return denominationAsset.decimals();
3285
-
3286
- case 5:
3287
- _context2.t1 = _context2.sent;
3288
- investmentAmount = _context2.t0.parseUnits.call(_context2.t0, '1', _context2.t1);
3289
-
3290
- case 7:
3291
- if (!seedBuyer) {
3292
- _context2.next = 10;
3293
- break;
3294
- }
3295
-
3296
- _context2.next = 10;
3297
- return denominationAsset.transfer(buyer, investmentAmount);
3298
-
3299
- case 10:
3300
- _context2.next = 12;
3301
- return denominationAsset.connect(buyer).approve(comptrollerProxy, investmentAmount);
3302
-
3303
- case 12:
3304
- return _context2.abrupt("return", comptrollerProxy.connect(buyer).buyShares.args(investmentAmount, minSharesQuantity).ref);
3305
-
3306
- case 13:
3307
- case "end":
3308
- return _context2.stop();
3309
- }
3310
- }
3311
- }, _callee2);
3312
- }));
3313
- return _buySharesFunction.apply(this, arguments);
3314
- }
3315
-
3316
- function redeemSharesForSpecificAssets(_x3) {
3317
- return _redeemSharesForSpecificAssets.apply(this, arguments);
3318
- }
3319
-
3320
- function _redeemSharesForSpecificAssets() {
3321
- _redeemSharesForSpecificAssets = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref2) {
3322
- var comptrollerProxy, signer, _ref2$recipient, recipient, _ref2$quantity, quantity, payoutAssets, payoutAssetPercentages;
3323
-
3324
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
3325
- while (1) {
3326
- switch (_context3.prev = _context3.next) {
3327
- case 0:
3328
- comptrollerProxy = _ref2.comptrollerProxy, signer = _ref2.signer, _ref2$recipient = _ref2.recipient, recipient = _ref2$recipient === void 0 ? signer : _ref2$recipient, _ref2$quantity = _ref2.quantity, quantity = _ref2$quantity === void 0 ? constants.MaxUint256 : _ref2$quantity, payoutAssets = _ref2.payoutAssets, payoutAssetPercentages = _ref2.payoutAssetPercentages;
3329
- return _context3.abrupt("return", comptrollerProxy.connect(signer).redeemSharesForSpecificAssets(recipient, quantity, payoutAssets, payoutAssetPercentages));
3330
-
3331
- case 2:
3332
- case "end":
3333
- return _context3.stop();
3334
- }
3335
- }
3336
- }, _callee3);
3337
- }));
3338
- return _redeemSharesForSpecificAssets.apply(this, arguments);
3339
- }
3340
-
3341
- function redeemSharesInKind(_x4) {
3342
- return _redeemSharesInKind.apply(this, arguments);
3343
- }
3344
-
3345
- function _redeemSharesInKind() {
3346
- _redeemSharesInKind = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref3) {
3347
- var comptrollerProxy, signer, _ref3$recipient, recipient, _ref3$quantity, quantity, _ref3$additionalAsset, additionalAssets, _ref3$assetsToSkip, assetsToSkip;
3348
-
3349
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
3350
- while (1) {
3351
- switch (_context4.prev = _context4.next) {
3352
- case 0:
3353
- comptrollerProxy = _ref3.comptrollerProxy, signer = _ref3.signer, _ref3$recipient = _ref3.recipient, recipient = _ref3$recipient === void 0 ? signer : _ref3$recipient, _ref3$quantity = _ref3.quantity, quantity = _ref3$quantity === void 0 ? constants.MaxUint256 : _ref3$quantity, _ref3$additionalAsset = _ref3.additionalAssets, additionalAssets = _ref3$additionalAsset === void 0 ? [] : _ref3$additionalAsset, _ref3$assetsToSkip = _ref3.assetsToSkip, assetsToSkip = _ref3$assetsToSkip === void 0 ? [] : _ref3$assetsToSkip;
3354
- return _context4.abrupt("return", comptrollerProxy.connect(signer).redeemSharesInKind(recipient, quantity, additionalAssets, assetsToSkip));
3355
-
3356
- case 2:
3357
- case "end":
3358
- return _context4.stop();
3359
- }
3360
- }
3361
- }, _callee4);
3362
- }));
3363
- return _redeemSharesInKind.apply(this, arguments);
3364
- }
3365
-
3366
- function ownKeys$1(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; }
3367
-
3368
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3369
- function createComptrollerProxy(_x) {
3370
- return _createComptrollerProxy.apply(this, arguments);
3371
- }
3372
-
3373
- function _createComptrollerProxy() {
3374
- _createComptrollerProxy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
3375
- var signer, comptrollerLib, denominationAsset, _ref$sharesActionTime, sharesActionTimelock, constructData, comptrollerProxyContract;
3376
-
3377
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3378
- while (1) {
3379
- switch (_context.prev = _context.next) {
3380
- case 0:
3381
- signer = _ref.signer, comptrollerLib = _ref.comptrollerLib, denominationAsset = _ref.denominationAsset, _ref$sharesActionTime = _ref.sharesActionTimelock, sharesActionTimelock = _ref$sharesActionTime === void 0 ? 0 : _ref$sharesActionTime;
3382
- constructData = encodeFunctionData(comptrollerLib.init.fragment, [denominationAsset, sharesActionTimelock]);
3383
- _context.next = 4;
3384
- return ComptrollerProxy.deploy(signer, constructData, comptrollerLib);
3385
-
3386
- case 4:
3387
- comptrollerProxyContract = _context.sent;
3388
- return _context.abrupt("return", {
3389
- comptrollerProxy: new ComptrollerLib(comptrollerProxyContract, signer),
3390
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3391
- receipt: comptrollerProxyContract.deployment
3392
- });
3393
-
3394
- case 6:
3395
- case "end":
3396
- return _context.stop();
3397
- }
3398
- }
3399
- }, _callee);
3400
- }));
3401
- return _createComptrollerProxy.apply(this, arguments);
3402
- }
3403
-
3404
- function createMigrationRequest(_x2) {
3405
- return _createMigrationRequest.apply(this, arguments);
3406
- } // TODO: should we pass in the fundOwner as a signer also so we can connect comptroller proxy and vault proxy to that acct instead?
3407
-
3408
- function _createMigrationRequest() {
3409
- _createMigrationRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
3410
- var signer, fundDeployer, vaultProxy, denominationAsset, _ref2$sharesActionTim, sharesActionTimelock, _ref2$feeManagerConfi, feeManagerConfigData, _ref2$policyManagerCo, policyManagerConfigData, _ref2$bypassPrevRelea, bypassPrevReleaseFailure, receipt, comptrollerDeployedArgs;
3411
-
3412
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
3413
- while (1) {
3414
- switch (_context2.prev = _context2.next) {
3415
- case 0:
3416
- signer = _ref2.signer, fundDeployer = _ref2.fundDeployer, vaultProxy = _ref2.vaultProxy, denominationAsset = _ref2.denominationAsset, _ref2$sharesActionTim = _ref2.sharesActionTimelock, sharesActionTimelock = _ref2$sharesActionTim === void 0 ? 0 : _ref2$sharesActionTim, _ref2$feeManagerConfi = _ref2.feeManagerConfigData, feeManagerConfigData = _ref2$feeManagerConfi === void 0 ? '0x' : _ref2$feeManagerConfi, _ref2$policyManagerCo = _ref2.policyManagerConfigData, policyManagerConfigData = _ref2$policyManagerCo === void 0 ? '0x' : _ref2$policyManagerCo, _ref2$bypassPrevRelea = _ref2.bypassPrevReleaseFailure, bypassPrevReleaseFailure = _ref2$bypassPrevRelea === void 0 ? false : _ref2$bypassPrevRelea;
3417
- _context2.next = 3;
3418
- return fundDeployer.connect(signer).createMigrationRequest(vaultProxy, denominationAsset, sharesActionTimelock, feeManagerConfigData, policyManagerConfigData, bypassPrevReleaseFailure);
3419
-
3420
- case 3:
3421
- receipt = _context2.sent;
3422
- comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
3423
- comptrollerProxy: expect.any(String),
3424
- creator: signer,
3425
- denominationAsset: denominationAsset,
3426
- sharesActionTimelock: BigNumber.from(sharesActionTimelock)
3427
- });
3428
- return _context2.abrupt("return", {
3429
- comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3430
- receipt: receipt
3431
- });
3432
-
3433
- case 6:
3434
- case "end":
3435
- return _context2.stop();
3436
- }
3437
- }
3438
- }, _callee2);
3439
- }));
3440
- return _createMigrationRequest.apply(this, arguments);
3441
- }
3442
-
3443
- function createNewFund(_x3) {
3444
- return _createNewFund.apply(this, arguments);
3445
- }
3446
-
3447
- function _createNewFund() {
3448
- _createNewFund = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
3449
- 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;
3450
-
3451
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
3452
- while (1) {
3453
- switch (_context3.prev = _context3.next) {
3454
- case 0:
3455
- signer = _ref3.signer, fundDeployer = _ref3.fundDeployer, denominationAsset = _ref3.denominationAsset, _ref3$sharesActionTim = _ref3.sharesActionTimelock, sharesActionTimelock = _ref3$sharesActionTim === void 0 ? 0 : _ref3$sharesActionTim, _ref3$fundOwner = _ref3.fundOwner, fundOwner = _ref3$fundOwner === void 0 ? randomAddress() : _ref3$fundOwner, _ref3$fundName = _ref3.fundName, fundName = _ref3$fundName === void 0 ? 'My Fund' : _ref3$fundName, _ref3$fundSymbol = _ref3.fundSymbol, fundSymbol = _ref3$fundSymbol === void 0 ? '' : _ref3$fundSymbol, _ref3$feeManagerConfi = _ref3.feeManagerConfig, feeManagerConfig = _ref3$feeManagerConfi === void 0 ? '0x' : _ref3$feeManagerConfi, _ref3$policyManagerCo = _ref3.policyManagerConfig, policyManagerConfig = _ref3$policyManagerCo === void 0 ? '0x' : _ref3$policyManagerCo, investment = _ref3.investment;
3456
- _context3.next = 3;
3457
- return fundDeployer.connect(signer).createNewFund(fundOwner, fundName, fundSymbol, denominationAsset, sharesActionTimelock, feeManagerConfig, policyManagerConfig);
3458
-
3459
- case 3:
3460
- receipt = _context3.sent;
3461
- comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
3462
- comptrollerProxy: expect.any(String),
3463
- creator: signer,
3464
- denominationAsset: denominationAsset,
3465
- sharesActionTimelock: BigNumber.from(sharesActionTimelock)
3466
- });
3467
- comptrollerProxy = new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer);
3468
- newFundDeployedArgs = assertEvent(receipt, 'NewFundCreated', {
3469
- comptrollerProxy: comptrollerProxy,
3470
- creator: signer,
3471
- vaultProxy: expect.any(String)
3472
- });
3473
- vaultProxy = new VaultLib(newFundDeployedArgs.vaultProxy, signer);
3474
-
3475
- if (!(investment != null)) {
3476
- _context3.next = 11;
3477
- break;
3478
- }
3479
-
3480
- _context3.next = 11;
3481
- return buyShares(_objectSpread$1({
3482
- comptrollerProxy: comptrollerProxy,
3483
- denominationAsset: denominationAsset
3484
- }, investment));
3485
-
3486
- case 11:
3487
- return _context3.abrupt("return", {
3488
- comptrollerProxy: comptrollerProxy,
3489
- receipt: receipt,
3490
- vaultProxy: vaultProxy
3491
- });
3492
-
3493
- case 12:
3494
- case "end":
3495
- return _context3.stop();
3496
- }
3497
- }
3498
- }, _callee3);
3499
- }));
3500
- return _createNewFund.apply(this, arguments);
3501
- }
3502
-
3503
- function createReconfigurationRequest(_x4) {
3504
- return _createReconfigurationRequest.apply(this, arguments);
3505
- }
3506
-
3507
- function _createReconfigurationRequest() {
3508
- _createReconfigurationRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref4) {
3509
- var signer, fundDeployer, vaultProxy, denominationAsset, _ref4$sharesActionTim, sharesActionTimelock, _ref4$feeManagerConfi, feeManagerConfigData, _ref4$policyManagerCo, policyManagerConfigData, receipt, comptrollerDeployedArgs;
3510
-
3511
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
3512
- while (1) {
3513
- switch (_context4.prev = _context4.next) {
3514
- case 0:
3515
- signer = _ref4.signer, fundDeployer = _ref4.fundDeployer, vaultProxy = _ref4.vaultProxy, denominationAsset = _ref4.denominationAsset, _ref4$sharesActionTim = _ref4.sharesActionTimelock, sharesActionTimelock = _ref4$sharesActionTim === void 0 ? 0 : _ref4$sharesActionTim, _ref4$feeManagerConfi = _ref4.feeManagerConfigData, feeManagerConfigData = _ref4$feeManagerConfi === void 0 ? '0x' : _ref4$feeManagerConfi, _ref4$policyManagerCo = _ref4.policyManagerConfigData, policyManagerConfigData = _ref4$policyManagerCo === void 0 ? '0x' : _ref4$policyManagerCo;
3516
- _context4.next = 3;
3517
- return fundDeployer.connect(signer).createReconfigurationRequest(vaultProxy, denominationAsset, sharesActionTimelock, feeManagerConfigData, policyManagerConfigData);
3518
-
3519
- case 3:
3520
- receipt = _context4.sent;
3521
- comptrollerDeployedArgs = assertEvent(receipt, 'ComptrollerProxyDeployed', {
3522
- comptrollerProxy: expect.any(String),
3523
- creator: signer,
3524
- denominationAsset: denominationAsset,
3525
- sharesActionTimelock: BigNumber.from(sharesActionTimelock)
3526
- });
3527
- return _context4.abrupt("return", {
3528
- comptrollerProxy: new ComptrollerLib(comptrollerDeployedArgs.comptrollerProxy, signer),
3529
- receipt: receipt
3530
- });
3531
-
3532
- case 6:
3533
- case "end":
3534
- return _context4.stop();
3535
- }
3536
- }
3537
- }, _callee4);
3538
- }));
3539
- return _createReconfigurationRequest.apply(this, arguments);
3540
- }
3541
-
3542
- function createVaultProxy(_x5) {
3543
- return _createVaultProxy.apply(this, arguments);
3544
- }
3545
-
3546
- function _createVaultProxy() {
3547
- _createVaultProxy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref5) {
3548
- var signer, vaultLib, fundOwner, fundAccessor, _ref5$fundName, fundName, constructData, vaultProxyContract;
3549
-
3550
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
3551
- while (1) {
3552
- switch (_context5.prev = _context5.next) {
3553
- case 0:
3554
- 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;
3555
- constructData = encodeFunctionData(vaultLib.init.fragment, [fundOwner, fundAccessor, fundName]);
3556
- _context5.next = 4;
3557
- return VaultProxy.deploy(signer, constructData, vaultLib);
3558
-
3559
- case 4:
3560
- vaultProxyContract = _context5.sent;
3561
- return _context5.abrupt("return", new VaultLib(vaultProxyContract, fundAccessor));
3562
-
3563
- case 6:
3564
- case "end":
3565
- return _context5.stop();
3566
- }
3567
- }
3568
- }, _callee5);
3569
- }));
3570
- return _createVaultProxy.apply(this, arguments);
3571
- }
3572
-
3573
- function setupGasRelayerPaymaster(_x6) {
3574
- return _setupGasRelayerPaymaster.apply(this, arguments);
3575
- }
3576
-
3577
- function _setupGasRelayerPaymaster() {
3578
- _setupGasRelayerPaymaster = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref6) {
3579
- var signer, vaultProxy, fundAccessor, weth, _ref6$startingBalance, startingBalance, comptrollerProxy, receipt, eventArgs;
3580
-
3581
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
3582
- while (1) {
3583
- switch (_context6.prev = _context6.next) {
3584
- case 0:
3585
- signer = _ref6.signer, vaultProxy = _ref6.vaultProxy, fundAccessor = _ref6.fundAccessor, weth = _ref6.weth, _ref6$startingBalance = _ref6.startingBalance, startingBalance = _ref6$startingBalance === void 0 ? utils.parseUnits('10', 18) : _ref6$startingBalance;
3586
- _context6.next = 3;
3587
- return weth.transfer(vaultProxy, startingBalance);
3588
-
3589
- case 3:
3590
- comptrollerProxy = new ComptrollerLib(fundAccessor, signer);
3591
- _context6.next = 6;
3592
- return comptrollerProxy.deployGasRelayPaymaster();
3593
-
3594
- case 6:
3595
- receipt = _context6.sent;
3596
- eventArgs = assertEvent(receipt, 'GasRelayPaymasterSet', {
3597
- gasRelayPaymaster: expect.any(String)
3598
- });
3599
- return _context6.abrupt("return", new GasRelayPaymasterLib(eventArgs.gasRelayPaymaster, signer));
3600
-
3601
- case 9:
3602
- case "end":
3603
- return _context6.stop();
3604
- }
3605
- }
3606
- }, _callee6);
3607
- }));
3608
- return _setupGasRelayerPaymaster.apply(this, arguments);
3609
- }
3610
-
3611
- function vaultCallCreateNewList(_x) {
3612
- return _vaultCallCreateNewList.apply(this, arguments);
3613
- }
3614
-
3615
- function _vaultCallCreateNewList() {
3616
- _vaultCallCreateNewList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
3617
- var addressListRegistry, comptrollerProxy, items, owner, signer, updateType, listCount;
3618
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3619
- while (1) {
3620
- switch (_context.prev = _context.next) {
3621
- case 0:
3622
- addressListRegistry = _ref.addressListRegistry, comptrollerProxy = _ref.comptrollerProxy, items = _ref.items, owner = _ref.owner, signer = _ref.signer, updateType = _ref.updateType;
3623
- _context.next = 3;
3624
- return comptrollerProxy.connect(signer).vaultCallOnContract(addressListRegistry.address, addressListRegistryCreateListSelector, encodeArgs(['address', 'uint8', 'address[]'], [owner, updateType, items]));
3625
-
3626
- case 3:
3627
- _context.next = 5;
3628
- return addressListRegistry.getListCount();
3629
-
3630
- case 5:
3631
- listCount = _context.sent;
3632
- return _context.abrupt("return", listCount.sub(1));
3633
-
3634
- case 7:
3635
- case "end":
3636
- return _context.stop();
3637
- }
3638
- }
3639
- }, _callee);
3640
- }));
3641
- return _vaultCallCreateNewList.apply(this, arguments);
3642
- }
3643
-
3644
- function vaultCallCurveMinterMint(_ref2) {
3645
- var comptrollerProxy = _ref2.comptrollerProxy,
3646
- minter = _ref2.minter,
3647
- gauge = _ref2.gauge;
3648
- return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintSelector, encodeArgs(['address'], [gauge]));
3649
- }
3650
- function vaultCallCurveMinterMintMany(_ref3) {
3651
- var comptrollerProxy = _ref3.comptrollerProxy,
3652
- minter = _ref3.minter,
3653
- gauges = _ref3.gauges;
3654
- var gaugesFormatted = new Array(8).fill(constants.AddressZero);
3655
-
3656
- for (var i in gauges) {
3657
- gaugesFormatted[i] = gauges[i];
3658
- }
3659
-
3660
- return comptrollerProxy.vaultCallOnContract(minter, curveMinterMintManySelector, encodeArgs(['address[8]'], [gaugesFormatted]));
3661
- }
3662
- function vaultCallCurveMinterToggleApproveMint(_ref4) {
3663
- var comptrollerProxy = _ref4.comptrollerProxy,
3664
- minter = _ref4.minter,
3665
- account = _ref4.account;
3666
- return comptrollerProxy.vaultCallOnContract(minter, curveMinterToggleApproveMintSelector, encodeArgs(['address'], [account]));
3667
- }
3668
- function vaultCallStartAssetBypassTimelock(_ref5) {
3669
- var comptrollerProxy = _ref5.comptrollerProxy,
3670
- contract = _ref5.contract,
3671
- asset = _ref5.asset;
3672
- return comptrollerProxy.vaultCallOnContract(contract, sighash(utils.FunctionFragment.fromString('startAssetBypassTimelock(address)')), encodeArgs(['address'], [asset]));
3673
- }
3674
-
3675
- function transactionTimestamp(_x) {
3676
- return _transactionTimestamp.apply(this, arguments);
3677
- }
3678
-
3679
- function _transactionTimestamp() {
3680
- _transactionTimestamp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(receipt) {
3681
- var block;
3682
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3683
- while (1) {
3684
- switch (_context.prev = _context.next) {
3685
- case 0:
3686
- _context.next = 2;
3687
- return provider.getBlock(receipt.blockNumber);
3688
-
3689
- case 2:
3690
- block = _context.sent;
3691
- return _context.abrupt("return", block.timestamp);
3692
-
3693
- case 4:
3694
- case "end":
3695
- return _context.stop();
3696
- }
3697
- }
3698
- }, _callee);
3699
- }));
3700
- return _transactionTimestamp.apply(this, arguments);
3701
- }
3702
-
3703
- function calcMlnValueAndBurnAmountForSharesBuyback(_x2) {
3704
- return _calcMlnValueAndBurnAmountForSharesBuyback.apply(this, arguments);
3705
- }
3706
-
3707
- function _calcMlnValueAndBurnAmountForSharesBuyback() {
3708
- _calcMlnValueAndBurnAmountForSharesBuyback = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref) {
3709
- var valueInterpreter, mln, denominationAsset, sharesSupply, gav, buybackSharesAmount, grossShareValue, denominationAssetValueOfBuyback, mlnValueOfBuyback, mlnAmountToBurn;
3710
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
3711
- while (1) {
3712
- switch (_context2.prev = _context2.next) {
3713
- case 0:
3714
- valueInterpreter = _ref.valueInterpreter, mln = _ref.mln, denominationAsset = _ref.denominationAsset, sharesSupply = _ref.sharesSupply, gav = _ref.gav, buybackSharesAmount = _ref.buybackSharesAmount;
3715
- // Calculate expected mlnValue of shares to buyback
3716
- // TODO: calcGrossShareValue can also be a helper util
3717
- grossShareValue = BigNumber.from(gav).mul(utils.parseEther('1')).div(sharesSupply);
3718
- denominationAssetValueOfBuyback = grossShareValue.mul(buybackSharesAmount).div(utils.parseEther('1'));
3719
- _context2.next = 5;
3720
- return valueInterpreter.calcCanonicalAssetValue.args(denominationAsset, denominationAssetValueOfBuyback, mln).call();
3721
-
3722
- case 5:
3723
- mlnValueOfBuyback = _context2.sent;
3724
- // 50% discount
3725
- mlnAmountToBurn = mlnValueOfBuyback.div(2);
3726
- return _context2.abrupt("return", {
3727
- mlnAmountToBurn: mlnAmountToBurn,
3728
- mlnValue: mlnValueOfBuyback
3729
- });
3730
-
3731
- case 8:
3732
- case "end":
3733
- return _context2.stop();
3734
- }
3735
- }
3736
- }, _callee2);
3737
- }));
3738
- return _calcMlnValueAndBurnAmountForSharesBuyback.apply(this, arguments);
3739
- }
3740
-
3741
- 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; }
3742
-
3743
- 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; }
3744
-
3745
- /* eslint-disable sort-keys-fix/sort-keys-fix */
3746
- var whales = {
3747
- // primitives
3748
- bat: '0x12274c71304bc0e6b38a56b94d2949b118feb838',
3749
- bnb: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3750
- bnt: '0x7d1ed1601a12a172269436fa95fe156650603c1d',
3751
- busd: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
3752
- comp: '0x0f50d31b3eaefd65236dd3736b863cffa4c63c4e',
3753
- crv: '0x4ce799e6eD8D64536b67dD428565d52A531B3640',
3754
- dai: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503',
3755
- knc: '0x09d51654bd9efbfcb56da3491989cc1444095fff',
3756
- ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
3757
- link: '0xbe6977e08d4479c0a6777539ae0e8fa27be4e9d6',
3758
- mana: '0xefb94ac00f1cee8a89d5c3f49faa799da6f03024',
3759
- mln: '0xd8f8a53945bcfbbc19da162aa405e662ef71c40d',
3760
- ohm: '0x71a53aff36a699110d66d6bdfff2320caf8d2d59',
3761
- rep: '0xc6a043b07d33b6f30d8cb501026c391cfd25abe1',
3762
- ren: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
3763
- susd: '0xa5f7a39e55d7878bc5bd754ee5d6bd7a7662355b',
3764
- sohm: '0xf280f037cdbda99727ddf5dfede91e68fa78605c',
3765
- uni: '0x47173b170c64d16393a52e6c480b3ad8c302ba1e',
3766
- usdc: '0xae2d4617c862309a3d75a0ffb358c7a5009c673f',
3767
- usdt: '0x5041ed759dd4afc3a72b8192c143f72f4724081a',
3768
- weth: '0xe08A8b19e5722a201EaF20A6BC595eF655397bd5',
3769
- zrx: '0x206376e8940e42538781cd94ef024df3c1e0fd43',
3770
- // aTokens
3771
- ausdc: '0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296',
3772
- ausdt: '0x7d6149ad9a573a6e2ca6ebf7d4897c1b766841b4',
3773
- // cTokens
3774
- ccomp: '0xd74f186194ab9219fafac5c2fe4b3270169666db',
3775
- cdai: '0xab4ce310054a11328685ece1043211b68ba5d082',
3776
- ceth: '0x8aceab8167c80cb8b3de7fa6228b889bb1130ee8',
3777
- cuni: '0x39d8014b4f40d2cbc441137011d32023f4f1fd87',
3778
- cusdc: '0xe1ed4da4284924ddaf69983b4d813fb1be58c380',
3779
- // fTokens
3780
- fdai7: '0x88884e35d7006ae84efef09ee6bc6a43dd8e2bb8',
3781
- feth7: '0xcd2ba6a4d50745b0b4096186f925115387852c15',
3782
- fdai8: '0x93f3f612a525a59523e91cc5552f718df9fc0746',
3783
- ftribe8: '0xdb5ac83c137321da29a59a7592232bc4ed461730',
3784
- // ptTokens
3785
- ptUsdc: '0xd18236cd213f39d078177b6f6908f0e44e88e4aa',
3786
- // synths (unsupported)
3787
- seth: '0xc34a7c65aa08cb36744bda8eeec7b8e9891e147c',
3788
- sxag: '0x40d68c490bf7262ec40048099aec23535f734be2',
3789
- sxau: '0x92eb453b7b5b8d41edb44e2c8b8b53eb70a482c7',
3790
- // misc
3791
- lidoSteth: '0x31f644e2dd5d74f5c8d6d9de89dd517474d51800',
3792
- ust: '0xf584f8728b874a6a5c7a8d4d387c9aae9172d621',
3793
- // Curve steth pool related
3794
- stecrv: '0x56c915758ad3f76fd287fff7563ee313142fb663'
3795
- };
3796
- /* eslint-enable sort-keys-fix/sort-keys-fix */
3797
-
3798
- function unlockWhale(_x) {
3799
- return _unlockWhale.apply(this, arguments);
3800
- }
3801
-
3802
- function _unlockWhale() {
3803
- _unlockWhale = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(token) {
3804
- var address;
3805
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3806
- while (1) {
3807
- switch (_context.prev = _context.next) {
3808
- case 0:
3809
- address = resolveAddress(whales[token]);
3810
- _context.next = 3;
3811
- return provider.send('hardhat_impersonateAccount', [address]);
3812
-
3813
- case 3:
3814
- return _context.abrupt("return", provider.getSignerWithAddress(address));
3815
-
3816
- case 4:
3817
- case "end":
3818
- return _context.stop();
3819
- }
3820
- }
3821
- }, _callee);
3822
- }));
3823
- return _unlockWhale.apply(this, arguments);
3824
- }
3825
-
3826
- function unlockAllWhales() {
3827
- return _unlockAllWhales.apply(this, arguments);
3828
- }
3829
-
3830
- function _unlockAllWhales() {
3831
- _unlockAllWhales = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
3832
- var keys, signers;
3833
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
3834
- while (1) {
3835
- switch (_context3.prev = _context3.next) {
3836
- case 0:
3837
- keys = Object.keys(whales);
3838
- _context3.next = 3;
3839
- return Promise.all(keys.map( /*#__PURE__*/function () {
3840
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(token) {
3841
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
3842
- while (1) {
3843
- switch (_context2.prev = _context2.next) {
3844
- case 0:
3845
- return _context2.abrupt("return", unlockWhale(token));
3846
-
3847
- case 1:
3848
- case "end":
3849
- return _context2.stop();
3850
- }
3851
- }
3852
- }, _callee2);
3853
- }));
3854
-
3855
- return function (_x2) {
3856
- return _ref.apply(this, arguments);
3857
- };
3858
- }()));
3859
-
3860
- case 3:
3861
- signers = _context3.sent;
3862
- return _context3.abrupt("return", keys.reduce(function (carry, key, index) {
3863
- return _objectSpread(_objectSpread({}, carry), {}, _defineProperty({}, key, signers[index]));
3864
- }, {}));
3865
-
3866
- case 5:
3867
- case "end":
3868
- return _context3.stop();
3869
- }
3870
- }
3871
- }, _callee3);
3872
- }));
3873
- return _unlockAllWhales.apply(this, arguments);
3874
- }
3875
-
3876
- function unlockWhales() {
3877
- return _unlockWhales.apply(this, arguments);
3878
- }
3879
-
3880
- function _unlockWhales() {
3881
- _unlockWhales = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
3882
- var _len,
3883
- tokens,
3884
- _key,
3885
- signers,
3886
- _args5 = arguments;
3887
-
3888
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
3889
- while (1) {
3890
- switch (_context5.prev = _context5.next) {
3891
- case 0:
3892
- for (_len = _args5.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {
3893
- tokens[_key] = _args5[_key];
3894
- }
3895
-
3896
- _context5.next = 3;
3897
- return Promise.all(tokens.map( /*#__PURE__*/function () {
3898
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(token) {
3899
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
3900
- while (1) {
3901
- switch (_context4.prev = _context4.next) {
3902
- case 0:
3903
- return _context4.abrupt("return", unlockWhale(token));
3904
-
3905
- case 1:
3906
- case "end":
3907
- return _context4.stop();
3908
- }
3909
- }
3910
- }, _callee4);
3911
- }));
3912
-
3913
- return function (_x3) {
3914
- return _ref2.apply(this, arguments);
3915
- };
3916
- }()));
3917
-
3918
- case 3:
3919
- signers = _context5.sent;
3920
- return _context5.abrupt("return", tokens.reduce(function (carry, key, index) {
3921
- return _objectSpread(_objectSpread({}, carry), {}, _defineProperty({}, key, signers[index]));
3922
- }, {}));
3923
-
3924
- case 5:
3925
- case "end":
3926
- return _context5.stop();
3927
- }
3928
- }
3929
- }, _callee5);
3930
- }));
3931
- return _unlockWhales.apply(this, arguments);
3932
- }
3933
-
3934
- function relayTransaction(_x) {
3935
- return _relayTransaction.apply(this, arguments);
3936
- }
3937
-
3938
- function _relayTransaction() {
3939
- _relayTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(options) {
3940
- var signer, _yield$createSignedRe, relayData, relayRequest, signedRelayRequest, defaultGasLimit, defaultMaxAcceptance, mergedRelayRequest, relayHub;
3941
-
3942
- return _regeneratorRuntime.wrap(function _callee$(_context) {
3943
- while (1) {
3944
- switch (_context.prev = _context.next) {
3945
- case 0:
3946
- signer = options.sendFunction.contract.signer;
3947
-
3948
- if (signer && isTypedDataSigner(signer)) {
3949
- _context.next = 3;
3950
- break;
3951
- }
3952
-
3953
- throw new Error('Missing or invalid signer');
3954
-
3955
- case 3:
3956
- _context.next = 5;
3957
- return createSignedRelayRequest(options);
3958
-
3959
- case 5:
3960
- _yield$createSignedRe = _context.sent;
3961
- relayData = _yield$createSignedRe.relayData;
3962
- relayRequest = _yield$createSignedRe.relayRequest;
3963
- signedRelayRequest = _yield$createSignedRe.signedRelayRequest;
3964
- // NOTE: In the real implementation, we fetch these from the relayer.
3965
- defaultGasLimit = 12450000;
3966
- defaultMaxAcceptance = BigNumber.from(150000); // NOTE: There is an inconsistency between how the typed data object shape and the relayCall argument.
3967
-
3968
- mergedRelayRequest = {
3969
- relayData: relayData,
3970
- request: relayRequest
3971
- };
3972
- relayHub = new IGsnRelayHub(options.relayHub, provider.getSigner(options.relayWorker));
3973
- return _context.abrupt("return", relayHub.relayCall.args(defaultMaxAcceptance, mergedRelayRequest, signedRelayRequest, '0x', defaultGasLimit).gas(defaultGasLimit, relayData.gasPrice).send());
3974
-
3975
- case 14:
3976
- case "end":
3977
- return _context.stop();
3978
- }
3979
- }
3980
- }, _callee);
3981
- }));
3982
- return _relayTransaction.apply(this, arguments);
3983
- }
3984
-
3985
- var relayed = utils.EventFragment.fromString('TransactionRelayed(address indexed relayManager, address indexed relayWorker, address indexed from, address to, address paymaster, bytes4 selector, uint8 status, uint256 charge)');
3986
- var rejected = utils.EventFragment.fromString('TransactionRejectedByPaymaster(address indexed relayManager, address indexed paymaster, address indexed from, address to, address relayWorker, bytes4 selector, uint256 innerGasUsed, bytes reason)');
3987
- function assertDidRelay(receipt) {
3988
- return assertEvent(receipt, relayed, {
3989
- charge: expect.anything(),
3990
- from: expect.any(String),
3991
- paymaster: expect.any(String),
3992
- relayManager: expect.any(String),
3993
- relayWorker: expect.any(String),
3994
- selector: expect.any(String),
3995
- status: expect.anything(),
3996
- to: expect.any(String)
3997
- });
3998
- }
3999
- function assertDidRelaySuccessfully(receipt) {
4000
- var result = assertDidRelay(receipt);
4001
- expect(result.status).toEqBigNumber(0);
4002
- }
4003
- function assertDidRelayWithError(receipt) {
4004
- var result = assertDidRelay(receipt);
4005
- expect(result.status).toEqBigNumber(1);
4006
- }
4007
- function assertDidRelayWithCharge(receipt, amount, tolerance) {
4008
- var result = assertDidRelay(receipt);
4009
- expect(result.charge).toBeAroundBigNumber(amount, tolerance);
4010
- }
4011
- function assertPaymasterDidReject(receipt) {
4012
- return assertEvent(receipt, rejected, {
4013
- from: expect.any(String),
4014
- innerGasUsed: expect.anything(),
4015
- paymaster: expect.any(String),
4016
- reason: expect.any(String),
4017
- relayManager: expect.any(String),
4018
- relayWorker: expect.any(String),
4019
- selector: expect.any(String),
4020
- to: expect.any(String)
4021
- });
4022
- }
4023
- function assertPaymasterDidRejectForReason(receipt, reason) {
4024
- var params = assertPaymasterDidReject(receipt);
4025
- expect(utils.toUtf8String('0x' + params.reason.substr(138))).toMatch(reason);
4026
- }
4027
-
4028
- export { CurveLiquidityGaugeV2, CurveMinter, CurveRegistry, CurveSwaps, ICompoundComptroller, IUniswapV3NonFungibleTokenManager, UniswapV2Factory, UniswapV3FeeAmount, aaveDebtPositionAddCollateral, aaveDebtPositionBorrow, aaveDebtPositionClaimRewards, aaveDebtPositionRemoveCollateral, aaveDebtPositionRepayBorrow, aaveLend, aaveRedeem, addNewAssetsToFund, addTrackedAssetsToVault, assertCompoundLend, assertCompoundRedeem, assertDidRelay, assertDidRelaySuccessfully, assertDidRelayWithCharge, assertDidRelayWithError, assertEvent, assertNoEvent, assertPaymasterDidReject, assertPaymasterDidRejectForReason, buyShares, buySharesFunction, calcMlnValueAndBurnAmountForSharesBuyback, callOnExtension, callOnExternalPosition, compoundClaim, compoundDebtPositionAddCollateral, compoundDebtPositionBorrow, compoundDebtPositionClaimComp, compoundDebtPositionRemoveCollateral, compoundDebtPositionRepayBorrow, compoundLend, compoundRedeem, createAaveDebtPosition, createCompoundDebtPosition, createComptrollerProxy, createExternalPosition, createFundDeployer, createMigrationRequest, createMockExternalPosition, createNewFund, createReconfigurationRequest, createUniswapV3LiquidityPosition, createVaultProxy, curveClaimRewards, curveLend, curveLendAndStake, curveRedeem, curveStake, curveTakeOrder, curveUnstake, curveUnstakeAndRedeem, deployProtocolFixture, generateFeeManagerConfigWithMockFees, generateMockFees, generateMockPolicies, generatePolicyManagerConfigWithMockPolicies, getAssetBalances, getAssetUnit, getNamedSigner, getUnnamedSigners, idleClaimRewards, idleLend, idleRedeem, mockExternalPositionAddDebtAssets, mockExternalPositionAddManagedAssets, mockExternalPositionRemoveDebtAssets, mockExternalPositionRemoveManagedAssets, mockGenericRemoveOnlySelector, mockGenericSwap, mockGenericSwapASelector, mockGenericSwapArgs, mockGenericSwapBSelector, mockGenericSwapDirectFromVaultSelector, mockGenericSwapViaApprovalSelector, olympusV2Stake, olympusV2Unstake, paraSwapV5GenerateDummyPaths, paraSwapV5TakeOrder, poolTogetherV4ClaimRewards, poolTogetherV4Lend, poolTogetherV4Redeem, reactivateExternalPosition, redeemSharesForSpecificAssets, redeemSharesInKind, relayTransaction, removeExternalPosition, removeTrackedAssetsFromVault, setupGasRelayerPaymaster, synthetixAssignExchangeDelegate, synthetixRedeem, synthetixTakeOrder, transactionTimestamp, uniswapV2Lend, uniswapV2Redeem, uniswapV2TakeOrder, uniswapV3LiquidityPositionAddLiquidity, uniswapV3LiquidityPositionCollect, uniswapV3LiquidityPositionGetMaxTick, uniswapV3LiquidityPositionGetMinTick, uniswapV3LiquidityPositionMint, uniswapV3LiquidityPositionPurge, uniswapV3LiquidityPositionRemoveLiquidity, uniswapV3OrderTokenPair, uniswapV3TakeOrder, unlockAllWhales, unlockWhale, unlockWhales, updateChainlinkAggregator, vaultCallCreateNewList, vaultCallCurveMinterMint, vaultCallCurveMinterMintMany, vaultCallCurveMinterToggleApproveMint, vaultCallStartAssetBypassTimelock, yearnVaultV2Lend, yearnVaultV2Redeem, zeroExV2TakeOrder };