@gearbox-protocol/sdk 13.2.1 → 13.3.0-next.1

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 (99) hide show
  1. package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +263 -0
  2. package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +278 -0
  3. package/dist/cjs/{sdk/pools/PoolServiceV310.js → abi/iStateSerializer.js} +14 -8
  4. package/dist/cjs/dev/AccountOpener.js +45 -5
  5. package/dist/cjs/dev/index.js +2 -2
  6. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +462 -104
  7. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +16 -5
  8. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
  9. package/dist/cjs/sdk/base/TokensMeta.js +255 -32
  10. package/dist/cjs/sdk/base/index.js +2 -0
  11. package/dist/cjs/sdk/{constants/phantom-tokens.js → base/token-types.js} +9 -3
  12. package/dist/cjs/sdk/chain/chains.js +2 -1
  13. package/dist/cjs/sdk/constants/index.js +0 -2
  14. package/dist/cjs/sdk/market/MarketRegister.js +2 -2
  15. package/dist/cjs/sdk/market/MarketSuite.js +6 -0
  16. package/dist/cjs/{plugins/zappers/extraZappers.js → sdk/market/ZapperRegister.js} +110 -6
  17. package/dist/cjs/sdk/market/index.js +3 -1
  18. package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
  19. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +17 -2
  20. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +97 -0
  21. package/dist/cjs/sdk/market/pool/index.js +4 -0
  22. package/dist/cjs/sdk/pools/PoolService.js +391 -0
  23. package/dist/cjs/sdk/pools/index.js +2 -4
  24. package/dist/cjs/sdk/utils/AddressMap.js +1 -1
  25. package/dist/cjs/sdk/utils/viem/sendRawTx.js +16 -0
  26. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +239 -0
  27. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +254 -0
  28. package/dist/esm/abi/iStateSerializer.js +12 -0
  29. package/dist/esm/dev/AccountOpener.js +47 -6
  30. package/dist/esm/dev/index.js +1 -1
  31. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +462 -104
  32. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +16 -5
  33. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
  34. package/dist/esm/sdk/base/TokensMeta.js +261 -32
  35. package/dist/esm/sdk/base/index.js +1 -0
  36. package/dist/esm/sdk/{constants/phantom-tokens.js → base/token-types.js} +4 -0
  37. package/dist/esm/sdk/chain/chains.js +2 -1
  38. package/dist/esm/sdk/constants/index.js +0 -1
  39. package/dist/esm/sdk/market/MarketRegister.js +2 -2
  40. package/dist/esm/sdk/market/MarketSuite.js +6 -0
  41. package/dist/esm/{plugins/zappers/extraZappers.js → sdk/market/ZapperRegister.js} +109 -2
  42. package/dist/esm/sdk/market/index.js +1 -0
  43. package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
  44. package/dist/esm/sdk/market/pool/PoolV310Contract.js +17 -2
  45. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +73 -0
  46. package/dist/esm/sdk/market/pool/index.js +2 -0
  47. package/dist/esm/sdk/pools/PoolService.js +371 -0
  48. package/dist/esm/sdk/pools/index.js +1 -2
  49. package/dist/esm/sdk/utils/AddressMap.js +1 -1
  50. package/dist/esm/sdk/utils/viem/sendRawTx.js +19 -1
  51. package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +324 -0
  52. package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +322 -0
  53. package/dist/types/abi/iStateSerializer.d.ts +11 -0
  54. package/dist/types/dev/index.d.ts +1 -1
  55. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +123 -27
  56. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  57. package/dist/types/sdk/accounts/types.d.ts +108 -8
  58. package/dist/types/sdk/base/TokensMeta.d.ts +34 -18
  59. package/dist/types/sdk/base/index.d.ts +1 -0
  60. package/dist/types/sdk/base/token-types.d.ts +33 -0
  61. package/dist/types/sdk/base/types.d.ts +0 -1
  62. package/dist/types/sdk/chain/chains.d.ts +1 -1
  63. package/dist/types/sdk/constants/index.d.ts +0 -1
  64. package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
  65. package/dist/types/sdk/market/MarketSuite.d.ts +3 -0
  66. package/dist/types/sdk/market/ZapperRegister.d.ts +17 -0
  67. package/dist/types/sdk/market/index.d.ts +1 -0
  68. package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
  69. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
  70. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +345 -0
  71. package/dist/types/sdk/market/pool/index.d.ts +2 -0
  72. package/dist/types/sdk/market/types.d.ts +10 -0
  73. package/dist/types/sdk/pools/PoolService.d.ts +14 -0
  74. package/dist/types/sdk/pools/index.d.ts +1 -2
  75. package/dist/types/sdk/pools/types.d.ts +84 -63
  76. package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
  77. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +5 -1
  78. package/package.json +1 -1
  79. package/dist/cjs/plugins/zappers/ZappersPlugin.js +0 -144
  80. package/dist/cjs/plugins/zappers/index.js +0 -26
  81. package/dist/cjs/plugins/zappers/package.json +0 -1
  82. package/dist/cjs/sdk/pools/AbstractPoolService.js +0 -137
  83. package/dist/cjs/sdk/pools/createPoolService.js +0 -35
  84. package/dist/esm/plugins/zappers/ZappersPlugin.js +0 -126
  85. package/dist/esm/plugins/zappers/index.js +0 -3
  86. package/dist/esm/plugins/zappers/package.json +0 -1
  87. package/dist/esm/sdk/pools/AbstractPoolService.js +0 -113
  88. package/dist/esm/sdk/pools/PoolServiceV310.js +0 -6
  89. package/dist/esm/sdk/pools/createPoolService.js +0 -11
  90. package/dist/types/plugins/zappers/ZappersPlugin.d.ts +0 -18
  91. package/dist/types/plugins/zappers/extraZappers.d.ts +0 -6
  92. package/dist/types/plugins/zappers/index.d.ts +0 -3
  93. package/dist/types/plugins/zappers/types.d.ts +0 -12
  94. package/dist/types/sdk/constants/phantom-tokens.d.ts +0 -2
  95. package/dist/types/sdk/pools/AbstractPoolService.d.ts +0 -9
  96. package/dist/types/sdk/pools/PoolServiceV310.d.ts +0 -4
  97. package/dist/types/sdk/pools/createPoolService.d.ts +0 -3
  98. /package/dist/cjs/{plugins/zappers → sdk/market}/types.js +0 -0
  99. /package/dist/esm/{plugins/zappers → sdk/market}/types.js +0 -0
