@gearbox-protocol/sdk 13.4.0 → 13.5.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 (90) 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/sdk/accounts/AbstractCreditAccountsService.js +375 -13
  6. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +16 -5
  7. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
  8. package/dist/cjs/sdk/base/TokensMeta.js +255 -32
  9. package/dist/cjs/sdk/base/index.js +2 -0
  10. package/dist/cjs/sdk/{constants/phantom-tokens.js → base/token-types.js} +9 -3
  11. package/dist/cjs/sdk/chain/chains.js +2 -1
  12. package/dist/cjs/sdk/constants/index.js +0 -2
  13. package/dist/cjs/sdk/market/MarketRegister.js +5 -2
  14. package/dist/cjs/sdk/market/MarketSuite.js +6 -0
  15. package/dist/cjs/{plugins/zappers/extraZappers.js → sdk/market/ZapperRegister.js} +110 -6
  16. package/dist/cjs/sdk/market/index.js +3 -1
  17. package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
  18. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +17 -2
  19. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +97 -0
  20. package/dist/cjs/sdk/market/pool/index.js +4 -0
  21. package/dist/cjs/sdk/pools/PoolService.js +391 -0
  22. package/dist/cjs/sdk/pools/index.js +2 -4
  23. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +239 -0
  24. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +254 -0
  25. package/dist/esm/abi/iStateSerializer.js +12 -0
  26. package/dist/esm/dev/AccountOpener.js +47 -6
  27. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +375 -13
  28. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +16 -5
  29. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
  30. package/dist/esm/sdk/base/TokensMeta.js +261 -32
  31. package/dist/esm/sdk/base/index.js +1 -0
  32. package/dist/esm/sdk/{constants/phantom-tokens.js → base/token-types.js} +4 -0
  33. package/dist/esm/sdk/chain/chains.js +2 -1
  34. package/dist/esm/sdk/constants/index.js +0 -1
  35. package/dist/esm/sdk/market/MarketRegister.js +5 -2
  36. package/dist/esm/sdk/market/MarketSuite.js +6 -0
  37. package/dist/esm/{plugins/zappers/extraZappers.js → sdk/market/ZapperRegister.js} +109 -2
  38. package/dist/esm/sdk/market/index.js +1 -0
  39. package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
  40. package/dist/esm/sdk/market/pool/PoolV310Contract.js +17 -2
  41. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +73 -0
  42. package/dist/esm/sdk/market/pool/index.js +2 -0
  43. package/dist/esm/sdk/pools/PoolService.js +371 -0
  44. package/dist/esm/sdk/pools/index.js +1 -2
  45. package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +324 -0
  46. package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +322 -0
  47. package/dist/types/abi/iStateSerializer.d.ts +11 -0
  48. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +114 -3
  49. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  50. package/dist/types/sdk/accounts/types.d.ts +96 -6
  51. package/dist/types/sdk/base/TokensMeta.d.ts +34 -21
  52. package/dist/types/sdk/base/index.d.ts +1 -0
  53. package/dist/types/sdk/base/token-types.d.ts +33 -0
  54. package/dist/types/sdk/base/types.d.ts +0 -7
  55. package/dist/types/sdk/chain/chains.d.ts +1 -1
  56. package/dist/types/sdk/constants/index.d.ts +0 -1
  57. package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
  58. package/dist/types/sdk/market/MarketSuite.d.ts +3 -0
  59. package/dist/types/sdk/market/ZapperRegister.d.ts +17 -0
  60. package/dist/types/sdk/market/index.d.ts +1 -0
  61. package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
  62. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
  63. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +345 -0
  64. package/dist/types/sdk/market/pool/index.d.ts +2 -0
  65. package/dist/types/sdk/market/types.d.ts +10 -0
  66. package/dist/types/sdk/pools/PoolService.d.ts +14 -0
  67. package/dist/types/sdk/pools/index.d.ts +1 -2
  68. package/dist/types/sdk/pools/types.d.ts +85 -111
  69. package/package.json +1 -1
  70. package/dist/cjs/plugins/zappers/ZappersPlugin.js +0 -144
  71. package/dist/cjs/plugins/zappers/index.js +0 -26
  72. package/dist/cjs/plugins/zappers/package.json +0 -1
  73. package/dist/cjs/sdk/pools/AbstractPoolService.js +0 -143
  74. package/dist/cjs/sdk/pools/createPoolService.js +0 -35
  75. package/dist/esm/plugins/zappers/ZappersPlugin.js +0 -126
  76. package/dist/esm/plugins/zappers/index.js +0 -3
  77. package/dist/esm/plugins/zappers/package.json +0 -1
  78. package/dist/esm/sdk/pools/AbstractPoolService.js +0 -119
  79. package/dist/esm/sdk/pools/PoolServiceV310.js +0 -6
  80. package/dist/esm/sdk/pools/createPoolService.js +0 -11
  81. package/dist/types/plugins/zappers/ZappersPlugin.d.ts +0 -18
  82. package/dist/types/plugins/zappers/extraZappers.d.ts +0 -6
  83. package/dist/types/plugins/zappers/index.d.ts +0 -3
  84. package/dist/types/plugins/zappers/types.d.ts +0 -12
  85. package/dist/types/sdk/constants/phantom-tokens.d.ts +0 -2
  86. package/dist/types/sdk/pools/AbstractPoolService.d.ts +0 -21
  87. package/dist/types/sdk/pools/PoolServiceV310.d.ts +0 -4
  88. package/dist/types/sdk/pools/createPoolService.d.ts +0 -3
  89. /package/dist/cjs/{plugins/zappers → sdk/market}/types.js +0 -0
  90. /package/dist/esm/{plugins/zappers → sdk/market}/types.js +0 -0
