@gearbox-protocol/sdk 13.1.0-next.2 → 13.1.0

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 (113) hide show
  1. package/dist/cjs/dev/AccountOpener.js +5 -45
  2. package/dist/cjs/dev/index.js +8 -0
  3. package/dist/cjs/dev/isOutOfSyncError.js +56 -0
  4. package/dist/cjs/dev/isRateLimitError.js +80 -0
  5. package/dist/cjs/dev/isTransientError.js +83 -0
  6. package/dist/cjs/dev/providers.js +1 -1
  7. package/dist/cjs/dev/resilientTransport.js +104 -0
  8. package/dist/cjs/plugins/zappers/ZappersPlugin.js +144 -0
  9. package/dist/cjs/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +6 -110
  10. package/dist/cjs/plugins/zappers/index.js +26 -0
  11. package/dist/cjs/plugins/zappers/package.json +1 -0
  12. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  13. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  14. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
  15. package/dist/cjs/sdk/base/TokensMeta.js +32 -255
  16. package/dist/cjs/sdk/base/index.js +0 -2
  17. package/dist/cjs/sdk/chain/chains.js +1 -2
  18. package/dist/cjs/sdk/constants/index.js +2 -0
  19. package/dist/cjs/sdk/{base/token-types.js → constants/phantom-tokens.js} +3 -9
  20. package/dist/cjs/sdk/market/MarketRegister.js +2 -2
  21. package/dist/cjs/sdk/market/MarketSuite.js +0 -6
  22. package/dist/cjs/sdk/market/index.js +1 -3
  23. package/dist/cjs/sdk/market/pool/PoolSuite.js +0 -3
  24. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +2 -17
  25. package/dist/cjs/sdk/market/pool/index.js +0 -4
  26. package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
  27. package/dist/cjs/{abi/iStateSerializer.js → sdk/pools/PoolServiceV310.js} +8 -14
  28. package/dist/cjs/sdk/pools/createPoolService.js +35 -0
  29. package/dist/cjs/sdk/pools/index.js +4 -2
  30. package/dist/cjs/sdk/utils/AddressMap.js +1 -1
  31. package/dist/cjs/sdk/utils/viem/sendRawTx.js +0 -16
  32. package/dist/esm/dev/AccountOpener.js +6 -47
  33. package/dist/esm/dev/index.js +4 -0
  34. package/dist/esm/dev/isOutOfSyncError.js +32 -0
  35. package/dist/esm/dev/isRateLimitError.js +56 -0
  36. package/dist/esm/dev/isTransientError.js +59 -0
  37. package/dist/esm/dev/providers.js +1 -1
  38. package/dist/esm/dev/resilientTransport.js +79 -0
  39. package/dist/esm/plugins/zappers/ZappersPlugin.js +126 -0
  40. package/dist/esm/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +2 -109
  41. package/dist/esm/plugins/zappers/index.js +3 -0
  42. package/dist/esm/plugins/zappers/package.json +1 -0
  43. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  44. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  45. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
  46. package/dist/esm/sdk/base/TokensMeta.js +32 -261
  47. package/dist/esm/sdk/base/index.js +0 -1
  48. package/dist/esm/sdk/chain/chains.js +1 -2
  49. package/dist/esm/sdk/constants/index.js +1 -0
  50. package/dist/esm/sdk/{base/token-types.js → constants/phantom-tokens.js} +0 -4
  51. package/dist/esm/sdk/market/MarketRegister.js +2 -2
  52. package/dist/esm/sdk/market/MarketSuite.js +0 -6
  53. package/dist/esm/sdk/market/index.js +0 -1
  54. package/dist/esm/sdk/market/pool/PoolSuite.js +0 -3
  55. package/dist/esm/sdk/market/pool/PoolV310Contract.js +2 -17
  56. package/dist/esm/sdk/market/pool/index.js +0 -2
  57. package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
  58. package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
  59. package/dist/esm/sdk/pools/createPoolService.js +11 -0
  60. package/dist/esm/sdk/pools/index.js +2 -1
  61. package/dist/esm/sdk/utils/AddressMap.js +1 -1
  62. package/dist/esm/sdk/utils/viem/sendRawTx.js +1 -19
  63. package/dist/types/dev/index.d.ts +4 -0
  64. package/dist/types/dev/isOutOfSyncError.d.ts +4 -0
  65. package/dist/types/dev/isRateLimitError.d.ts +4 -0
  66. package/dist/types/dev/isTransientError.d.ts +4 -0
  67. package/dist/types/dev/resilientTransport.d.ts +19 -0
  68. package/dist/types/plugins/zappers/ZappersPlugin.d.ts +18 -0
  69. package/dist/types/plugins/zappers/extraZappers.d.ts +6 -0
  70. package/dist/types/plugins/zappers/index.d.ts +3 -0
  71. package/dist/types/plugins/zappers/types.d.ts +12 -0
  72. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +27 -123
  73. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  74. package/dist/types/sdk/accounts/types.d.ts +8 -108
  75. package/dist/types/sdk/base/TokensMeta.d.ts +18 -34
  76. package/dist/types/sdk/base/index.d.ts +0 -1
  77. package/dist/types/sdk/base/types.d.ts +1 -0
  78. package/dist/types/sdk/chain/chains.d.ts +1 -1
  79. package/dist/types/sdk/constants/index.d.ts +1 -0
  80. package/dist/types/sdk/constants/phantom-tokens.d.ts +2 -0
  81. package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
  82. package/dist/types/sdk/market/MarketSuite.d.ts +0 -3
  83. package/dist/types/sdk/market/index.d.ts +0 -1
  84. package/dist/types/sdk/market/pool/PoolSuite.d.ts +0 -2
  85. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +2 -6
  86. package/dist/types/sdk/market/pool/index.d.ts +0 -2
  87. package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
  88. package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
  89. package/dist/types/sdk/pools/createPoolService.d.ts +3 -0
  90. package/dist/types/sdk/pools/index.d.ts +2 -1
  91. package/dist/types/sdk/pools/types.d.ts +63 -84
  92. package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
  93. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +1 -5
  94. package/package.json +6 -5
  95. package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +0 -263
  96. package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +0 -278
  97. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +0 -97
  98. package/dist/cjs/sdk/pools/PoolService.js +0 -391
  99. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +0 -239
  100. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +0 -254
  101. package/dist/esm/abi/iStateSerializer.js +0 -12
  102. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +0 -73
  103. package/dist/esm/sdk/pools/PoolService.js +0 -371
  104. package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +0 -324
  105. package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +0 -322
  106. package/dist/types/abi/iStateSerializer.d.ts +0 -11
  107. package/dist/types/sdk/base/token-types.d.ts +0 -33
  108. package/dist/types/sdk/market/ZapperRegister.d.ts +0 -17
  109. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +0 -345
  110. package/dist/types/sdk/market/types.d.ts +0 -10
  111. package/dist/types/sdk/pools/PoolService.d.ts +0 -14
  112. /package/dist/cjs/{sdk/market → plugins/zappers}/types.js +0 -0
  113. /package/dist/esm/{sdk/market → plugins/zappers}/types.js +0 -0
