@enzymefinance/testutils 4.0.0-next.7 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/index.d.ts +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,104 +0,0 @@
1
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
2
- import type { ComptrollerLib, IdleAdapter, IntegrationManager, StandardToken } from '@enzymefinance/protocol';
3
- import {
4
- callOnIntegrationArgs,
5
- claimRewardsSelector,
6
- idleClaimRewardsArgs,
7
- idleLendArgs,
8
- idleRedeemArgs,
9
- IntegrationManagerActionId,
10
- lendSelector,
11
- redeemSelector,
12
- } from '@enzymefinance/protocol';
13
- import type { BigNumberish } from 'ethers';
14
- import { BigNumber } from 'ethers';
15
-
16
- export async function idleClaimRewards({
17
- comptrollerProxy,
18
- integrationManager,
19
- fundOwner,
20
- idleAdapter,
21
- idleToken,
22
- }: {
23
- comptrollerProxy: ComptrollerLib;
24
- integrationManager: IntegrationManager;
25
- fundOwner: SignerWithAddress;
26
- idleAdapter: IdleAdapter;
27
- idleToken: StandardToken;
28
- }) {
29
- const callArgs = callOnIntegrationArgs({
30
- adapter: idleAdapter,
31
- encodedCallArgs: idleClaimRewardsArgs({
32
- idleToken,
33
- }),
34
- selector: claimRewardsSelector,
35
- });
36
-
37
- return comptrollerProxy
38
- .connect(fundOwner)
39
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
40
- }
41
-
42
- export async function idleLend({
43
- comptrollerProxy,
44
- integrationManager,
45
- fundOwner,
46
- idleAdapter,
47
- idleToken,
48
- outgoingUnderlyingAmount,
49
- minIncomingIdleTokenAmount = BigNumber.from(1),
50
- }: {
51
- comptrollerProxy: ComptrollerLib;
52
- integrationManager: IntegrationManager;
53
- fundOwner: SignerWithAddress;
54
- idleAdapter: IdleAdapter;
55
- idleToken: StandardToken;
56
- outgoingUnderlyingAmount: BigNumberish;
57
- minIncomingIdleTokenAmount?: BigNumberish;
58
- }) {
59
- const callArgs = callOnIntegrationArgs({
60
- adapter: idleAdapter,
61
- encodedCallArgs: idleLendArgs({
62
- idleToken,
63
- minIncomingIdleTokenAmount,
64
- outgoingUnderlyingAmount,
65
- }),
66
- selector: lendSelector,
67
- });
68
-
69
- return comptrollerProxy
70
- .connect(fundOwner)
71
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
72
- }
73
-
74
- export async function idleRedeem({
75
- comptrollerProxy,
76
- integrationManager,
77
- fundOwner,
78
- idleAdapter,
79
- idleToken,
80
- outgoingIdleTokenAmount,
81
- minIncomingUnderlyingAmount = BigNumber.from(1),
82
- }: {
83
- comptrollerProxy: ComptrollerLib;
84
- integrationManager: IntegrationManager;
85
- fundOwner: SignerWithAddress;
86
- idleAdapter: IdleAdapter;
87
- idleToken: StandardToken;
88
- outgoingIdleTokenAmount: BigNumberish;
89
- minIncomingUnderlyingAmount?: BigNumberish;
90
- }) {
91
- const callArgs = callOnIntegrationArgs({
92
- adapter: idleAdapter,
93
- encodedCallArgs: idleRedeemArgs({
94
- idleToken,
95
- minIncomingUnderlyingAmount,
96
- outgoingIdleTokenAmount,
97
- }),
98
- selector: redeemSelector,
99
- });
100
-
101
- return comptrollerProxy
102
- .connect(fundOwner)
103
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
104
- }
@@ -1,15 +0,0 @@
1
- export * from './aave';
2
- export * from './compound';
3
- export * from './curve';
4
- export * from './idle';
5
- export * from './mock';
6
- export * from './olympusV2';
7
- export * from './paraSwapV4';
8
- export * from './paraSwapV5';
9
- export * from './poolTogetherV4';
10
- export * from './synthetix';
11
- export * from './trackedAssets';
12
- export * from './uniswapV2';
13
- export * from './uniswapV3';
14
- export * from './yearn';
15
- export * from './zeroExV2';
@@ -1,116 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type {
4
- ComptrollerLib,
5
- IntegrationManager,
6
- MockGenericAdapter,
7
- StandardToken,
8
- VaultLib,
9
- } from '@enzymefinance/protocol';
10
- import { callOnIntegrationArgs, encodeArgs, IntegrationManagerActionId, sighash } from '@enzymefinance/protocol';
11
- import type { BigNumberish, BytesLike } from 'ethers';
12
- import { utils } from 'ethers';
13
-
14
- export const mockGenericRemoveOnlySelector = sighash(
15
- utils.FunctionFragment.fromString('removeOnly(address,bytes,bytes)'),
16
- );
17
-
18
- export const mockGenericSwapASelector = sighash(utils.FunctionFragment.fromString('swapA(address,bytes,bytes)'));
19
-
20
- export const mockGenericSwapBSelector = sighash(utils.FunctionFragment.fromString('swapB(address,bytes,bytes)'));
21
-
22
- export const mockGenericSwapDirectFromVaultSelector = sighash(
23
- utils.FunctionFragment.fromString('swapDirectFromVault(address,bytes,bytes)'),
24
- );
25
-
26
- export const mockGenericSwapViaApprovalSelector = sighash(
27
- utils.FunctionFragment.fromString('swapViaApproval(address,bytes,bytes)'),
28
- );
29
-
30
- export function mockGenericSwapArgs({
31
- spendAssets = [],
32
- actualSpendAssetAmounts = [],
33
- maxSpendAssetAmounts = actualSpendAssetAmounts,
34
- incomingAssets = [],
35
- actualIncomingAssetAmounts = [],
36
- minIncomingAssetAmounts = actualIncomingAssetAmounts,
37
- }: {
38
- spendAssets?: AddressLike[];
39
- maxSpendAssetAmounts?: BigNumberish[];
40
- actualSpendAssetAmounts?: BigNumberish[];
41
- incomingAssets?: AddressLike[];
42
- minIncomingAssetAmounts?: BigNumberish[];
43
- actualIncomingAssetAmounts?: BigNumberish[];
44
- }) {
45
- return encodeArgs(
46
- ['address[]', 'uint256[]', 'uint256[]', 'address[]', 'uint256[]', 'uint256[]'],
47
- [
48
- spendAssets,
49
- maxSpendAssetAmounts,
50
- actualSpendAssetAmounts,
51
- incomingAssets,
52
- minIncomingAssetAmounts,
53
- actualIncomingAssetAmounts,
54
- ],
55
- );
56
- }
57
-
58
- export async function mockGenericSwap({
59
- comptrollerProxy,
60
- vaultProxy,
61
- integrationManager,
62
- fundOwner,
63
- mockGenericAdapter,
64
- selector = mockGenericSwapASelector,
65
- spendAssets = [],
66
- actualSpendAssetAmounts = [],
67
- maxSpendAssetAmounts = actualSpendAssetAmounts,
68
- incomingAssets = [],
69
- actualIncomingAssetAmounts = [],
70
- minIncomingAssetAmounts = actualIncomingAssetAmounts,
71
- seedFund = false,
72
- }: {
73
- comptrollerProxy: ComptrollerLib;
74
- vaultProxy: VaultLib;
75
- integrationManager: IntegrationManager;
76
- fundOwner: SignerWithAddress;
77
- mockGenericAdapter: MockGenericAdapter;
78
- selector?: BytesLike;
79
- spendAssets?: StandardToken[];
80
- maxSpendAssetAmounts?: BigNumberish[];
81
- actualSpendAssetAmounts?: BigNumberish[];
82
- incomingAssets?: StandardToken[];
83
- minIncomingAssetAmounts?: BigNumberish[];
84
- actualIncomingAssetAmounts?: BigNumberish[];
85
- seedFund?: boolean;
86
- }) {
87
- // Seed the VaultProxy with enough spendAssets for the tx
88
- if (seedFund) {
89
- for (const key in spendAssets) {
90
- await spendAssets[key].transfer(vaultProxy, maxSpendAssetAmounts[key]);
91
- }
92
- }
93
-
94
- const swapArgs = mockGenericSwapArgs({
95
- actualIncomingAssetAmounts,
96
- actualSpendAssetAmounts,
97
- incomingAssets,
98
- maxSpendAssetAmounts,
99
- minIncomingAssetAmounts,
100
- spendAssets,
101
- });
102
-
103
- const callArgs = callOnIntegrationArgs({
104
- adapter: mockGenericAdapter,
105
- encodedCallArgs: swapArgs,
106
- selector,
107
- });
108
-
109
- const swapTx = comptrollerProxy
110
- .connect(fundOwner)
111
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
112
-
113
- await expect(swapTx).resolves.toBeReceipt();
114
-
115
- return swapTx;
116
- }
@@ -1,71 +0,0 @@
1
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
2
- import type { ComptrollerLib, IntegrationManager, OlympusV2Adapter } from '@enzymefinance/protocol';
3
- import {
4
- callOnIntegrationArgs,
5
- IntegrationManagerActionId,
6
- olympusV2StakeArgs,
7
- olympusV2UnstakeArgs,
8
- stakeSelector,
9
- unstakeSelector,
10
- } from '@enzymefinance/protocol';
11
- import type { BigNumberish } from 'ethers';
12
-
13
- export async function olympusV2Stake({
14
- comptrollerProxy,
15
- integrationManager,
16
- signer,
17
- olympusV2Adapter,
18
- amount,
19
- }: {
20
- comptrollerProxy: ComptrollerLib;
21
- integrationManager: IntegrationManager;
22
- signer: SignerWithAddress;
23
- olympusV2Adapter: OlympusV2Adapter;
24
- amount: BigNumberish;
25
- }) {
26
- const stakeArgs = olympusV2StakeArgs({
27
- amount,
28
- });
29
-
30
- const callArgs = callOnIntegrationArgs({
31
- adapter: olympusV2Adapter,
32
- encodedCallArgs: stakeArgs,
33
- selector: stakeSelector,
34
- });
35
-
36
- const stakeTx = comptrollerProxy
37
- .connect(signer)
38
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
39
-
40
- return stakeTx;
41
- }
42
-
43
- export async function olympusV2Unstake({
44
- comptrollerProxy,
45
- integrationManager,
46
- signer,
47
- olympusV2Adapter,
48
- amount,
49
- }: {
50
- comptrollerProxy: ComptrollerLib;
51
- integrationManager: IntegrationManager;
52
- signer: SignerWithAddress;
53
- olympusV2Adapter: OlympusV2Adapter;
54
- amount: BigNumberish;
55
- }) {
56
- const unstakeArgs = olympusV2UnstakeArgs({
57
- amount,
58
- });
59
-
60
- const callArgs = callOnIntegrationArgs({
61
- adapter: olympusV2Adapter,
62
- encodedCallArgs: unstakeArgs,
63
- selector: unstakeSelector,
64
- });
65
-
66
- const unstakeTx = comptrollerProxy
67
- .connect(signer)
68
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
69
-
70
- return unstakeTx;
71
- }
@@ -1,70 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type {
4
- ComptrollerLib,
5
- IntegrationManager,
6
- ParaSwapV4Adapter,
7
- ParaSwapV4Path,
8
- StandardToken,
9
- } from '@enzymefinance/protocol';
10
- import {
11
- callOnIntegrationArgs,
12
- IntegrationManagerActionId,
13
- paraSwapV4TakeOrderArgs,
14
- takeOrderSelector,
15
- } from '@enzymefinance/protocol';
16
- import type { BigNumberish } from 'ethers';
17
- import { utils } from 'ethers';
18
-
19
- // ParaSwapV4Path
20
- export function paraSwapV4GenerateDummyPaths({ toTokens }: { toTokens: AddressLike[] }) {
21
- return toTokens.map((toToken) => {
22
- return {
23
- // Not supported in our protocol
24
- routes: [],
25
-
26
- to: toToken,
27
- totalNetworkFee: 0, // Can ignore this param in the dummy
28
- };
29
- });
30
- }
31
-
32
- export async function paraSwapV4TakeOrder({
33
- comptrollerProxy,
34
- integrationManager,
35
- fundOwner,
36
- paraSwapV4Adapter,
37
- outgoingAsset,
38
- outgoingAssetAmount = utils.parseEther('1'),
39
- minIncomingAssetAmount = 1,
40
- expectedIncomingAssetAmount = minIncomingAssetAmount,
41
- paths,
42
- }: {
43
- comptrollerProxy: ComptrollerLib;
44
- integrationManager: IntegrationManager;
45
- fundOwner: SignerWithAddress;
46
- paraSwapV4Adapter: ParaSwapV4Adapter;
47
- outgoingAsset: StandardToken;
48
- outgoingAssetAmount?: BigNumberish;
49
- minIncomingAssetAmount?: BigNumberish;
50
- expectedIncomingAssetAmount?: BigNumberish;
51
- paths: ParaSwapV4Path[];
52
- }) {
53
- const takeOrderArgs = paraSwapV4TakeOrderArgs({
54
- expectedIncomingAssetAmount,
55
- minIncomingAssetAmount,
56
- outgoingAsset,
57
- outgoingAssetAmount,
58
- paths,
59
- });
60
-
61
- const callArgs = callOnIntegrationArgs({
62
- adapter: paraSwapV4Adapter,
63
- encodedCallArgs: takeOrderArgs,
64
- selector: takeOrderSelector,
65
- });
66
-
67
- return comptrollerProxy
68
- .connect(fundOwner)
69
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
70
- }
@@ -1,73 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type {
4
- ComptrollerLib,
5
- IntegrationManager,
6
- ParaSwapV5Adapter,
7
- ParaSwapV5Path,
8
- StandardToken,
9
- } from '@enzymefinance/protocol';
10
- import {
11
- callOnIntegrationArgs,
12
- IntegrationManagerActionId,
13
- paraSwapV5TakeOrderArgs,
14
- takeOrderSelector,
15
- } from '@enzymefinance/protocol';
16
- import type { BigNumberish, BytesLike } from 'ethers';
17
- import { utils } from 'ethers';
18
-
19
- // ParaSwapV5Path
20
- export function paraSwapV5GenerateDummyPaths({ toTokens }: { toTokens: AddressLike[] }) {
21
- return toTokens.map((toToken) => {
22
- return {
23
- // Not supported in our protocol
24
- adapters: [],
25
-
26
- to: toToken,
27
- totalNetworkFee: 0, // Can ignore this param in the dummy
28
- };
29
- });
30
- }
31
-
32
- export async function paraSwapV5TakeOrder({
33
- comptrollerProxy,
34
- integrationManager,
35
- fundOwner,
36
- paraSwapV5Adapter,
37
- outgoingAsset,
38
- outgoingAssetAmount,
39
- minIncomingAssetAmount = 1,
40
- expectedIncomingAssetAmount = minIncomingAssetAmount,
41
- uuid = utils.randomBytes(16),
42
- paths,
43
- }: {
44
- comptrollerProxy: ComptrollerLib;
45
- integrationManager: IntegrationManager;
46
- fundOwner: SignerWithAddress;
47
- paraSwapV5Adapter: ParaSwapV5Adapter;
48
- outgoingAsset: StandardToken;
49
- outgoingAssetAmount: BigNumberish;
50
- minIncomingAssetAmount?: BigNumberish;
51
- expectedIncomingAssetAmount?: BigNumberish;
52
- uuid?: BytesLike;
53
- paths: ParaSwapV5Path[];
54
- }) {
55
- const takeOrderArgs = paraSwapV5TakeOrderArgs({
56
- expectedIncomingAssetAmount,
57
- minIncomingAssetAmount,
58
- outgoingAsset,
59
- outgoingAssetAmount,
60
- paths,
61
- uuid,
62
- });
63
-
64
- const callArgs = callOnIntegrationArgs({
65
- adapter: paraSwapV5Adapter,
66
- encodedCallArgs: takeOrderArgs,
67
- selector: takeOrderSelector,
68
- });
69
-
70
- return comptrollerProxy
71
- .connect(fundOwner)
72
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
73
- }
@@ -1,117 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type { ComptrollerLib, IntegrationManager, PoolTogetherV4Adapter, StandardToken } from '@enzymefinance/protocol';
4
- import {
5
- callOnIntegrationArgs,
6
- claimRewardsSelector,
7
- IntegrationManagerActionId,
8
- lendSelector,
9
- poolTogetherV4ClaimRewardsArgs,
10
- poolTogetherV4LendArgs,
11
- poolTogetherV4RedeemArgs,
12
- redeemSelector,
13
- } from '@enzymefinance/protocol';
14
- import type { BigNumberish, BytesLike } from 'ethers';
15
- import { utils } from 'ethers';
16
-
17
- export async function poolTogetherV4Lend({
18
- comptrollerProxy,
19
- integrationManager,
20
- fundOwner,
21
- poolTogetherV4Adapter,
22
- ptToken,
23
- amount = utils.parseEther('1'),
24
- }: {
25
- comptrollerProxy: ComptrollerLib;
26
- integrationManager: IntegrationManager;
27
- fundOwner: SignerWithAddress;
28
- poolTogetherV4Adapter: PoolTogetherV4Adapter;
29
- ptToken: StandardToken;
30
- amount?: BigNumberish;
31
- }) {
32
- const lendArgs = poolTogetherV4LendArgs({
33
- amount,
34
- ptToken,
35
- });
36
-
37
- const callArgs = callOnIntegrationArgs({
38
- adapter: poolTogetherV4Adapter,
39
- encodedCallArgs: lendArgs,
40
- selector: lendSelector,
41
- });
42
-
43
- const lendTx = comptrollerProxy
44
- .connect(fundOwner)
45
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
46
-
47
- return lendTx;
48
- }
49
-
50
- export async function poolTogetherV4Redeem({
51
- comptrollerProxy,
52
- integrationManager,
53
- fundOwner,
54
- poolTogetherV4Adapter,
55
- ptToken,
56
- amount = utils.parseEther('1'),
57
- }: {
58
- comptrollerProxy: ComptrollerLib;
59
- integrationManager: IntegrationManager;
60
- fundOwner: SignerWithAddress;
61
- poolTogetherV4Adapter: PoolTogetherV4Adapter;
62
- ptToken: StandardToken;
63
- amount?: BigNumberish;
64
- }) {
65
- const redeemArgs = poolTogetherV4RedeemArgs({
66
- amount,
67
- ptToken,
68
- });
69
-
70
- const callArgs = callOnIntegrationArgs({
71
- adapter: poolTogetherV4Adapter,
72
- encodedCallArgs: redeemArgs,
73
- selector: redeemSelector,
74
- });
75
-
76
- const redeemTx = comptrollerProxy
77
- .connect(fundOwner)
78
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
79
-
80
- return redeemTx;
81
- }
82
-
83
- export async function poolTogetherV4ClaimRewards({
84
- comptrollerProxy,
85
- integrationManager,
86
- fundOwner,
87
- poolTogetherV4Adapter,
88
- prizeDistributor,
89
- drawIds,
90
- winningPicks,
91
- }: {
92
- comptrollerProxy: ComptrollerLib;
93
- integrationManager: IntegrationManager;
94
- fundOwner: SignerWithAddress;
95
- poolTogetherV4Adapter: PoolTogetherV4Adapter;
96
- prizeDistributor: AddressLike;
97
- drawIds: BigNumberish[];
98
- winningPicks: BytesLike;
99
- }) {
100
- const claimRewardsArgs = poolTogetherV4ClaimRewardsArgs({
101
- drawIds,
102
- prizeDistributor,
103
- winningPicks,
104
- });
105
-
106
- const callArgs = callOnIntegrationArgs({
107
- adapter: poolTogetherV4Adapter,
108
- encodedCallArgs: claimRewardsArgs,
109
- selector: claimRewardsSelector,
110
- });
111
-
112
- const claimTx = comptrollerProxy
113
- .connect(fundOwner)
114
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
115
-
116
- return claimTx;
117
- }
@@ -1,111 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type {
3
- ComptrollerLib,
4
- IntegrationManager,
5
- StandardToken,
6
- SynthetixAdapter,
7
- VaultLib,
8
- } from '@enzymefinance/protocol';
9
- import {
10
- callOnIntegrationArgs,
11
- encodeArgs,
12
- IntegrationManagerActionId,
13
- redeemSelector,
14
- synthetixAssignExchangeDelegateSelector,
15
- synthetixRedeemArgs,
16
- synthetixTakeOrderArgs,
17
- takeOrderSelector,
18
- } from '@enzymefinance/protocol';
19
- import type { BigNumberish, Signer } from 'ethers';
20
- import { utils } from 'ethers';
21
-
22
- export async function synthetixAssignExchangeDelegate({
23
- comptrollerProxy,
24
- synthetixDelegateApprovals,
25
- fundOwner,
26
- delegate,
27
- }: {
28
- comptrollerProxy: ComptrollerLib;
29
- synthetixDelegateApprovals: AddressLike;
30
- fundOwner: Signer;
31
- delegate: AddressLike;
32
- }) {
33
- await comptrollerProxy
34
- .connect(fundOwner)
35
- .vaultCallOnContract(
36
- synthetixDelegateApprovals,
37
- synthetixAssignExchangeDelegateSelector,
38
- encodeArgs(['address'], [delegate]),
39
- );
40
- }
41
-
42
- export async function synthetixRedeem({
43
- comptrollerProxy,
44
- integrationManager,
45
- signer,
46
- synthetixAdapter,
47
- synths,
48
- }: {
49
- comptrollerProxy: ComptrollerLib;
50
- integrationManager: IntegrationManager;
51
- signer: Signer;
52
- synthetixAdapter: SynthetixAdapter;
53
- synths: AddressLike[];
54
- }) {
55
- const redeemArgs = synthetixRedeemArgs({
56
- synths,
57
- });
58
-
59
- const callArgs = callOnIntegrationArgs({
60
- adapter: synthetixAdapter,
61
- encodedCallArgs: redeemArgs,
62
- selector: redeemSelector,
63
- });
64
-
65
- return comptrollerProxy
66
- .connect(signer)
67
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
68
- }
69
-
70
- export async function synthetixTakeOrder({
71
- comptrollerProxy,
72
- vaultProxy,
73
- integrationManager,
74
- fundOwner,
75
- synthetixAdapter,
76
- outgoingAsset,
77
- outgoingAssetAmount = utils.parseEther('1'),
78
- minIncomingSusdAmount = utils.parseEther('1'),
79
- seedFund = false,
80
- }: {
81
- comptrollerProxy: ComptrollerLib;
82
- vaultProxy: VaultLib;
83
- integrationManager: IntegrationManager;
84
- fundOwner: Signer;
85
- synthetixAdapter: SynthetixAdapter;
86
- outgoingAsset: StandardToken;
87
- outgoingAssetAmount?: BigNumberish;
88
- minIncomingSusdAmount?: BigNumberish;
89
- seedFund?: boolean;
90
- }) {
91
- if (seedFund) {
92
- // Seed the VaultProxy with enough outgoingAsset for the tx
93
- await outgoingAsset.transfer(vaultProxy, outgoingAssetAmount);
94
- }
95
-
96
- const takeOrderArgs = synthetixTakeOrderArgs({
97
- minIncomingSusdAmount,
98
- outgoingAsset,
99
- outgoingAssetAmount,
100
- });
101
-
102
- const callArgs = await callOnIntegrationArgs({
103
- adapter: synthetixAdapter,
104
- encodedCallArgs: takeOrderArgs,
105
- selector: takeOrderSelector,
106
- });
107
-
108
- return comptrollerProxy
109
- .connect(fundOwner)
110
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
111
- }