@@ -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,119 +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
- /**
14
- * {@inheritDoc IPoolsService.addLiquidity}
15
- **/
16
- addLiquidity({
17
- collateral,
18
- pool,
19
- account,
20
- zapper,
21
- permit,
22
- nativeTokenAddress,
23
- referralCode = 0n,
24
- migrate
25
- }) {
26
- if (zapper?.tokenIn === nativeTokenAddress) {
27
- return [
28
- {
29
- target: zapper.zapper,
30
- abi: iethZapperDepositsAbi,
31
- functionName: "depositWithReferral",
32
- args: [account, referralCode],
33
- value: collateral.balance
34
- }
35
- ];
36
- } else if (zapper) {
37
- return permit ? [
38
- {
39
- target: zapper.zapper,
40
- abi: ierc20ZapperDepositsAbi,
41
- functionName: "depositWithReferralAndPermit",
42
- args: [
43
- collateral.balance,
44
- account,
45
- referralCode,
46
- permit.deadline,
47
- permit.v,
48
- permit.r,
49
- permit.s
50
- ]
51
- }
52
- ] : [
53
- {
54
- target: zapper.zapper,
55
- abi: ierc20ZapperDepositsAbi,
56
- functionName: "depositWithReferral",
57
- args: [collateral.balance, account, referralCode]
58
- }
59
- ];
60
- } else {
61
- if (migrate) throw Error("No zapper for migration");
62
- return [
63
- {
64
- target: pool,
65
- abi: iPoolV310Abi,
66
- functionName: "depositWithReferral",
67
- args: [collateral.balance, account, referralCode]
68
- }
69
- ];
70
- }
71
- }
72
- /**
73
- * {@inheritDoc IPoolsService.removeLiquidity}
74
- **/
75
- removeLiquidity({
76
- pool,
77
- amount,
78
- account,
79
- zapper,
80
- permit
81
- }) {
82
- if (zapper) {
83
- return permit ? [
84
- {
85
- target: zapper.zapper,
86
- abi: iZapperAbi,
87
- functionName: "redeemWithPermit",
88
- args: [
89
- amount,
90
- account,
91
- permit.deadline,
92
- permit.v,
93
- permit.r,
94
- permit.s
95
- ]
96
- }
97
- ] : [
98
- {
99
- target: zapper.zapper,
100
- abi: iZapperAbi,
101
- functionName: "redeem",
102
- args: [amount, account]
103
- }
104
- ];
105
- } else {
106
- return [
107
- {
108
- target: pool,
109
- abi: iPoolV310Abi,
110
- functionName: "redeem",
111
- args: [amount, account, account]
112
- }
113
- ];
114
- }
115
- }
116
- }
117
- export {
118
- AbstractPoolService
119
- };
@@ -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,21 +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
- /**
5
- * @internal
6
- * Base implementation of {@link IPoolsService}.
7
- *
8
- * Used to generate data for write operations on LP side (deposit to/withdraw from pool)
9
- **/
10
- export declare abstract class AbstractPoolService extends SDKConstruct {
11
- #private;
12
- constructor(sdk: GearboxSDK, version: number);
13
- /**
14
- * {@inheritDoc IPoolsService.addLiquidity}
15
- **/
16
- addLiquidity({ collateral, pool, account, zapper, permit, nativeTokenAddress, referralCode, migrate, }: AddLiquidityProps): AddLiquidityCall;
17
- /**
18
- * {@inheritDoc IPoolsService.removeLiquidity}
19
- **/
20
- removeLiquidity({ pool, amount, account, zapper, permit, }: RemoveLiquidityProps): RemoveLiquidityCall;
21
- }
@@ -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;