@enzymefinance/testutils 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/declarations/src/assertions.d.ts +4 -0
  3. package/dist/declarations/src/deployment.d.ts +81 -0
  4. package/dist/declarations/src/helpers.d.ts +2 -0
  5. package/dist/declarations/src/index.d.ts +5 -0
  6. package/dist/declarations/src/scaffolding/assets.d.ts +12 -0
  7. package/dist/declarations/src/scaffolding/chainlink.d.ts +3 -0
  8. package/dist/declarations/src/scaffolding/common.d.ts +6 -0
  9. package/dist/declarations/src/scaffolding/core.d.ts +19 -0
  10. package/dist/declarations/src/scaffolding/extensions/common.d.ts +11 -0
  11. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +14 -0
  12. package/dist/declarations/src/scaffolding/extensions/index.d.ts +4 -0
  13. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +19 -0
  14. package/dist/declarations/src/scaffolding/extensions/integrations/alpha.d.ts +36 -0
  15. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +27 -0
  16. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +331 -0
  17. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +57 -0
  18. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +14 -0
  19. package/dist/declarations/src/scaffolding/extensions/integrations/kyber.d.ts +23 -0
  20. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +32 -0
  21. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +22 -0
  22. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +25 -0
  23. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +17 -0
  24. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +46 -0
  25. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +15 -0
  26. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +22 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +12 -0
  28. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +15 -0
  29. package/dist/declarations/src/scaffolding/index.d.ts +9 -0
  30. package/dist/declarations/src/scaffolding/peripheral/index.d.ts +1 -0
  31. package/dist/declarations/src/scaffolding/peripheral/sharesRequestors.d.ts +19 -0
  32. package/dist/declarations/src/scaffolding/setup.d.ts +46 -0
  33. package/dist/declarations/src/scaffolding/shares.d.ts +30 -0
  34. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +17 -0
  35. package/dist/declarations/src/whales.d.ts +43 -0
  36. package/dist/enzymefinance-testutils.browser.cjs.js +3160 -0
  37. package/dist/enzymefinance-testutils.browser.esm.js +3045 -0
  38. package/dist/enzymefinance-testutils.cjs.d.ts +1 -0
  39. package/dist/enzymefinance-testutils.cjs.dev.js +3160 -0
  40. package/dist/enzymefinance-testutils.cjs.js +7 -0
  41. package/dist/enzymefinance-testutils.cjs.prod.js +3160 -0
  42. package/dist/enzymefinance-testutils.esm.js +3045 -0
  43. package/package.json +18 -0
  44. package/src/assertions.ts +20 -0
  45. package/src/deployment.ts +169 -0
  46. package/src/helpers.ts +6 -0
  47. package/src/index.ts +5 -0
  48. package/src/scaffolding/assets.ts +39 -0
  49. package/src/scaffolding/chainlink.ts +8 -0
  50. package/src/scaffolding/common.ts +6 -0
  51. package/src/scaffolding/core.ts +77 -0
  52. package/src/scaffolding/extensions/common.ts +30 -0
  53. package/src/scaffolding/extensions/fees.ts +87 -0
  54. package/src/scaffolding/extensions/index.ts +4 -0
  55. package/src/scaffolding/extensions/integrations/aave.ts +80 -0
  56. package/src/scaffolding/extensions/integrations/alpha.ts +119 -0
  57. package/src/scaffolding/extensions/integrations/compound.ts +97 -0
  58. package/src/scaffolding/extensions/integrations/curve.ts +1207 -0
  59. package/src/scaffolding/extensions/integrations/idle.ts +215 -0
  60. package/src/scaffolding/extensions/integrations/index.ts +14 -0
  61. package/src/scaffolding/extensions/integrations/kyber.ts +69 -0
  62. package/src/scaffolding/extensions/integrations/mock.ts +118 -0
  63. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +65 -0
  64. package/src/scaffolding/extensions/integrations/synthetix.ts +97 -0
  65. package/src/scaffolding/extensions/integrations/trackedAssets.ts +66 -0
  66. package/src/scaffolding/extensions/integrations/uniswapV2.ts +171 -0
  67. package/src/scaffolding/extensions/integrations/uniswapV3.ts +56 -0
  68. package/src/scaffolding/extensions/integrations/yearn.ts +81 -0
  69. package/src/scaffolding/extensions/integrations/zeroExV2.ts +45 -0
  70. package/src/scaffolding/extensions/policies.ts +85 -0
  71. package/src/scaffolding/index.ts +9 -0
  72. package/src/scaffolding/peripheral/index.ts +1 -0
  73. package/src/scaffolding/peripheral/sharesRequestors.ts +53 -0
  74. package/src/scaffolding/setup.ts +135 -0
  75. package/src/scaffolding/shares.ts +63 -0
  76. package/src/scaffolding/vaultCalls.ts +58 -0
  77. package/src/types.d.ts +1 -0
  78. package/src/whales.ts +63 -0
  79. package/tsconfig.json +4 -0
