@exponent-labs/exponent-types 0.1.3 → 0.1.5
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/build/common.d.ts +10 -0
- package/build/generic.d.ts +109 -5
- package/build/generic.js +94 -1
- package/build/generic.js.map +1 -1
- package/build/kamino.d.ts +2 -2
- package/build/trade.d.ts +0 -1
- package/build/vault.d.ts +2 -0
- package/package.json +2 -2
- package/src/common.ts +11 -0
- package/src/generic.ts +228 -6
- package/src/kamino.ts +3 -2
- package/src/trade.ts +0 -1
- package/src/vault.ts +2 -0
package/build/common.d.ts
CHANGED
|
@@ -9,6 +9,16 @@ export interface SyEmissionRaw {
|
|
|
9
9
|
treasuryEmission: BN;
|
|
10
10
|
lastSeenIndex: AnchorizedPNum;
|
|
11
11
|
}
|
|
12
|
+
export interface SyEmissionRaw2 {
|
|
13
|
+
mint: web3.PublicKey;
|
|
14
|
+
index: AnchorizedPNum;
|
|
15
|
+
last_seen_total_accrued_emissions: BN;
|
|
16
|
+
total_claimed_emissions: BN;
|
|
17
|
+
token_program: web3.PublicKey;
|
|
18
|
+
escrow_account: web3.PublicKey;
|
|
19
|
+
treasury_emission: BN;
|
|
20
|
+
last_seen_index: AnchorizedPNum;
|
|
21
|
+
}
|
|
12
22
|
export interface SyEmissionJson {
|
|
13
23
|
mint: string;
|
|
14
24
|
tokenProgram: string;
|
package/build/generic.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { BN, web3 } from "@coral-xyz/anchor";
|
|
4
|
-
import { AnchorizedPNum,
|
|
4
|
+
import { AnchorizedPNum, SyEmissionJson, SyEmissionRaw } from "./common";
|
|
5
5
|
export type InterfaceTypeGeneric = {
|
|
6
6
|
pyth: {
|
|
7
7
|
lastSlot: BN;
|
|
@@ -17,6 +17,33 @@ export type InterfaceTypeGeneric = {
|
|
|
17
17
|
meteora: Record<string, never>;
|
|
18
18
|
} | {
|
|
19
19
|
fragmetricSupportedAsset: Record<string, never>;
|
|
20
|
+
} | {
|
|
21
|
+
sanctum: Record<string, never>;
|
|
22
|
+
} | {
|
|
23
|
+
jupiterPerps: {
|
|
24
|
+
lastFeeUsdResetUnixTimestamp: number;
|
|
25
|
+
lastRealizedFeeUsd: BN;
|
|
26
|
+
lastAumUsd: BN;
|
|
27
|
+
lastRealizedFeeUsdUpdateUnixTimestamp: number;
|
|
28
|
+
};
|
|
29
|
+
} | {
|
|
30
|
+
adrena: {
|
|
31
|
+
previousTotalFees: BN;
|
|
32
|
+
};
|
|
33
|
+
} | {
|
|
34
|
+
hyloLpToken: Record<string, never>;
|
|
35
|
+
} | {
|
|
36
|
+
jupiterLend: {
|
|
37
|
+
padding: number[];
|
|
38
|
+
};
|
|
39
|
+
} | {
|
|
40
|
+
kaminoVault: {
|
|
41
|
+
padding: number[];
|
|
42
|
+
};
|
|
43
|
+
} | {
|
|
44
|
+
solstice: {
|
|
45
|
+
padding: number[];
|
|
46
|
+
};
|
|
20
47
|
};
|
|
21
48
|
export type InterfaceTypeGenericJson = {
|
|
22
49
|
pyth: {
|
|
@@ -31,7 +58,72 @@ export type InterfaceTypeGenericJson = {
|
|
|
31
58
|
fragmetric: Record<string, never>;
|
|
32
59
|
} | {
|
|
33
60
|
meteora: Record<string, never>;
|
|
61
|
+
} | {
|
|
62
|
+
fragmetricSupportedAsset: Record<string, never>;
|
|
63
|
+
} | {
|
|
64
|
+
sanctum: Record<string, never>;
|
|
65
|
+
} | {
|
|
66
|
+
jupiterPerps: {
|
|
67
|
+
lastFeeUsdResetUnixTimestamp: string;
|
|
68
|
+
lastRealizedFeeUsd: string;
|
|
69
|
+
lastAumUsd: string;
|
|
70
|
+
lastRealizedFeeUsdUpdateUnixTimestamp: string;
|
|
71
|
+
};
|
|
72
|
+
} | {
|
|
73
|
+
adrena: {
|
|
74
|
+
previousTotalFees: string;
|
|
75
|
+
};
|
|
76
|
+
} | {
|
|
77
|
+
hyloLpToken: Record<string, never>;
|
|
78
|
+
} | {
|
|
79
|
+
jupiterLend: {
|
|
80
|
+
padding: number[];
|
|
81
|
+
};
|
|
82
|
+
} | {
|
|
83
|
+
kaminoVault: {
|
|
84
|
+
padding: number[];
|
|
85
|
+
};
|
|
86
|
+
} | {
|
|
87
|
+
solstice: {
|
|
88
|
+
padding: number[];
|
|
89
|
+
};
|
|
34
90
|
};
|
|
91
|
+
/** Additional data that different interface types may need */
|
|
92
|
+
export interface AdditionalDataGeneric {
|
|
93
|
+
fragmetricData?: {
|
|
94
|
+
receiptTokenMint: web3.PublicKey;
|
|
95
|
+
wrappedTokenMint: web3.PublicKey;
|
|
96
|
+
};
|
|
97
|
+
jupiterLendData?: {
|
|
98
|
+
baseTokenMint: web3.PublicKey;
|
|
99
|
+
tokenReservesLiquidity: web3.PublicKey;
|
|
100
|
+
lendingSupplyPosition: web3.PublicKey;
|
|
101
|
+
rewardsRateModel: web3.PublicKey;
|
|
102
|
+
rateModel: web3.PublicKey;
|
|
103
|
+
};
|
|
104
|
+
kaminoVaultData?: {
|
|
105
|
+
vault: web3.PublicKey;
|
|
106
|
+
reserves: {
|
|
107
|
+
reserveAddress: web3.PublicKey;
|
|
108
|
+
marketAddress: web3.PublicKey;
|
|
109
|
+
}[];
|
|
110
|
+
tokenVault: web3.PublicKey;
|
|
111
|
+
tokenMint: web3.PublicKey;
|
|
112
|
+
baseVaultAuthority: web3.PublicKey;
|
|
113
|
+
sharesMint: web3.PublicKey;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** JSON version of additional data */
|
|
117
|
+
export interface AdditionalDataGenericJson {
|
|
118
|
+
fragmetricData?: {
|
|
119
|
+
receiptTokenMint: string;
|
|
120
|
+
wrappedTokenMint: string;
|
|
121
|
+
};
|
|
122
|
+
jupiterLendData?: {
|
|
123
|
+
baseTokenMint: string;
|
|
124
|
+
tokenReservesLiquidity: string;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
35
127
|
export interface Hook {
|
|
36
128
|
enabled: boolean;
|
|
37
129
|
interfaceEmissionsAccountsUntil: number;
|
|
@@ -51,16 +143,19 @@ export interface GenericSyState {
|
|
|
51
143
|
account: GenericSyMetaAccount;
|
|
52
144
|
tokenProgramBase: web3.PublicKey;
|
|
53
145
|
syRate: number;
|
|
54
|
-
|
|
55
|
-
receiptTokenMint: web3.PublicKey;
|
|
56
|
-
wrappedTokenMint: web3.PublicKey;
|
|
57
|
-
};
|
|
146
|
+
additionalData?: AdditionalDataGeneric;
|
|
58
147
|
}
|
|
59
148
|
export interface GenericSyStateJson {
|
|
60
149
|
selfAddress: string;
|
|
61
150
|
account: GenericSyMetaAccountJson;
|
|
62
151
|
tokenProgramBase: string;
|
|
63
152
|
syRate: number;
|
|
153
|
+
additionalData?: AdditionalDataGenericJson;
|
|
154
|
+
/** @deprecated Use additionalData.fragmetricData instead */
|
|
155
|
+
fragmetricData?: {
|
|
156
|
+
receiptTokenMint: string;
|
|
157
|
+
wrappedTokenMint: string;
|
|
158
|
+
};
|
|
64
159
|
}
|
|
65
160
|
export interface GenericSyMetaAccountJson {
|
|
66
161
|
mintSy: string;
|
|
@@ -107,3 +202,12 @@ export declare function deserializeGenericSyMetaAccountRaw(raw: GenericSyMetaAcc
|
|
|
107
202
|
export declare function toInterfaceTypeGenericJson(interfaceType: InterfaceTypeGeneric): InterfaceTypeGenericJson;
|
|
108
203
|
/** Convert InterfaceTypeGenericJson to InterfaceTypeGeneric */
|
|
109
204
|
export declare function fromInterfaceTypeGenericJson(json: InterfaceTypeGenericJson): InterfaceTypeGeneric;
|
|
205
|
+
/** Convert AdditionalDataGeneric to AdditionalDataGenericJson */
|
|
206
|
+
export declare function toAdditionalDataGenericJson(additionalData: AdditionalDataGeneric): AdditionalDataGenericJson;
|
|
207
|
+
/** Convert AdditionalDataGenericJson to AdditionalDataGeneric */
|
|
208
|
+
export declare function fromAdditionalDataGenericJson(json: AdditionalDataGenericJson): AdditionalDataGeneric;
|
|
209
|
+
/** Helper function to extract fragmetric data from additional data */
|
|
210
|
+
export declare function getFragmetricDataFromAdditionalData(additionalData?: AdditionalDataGeneric): {
|
|
211
|
+
receiptTokenMint: web3.PublicKey;
|
|
212
|
+
wrappedTokenMint: web3.PublicKey;
|
|
213
|
+
} | undefined;
|
package/build/generic.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromInterfaceTypeGenericJson = exports.toInterfaceTypeGenericJson = exports.deserializeGenericSyMetaAccountRaw = void 0;
|
|
3
|
+
exports.getFragmetricDataFromAdditionalData = exports.fromAdditionalDataGenericJson = exports.toAdditionalDataGenericJson = exports.fromInterfaceTypeGenericJson = exports.toInterfaceTypeGenericJson = exports.deserializeGenericSyMetaAccountRaw = void 0;
|
|
4
4
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
5
5
|
function deserializeGenericSyMetaAccountRaw(raw) {
|
|
6
6
|
return {
|
|
@@ -34,6 +34,37 @@ function toInterfaceTypeGenericJson(interfaceType) {
|
|
|
34
34
|
},
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
+
if ("jupiterPerps" in interfaceType) {
|
|
38
|
+
return {
|
|
39
|
+
jupiterPerps: {
|
|
40
|
+
lastFeeUsdResetUnixTimestamp: interfaceType.jupiterPerps.lastFeeUsdResetUnixTimestamp.toString(),
|
|
41
|
+
lastRealizedFeeUsd: interfaceType.jupiterPerps.lastRealizedFeeUsd.toString(),
|
|
42
|
+
lastAumUsd: interfaceType.jupiterPerps.lastAumUsd.toString(),
|
|
43
|
+
lastRealizedFeeUsdUpdateUnixTimestamp: interfaceType.jupiterPerps.lastRealizedFeeUsdUpdateUnixTimestamp.toString(),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if ("adrena" in interfaceType) {
|
|
48
|
+
return {
|
|
49
|
+
adrena: {
|
|
50
|
+
previousTotalFees: interfaceType.adrena.previousTotalFees.toString(),
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if ("jupiterLend" in interfaceType) {
|
|
55
|
+
return {
|
|
56
|
+
jupiterLend: {
|
|
57
|
+
padding: interfaceType.jupiterLend.padding,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if ("kaminoVault" in interfaceType) {
|
|
62
|
+
return {
|
|
63
|
+
kaminoVault: {
|
|
64
|
+
padding: interfaceType.kaminoVault.padding,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
37
68
|
return interfaceType;
|
|
38
69
|
}
|
|
39
70
|
exports.toInterfaceTypeGenericJson = toInterfaceTypeGenericJson;
|
|
@@ -47,7 +78,69 @@ function fromInterfaceTypeGenericJson(json) {
|
|
|
47
78
|
},
|
|
48
79
|
};
|
|
49
80
|
}
|
|
81
|
+
if ("jupiterPerps" in json) {
|
|
82
|
+
return {
|
|
83
|
+
jupiterPerps: {
|
|
84
|
+
lastFeeUsdResetUnixTimestamp: parseInt(json.jupiterPerps.lastFeeUsdResetUnixTimestamp),
|
|
85
|
+
lastRealizedFeeUsd: new anchor_1.BN(json.jupiterPerps.lastRealizedFeeUsd),
|
|
86
|
+
lastAumUsd: new anchor_1.BN(json.jupiterPerps.lastAumUsd),
|
|
87
|
+
lastRealizedFeeUsdUpdateUnixTimestamp: parseInt(json.jupiterPerps.lastRealizedFeeUsdUpdateUnixTimestamp),
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if ("adrena" in json) {
|
|
92
|
+
return {
|
|
93
|
+
adrena: {
|
|
94
|
+
previousTotalFees: new anchor_1.BN(json.adrena.previousTotalFees),
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if ("jupiterLend" in json) {
|
|
99
|
+
return {
|
|
100
|
+
jupiterLend: {
|
|
101
|
+
padding: json.jupiterLend.padding,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
if ("kaminoVault" in json) {
|
|
106
|
+
return {
|
|
107
|
+
kaminoVault: {
|
|
108
|
+
padding: json.kaminoVault.padding,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
50
112
|
return json;
|
|
51
113
|
}
|
|
52
114
|
exports.fromInterfaceTypeGenericJson = fromInterfaceTypeGenericJson;
|
|
115
|
+
/** Convert AdditionalDataGeneric to AdditionalDataGenericJson */
|
|
116
|
+
function toAdditionalDataGenericJson(additionalData) {
|
|
117
|
+
const result = {};
|
|
118
|
+
if (additionalData.fragmetricData) {
|
|
119
|
+
result.fragmetricData = {
|
|
120
|
+
receiptTokenMint: additionalData.fragmetricData.receiptTokenMint.toString(),
|
|
121
|
+
wrappedTokenMint: additionalData.fragmetricData.wrappedTokenMint.toString(),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
exports.toAdditionalDataGenericJson = toAdditionalDataGenericJson;
|
|
127
|
+
/** Convert AdditionalDataGenericJson to AdditionalDataGeneric */
|
|
128
|
+
function fromAdditionalDataGenericJson(json) {
|
|
129
|
+
const result = {};
|
|
130
|
+
if (json.fragmetricData) {
|
|
131
|
+
result.fragmetricData = {
|
|
132
|
+
receiptTokenMint: new anchor_1.web3.PublicKey(json.fragmetricData.receiptTokenMint),
|
|
133
|
+
wrappedTokenMint: new anchor_1.web3.PublicKey(json.fragmetricData.wrappedTokenMint),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
exports.fromAdditionalDataGenericJson = fromAdditionalDataGenericJson;
|
|
139
|
+
/** Helper function to extract fragmetric data from additional data */
|
|
140
|
+
function getFragmetricDataFromAdditionalData(additionalData) {
|
|
141
|
+
if (!additionalData)
|
|
142
|
+
return undefined;
|
|
143
|
+
return additionalData.fragmetricData;
|
|
144
|
+
}
|
|
145
|
+
exports.getFragmetricDataFromAdditionalData = getFragmetricDataFromAdditionalData;
|
|
53
146
|
//# sourceMappingURL=generic.js.map
|
package/build/generic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":";;;AAAA,8CAA4C;
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"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"}
|
package/build/kamino.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BN } from "@coral-xyz/anchor";
|
|
2
2
|
import { web3 } from "@coral-xyz/anchor";
|
|
3
|
-
import { SyEmissionRaw,
|
|
3
|
+
import { SyEmissionJson, SyEmissionRaw, SyEmissionRaw2 } from "./common";
|
|
4
4
|
export interface KaminoSyState {
|
|
5
5
|
selfAddress: web3.PublicKey;
|
|
6
6
|
account: KaminoSyMetaAccount;
|
|
@@ -67,6 +67,6 @@ export interface KaminoSyMetaAccountRaw {
|
|
|
67
67
|
max_sy_supply: BN;
|
|
68
68
|
min_mint_size: BN;
|
|
69
69
|
min_redeem_size: BN;
|
|
70
|
-
emissions:
|
|
70
|
+
emissions: SyEmissionRaw2[];
|
|
71
71
|
}
|
|
72
72
|
export {};
|
package/build/trade.d.ts
CHANGED
package/build/vault.d.ts
CHANGED
|
@@ -117,6 +117,7 @@ export interface VaultEmission {
|
|
|
117
117
|
tokenAccount: web3.PublicKey;
|
|
118
118
|
initialIndex: AnchorizedPNum;
|
|
119
119
|
lastSeenIndex: AnchorizedPNum;
|
|
120
|
+
finalIndex: AnchorizedPNum;
|
|
120
121
|
treasuryTokenAccount: web3.PublicKey;
|
|
121
122
|
feeBps: number;
|
|
122
123
|
treasuryEmission: BN;
|
|
@@ -125,6 +126,7 @@ export interface VaultEmissionJson {
|
|
|
125
126
|
tokenAccount: string;
|
|
126
127
|
initialIndex: AnchorizedPNumJson;
|
|
127
128
|
lastSeenIndex: AnchorizedPNumJson;
|
|
129
|
+
finalIndex: AnchorizedPNumJson;
|
|
128
130
|
treasuryTokenAccount: string;
|
|
129
131
|
feeBps: number;
|
|
130
132
|
treasuryEmission: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exponent-labs/exponent-types",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"types": "build/index.d.ts",
|
|
6
6
|
"license": "AGPL-3.0",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"build": "tsc --build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@coral-xyz/anchor": "0.
|
|
11
|
+
"@coral-xyz/anchor": "0.31.0"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"typescript": "5.4.5"
|
package/src/common.ts
CHANGED
|
@@ -11,6 +11,17 @@ export interface SyEmissionRaw {
|
|
|
11
11
|
lastSeenIndex: AnchorizedPNum
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
export interface SyEmissionRaw2 {
|
|
15
|
+
mint: web3.PublicKey
|
|
16
|
+
index: AnchorizedPNum
|
|
17
|
+
last_seen_total_accrued_emissions: BN
|
|
18
|
+
total_claimed_emissions: BN
|
|
19
|
+
token_program: web3.PublicKey
|
|
20
|
+
escrow_account: web3.PublicKey
|
|
21
|
+
treasury_emission: BN
|
|
22
|
+
last_seen_index: AnchorizedPNum
|
|
23
|
+
}
|
|
24
|
+
|
|
14
25
|
export interface SyEmissionJson {
|
|
15
26
|
mint: string
|
|
16
27
|
tokenProgram: string
|
package/src/generic.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BN, web3 } from "@coral-xyz/anchor"
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { AnchorizedPNum, SyEmissionJson, SyEmissionRaw } from "./common"
|
|
3
4
|
|
|
4
5
|
export type InterfaceTypeGeneric =
|
|
5
6
|
| {
|
|
@@ -23,7 +24,40 @@ export type InterfaceTypeGeneric =
|
|
|
23
24
|
| {
|
|
24
25
|
fragmetricSupportedAsset: Record<string, never>
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
+
| {
|
|
28
|
+
sanctum: Record<string, never>
|
|
29
|
+
}
|
|
30
|
+
| {
|
|
31
|
+
jupiterPerps: {
|
|
32
|
+
lastFeeUsdResetUnixTimestamp: number
|
|
33
|
+
lastRealizedFeeUsd: BN
|
|
34
|
+
lastAumUsd: BN
|
|
35
|
+
lastRealizedFeeUsdUpdateUnixTimestamp: number
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
| {
|
|
39
|
+
adrena: {
|
|
40
|
+
previousTotalFees: BN
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
| {
|
|
44
|
+
hyloLpToken: Record<string, never>
|
|
45
|
+
}
|
|
46
|
+
| {
|
|
47
|
+
jupiterLend: {
|
|
48
|
+
padding: number[]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
| {
|
|
52
|
+
kaminoVault: {
|
|
53
|
+
padding: number[]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
| {
|
|
57
|
+
solstice: {
|
|
58
|
+
padding: number[]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
27
61
|
export type InterfaceTypeGenericJson =
|
|
28
62
|
| {
|
|
29
63
|
pyth: {
|
|
@@ -43,6 +77,88 @@ export type InterfaceTypeGenericJson =
|
|
|
43
77
|
| {
|
|
44
78
|
meteora: Record<string, never>
|
|
45
79
|
}
|
|
80
|
+
| {
|
|
81
|
+
fragmetricSupportedAsset: Record<string, never>
|
|
82
|
+
}
|
|
83
|
+
| {
|
|
84
|
+
sanctum: Record<string, never>
|
|
85
|
+
}
|
|
86
|
+
| {
|
|
87
|
+
jupiterPerps: {
|
|
88
|
+
lastFeeUsdResetUnixTimestamp: string
|
|
89
|
+
lastRealizedFeeUsd: string
|
|
90
|
+
lastAumUsd: string
|
|
91
|
+
lastRealizedFeeUsdUpdateUnixTimestamp: string
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
| {
|
|
95
|
+
adrena: {
|
|
96
|
+
previousTotalFees: string
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
| {
|
|
100
|
+
hyloLpToken: Record<string, never>
|
|
101
|
+
}
|
|
102
|
+
| {
|
|
103
|
+
jupiterLend: {
|
|
104
|
+
padding: number[]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
| {
|
|
108
|
+
kaminoVault: {
|
|
109
|
+
padding: number[]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
| {
|
|
113
|
+
solstice: {
|
|
114
|
+
padding: number[]
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Additional data that different interface types may need */
|
|
118
|
+
export interface AdditionalDataGeneric {
|
|
119
|
+
fragmetricData?: {
|
|
120
|
+
receiptTokenMint: web3.PublicKey
|
|
121
|
+
wrappedTokenMint: web3.PublicKey
|
|
122
|
+
}
|
|
123
|
+
jupiterLendData?: {
|
|
124
|
+
baseTokenMint: web3.PublicKey
|
|
125
|
+
tokenReservesLiquidity: web3.PublicKey
|
|
126
|
+
lendingSupplyPosition: web3.PublicKey
|
|
127
|
+
rewardsRateModel: web3.PublicKey
|
|
128
|
+
rateModel: web3.PublicKey
|
|
129
|
+
}
|
|
130
|
+
kaminoVaultData?: {
|
|
131
|
+
vault: web3.PublicKey
|
|
132
|
+
reserves: {
|
|
133
|
+
reserveAddress: web3.PublicKey
|
|
134
|
+
marketAddress: web3.PublicKey
|
|
135
|
+
}[]
|
|
136
|
+
tokenVault: web3.PublicKey
|
|
137
|
+
tokenMint: web3.PublicKey
|
|
138
|
+
baseVaultAuthority: web3.PublicKey
|
|
139
|
+
sharesMint: web3.PublicKey
|
|
140
|
+
}
|
|
141
|
+
// Add other interface-specific data here as needed
|
|
142
|
+
// meteoraData?: { ... }
|
|
143
|
+
// sanctumData?: { ... }
|
|
144
|
+
// adrenaData?: { ... }
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/** JSON version of additional data */
|
|
148
|
+
export interface AdditionalDataGenericJson {
|
|
149
|
+
fragmetricData?: {
|
|
150
|
+
receiptTokenMint: string
|
|
151
|
+
wrappedTokenMint: string
|
|
152
|
+
}
|
|
153
|
+
jupiterLendData?: {
|
|
154
|
+
baseTokenMint: string
|
|
155
|
+
tokenReservesLiquidity: string
|
|
156
|
+
}
|
|
157
|
+
// Add other interface-specific data here as needed
|
|
158
|
+
// meteoraData?: { ... }
|
|
159
|
+
// sanctumData?: { ... }
|
|
160
|
+
// adrenaData?: { ... }
|
|
161
|
+
}
|
|
46
162
|
|
|
47
163
|
export interface Hook {
|
|
48
164
|
enabled: boolean
|
|
@@ -65,10 +181,7 @@ export interface GenericSyState {
|
|
|
65
181
|
account: GenericSyMetaAccount
|
|
66
182
|
tokenProgramBase: web3.PublicKey
|
|
67
183
|
syRate: number
|
|
68
|
-
|
|
69
|
-
receiptTokenMint: web3.PublicKey
|
|
70
|
-
wrappedTokenMint: web3.PublicKey
|
|
71
|
-
}
|
|
184
|
+
additionalData?: AdditionalDataGeneric
|
|
72
185
|
}
|
|
73
186
|
|
|
74
187
|
export interface GenericSyStateJson {
|
|
@@ -76,6 +189,12 @@ export interface GenericSyStateJson {
|
|
|
76
189
|
account: GenericSyMetaAccountJson
|
|
77
190
|
tokenProgramBase: string
|
|
78
191
|
syRate: number
|
|
192
|
+
additionalData?: AdditionalDataGenericJson
|
|
193
|
+
/** @deprecated Use additionalData.fragmetricData instead */
|
|
194
|
+
fragmetricData?: {
|
|
195
|
+
receiptTokenMint: string
|
|
196
|
+
wrappedTokenMint: string
|
|
197
|
+
}
|
|
79
198
|
}
|
|
80
199
|
|
|
81
200
|
export interface GenericSyMetaAccountJson {
|
|
@@ -153,6 +272,38 @@ export function toInterfaceTypeGenericJson(interfaceType: InterfaceTypeGeneric):
|
|
|
153
272
|
},
|
|
154
273
|
}
|
|
155
274
|
}
|
|
275
|
+
if ("jupiterPerps" in interfaceType) {
|
|
276
|
+
return {
|
|
277
|
+
jupiterPerps: {
|
|
278
|
+
lastFeeUsdResetUnixTimestamp: interfaceType.jupiterPerps.lastFeeUsdResetUnixTimestamp.toString(),
|
|
279
|
+
lastRealizedFeeUsd: interfaceType.jupiterPerps.lastRealizedFeeUsd.toString(),
|
|
280
|
+
lastAumUsd: interfaceType.jupiterPerps.lastAumUsd.toString(),
|
|
281
|
+
lastRealizedFeeUsdUpdateUnixTimestamp:
|
|
282
|
+
interfaceType.jupiterPerps.lastRealizedFeeUsdUpdateUnixTimestamp.toString(),
|
|
283
|
+
},
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
if ("adrena" in interfaceType) {
|
|
287
|
+
return {
|
|
288
|
+
adrena: {
|
|
289
|
+
previousTotalFees: interfaceType.adrena.previousTotalFees.toString(),
|
|
290
|
+
},
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if ("jupiterLend" in interfaceType) {
|
|
294
|
+
return {
|
|
295
|
+
jupiterLend: {
|
|
296
|
+
padding: interfaceType.jupiterLend.padding,
|
|
297
|
+
},
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if ("kaminoVault" in interfaceType) {
|
|
301
|
+
return {
|
|
302
|
+
kaminoVault: {
|
|
303
|
+
padding: interfaceType.kaminoVault.padding,
|
|
304
|
+
},
|
|
305
|
+
}
|
|
306
|
+
}
|
|
156
307
|
return interfaceType as InterfaceTypeGenericJson
|
|
157
308
|
}
|
|
158
309
|
|
|
@@ -166,5 +317,76 @@ export function fromInterfaceTypeGenericJson(json: InterfaceTypeGenericJson): In
|
|
|
166
317
|
},
|
|
167
318
|
}
|
|
168
319
|
}
|
|
320
|
+
if ("jupiterPerps" in json) {
|
|
321
|
+
return {
|
|
322
|
+
jupiterPerps: {
|
|
323
|
+
lastFeeUsdResetUnixTimestamp: parseInt(json.jupiterPerps.lastFeeUsdResetUnixTimestamp),
|
|
324
|
+
lastRealizedFeeUsd: new BN(json.jupiterPerps.lastRealizedFeeUsd),
|
|
325
|
+
lastAumUsd: new BN(json.jupiterPerps.lastAumUsd),
|
|
326
|
+
lastRealizedFeeUsdUpdateUnixTimestamp: parseInt(json.jupiterPerps.lastRealizedFeeUsdUpdateUnixTimestamp),
|
|
327
|
+
},
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if ("adrena" in json) {
|
|
331
|
+
return {
|
|
332
|
+
adrena: {
|
|
333
|
+
previousTotalFees: new BN(json.adrena.previousTotalFees),
|
|
334
|
+
},
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if ("jupiterLend" in json) {
|
|
338
|
+
return {
|
|
339
|
+
jupiterLend: {
|
|
340
|
+
padding: json.jupiterLend.padding,
|
|
341
|
+
},
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if ("kaminoVault" in json) {
|
|
345
|
+
return {
|
|
346
|
+
kaminoVault: {
|
|
347
|
+
padding: json.kaminoVault.padding,
|
|
348
|
+
},
|
|
349
|
+
}
|
|
350
|
+
}
|
|
169
351
|
return json as InterfaceTypeGeneric
|
|
170
352
|
}
|
|
353
|
+
|
|
354
|
+
/** Convert AdditionalDataGeneric to AdditionalDataGenericJson */
|
|
355
|
+
export function toAdditionalDataGenericJson(additionalData: AdditionalDataGeneric): AdditionalDataGenericJson {
|
|
356
|
+
const result: AdditionalDataGenericJson = {}
|
|
357
|
+
|
|
358
|
+
if (additionalData.fragmetricData) {
|
|
359
|
+
result.fragmetricData = {
|
|
360
|
+
receiptTokenMint: additionalData.fragmetricData.receiptTokenMint.toString(),
|
|
361
|
+
wrappedTokenMint: additionalData.fragmetricData.wrappedTokenMint.toString(),
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
return result
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/** Convert AdditionalDataGenericJson to AdditionalDataGeneric */
|
|
369
|
+
export function fromAdditionalDataGenericJson(json: AdditionalDataGenericJson): AdditionalDataGeneric {
|
|
370
|
+
const result: AdditionalDataGeneric = {}
|
|
371
|
+
|
|
372
|
+
if (json.fragmetricData) {
|
|
373
|
+
result.fragmetricData = {
|
|
374
|
+
receiptTokenMint: new web3.PublicKey(json.fragmetricData.receiptTokenMint),
|
|
375
|
+
wrappedTokenMint: new web3.PublicKey(json.fragmetricData.wrappedTokenMint),
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
return result
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/** Helper function to extract fragmetric data from additional data */
|
|
383
|
+
export function getFragmetricDataFromAdditionalData(additionalData?: AdditionalDataGeneric):
|
|
384
|
+
| {
|
|
385
|
+
receiptTokenMint: web3.PublicKey
|
|
386
|
+
wrappedTokenMint: web3.PublicKey
|
|
387
|
+
}
|
|
388
|
+
| undefined {
|
|
389
|
+
if (!additionalData) return undefined
|
|
390
|
+
|
|
391
|
+
return additionalData.fragmetricData
|
|
392
|
+
}
|
package/src/kamino.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BN } from "@coral-xyz/anchor"
|
|
2
2
|
import { web3 } from "@coral-xyz/anchor"
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
import { SyEmissionJson, SyEmissionRaw, SyEmissionRaw2 } from "./common"
|
|
4
5
|
|
|
5
6
|
export interface KaminoSyState {
|
|
6
7
|
selfAddress: web3.PublicKey
|
|
@@ -72,5 +73,5 @@ export interface KaminoSyMetaAccountRaw {
|
|
|
72
73
|
max_sy_supply: BN
|
|
73
74
|
min_mint_size: BN
|
|
74
75
|
min_redeem_size: BN
|
|
75
|
-
emissions:
|
|
76
|
+
emissions: SyEmissionRaw2[]
|
|
76
77
|
}
|
package/src/trade.ts
CHANGED
package/src/vault.ts
CHANGED
|
@@ -176,6 +176,7 @@ export interface VaultEmission {
|
|
|
176
176
|
tokenAccount: web3.PublicKey
|
|
177
177
|
initialIndex: AnchorizedPNum
|
|
178
178
|
lastSeenIndex: AnchorizedPNum
|
|
179
|
+
finalIndex: AnchorizedPNum
|
|
179
180
|
treasuryTokenAccount: web3.PublicKey
|
|
180
181
|
feeBps: number
|
|
181
182
|
treasuryEmission: BN
|
|
@@ -185,6 +186,7 @@ export interface VaultEmissionJson {
|
|
|
185
186
|
tokenAccount: string
|
|
186
187
|
initialIndex: AnchorizedPNumJson
|
|
187
188
|
lastSeenIndex: AnchorizedPNumJson
|
|
189
|
+
finalIndex: AnchorizedPNumJson
|
|
188
190
|
treasuryTokenAccount: string
|
|
189
191
|
feeBps: number
|
|
190
192
|
treasuryEmission: string
|