@exponent-labs/exponent-types 0.1.4 → 0.1.6
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/generic.d.ts +89 -4
- package/build/generic.js +94 -1
- package/build/generic.js.map +1 -1
- package/package.json +1 -1
- package/src/generic.ts +203 -5
package/build/generic.d.ts
CHANGED
|
@@ -32,6 +32,18 @@ export type InterfaceTypeGeneric = {
|
|
|
32
32
|
};
|
|
33
33
|
} | {
|
|
34
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
|
+
};
|
|
35
47
|
};
|
|
36
48
|
export type InterfaceTypeGenericJson = {
|
|
37
49
|
pyth: {
|
|
@@ -46,7 +58,72 @@ export type InterfaceTypeGenericJson = {
|
|
|
46
58
|
fragmetric: Record<string, never>;
|
|
47
59
|
} | {
|
|
48
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
|
+
};
|
|
49
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
|
+
}
|
|
50
127
|
export interface Hook {
|
|
51
128
|
enabled: boolean;
|
|
52
129
|
interfaceEmissionsAccountsUntil: number;
|
|
@@ -66,16 +143,15 @@ export interface GenericSyState {
|
|
|
66
143
|
account: GenericSyMetaAccount;
|
|
67
144
|
tokenProgramBase: web3.PublicKey;
|
|
68
145
|
syRate: number;
|
|
69
|
-
|
|
70
|
-
receiptTokenMint: web3.PublicKey;
|
|
71
|
-
wrappedTokenMint: web3.PublicKey;
|
|
72
|
-
};
|
|
146
|
+
additionalData?: AdditionalDataGeneric;
|
|
73
147
|
}
|
|
74
148
|
export interface GenericSyStateJson {
|
|
75
149
|
selfAddress: string;
|
|
76
150
|
account: GenericSyMetaAccountJson;
|
|
77
151
|
tokenProgramBase: string;
|
|
78
152
|
syRate: number;
|
|
153
|
+
additionalData?: AdditionalDataGenericJson;
|
|
154
|
+
/** @deprecated Use additionalData.fragmetricData instead */
|
|
79
155
|
fragmetricData?: {
|
|
80
156
|
receiptTokenMint: string;
|
|
81
157
|
wrappedTokenMint: string;
|
|
@@ -126,3 +202,12 @@ export declare function deserializeGenericSyMetaAccountRaw(raw: GenericSyMetaAcc
|
|
|
126
202
|
export declare function toInterfaceTypeGenericJson(interfaceType: InterfaceTypeGeneric): InterfaceTypeGenericJson;
|
|
127
203
|
/** Convert InterfaceTypeGenericJson to InterfaceTypeGeneric */
|
|
128
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/package.json
CHANGED
package/src/generic.ts
CHANGED
|
@@ -43,7 +43,21 @@ export type InterfaceTypeGeneric =
|
|
|
43
43
|
| {
|
|
44
44
|
hyloLpToken: Record<string, never>
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
| {
|
|
47
|
+
jupiterLend: {
|
|
48
|
+
padding: number[]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
| {
|
|
52
|
+
kaminoVault: {
|
|
53
|
+
padding: number[]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
| {
|
|
57
|
+
solstice: {
|
|
58
|
+
padding: number[]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
47
61
|
export type InterfaceTypeGenericJson =
|
|
48
62
|
| {
|
|
49
63
|
pyth: {
|
|
@@ -63,6 +77,88 @@ export type InterfaceTypeGenericJson =
|
|
|
63
77
|
| {
|
|
64
78
|
meteora: Record<string, never>
|
|
65
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
|
+
}
|
|
66
162
|
|
|
67
163
|
export interface Hook {
|
|
68
164
|
enabled: boolean
|
|
@@ -85,10 +181,7 @@ export interface GenericSyState {
|
|
|
85
181
|
account: GenericSyMetaAccount
|
|
86
182
|
tokenProgramBase: web3.PublicKey
|
|
87
183
|
syRate: number
|
|
88
|
-
|
|
89
|
-
receiptTokenMint: web3.PublicKey
|
|
90
|
-
wrappedTokenMint: web3.PublicKey
|
|
91
|
-
}
|
|
184
|
+
additionalData?: AdditionalDataGeneric
|
|
92
185
|
}
|
|
93
186
|
|
|
94
187
|
export interface GenericSyStateJson {
|
|
@@ -96,6 +189,8 @@ export interface GenericSyStateJson {
|
|
|
96
189
|
account: GenericSyMetaAccountJson
|
|
97
190
|
tokenProgramBase: string
|
|
98
191
|
syRate: number
|
|
192
|
+
additionalData?: AdditionalDataGenericJson
|
|
193
|
+
/** @deprecated Use additionalData.fragmetricData instead */
|
|
99
194
|
fragmetricData?: {
|
|
100
195
|
receiptTokenMint: string
|
|
101
196
|
wrappedTokenMint: string
|
|
@@ -177,6 +272,38 @@ export function toInterfaceTypeGenericJson(interfaceType: InterfaceTypeGeneric):
|
|
|
177
272
|
},
|
|
178
273
|
}
|
|
179
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
|
+
}
|
|
180
307
|
return interfaceType as InterfaceTypeGenericJson
|
|
181
308
|
}
|
|
182
309
|
|
|
@@ -190,5 +317,76 @@ export function fromInterfaceTypeGenericJson(json: InterfaceTypeGenericJson): In
|
|
|
190
317
|
},
|
|
191
318
|
}
|
|
192
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
|
+
}
|
|
193
351
|
return json as InterfaceTypeGeneric
|
|
194
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
|
+
}
|