package/src/types.d.ts ADDED
@@ -0,0 +1 @@
1
+ import '@enzymefinance/hardhat/types';
package/src/whales.ts ADDED
@@ -0,0 +1,63 @@
1
+ import { resolveAddress } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+
4
+ const whales = {
5
+ adai: '0x62e41b1185023bcc14a465d350e1dde341557925',
6
+ ausdc: '0x3ddfa8ec3052539b6c9549f12cea2c295cff5296',
7
+ bat: '0x12274c71304bc0e6b38a56b94d2949b118feb838',
8
+ bnb: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
9
+ bnt: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
10
+ comp: '0xC89b6f0146642688bb254bF93C28fcCF1E182C81',
11
+ crv: '0x4ce799e6eD8D64536b67dD428565d52A531B3640',
12
+ dai: '0x16463c0fdb6ba9618909f5b120ea1581618c1b9e',
13
+ knc: '0x9d1167df52328db20d5d77288dce6ae3ef3a3e1f',
14
+ ldo: '0x3dba737ccc50a32a1764b493285dd51c8af6c278',
15
+ link: '0xbe6977e08d4479c0a6777539ae0e8fa27be4e9d6',
16
+ mana: '0xefb94ac00f1cee8a89d5c3f49faa799da6f03024',
17
+ mln: '0xd8f8a53945bcfbbc19da162aa405e662ef71c40d',
18
+ repv2: '0x5d65a134fd84b724c34703b88b20b0d84d22d918',
19
+ ren: '0xbe0eb53f46cd790cd13851d5eff43d12404d33e8',
20
+ uni: '0x47173b170c64d16393a52e6c480b3ad8c302ba1e',
21
+ usdc: '0xae2d4617c862309a3d75a0ffb358c7a5009c673f',
22
+ usdt: '0x5041ed759dd4afc3a72b8192c143f72f4724081a',
23
+ weth: '0xe08A8b19e5722a201EaF20A6BC595eF655397bd5',
24
+ zrx: '0x206376e8940e42538781cd94ef024df3c1e0fd43',
25
+ cbat: '0x285306442cd985cab2c30515cfdab106fca7bc44',
26
+ ccomp: '0xd74f186194ab9219fafac5c2fe4b3270169666db',
27
+ cdai: '0x2bddEd18E2CA464355091266B7616956944ee7eE',
28
+ ceth: '0xdb5aa12ad695ef2a28c6cdb69f2bb04bed20a48e',
29
+ crep: '0xc2386de1b7271a87b416f4605d500846e826a185',
30
+ cuni: '0x767ecb395def19ab8d1b2fcc89b3ddfbed28fd6b',
31
+ cusdc: '0x9b4772e59385ec732bccb06018e318b7b3477459',
32
+ czrx: '0x57ca561798413a20508b6bc997481e784f3e6e5f',
33
+ seth: '0xc34a7c65aa08cb36744bda8eeec7b8e9891e147c',
34
+ seur: '0xca17ef1925d49931918e3fde7aa4516a3a4958c4',
35
+ susd: '0x49BE88F0fcC3A8393a59d3688480d7D253C37D2A',
36
+ lidoSteth: '0x31f644e2dd5d74f5c8d6d9de89dd517474d51800',
37
+ eurs: '0x98ed26de6451db36246672df78ae7c50f2c76f6d',
38
+ idle: '0x34aaa3d5a73d6f9594326d0422ce69748f09b14f',
39
+ } as const;
40
+
41
+ export type Whale = keyof typeof whales;
42
+ export type WhaleSigners<T extends Partial<Whale> = Whale> = Record<T, SignerWithAddress>;
43
+
44
+ export async function unlockWhale(token: Whale) {
45
+ const address = resolveAddress(whales[token]);
46
+ await provider.send('hardhat_impersonateAccount', [address]);
47
+ return provider.getSignerWithAddress(address);
48
+ }
49
+
50
+ export async function unlockAllWhales() {
51
+ const keys = Object.keys(whales) as Whale[];
52
+ const signers = await Promise.all(keys.map(async (token) => unlockWhale(token)));
53
+ return keys.reduce((carry, key, index) => {
54
+ return { ...carry, [key]: signers[index] };
55
+ }, {} as WhaleSigners);
56
+ }
57
+
58
+ export async function unlockWhales<T extends Whale>(...tokens: T[]) {
59
+ const signers = await Promise.all(tokens.map(async (token) => unlockWhale(token)));
60
+ return tokens.reduce((carry, key, index) => {
61
+ return { ...carry, [key]: signers[index] };
62
+ }, {} as WhaleSigners<T>);
63
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "include": ["src", "../../deploy"]
4
+ }