@@ -0,0 +1,126 @@
1
+ import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
2
+ import {
3
+ AddressMap,
4
+ AP_PERIPHERY_COMPRESSOR,
5
+ BasePlugin,
6
+ hexEq,
7
+ VERSION_RANGE_310
8
+ } from "../../sdk/index.js";
9
+ class ZappersPlugin extends BasePlugin {
10
+ #zappers;
11
+ #extraZappers;
12
+ constructor(extraZappers = [], loadOnAttach = false) {
13
+ super(loadOnAttach);
14
+ this.#extraZappers = this.#addExtraZappers(extraZappers);
15
+ }
16
+ async load(force) {
17
+ if (!force && this.loaded) {
18
+ return this.state;
19
+ }
20
+ const [pcAddr] = this.sdk.addressProvider.mustGetLatest(
21
+ AP_PERIPHERY_COMPRESSOR,
22
+ VERSION_RANGE_310
23
+ );
24
+ this.sdk.logger?.debug(
25
+ `loading zappers with periphery compressor ${pcAddr}`
26
+ );
27
+ const markets = this.sdk.marketRegister.markets;
28
+ const resp = await this.client.multicall({
29
+ contracts: markets.map(
30
+ (m) => ({
31
+ abi: peripheryCompressorAbi,
32
+ address: pcAddr,
33
+ functionName: "getZappers",
34
+ args: [m.configurator.address, m.pool.pool.address]
35
+ })
36
+ ),
37
+ allowFailure: true,
38
+ batchSize: 0,
39
+ blockNumber: this.sdk.currentBlock
40
+ });
41
+ this.#zappers = new AddressMap(void 0, "zappers");
42
+ for (let i = 0; i < resp.length; i++) {
43
+ const { status, result, error } = resp[i];
44
+ const marketConfigurator = markets[i].configurator.address;
45
+ const pool = markets[i].pool.pool.address;
46
+ if (status === "success") {
47
+ this.#zappers.upsert(
48
+ pool,
49
+ result.map((z) => ({ ...z, pool }))
50
+ );
51
+ } else {
52
+ this.sdk.logger?.error(
53
+ `failed to load zapper for market configurator ${this.labelAddress(
54
+ marketConfigurator
55
+ )} and pool ${this.labelAddress(pool)}: ${error}`
56
+ );
57
+ }
58
+ }
59
+ this.#loadZapperTokens();
60
+ return this.state;
61
+ }
62
+ #addExtraZappers(extraZappers) {
63
+ const zappers = new AddressMap();
64
+ for (const z of extraZappers) {
65
+ const existing = zappers?.get(z.pool);
66
+ if (existing) {
67
+ const hasZapper = existing.some(
68
+ (zz) => hexEq(zz.baseParams.addr, z.baseParams.addr)
69
+ );
70
+ if (!hasZapper) {
71
+ existing.push(z);
72
+ }
73
+ } else {
74
+ zappers?.upsert(z.pool, [z]);
75
+ }
76
+ }
77
+ return zappers;
78
+ }
79
+ get extraZappers() {
80
+ if (!this.#extraZappers) {
81
+ console.error("extra zappers not attached");
82
+ return new AddressMap();
83
+ }
84
+ return this.#extraZappers;
85
+ }
86
+ get zappers() {
87
+ if (!this.#zappers) {
88
+ throw new Error("zappers plugin not attached");
89
+ }
90
+ return this.#zappers;
91
+ }
92
+ get loaded() {
93
+ return !!this.#zappers;
94
+ }
95
+ stateHuman(_) {
96
+ return this.zappers.values().flatMap(
97
+ (l) => l.flatMap((z) => ({
98
+ address: z.baseParams.addr,
99
+ contractType: z.baseParams.contractType,
100
+ version: Number(z.baseParams.version),
101
+ tokenIn: this.labelAddress(z.tokenIn.addr),
102
+ tokenOut: this.labelAddress(z.tokenOut.addr)
103
+ }))
104
+ );
105
+ }
106
+ get state() {
107
+ return {
108
+ zappers: this.zappers.asRecord()
109
+ };
110
+ }
111
+ hydrate(state) {
112
+ this.#zappers = new AddressMap(Object.entries(state.zappers), "zappers");
113
+ this.#loadZapperTokens();
114
+ }
115
+ #loadZapperTokens() {
116
+ const zappersTokens = this.zappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
117
+ const extraZappersTokens = this.extraZappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
118
+ for (const t of [...zappersTokens, ...extraZappersTokens]) {
119
+ this.sdk.tokensMeta.upsert(t.addr, t);
120
+ this.sdk.setAddressLabel(t.addr, t.symbol);
121
+ }
122
+ }
123
+ }
124
+ export {
125
+ ZappersPlugin
126
+ };
@@ -1,110 +1,4 @@
1
- import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
2
- import { SDKConstruct } from "../base/index.js";
3
- import {
4
- AP_PERIPHERY_COMPRESSOR,
5
- VERSION_RANGE_310
6
- } from "../constants/index.js";
7
- import { AddressMap, hexEq } from "../utils/index.js";
8
- class ZapperRegister extends SDKConstruct {
9
- /**
10
- * Mapping pool.address -> ZapperData[]
11
- * Needs to be loaded explicitly using loadZappers method
12
- */
13
- #zappers;
14
- /**
15
- * Load zappers for all pools using periphery compressor, adds hardcoded zappers
16
- */
17
- async loadZappers(force) {
18
- if (!force && this.#zappers) {
19
- return;
20
- }
21
- const [pcAddr] = this.sdk.addressProvider.mustGetLatest(
22
- AP_PERIPHERY_COMPRESSOR,
23
- VERSION_RANGE_310
24
- );
25
- this.logger?.debug(`loading zappers with periphery compressor ${pcAddr}`);
26
- const markets = this.sdk.marketRegister.markets;
27
- const resp = await this.client.multicall({
28
- contracts: markets.map(
29
- (m) => ({
30
- abi: peripheryCompressorAbi,
31
- address: pcAddr,
32
- functionName: "getZappers",
33
- args: [m.configurator.address, m.pool.pool.address]
34
- })
35
- ),
36
- allowFailure: true,
37
- batchSize: 0
38
- });
39
- this.#zappers = new AddressMap(void 0, "zappers");
40
- for (let i = 0; i < resp.length; i++) {
41
- const { status, result, error } = resp[i];
42
- const marketConfigurator = markets[i].configurator.address;
43
- const pool = markets[i].pool.pool.address;
44
- if (status === "success") {
45
- for (const z of result) {
46
- this.#addZapper({ ...z, pool, type: "base" });
47
- }
48
- } else {
49
- this.logger?.error(
50
- `failed to load zapper for market configurator ${this.labelAddress(
51
- marketConfigurator
52
- )} and pool ${this.labelAddress(pool)}: ${error}`
53
- );
54
- }
55
- }
56
- for (const z of KYC_ZAPPERS[this.networkType] ?? []) {
57
- this.#addZapper({ ...z, type: "kyc" });
58
- }
59
- for (const z of MIGRATION_ZAPPERS[this.networkType] ?? []) {
60
- this.#addZapper({ ...z, type: "migration" });
61
- }
62
- }
63
- #addZapper(z) {
64
- if (BROKEN_ZAPPERS.has(z.baseParams.addr)) {
65
- return;
66
- }
67
- const existing = this.zappers.get(z.pool);
68
- if (existing) {
69
- const hasZapper = existing.some(
70
- (zz) => hexEq(zz.baseParams.addr, z.baseParams.addr)
71
- );
72
- if (!hasZapper) {
73
- existing.push(z);
74
- }
75
- } else {
76
- this.zappers.upsert(z.pool, [z]);
77
- }
78
- const zappersTokens = [z.tokenIn, z.tokenOut];
79
- for (const t of zappersTokens) {
80
- this.sdk.tokensMeta.upsert(t.addr, t);
81
- this.sdk.setAddressLabel(t.addr, t.symbol);
82
- }
83
- }
84
- get zappers() {
85
- if (!this.#zappers) {
86
- throw new Error("zappers not loaded, call loadZappers first");
87
- }
88
- return this.#zappers;
89
- }
90
- poolZappers(pool) {
91
- return this.zappers.get(pool) ?? [];
92
- }
93
- /**
94
- * Can return multiple zappers if there are multiple zappers for the same tokenIn and tokenOut
95
- */
96
- getZapper(pool, tokenIn, tokenOut) {
97
- const zappers = this.zappers.get(pool)?.filter(
98
- (z) => hexEq(z.tokenIn.addr, tokenIn) && hexEq(z.tokenOut.addr, tokenOut)
99
- );
100
- return zappers;
101
- }
102
- }
103
- const BROKEN_ZAPPERS = new AddressMap(
104
- [["0x90D66b03EC4D462e42e3c7741049FB46a4a03B69", true]],
105
- "brokenZappers"
106
- );
107
- const MIGRATION_ZAPPERS = {
1
+ const extraZappers = {
108
2
  Mainnet: [
109
3
  {
110
4
  baseParams: {
@@ -213,7 +107,6 @@ const MIGRATION_ZAPPERS = {
213
107
  }
214
108
  ]
215
109
  };
216
- const KYC_ZAPPERS = {};
217
110
  export {
218
- ZapperRegister
111
+ extraZappers
219
112
  };
@@ -0,0 +1,3 @@
1
+ export * from "./extraZappers.js";
2
+ export * from "./types.js";
3
+ export * from "./ZappersPlugin.js";
@@ -0,0 +1 @@
1
+ {"type": "module","sideEffects":false}