@enzymefinance/testutils 4.0.0-next.7 → 4.0.2

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