@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.
- package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +263 -0
- package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +278 -0
- package/dist/cjs/{sdk/pools/PoolServiceV310.js → abi/iStateSerializer.js} +14 -8
- package/dist/cjs/dev/AccountOpener.js +45 -5
- package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +375 -13
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +16 -5
- package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
- package/dist/cjs/sdk/base/TokensMeta.js +255 -32
- package/dist/cjs/sdk/base/index.js +2 -0
- package/dist/cjs/sdk/{constants/phantom-tokens.js → base/token-types.js} +9 -3
- package/dist/cjs/sdk/chain/chains.js +2 -1
- package/dist/cjs/sdk/constants/index.js +0 -2
- package/dist/cjs/sdk/market/MarketRegister.js +5 -2
- package/dist/cjs/sdk/market/MarketSuite.js +6 -0
- package/dist/cjs/{plugins/zappers/extraZappers.js → sdk/market/ZapperRegister.js} +110 -6
- package/dist/cjs/sdk/market/index.js +3 -1
- package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
- package/dist/cjs/sdk/market/pool/PoolV310Contract.js +17 -2
- package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +97 -0
- package/dist/cjs/sdk/market/pool/index.js +4 -0
- package/dist/cjs/sdk/pools/PoolService.js +391 -0
- package/dist/cjs/sdk/pools/index.js +2 -4
- package/dist/esm/abi/310/iSecuritizeDegenNFT.js +239 -0
- package/dist/esm/abi/310/iSecuritizeKYCFactory.js +254 -0
- package/dist/esm/abi/iStateSerializer.js +12 -0
- package/dist/esm/dev/AccountOpener.js +47 -6
- package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +375 -13
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +16 -5
- package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
- package/dist/esm/sdk/base/TokensMeta.js +261 -32
- package/dist/esm/sdk/base/index.js +1 -0
- package/dist/esm/sdk/{constants/phantom-tokens.js → base/token-types.js} +4 -0
- package/dist/esm/sdk/chain/chains.js +2 -1
- package/dist/esm/sdk/constants/index.js +0 -1
- package/dist/esm/sdk/market/MarketRegister.js +5 -2
- package/dist/esm/sdk/market/MarketSuite.js +6 -0
- package/dist/esm/{plugins/zappers/extraZappers.js → sdk/market/ZapperRegister.js} +109 -2
- package/dist/esm/sdk/market/index.js +1 -0
- package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
- package/dist/esm/sdk/market/pool/PoolV310Contract.js +17 -2
- package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +73 -0
- package/dist/esm/sdk/market/pool/index.js +2 -0
- package/dist/esm/sdk/pools/PoolService.js +371 -0
- package/dist/esm/sdk/pools/index.js +1 -2
- package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +324 -0
- package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +322 -0
- package/dist/types/abi/iStateSerializer.d.ts +11 -0
- package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +114 -3
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
- package/dist/types/sdk/accounts/types.d.ts +96 -6
- package/dist/types/sdk/base/TokensMeta.d.ts +34 -21
- package/dist/types/sdk/base/index.d.ts +1 -0
- package/dist/types/sdk/base/token-types.d.ts +33 -0
- package/dist/types/sdk/base/types.d.ts +0 -7
- package/dist/types/sdk/chain/chains.d.ts +1 -1
- package/dist/types/sdk/constants/index.d.ts +0 -1
- package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
- package/dist/types/sdk/market/MarketSuite.d.ts +3 -0
- package/dist/types/sdk/market/ZapperRegister.d.ts +17 -0
- package/dist/types/sdk/market/index.d.ts +1 -0
- package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
- package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
- package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +345 -0
- package/dist/types/sdk/market/pool/index.d.ts +2 -0
- package/dist/types/sdk/market/types.d.ts +10 -0
- package/dist/types/sdk/pools/PoolService.d.ts +14 -0
- package/dist/types/sdk/pools/index.d.ts +1 -2
- package/dist/types/sdk/pools/types.d.ts +85 -111
- package/package.json +1 -1
- package/dist/cjs/plugins/zappers/ZappersPlugin.js +0 -144
- package/dist/cjs/plugins/zappers/index.js +0 -26
- package/dist/cjs/plugins/zappers/package.json +0 -1
- package/dist/cjs/sdk/pools/AbstractPoolService.js +0 -143
- package/dist/cjs/sdk/pools/createPoolService.js +0 -35
- package/dist/esm/plugins/zappers/ZappersPlugin.js +0 -126
- package/dist/esm/plugins/zappers/index.js +0 -3
- package/dist/esm/plugins/zappers/package.json +0 -1
- package/dist/esm/sdk/pools/AbstractPoolService.js +0 -119
- package/dist/esm/sdk/pools/PoolServiceV310.js +0 -6
- package/dist/esm/sdk/pools/createPoolService.js +0 -11
- package/dist/types/plugins/zappers/ZappersPlugin.d.ts +0 -18
- package/dist/types/plugins/zappers/extraZappers.d.ts +0 -6
- package/dist/types/plugins/zappers/index.d.ts +0 -3
- package/dist/types/plugins/zappers/types.d.ts +0 -12
- package/dist/types/sdk/constants/phantom-tokens.d.ts +0 -2
- package/dist/types/sdk/pools/AbstractPoolService.d.ts +0 -21
- package/dist/types/sdk/pools/PoolServiceV310.d.ts +0 -4
- package/dist/types/sdk/pools/createPoolService.d.ts +0 -3
- /package/dist/cjs/{plugins/zappers → sdk/market}/types.js +0 -0
- /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 +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,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,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
|
-
}
|
|
File without changes
|
|
File without changes
|