@@ -1,144 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var ZappersPlugin_exports = {};
20
- __export(ZappersPlugin_exports, {
21
- ZappersPlugin: () => ZappersPlugin
22
- });
23
- module.exports = __toCommonJS(ZappersPlugin_exports);
24
- var import_peripheryCompressor = require("../../abi/compressors/peripheryCompressor.js");
25
- var import_sdk = require("../../sdk/index.js");
26
- class ZappersPlugin extends import_sdk.BasePlugin {
27
- #zappers;
28
- #extraZappers;
29
- constructor(extraZappers = [], loadOnAttach = false) {
30
- super(loadOnAttach);
31
- this.#extraZappers = this.#addExtraZappers(extraZappers);
32
- }
33
- async load(force) {
34
- if (!force && this.loaded) {
35
- return this.state;
36
- }
37
- const [pcAddr] = this.sdk.addressProvider.mustGetLatest(
38
- import_sdk.AP_PERIPHERY_COMPRESSOR,
39
- import_sdk.VERSION_RANGE_310
40
- );
41
- this.sdk.logger?.debug(
42
- `loading zappers with periphery compressor ${pcAddr}`
43
- );
44
- const markets = this.sdk.marketRegister.markets;
45
- const resp = await this.client.multicall({
46
- contracts: markets.map(
47
- (m) => ({
48
- abi: import_peripheryCompressor.peripheryCompressorAbi,
49
- address: pcAddr,
50
- functionName: "getZappers",
51
- args: [m.configurator.address, m.pool.pool.address]
52
- })
53
- ),
54
- allowFailure: true,
55
- batchSize: 0,
56
- blockNumber: this.sdk.currentBlock
57
- });
58
- this.#zappers = new import_sdk.AddressMap(void 0, "zappers");
59
- for (let i = 0; i < resp.length; i++) {
60
- const { status, result, error } = resp[i];
61
- const marketConfigurator = markets[i].configurator.address;
62
- const pool = markets[i].pool.pool.address;
63
- if (status === "success") {
64
- this.#zappers.upsert(
65
- pool,
66
- result.map((z) => ({ ...z, pool }))
67
- );
68
- } else {
69
- this.sdk.logger?.error(
70
- `failed to load zapper for market configurator ${this.labelAddress(
71
- marketConfigurator
72
- )} and pool ${this.labelAddress(pool)}: ${error}`
73
- );
74
- }
75
- }
76
- this.#loadZapperTokens();
77
- return this.state;
78
- }
79
- #addExtraZappers(extraZappers) {
80
- const zappers = new import_sdk.AddressMap();
81
- for (const z of extraZappers) {
82
- const existing = zappers?.get(z.pool);
83
- if (existing) {
84
- const hasZapper = existing.some(
85
- (zz) => (0, import_sdk.hexEq)(zz.baseParams.addr, z.baseParams.addr)
86
- );
87
- if (!hasZapper) {
88
- existing.push(z);
89
- }
90
- } else {
91
- zappers?.upsert(z.pool, [z]);
92
- }
93
- }
94
- return zappers;
95
- }
96
- get extraZappers() {
97
- if (!this.#extraZappers) {
98
- console.error("extra zappers not attached");
99
- return new import_sdk.AddressMap();
100
- }
101
- return this.#extraZappers;
102
- }
103
- get zappers() {
104
- if (!this.#zappers) {
105
- throw new Error("zappers plugin not attached");
106
- }
107
- return this.#zappers;
108
- }
109
- get loaded() {
110
- return !!this.#zappers;
111
- }
112
- stateHuman(_) {
113
- return this.zappers.values().flatMap(
114
- (l) => l.flatMap((z) => ({
115
- address: z.baseParams.addr,
116
- contractType: z.baseParams.contractType,
117
- version: Number(z.baseParams.version),
118
- tokenIn: this.labelAddress(z.tokenIn.addr),
119
- tokenOut: this.labelAddress(z.tokenOut.addr)
120
- }))
121
- );
122
- }
123
- get state() {
124
- return {
125
- zappers: this.zappers.asRecord()
126
- };
127
- }
128
- hydrate(state) {
129
- this.#zappers = new import_sdk.AddressMap(Object.entries(state.zappers), "zappers");
130
- this.#loadZapperTokens();
131
- }
132
- #loadZapperTokens() {
133
- const zappersTokens = this.zappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
134
- const extraZappersTokens = this.extraZappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
135
- for (const t of [...zappersTokens, ...extraZappersTokens]) {
136
- this.sdk.tokensMeta.upsert(t.addr, t);
137
- this.sdk.setAddressLabel(t.addr, t.symbol);
138
- }
139
- }
140
- }
141
- // Annotate the CommonJS export names for ESM import in node:
142
- 0 && (module.exports = {
143
- ZappersPlugin
144
- });
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var zappers_exports = {};
17
- module.exports = __toCommonJS(zappers_exports);
18
- __reExport(zappers_exports, require("./extraZappers.js"), module.exports);
19
- __reExport(zappers_exports, require("./types.js"), module.exports);
20
- __reExport(zappers_exports, require("./ZappersPlugin.js"), module.exports);
21
- // Annotate the CommonJS export names for ESM import in node:
22
- 0 && (module.exports = {
23
- ...require("./extraZappers.js"),
24
- ...require("./types.js"),
25
- ...require("./ZappersPlugin.js")
26
- });
@@ -1 +0,0 @@
1
- {"type": "commonjs"}
@@ -1,137 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var AbstractPoolService_exports = {};
20
- __export(AbstractPoolService_exports, {
21
- AbstractPoolService: () => AbstractPoolService
22
- });
23
- module.exports = __toCommonJS(AbstractPoolService_exports);
24
- var import_generated = require("../../abi/310/generated.js");
25
- var import_iERC20ZapperDeposits = require("../../abi/iERC20ZapperDeposits.js");
26
- var import_iETHZapperDeposits = require("../../abi/iETHZapperDeposits.js");
27
- var import_iZapper = require("../../abi/iZapper.js");
28
- var import_base = require("../base/index.js");
29
- class AbstractPoolService extends import_base.SDKConstruct {
30
- #version;
31
- constructor(sdk, version) {
32
- super(sdk);
33
- this.#version = version;
34
- this.logger?.debug(`Created PoolService with version: ${this.#version}`);
35
- }
36
- addLiquidity({
37
- collateral,
38
- pool,
39
- account,
40
- zapper,
41
- permit,
42
- nativeTokenAddress,
43
- referralCode = 0n,
44
- migrate
45
- }) {
46
- if (zapper?.tokenIn === nativeTokenAddress) {
47
- return [
48
- {
49
- target: zapper.zapper,
50
- abi: import_iETHZapperDeposits.iethZapperDepositsAbi,
51
- functionName: "depositWithReferral",
52
- args: [account, referralCode],
53
- value: collateral.balance
54
- }
55
- ];
56
- } else if (zapper) {
57
- return permit ? [
58
- {
59
- target: zapper.zapper,
60
- abi: import_iERC20ZapperDeposits.ierc20ZapperDepositsAbi,
61
- functionName: "depositWithReferralAndPermit",
62
- args: [
63
- collateral.balance,
64
- account,
65
- referralCode,
66
- permit.deadline,
67
- permit.v,
68
- permit.r,
69
- permit.s
70
- ]
71
- }
72
- ] : [
73
- {
74
- target: zapper.zapper,
75
- abi: import_iERC20ZapperDeposits.ierc20ZapperDepositsAbi,
76
- functionName: "depositWithReferral",
77
- args: [collateral.balance, account, referralCode]
78
- }
79
- ];
80
- } else {
81
- if (migrate) throw Error("No zapper for migration");
82
- return [
83
- {
84
- target: pool,
85
- abi: import_generated.iPoolV310Abi,
86
- functionName: "depositWithReferral",
87
- args: [collateral.balance, account, referralCode]
88
- }
89
- ];
90
- }
91
- }
92
- removeLiquidity({
93
- pool,
94
- amount,
95
- account,
96
- zapper,
97
- permit
98
- }) {
99
- if (zapper) {
100
- return permit ? [
101
- {
102
- target: zapper.zapper,
103
- abi: import_iZapper.iZapperAbi,
104
- functionName: "redeemWithPermit",
105
- args: [
106
- amount,
107
- account,
108
- permit.deadline,
109
- permit.v,
110
- permit.r,
111
- permit.s
112
- ]
113
- }
114
- ] : [
115
- {
116
- target: zapper.zapper,
117
- abi: import_iZapper.iZapperAbi,
118
- functionName: "redeem",
119
- args: [amount, account]
120
- }
121
- ];
122
- } else {
123
- return [
124
- {
125
- target: pool,
126
- abi: import_generated.iPoolV310Abi,
127
- functionName: "redeem",
128
- args: [amount, account, account]
129
- }
130
- ];
131
- }
132
- }
133
- }
134
- // Annotate the CommonJS export names for ESM import in node:
135
- 0 && (module.exports = {
136
- AbstractPoolService
137
- });
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var createPoolService_exports = {};
20
- __export(createPoolService_exports, {
21
- createPoolService: () => createPoolService
22
- });
23
- module.exports = __toCommonJS(createPoolService_exports);
24
- var import_constants = require("../constants/index.js");
25
- var import_PoolServiceV310 = require("./PoolServiceV310.js");
26
- function createPoolService(sdk, version) {
27
- if ((0, import_constants.isV310)(version)) {
28
- return new import_PoolServiceV310.PoolServiceV310(sdk, version);
29
- }
30
- throw new Error(`Unsupported Pool Service version ${version}`);
31
- }
32
- // Annotate the CommonJS export names for ESM import in node:
33
- 0 && (module.exports = {
34
- createPoolService
35
- });
@@ -1,126 +0,0 @@
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,3 +0,0 @@
1
- export * from "./extraZappers.js";
2
- export * from "./types.js";
3
- export * from "./ZappersPlugin.js";
@@ -1 +0,0 @@
1
- {"type": "module","sideEffects":false}
@@ -1,113 +0,0 @@
1
- import { iPoolV310Abi } from "../../abi/310/generated.js";
2
- import { ierc20ZapperDepositsAbi } from "../../abi/iERC20ZapperDeposits.js";
3
- import { iethZapperDepositsAbi } from "../../abi/iETHZapperDeposits.js";
4
- import { iZapperAbi } from "../../abi/iZapper.js";
5
- import { SDKConstruct } from "../base/index.js";
6
- class AbstractPoolService extends SDKConstruct {
7
- #version;
8
- constructor(sdk, version) {
9
- super(sdk);
10
- this.#version = version;
11
- this.logger?.debug(`Created PoolService with version: ${this.#version}`);
12
- }
13
- addLiquidity({
14
- collateral,
15
- pool,
16
- account,
17
- zapper,
18
- permit,
19
- nativeTokenAddress,
20
- referralCode = 0n,
21
- migrate
22
- }) {
23
- if (zapper?.tokenIn === nativeTokenAddress) {
24
- return [
25
- {
26
- target: zapper.zapper,
27
- abi: iethZapperDepositsAbi,
28
- functionName: "depositWithReferral",
29
- args: [account, referralCode],
30
- value: collateral.balance
31
- }
32
- ];
33
- } else if (zapper) {
34
- return permit ? [
35
- {
36
- target: zapper.zapper,
37
- abi: ierc20ZapperDepositsAbi,
38
- functionName: "depositWithReferralAndPermit",
39
- args: [
40
- collateral.balance,
41
- account,
42
- referralCode,
43
- permit.deadline,
44
- permit.v,
45
- permit.r,
46
- permit.s
47
- ]
48
- }
49
- ] : [
50
- {
51
- target: zapper.zapper,
52
- abi: ierc20ZapperDepositsAbi,
53
- functionName: "depositWithReferral",
54
- args: [collateral.balance, account, referralCode]
55
- }
56
- ];
57
- } else {
58
- if (migrate) throw Error("No zapper for migration");
59
- return [
60
- {
61
- target: pool,
62
- abi: iPoolV310Abi,
63
- functionName: "depositWithReferral",
64
- args: [collateral.balance, account, referralCode]
65
- }
66
- ];
67
- }
68
- }
69
- removeLiquidity({
70
- pool,
71
- amount,
72
- account,
73
- zapper,
74
- permit
75
- }) {
76
- if (zapper) {
77
- return permit ? [
78
- {
79
- target: zapper.zapper,
80
- abi: iZapperAbi,
81
- functionName: "redeemWithPermit",
82
- args: [
83
- amount,
84
- account,
85
- permit.deadline,
86
- permit.v,
87
- permit.r,
88
- permit.s
89
- ]
90
- }
91
- ] : [
92
- {
93
- target: zapper.zapper,
94
- abi: iZapperAbi,
95
- functionName: "redeem",
96
- args: [amount, account]
97
- }
98
- ];
99
- } else {
100
- return [
101
- {
102
- target: pool,
103
- abi: iPoolV310Abi,
104
- functionName: "redeem",
105
- args: [amount, account, account]
106
- }
107
- ];
108
- }
109
- }
110
- }
111
- export {
112
- AbstractPoolService
113
- };
@@ -1,6 +0,0 @@
1
- import { AbstractPoolService } from "./AbstractPoolService.js";
2
- class PoolServiceV310 extends AbstractPoolService {
3
- }
4
- export {
5
- PoolServiceV310
6
- };
@@ -1,11 +0,0 @@
1
- import { isV310 } from "../constants/index.js";
2
- import { PoolServiceV310 } from "./PoolServiceV310.js";
3
- function createPoolService(sdk, version) {
4
- if (isV310(version)) {
5
- return new PoolServiceV310(sdk, version);
6
- }
7
- throw new Error(`Unsupported Pool Service version ${version}`);
8
- }
9
- export {
10
- createPoolService
11
- };
@@ -1,18 +0,0 @@
1
- import type { Address } from "viem";
2
- import type { IGearboxSDKPlugin } from "../../sdk/index.js";
3
- import { AddressMap, BasePlugin } from "../../sdk/index.js";
4
- import type { ZapperDataFull, ZapperStateHuman } from "./types.js";
5
- export interface ZappersPluginState {
6
- zappers: Record<Address, ZapperDataFull[]>;
7
- }
8
- export declare class ZappersPlugin extends BasePlugin<ZappersPluginState> implements IGearboxSDKPlugin<ZappersPluginState> {
9
- #private;
10
- constructor(extraZappers?: ZapperDataFull[], loadOnAttach?: boolean);
11
- load(force?: boolean): Promise<ZappersPluginState>;
12
- get extraZappers(): AddressMap<ZapperDataFull[]>;
13
- get zappers(): AddressMap<ZapperDataFull[]>;
14
- get loaded(): boolean;
15
- stateHuman(_?: boolean): ZapperStateHuman[];
16
- get state(): ZappersPluginState;
17
- hydrate(state: ZappersPluginState): void;
18
- }
@@ -1,6 +0,0 @@
1
- import type { NetworkType } from "../../sdk/index.js";
2
- import type { ZapperDataFull } from "./types.js";
3
- /**
4
- * Temporary zappers
5
- */
6
- export declare const extraZappers: Partial<Record<NetworkType, ZapperDataFull[]>>;
@@ -1,3 +0,0 @@
1
- export * from "./extraZappers.js";
2
- export * from "./types.js";
3
- export * from "./ZappersPlugin.js";
@@ -1,12 +0,0 @@
1
- import type { AbiParametersToPrimitiveTypes, ExtractAbiFunction } from "abitype";
2
- import type { Address } from "viem";
3
- import type { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
4
- import type { BaseContractStateHuman, Unarray } from "../../sdk/index.js";
5
- export type ZapperData = Unarray<AbiParametersToPrimitiveTypes<ExtractAbiFunction<typeof peripheryCompressorAbi, "getZappers">["outputs"]>>;
6
- export interface ZapperDataFull extends ZapperData {
7
- pool: Address;
8
- }
9
- export interface ZapperStateHuman extends BaseContractStateHuman {
10
- tokenIn: string;
11
- tokenOut: string;
12
- }
@@ -1,2 +0,0 @@
1
- export declare const PHANTOM_TOKEN_CONTRACT_TYPES: readonly ["PHANTOM_TOKEN::CONVEX", "PHANTOM_TOKEN::INFINIFI_UNWIND", "PHANTOM_TOKEN::INFRARED", "PHANTOM_TOKEN::MELLOW_WITHDRAWAL", "PHANTOM_TOKEN::MIDAS_REDEMPTION", "PHANTOM_TOKEN::STAKING_REWARDS", "PHANTOM_TOKEN::UPSHIFT_WITHDRAW"];
2
- export type PhantomTokenContractType = (typeof PHANTOM_TOKEN_CONTRACT_TYPES)[number];
@@ -1,9 +0,0 @@
1
- import { SDKConstruct } from "../base/index.js";
2
- import type { GearboxSDK } from "../GearboxSDK.js";
3
- import type { AddLiquidityCall, AddLiquidityProps, RemoveLiquidityCall, RemoveLiquidityProps } from "./types.js";
4
- export declare abstract class AbstractPoolService extends SDKConstruct {
5
- #private;
6
- constructor(sdk: GearboxSDK, version: number);
7
- addLiquidity({ collateral, pool, account, zapper, permit, nativeTokenAddress, referralCode, migrate, }: AddLiquidityProps): AddLiquidityCall;
8
- removeLiquidity({ pool, amount, account, zapper, permit, }: RemoveLiquidityProps): RemoveLiquidityCall;
9
- }
@@ -1,4 +0,0 @@
1
- import { AbstractPoolService } from "./AbstractPoolService.js";
2
- import type { IPoolsService } from "./types.js";
3
- export declare class PoolServiceV310 extends AbstractPoolService implements IPoolsService {
4
- }
@@ -1,3 +0,0 @@
1
- import type { GearboxSDK } from "../GearboxSDK.js";
2
- import type { AbstractPoolService } from "./AbstractPoolService.js";
3
- export declare function createPoolService(sdk: GearboxSDK, version: number): AbstractPoolService;