@enzymefinance/testutils 4.0.0 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/index.d.ts +1566 -0
  2. package/dist/index.js +3375 -0
  3. package/dist/index.mjs +3375 -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 };