@exponent-labs/exponent-sdk 0.1.6 → 0.1.8
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/EventDecoderV2.d.ts +31 -0
- package/build/EventDecoderV2.js +76 -0
- package/build/EventDecoderV2.js.map +1 -0
- package/build/addressLookupTableUtil.d.ts +17 -1
- package/build/addressLookupTableUtil.js +35 -1
- package/build/addressLookupTableUtil.js.map +1 -1
- package/build/clmm/events.d.ts +10 -0
- package/build/clmm/events.js +10 -0
- package/build/clmm/events.js.map +1 -0
- package/build/clmm/index.d.ts +1 -0
- package/build/clmm/index.js +18 -0
- package/build/clmm/index.js.map +1 -0
- package/build/events.d.ts +200 -9
- package/build/events.js +73 -24
- package/build/events.js.map +1 -1
- package/build/eventsV2.d.ts +7 -0
- package/build/eventsV2.js +10 -0
- package/build/eventsV2.js.map +1 -0
- package/build/flavors.d.ts +2 -0
- package/build/flavors.js +81 -27
- package/build/flavors.js.map +1 -1
- package/build/index.d.ts +6 -0
- package/build/index.js +14 -4
- package/build/index.js.map +1 -1
- package/build/lpPosition.js +4 -1
- package/build/lpPosition.js.map +1 -1
- package/build/market.d.ts +14 -2
- package/build/market.js +70 -29
- package/build/market.js.map +1 -1
- package/build/marketThree.d.ts +664 -0
- package/build/marketThree.js +1415 -0
- package/build/marketThree.js.map +1 -0
- package/build/marketThree.test.d.ts +1 -0
- package/build/marketThree.test.js +166 -0
- package/build/marketThree.test.js.map +1 -0
- package/build/orderbook/events.d.ts +7 -0
- package/build/orderbook/events.js +10 -0
- package/build/orderbook/events.js.map +1 -0
- package/build/orderbook/index.d.ts +4 -0
- package/build/orderbook/index.js +41 -0
- package/build/orderbook/index.js.map +1 -0
- package/build/orderbook/math.d.ts +26 -0
- package/build/orderbook/math.js +111 -0
- package/build/orderbook/math.js.map +1 -0
- package/build/orderbook/orderbook.d.ts +175 -0
- package/build/orderbook/orderbook.js +756 -0
- package/build/orderbook/orderbook.js.map +1 -0
- package/build/orderbook/types.d.ts +49 -0
- package/build/orderbook/types.js +27 -0
- package/build/orderbook/types.js.map +1 -0
- package/build/orderbook/utils.d.ts +18 -0
- package/build/orderbook/utils.js +74 -0
- package/build/orderbook/utils.js.map +1 -0
- package/build/router.d.ts +92 -0
- package/build/router.js +214 -0
- package/build/router.js.map +1 -0
- package/build/syPosition.js +6 -0
- package/build/syPosition.js.map +1 -1
- package/build/utils/index.d.ts +3 -2
- package/build/utils/index.js +22 -1
- package/build/utils/index.js.map +1 -1
- package/build/vault.d.ts +3 -1
- package/build/vault.js +98 -62
- package/build/vault.js.map +1 -1
- package/build/ytPosition.d.ts +2 -0
- package/build/ytPosition.js +18 -5
- package/build/ytPosition.js.map +1 -1
- package/package.json +28 -23
- package/src/EventDecoderV2.ts +96 -0
- package/src/addressLookupTableUtil.ts +42 -1
- package/src/clmm/events.ts +17 -0
- package/src/clmm/index.ts +1 -0
- package/src/events.ts +280 -27
- package/src/eventsV2.ts +13 -0
- package/src/flavors.ts +97 -27
- package/src/index.ts +6 -0
- package/src/lpPosition.ts +5 -2
- package/src/market.ts +100 -31
- package/src/marketThree.test.ts +208 -0
- package/src/marketThree.ts +2430 -0
- package/src/orderbook/events.ts +13 -0
- package/src/orderbook/index.ts +12 -0
- package/src/orderbook/math.ts +122 -0
- package/src/orderbook/orderbook.ts +1153 -0
- package/src/orderbook/types.ts +45 -0
- package/src/orderbook/utils.ts +74 -0
- package/src/router.ts +360 -0
- package/src/syPosition.ts +4 -0
- package/src/utils/index.ts +27 -2
- package/src/vault.ts +100 -62
- package/src/ytPosition.ts +28 -7
- package/tsconfig.json +4 -1
package/build/events.js
CHANGED
|
@@ -11,28 +11,29 @@ const EVENT_IX_TAG = new anchor_1.BN("1d9acb512ea545e4", 16);
|
|
|
11
11
|
class EventDecoder {
|
|
12
12
|
coder;
|
|
13
13
|
programId;
|
|
14
|
-
static
|
|
14
|
+
static eventIxTagBuffer = Buffer.from(EVENT_IX_TAG.toArray("le", 8));
|
|
15
15
|
constructor(idl = exponent_idl_1.IDL) {
|
|
16
16
|
this.programId = new anchor_1.web3.PublicKey(idl.address);
|
|
17
17
|
this.coder = new anchor_1.BorshCoder(idl);
|
|
18
18
|
}
|
|
19
|
-
parseAsTransactionCpiData(
|
|
19
|
+
parseAsTransactionCpiData(ixnData, errLogger) {
|
|
20
20
|
try {
|
|
21
|
-
const encodedLog = Buffer.from(bs58_1.default.decode(
|
|
21
|
+
const encodedLog = typeof ixnData === "string" ? Buffer.from(bs58_1.default.decode(ixnData)) : Buffer.from(ixnData);
|
|
22
22
|
const discriminator = encodedLog.subarray(0, 8);
|
|
23
|
-
const eventIxTagBuffer =
|
|
23
|
+
const eventIxTagBuffer = EventDecoder.eventIxTagBuffer;
|
|
24
24
|
if (discriminator.equals(eventIxTagBuffer)) {
|
|
25
25
|
return Buffer.from(Uint8Array.from(encodedLog.subarray(8))).toString("base64");
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
// Not an event instruction - just a regular instruction from the same program
|
|
28
|
+
return null;
|
|
28
29
|
}
|
|
29
30
|
catch (error) {
|
|
30
|
-
|
|
31
|
+
errLogger?.("Unable to parse transaction CPI data:", error);
|
|
31
32
|
return null;
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
|
-
decode(
|
|
35
|
-
const cpiData = this.parseAsTransactionCpiData(
|
|
35
|
+
decode(ixnData, errLogger) {
|
|
36
|
+
const cpiData = this.parseAsTransactionCpiData(ixnData);
|
|
36
37
|
if (!cpiData) {
|
|
37
38
|
return null;
|
|
38
39
|
}
|
|
@@ -44,33 +45,36 @@ class EventDecoder {
|
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
catch (error) {
|
|
47
|
-
|
|
48
|
+
errLogger?.(`Failed to decode event:`, error);
|
|
48
49
|
return null;
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
+
parseCpiEvents(instructions, accountKeys) {
|
|
53
|
+
const events = instructions
|
|
54
|
+
.map((ixn) => {
|
|
55
|
+
const programPubkey = accountKeys.get(ixn.programIdIndex);
|
|
56
|
+
if (programPubkey === undefined || !programPubkey.equals(new anchor_1.web3.PublicKey(this.programId))) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return this.decode(ixn.data) || null;
|
|
60
|
+
})
|
|
61
|
+
.filter((ev) => !!ev);
|
|
62
|
+
return categorizeEvents(events);
|
|
63
|
+
}
|
|
64
|
+
async parseTransactionResponseCpiEvents(transactionResponse, connection) {
|
|
52
65
|
const innerInstructions = transactionResponse?.meta?.innerInstructions ?? [];
|
|
53
66
|
const addressTableLookups = transactionResponse?.transaction.message.addressTableLookups;
|
|
54
67
|
const lookupTables = await Promise.all(addressTableLookups.map(async (lookup) => {
|
|
55
68
|
const lookupTable = await connection.getAddressLookupTable(lookup.accountKey);
|
|
56
69
|
return lookupTable;
|
|
57
70
|
}));
|
|
71
|
+
const accountKeys = transactionResponse?.transaction.message.getAccountKeys({
|
|
72
|
+
addressLookupTableAccounts: lookupTables.map((lookup) => lookup.value),
|
|
73
|
+
});
|
|
58
74
|
const instructions = innerInstructions.map(({ instructions }) => instructions).flat();
|
|
59
|
-
|
|
60
|
-
.map((ix) => {
|
|
61
|
-
const accountKeys = transactionResponse?.transaction.message.getAccountKeys({
|
|
62
|
-
addressLookupTableAccounts: lookupTables.map((lookup) => lookup.value),
|
|
63
|
-
});
|
|
64
|
-
const programPubkey = accountKeys.get(ix.programIdIndex);
|
|
65
|
-
if (programPubkey === undefined || !programPubkey.equals(this.programId)) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
const event = this.decode(ix.data);
|
|
69
|
-
return event || null;
|
|
70
|
-
})
|
|
71
|
-
.filter((ev) => !!ev);
|
|
72
|
-
return categorizeEvents(events);
|
|
75
|
+
return this.parseCpiEvents(instructions, accountKeys);
|
|
73
76
|
}
|
|
77
|
+
//? Keep as legacy for indexer v1 on websocket
|
|
74
78
|
parseHeliusWebsocketCpiEvents(transactionResponse) {
|
|
75
79
|
// const events: GenericEvent[] = []
|
|
76
80
|
const innerInstructions = transactionResponse?.meta?.innerInstructions ?? [];
|
|
@@ -96,19 +100,28 @@ function categorizeEvents(events) {
|
|
|
96
100
|
const stripEvents = [];
|
|
97
101
|
const mergeEvents = [];
|
|
98
102
|
const depositYtEvents = [];
|
|
103
|
+
const depositYtEventsV2 = [];
|
|
99
104
|
const withdrawYtEvents = [];
|
|
105
|
+
const withdrawYtEventsV2 = [];
|
|
100
106
|
const collectInterestEvents = [];
|
|
107
|
+
const collectInterestEventsV2 = [];
|
|
101
108
|
const collectEmissionEvents = [];
|
|
109
|
+
const collectEmissionEventsV2 = [];
|
|
102
110
|
const stageYieldEvents = [];
|
|
111
|
+
const stageYieldEventsV2 = [];
|
|
103
112
|
const initializeYieldPositionEvents = [];
|
|
104
113
|
const withdrawLpEvents = [];
|
|
114
|
+
const withdrawLpEventsV2 = [];
|
|
105
115
|
const withdrawLiquidityEvents = [];
|
|
106
116
|
const sellYtEvents = [];
|
|
107
117
|
const marketCollectEmissionEvents = [];
|
|
118
|
+
const marketCollectEmissionEventsV2 = [];
|
|
108
119
|
const initLpPositionEvents = [];
|
|
109
120
|
const depositLpEvents = [];
|
|
121
|
+
const depositLpEventsV2 = [];
|
|
110
122
|
const depositLiquidityEvents = [];
|
|
111
123
|
const claimFarmEmissionsEvents = [];
|
|
124
|
+
const claimFarmEmissionsEventsV2 = [];
|
|
112
125
|
const buyYtEvents = [];
|
|
113
126
|
const wrapperBuyYtEvents = [];
|
|
114
127
|
const wrapperSellYtEvents = [];
|
|
@@ -136,24 +149,42 @@ function categorizeEvents(events) {
|
|
|
136
149
|
case "DepositYtEvent":
|
|
137
150
|
depositYtEvents.push(ev.data);
|
|
138
151
|
break;
|
|
152
|
+
case "DepositYtEventV2":
|
|
153
|
+
depositYtEventsV2.push(ev.data);
|
|
154
|
+
break;
|
|
139
155
|
case "WithdrawYtEvent":
|
|
140
156
|
withdrawYtEvents.push(ev.data);
|
|
141
157
|
break;
|
|
158
|
+
case "WithdrawYtEventV2":
|
|
159
|
+
withdrawYtEventsV2.push(ev.data);
|
|
160
|
+
break;
|
|
142
161
|
case "CollectInterestEvent":
|
|
143
162
|
collectInterestEvents.push(ev.data);
|
|
144
163
|
break;
|
|
164
|
+
case "CollectInterestEventV2":
|
|
165
|
+
collectInterestEventsV2.push(ev.data);
|
|
166
|
+
break;
|
|
145
167
|
case "CollectEmissionEvent":
|
|
146
168
|
collectEmissionEvents.push(ev.data);
|
|
147
169
|
break;
|
|
170
|
+
case "CollectEmissionEventV2":
|
|
171
|
+
collectEmissionEventsV2.push(ev.data);
|
|
172
|
+
break;
|
|
148
173
|
case "StageYieldEvent":
|
|
149
174
|
stageYieldEvents.push(ev.data);
|
|
150
175
|
break;
|
|
176
|
+
case "StageYieldEventV2":
|
|
177
|
+
stageYieldEventsV2.push(ev.data);
|
|
178
|
+
break;
|
|
151
179
|
case "InitializeYieldPositionEvent":
|
|
152
180
|
initializeYieldPositionEvents.push(ev.data);
|
|
153
181
|
break;
|
|
154
182
|
case "WithdrawLpEvent":
|
|
155
183
|
withdrawLpEvents.push(ev.data);
|
|
156
184
|
break;
|
|
185
|
+
case "WithdrawLpEventV2":
|
|
186
|
+
withdrawLpEventsV2.push(ev.data);
|
|
187
|
+
break;
|
|
157
188
|
case "WithdrawLiquidityEvent":
|
|
158
189
|
withdrawLiquidityEvents.push(ev.data);
|
|
159
190
|
break;
|
|
@@ -163,18 +194,27 @@ function categorizeEvents(events) {
|
|
|
163
194
|
case "MarketCollectEmissionEvent":
|
|
164
195
|
marketCollectEmissionEvents.push(ev.data);
|
|
165
196
|
break;
|
|
197
|
+
case "MarketCollectEmissionEventV2":
|
|
198
|
+
marketCollectEmissionEventsV2.push(ev.data);
|
|
199
|
+
break;
|
|
166
200
|
case "InitLpPositionEvent":
|
|
167
201
|
initLpPositionEvents.push(ev.data);
|
|
168
202
|
break;
|
|
169
203
|
case "DepositLpEvent":
|
|
170
204
|
depositLpEvents.push(ev.data);
|
|
171
205
|
break;
|
|
206
|
+
case "DepositLpEventV2":
|
|
207
|
+
depositLpEventsV2.push(ev.data);
|
|
208
|
+
break;
|
|
172
209
|
case "DepositLiquidityEvent":
|
|
173
210
|
depositLiquidityEvents.push(ev.data);
|
|
174
211
|
break;
|
|
175
212
|
case "ClaimFarmEmissionsEvent":
|
|
176
213
|
claimFarmEmissionsEvents.push(ev.data);
|
|
177
214
|
break;
|
|
215
|
+
case "ClaimFarmEmissionsEventV2":
|
|
216
|
+
claimFarmEmissionsEventsV2.push(ev.data);
|
|
217
|
+
break;
|
|
178
218
|
case "BuyYtEvent":
|
|
179
219
|
buyYtEvents.push(ev.data);
|
|
180
220
|
break;
|
|
@@ -221,19 +261,28 @@ function categorizeEvents(events) {
|
|
|
221
261
|
stripEvents,
|
|
222
262
|
mergeEvents,
|
|
223
263
|
depositYtEvents,
|
|
264
|
+
depositYtEventsV2,
|
|
224
265
|
withdrawYtEvents,
|
|
266
|
+
withdrawYtEventsV2,
|
|
225
267
|
collectInterestEvents,
|
|
268
|
+
collectInterestEventsV2,
|
|
226
269
|
collectEmissionEvents,
|
|
270
|
+
collectEmissionEventsV2,
|
|
227
271
|
stageYieldEvents,
|
|
272
|
+
stageYieldEventsV2,
|
|
228
273
|
initializeYieldPositionEvents,
|
|
229
274
|
withdrawLpEvents,
|
|
275
|
+
withdrawLpEventsV2,
|
|
230
276
|
withdrawLiquidityEvents,
|
|
231
277
|
sellYtEvents,
|
|
232
278
|
marketCollectEmissionEvents,
|
|
279
|
+
marketCollectEmissionEventsV2,
|
|
233
280
|
initLpPositionEvents,
|
|
234
281
|
depositLpEvents,
|
|
282
|
+
depositLpEventsV2,
|
|
235
283
|
depositLiquidityEvents,
|
|
236
284
|
claimFarmEmissionsEvents,
|
|
285
|
+
claimFarmEmissionsEventsV2,
|
|
237
286
|
buyYtEvents,
|
|
238
287
|
wrapperBuyYtEvents,
|
|
239
288
|
wrapperSellYtEvents,
|
package/build/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAwD;AACxD,gDAAuB;AAEvB,8DAA+D;AAG/D,MAAM,YAAY,GAAG,IAAI,WAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;AAEnD,MAAa,YAAY;IACf,KAAK,CAAY;IACzB,SAAS,CAAgB;IACjB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAwD;AACxD,gDAAuB;AAEvB,8DAA+D;AAG/D,MAAM,YAAY,GAAG,IAAI,WAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;AAEnD,MAAa,YAAY;IACf,KAAK,CAAY;IACzB,SAAS,CAAgB;IACjB,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5E,YAAY,MAAoB,kBAAmB;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,aAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAU,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAEO,yBAAyB,CAAC,OAA4B,EAAE,SAAgC;QAC9F,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACzG,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE/C,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;YAEtD,IAAI,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAChF,CAAC;YAED,8EAA8E;YAC9E,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,EAAE,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,OAA4B,EAAE,SAAgC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC/C,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,EAAE,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;YAC7C,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,cAAc,CAAC,YAAwC,EAAE,WAAoC;QAC3F,MAAM,MAAM,GAAG,YAAY;aACxB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACzD,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,aAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC7F,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;QACtC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAEvB,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,iCAAiC,CACrC,mBAAiF,EACjF,UAA2B;QAE3B,MAAM,iBAAiB,GAAoC,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAA;QAE7G,MAAM,mBAAmB,GAAG,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAA;QAExF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACvC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC7E,OAAO,WAAW,CAAA;QACpB,CAAC,CAAC,CACH,CAAA;QAED,MAAM,WAAW,GAAG,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;YAC1E,0BAA0B,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;SACvE,CAAC,CAAA;QAEF,MAAM,YAAY,GAA+B,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;QAEjH,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IACvD,CAAC;IAED,8CAA8C;IAC9C,6BAA6B,CAC3B,mBAAiF;QAEjF,oCAAoC;QACpC,MAAM,iBAAiB,GAAoC,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAA;QAE7G,MAAM,YAAY,GAA+B,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;QAEjH,MAAM,MAAM,GAAmB,YAAY;aACxC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,yGAAyG;YACzG,8DAA8D;YAC9D,MAAM,aAAa,GAAG,IAAI,aAAI,CAAC,SAAS,CAAE,EAAU,CAAC,SAAS,CAAC,CAAA;YAE/D,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YAElC,OAAO,KAAK,IAAI,IAAI,CAAA;QACtB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAEvB,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;;AA/GH,oCAgHC;AAQD,SAAS,gBAAgB,CAAC,MAAsB;IAC9C,MAAM,aAAa,GAAmB,EAAE,CAAA;IACxC,MAAM,WAAW,GAAiB,EAAE,CAAA;IACpC,MAAM,WAAW,GAAiB,EAAE,CAAA;IACpC,MAAM,eAAe,GAAqB,EAAE,CAAA;IAC5C,MAAM,iBAAiB,GAAuB,EAAE,CAAA;IAChD,MAAM,gBAAgB,GAAsB,EAAE,CAAA;IAC9C,MAAM,kBAAkB,GAAwB,EAAE,CAAA;IAClD,MAAM,qBAAqB,GAA2B,EAAE,CAAA;IACxD,MAAM,uBAAuB,GAA6B,EAAE,CAAA;IAC5D,MAAM,qBAAqB,GAA2B,EAAE,CAAA;IACxD,MAAM,uBAAuB,GAA6B,EAAE,CAAA;IAC5D,MAAM,gBAAgB,GAAsB,EAAE,CAAA;IAC9C,MAAM,kBAAkB,GAAwB,EAAE,CAAA;IAClD,MAAM,6BAA6B,GAAmC,EAAE,CAAA;IACxE,MAAM,gBAAgB,GAAsB,EAAE,CAAA;IAC9C,MAAM,kBAAkB,GAAwB,EAAE,CAAA;IAClD,MAAM,uBAAuB,GAA6B,EAAE,CAAA;IAC5D,MAAM,YAAY,GAAkB,EAAE,CAAA;IACtC,MAAM,2BAA2B,GAAiC,EAAE,CAAA;IACpE,MAAM,6BAA6B,GAAmC,EAAE,CAAA;IACxE,MAAM,oBAAoB,GAA0B,EAAE,CAAA;IACtD,MAAM,eAAe,GAAqB,EAAE,CAAA;IAC5C,MAAM,iBAAiB,GAAuB,EAAE,CAAA;IAChD,MAAM,sBAAsB,GAA4B,EAAE,CAAA;IAC1D,MAAM,wBAAwB,GAA8B,EAAE,CAAA;IAC9D,MAAM,0BAA0B,GAAgC,EAAE,CAAA;IAClE,MAAM,WAAW,GAAiB,EAAE,CAAA;IACpC,MAAM,kBAAkB,GAAwB,EAAE,CAAA;IAClD,MAAM,mBAAmB,GAAyB,EAAE,CAAA;IACpD,MAAM,YAAY,GAAkB,EAAE,CAAA;IACtC,MAAM,WAAW,GAAiB,EAAE,CAAA;IACpC,MAAM,6BAA6B,GAAmC,EAAE,CAAA;IACxE,MAAM,4BAA4B,GAAkC,EAAE,CAAA;IACtE,MAAM,8BAA8B,GAAoC,EAAE,CAAA;IAC1E,MAAM,qCAAqC,GAA2C,EAAE,CAAA;IACxF,MAAM,iCAAiC,GAAuC,EAAE,CAAA;IAChF,MAAM,oCAAoC,GAA0C,EAAE,CAAA;IACtF,MAAM,kBAAkB,GAAwB,EAAE,CAAA;IAClD,MAAM,kBAAkB,GAAwB,EAAE,CAAA;IAElD,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,cAAc;gBACjB,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAoB,CAAC,CAAA;gBAC3C,MAAK;YACP,KAAK,YAAY;gBACf,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAA;gBACvC,MAAK;YACP,KAAK,YAAY;gBACf,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAA;gBACvC,MAAK;YACP,KAAK,gBAAgB;gBACnB,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAsB,CAAC,CAAA;gBAC/C,MAAK;YACP,KAAK,kBAAkB;gBACrB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAwB,CAAC,CAAA;gBACnD,MAAK;YACP,KAAK,iBAAiB;gBACpB,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAuB,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,mBAAmB;gBACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAyB,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,sBAAsB;gBACzB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA4B,CAAC,CAAA;gBAC3D,MAAK;YACP,KAAK,wBAAwB;gBAC3B,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA8B,CAAC,CAAA;gBAC/D,MAAK;YACP,KAAK,sBAAsB;gBACzB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA4B,CAAC,CAAA;gBAC3D,MAAK;YACP,KAAK,wBAAwB;gBAC3B,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA8B,CAAC,CAAA;gBAC/D,MAAK;YACP,KAAK,iBAAiB;gBACpB,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAuB,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,mBAAmB;gBACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAyB,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,8BAA8B;gBACjC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAoC,CAAC,CAAA;gBAC3E,MAAK;YACP,KAAK,iBAAiB;gBACpB,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAuB,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,mBAAmB;gBACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAyB,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,wBAAwB;gBAC3B,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA8B,CAAC,CAAA;gBAC/D,MAAK;YACP,KAAK,aAAa;gBAChB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAmB,CAAC,CAAA;gBACzC,MAAK;YACP,KAAK,4BAA4B;gBAC/B,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkC,CAAC,CAAA;gBACvE,MAAK;YACP,KAAK,8BAA8B;gBACjC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAoC,CAAC,CAAA;gBAC3E,MAAK;YACP,KAAK,qBAAqB;gBACxB,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA2B,CAAC,CAAA;gBACzD,MAAK;YACP,KAAK,gBAAgB;gBACnB,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAsB,CAAC,CAAA;gBAC/C,MAAK;YACP,KAAK,kBAAkB;gBACrB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAwB,CAAC,CAAA;gBACnD,MAAK;YACP,KAAK,uBAAuB;gBAC1B,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA6B,CAAC,CAAA;gBAC7D,MAAK;YACP,KAAK,yBAAyB;gBAC5B,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA+B,CAAC,CAAA;gBACjE,MAAK;YACP,KAAK,2BAA2B;gBAC9B,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAiC,CAAC,CAAA;gBACrE,MAAK;YACP,KAAK,YAAY;gBACf,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAA;gBACvC,MAAK;YACP,KAAK,mBAAmB;gBACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAyB,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,oBAAoB;gBACvB,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA0B,CAAC,CAAA;gBACvD,MAAK;YACP,KAAK,aAAa;gBAChB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAmB,CAAC,CAAA;gBACzC,MAAK;YACP,KAAK,YAAY;gBACf,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAA;gBACvC,MAAK;YACP,KAAK,8BAA8B;gBACjC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAoC,CAAC,CAAA;gBAC3E,MAAK;YACP,KAAK,6BAA6B;gBAChC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAmC,CAAC,CAAA;gBACzE,MAAK;YACP,KAAK,+BAA+B;gBAClC,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAqC,CAAC,CAAA;gBAC7E,MAAK;YACP,KAAK,sCAAsC;gBACzC,qCAAqC,CAAC,IAAI,CAAC,EAAE,CAAC,IAA4C,CAAC,CAAA;gBAC3F,MAAK;YACP,KAAK,kCAAkC;gBACrC,iCAAiC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAwC,CAAC,CAAA;gBACnF,MAAK;YACP,KAAK,qCAAqC;gBACxC,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAC,IAA2C,CAAC,CAAA;gBACzF,MAAK;YACP,KAAK,mBAAmB;gBACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAyB,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,mBAAmB;gBACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAyB,CAAC,CAAA;gBACrD,MAAK;QACT,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa;QACb,WAAW;QACX,WAAW;QACX,eAAe;QACf,iBAAiB;QACjB,gBAAgB;QAChB,kBAAkB;QAClB,qBAAqB;QACrB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,gBAAgB;QAChB,kBAAkB;QAClB,6BAA6B;QAC7B,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,YAAY;QACZ,2BAA2B;QAC3B,6BAA6B;QAC7B,oBAAoB;QACpB,eAAe;QACf,iBAAiB;QACjB,sBAAsB;QACtB,wBAAwB;QACxB,0BAA0B;QAC1B,WAAW;QACX,kBAAkB;QAClB,mBAAmB;QACnB,YAAY;QACZ,WAAW;QACX,6BAA6B;QAC7B,4BAA4B;QAC5B,8BAA8B;QAC9B,qCAAqC;QACrC,iCAAiC;QACjC,oCAAoC;QACpC,kBAAkB;QAClB,kBAAkB;KACnB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IdlTypes } from "@coral-xyz/anchor";
|
|
2
|
+
import { ExponentCore } from "@exponent-labs/exponent-idl";
|
|
3
|
+
import { EventDecoderV2 } from "./EventDecoderV2";
|
|
4
|
+
export declare const EXPONENT_PROGRAM_ID: string;
|
|
5
|
+
export declare const EXPONENT_EVENT_DECODER: EventDecoderV2<ExponentCore>;
|
|
6
|
+
export type ExponentCoreEventNames = ExponentCore["events"][number]["name"];
|
|
7
|
+
export type ExponentCoreEvent<Name extends ExponentCoreEventNames> = IdlTypes<ExponentCore>[Name];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXPONENT_EVENT_DECODER = exports.EXPONENT_PROGRAM_ID = void 0;
|
|
4
|
+
const exponent_idl_1 = require("@exponent-labs/exponent-idl");
|
|
5
|
+
const EventDecoderV2_1 = require("./EventDecoderV2");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
exports.EXPONENT_PROGRAM_ID = exponent_idl_1.PROGRAM_ID;
|
|
8
|
+
const EXPONENT_PROGRAM = (0, utils_1.createAnchorProgram)(exponent_idl_1.IDL);
|
|
9
|
+
exports.EXPONENT_EVENT_DECODER = new EventDecoderV2_1.EventDecoderV2(EXPONENT_PROGRAM);
|
|
10
|
+
//# sourceMappingURL=eventsV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventsV2.js","sourceRoot":"","sources":["../src/eventsV2.ts"],"names":[],"mappings":";;;AAEA,8DAA2E;AAE3E,qDAAiD;AACjD,mCAA6C;AAEhC,QAAA,mBAAmB,GAAG,yBAAU,CAAA;AAC7C,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,EAAC,kBAAmB,CAAC,CAAA;AACpD,QAAA,sBAAsB,GAAG,IAAI,+BAAc,CAAC,gBAAgB,CAAC,CAAA"}
|
package/build/flavors.d.ts
CHANGED
|
@@ -26,3 +26,5 @@ export declare function makeFlavor(fetcher: ExponentFetcher, env: Environment,
|
|
|
26
26
|
syProgram: web3.PublicKey, cpiAccounts: CpiAccountsRaw, syConfig?: {
|
|
27
27
|
skipWrap?: boolean;
|
|
28
28
|
}): Promise<Flavor>;
|
|
29
|
+
export declare function serializeFlavor(flavor: Flavor): FlavorMarginfiStateJson | FlavorKaminoStateJson | FlavorJitoRestakingStateJson | FlavorPerenaStateJson | FlavorGenericStateJson;
|
|
30
|
+
export declare function deserializeFlavor(flavor: FlavorMarginfiStateJson | FlavorKaminoStateJson | FlavorJitoRestakingStateJson | FlavorPerenaStateJson | FlavorGenericStateJson): Flavor;
|
package/build/flavors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeFlavor = exports.flavorFinder = exports.makeFlavorGenericSync = exports.makeFlavorPerenaSync = exports.makeFlavorJitoRestakingSync = exports.makeFlavorKaminoSync = exports.makeFlavorMarginfiSync = exports.deserializeFlavorGeneric = exports.deserializeFlavorPerena = exports.serializeFlavorGeneric = exports.serializeFlavorPerena = exports.deserializeFlavorJitoRestaking = exports.serializeFlavorJitoRestaking = exports.deserializeFlavorKamino = exports.serializeFlavorKamino = exports.deserializeFlavorMarginfi = exports.serializeFlavorMarginfi = void 0;
|
|
3
|
+
exports.deserializeFlavor = exports.serializeFlavor = exports.makeFlavor = exports.flavorFinder = exports.makeFlavorGenericSync = exports.makeFlavorPerenaSync = exports.makeFlavorJitoRestakingSync = exports.makeFlavorKaminoSync = exports.makeFlavorMarginfiSync = exports.deserializeFlavorGeneric = exports.deserializeFlavorPerena = exports.serializeFlavorGeneric = exports.serializeFlavorPerena = exports.deserializeFlavorJitoRestaking = exports.serializeFlavorJitoRestaking = exports.deserializeFlavorKamino = exports.serializeFlavorKamino = exports.deserializeFlavorMarginfi = exports.serializeFlavorMarginfi = void 0;
|
|
4
4
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
5
5
|
const exponent_fetcher_1 = require("@exponent-labs/exponent-fetcher");
|
|
6
6
|
const exponent_types_1 = require("@exponent-labs/exponent-types");
|
|
@@ -66,7 +66,7 @@ function deserializeFlavorMarginfi(flavor) {
|
|
|
66
66
|
mintBase: new anchor_1.web3.PublicKey(flavor.mintBase),
|
|
67
67
|
baseTokenProgram: new anchor_1.web3.PublicKey(flavor.baseTokenProgram),
|
|
68
68
|
emissions: flavor.emissions.map((e) => ({
|
|
69
|
-
exchangeRate:
|
|
69
|
+
exchangeRate: new precise_number_1.PreciseNumber(e.exchangeRate.toString()).anchorify(),
|
|
70
70
|
mint: new anchor_1.web3.PublicKey(e.mint),
|
|
71
71
|
tokenProgram: new anchor_1.web3.PublicKey(e.tokenProgram),
|
|
72
72
|
})),
|
|
@@ -97,8 +97,8 @@ function deserializeFlavorMarginfi(flavor) {
|
|
|
97
97
|
mint: new anchor_1.web3.PublicKey(emission.mint),
|
|
98
98
|
tokenProgram: new anchor_1.web3.PublicKey(emission.tokenProgram),
|
|
99
99
|
escrowAccount: new anchor_1.web3.PublicKey(emission.escrowAccount),
|
|
100
|
-
index:
|
|
101
|
-
lastSeenIndex:
|
|
100
|
+
index: new precise_number_1.PreciseNumber(emission.index.toString()).anchorify(),
|
|
101
|
+
lastSeenIndex: new precise_number_1.PreciseNumber(emission.lastSeenIndex.toString()).anchorify(),
|
|
102
102
|
lastSeenTotalAccruedEmissions: new anchor_1.BN(emission.lastSeenTotalAccruedEmissions),
|
|
103
103
|
totalClaimedEmissions: new anchor_1.BN(emission.totalClaimedEmissions),
|
|
104
104
|
treasuryEmission: new anchor_1.BN(emission.treasuryEmission),
|
|
@@ -127,6 +127,7 @@ function serializeFlavorKamino(flavor) {
|
|
|
127
127
|
tokenProgramBase: flavor.kaminoSyState.tokenProgramBase.toString(),
|
|
128
128
|
klendProgramId: flavor.kaminoSyState.klendProgramId.toString(),
|
|
129
129
|
klendMarketId: flavor.kaminoSyState.klendMarketId.toString(),
|
|
130
|
+
scopePriceFeed: flavor.kaminoSyState.scopePriceFeed?.toString(),
|
|
130
131
|
account: {
|
|
131
132
|
kaminoReserve: flavor.kaminoSyState.account.kaminoReserve.toString(),
|
|
132
133
|
kaminoObligation: flavor.kaminoSyState.account.kaminoObligation.toString(),
|
|
@@ -160,7 +161,7 @@ function deserializeFlavorKamino(flavor) {
|
|
|
160
161
|
mintBase: new anchor_1.web3.PublicKey(flavor.mintBase),
|
|
161
162
|
baseTokenProgram: new anchor_1.web3.PublicKey(flavor.baseTokenProgram),
|
|
162
163
|
emissions: flavor.emissions.map((e) => ({
|
|
163
|
-
exchangeRate:
|
|
164
|
+
exchangeRate: new precise_number_1.PreciseNumber(e.exchangeRate.toString()).anchorify(),
|
|
164
165
|
mint: new anchor_1.web3.PublicKey(e.mint),
|
|
165
166
|
tokenProgram: new anchor_1.web3.PublicKey(e.tokenProgram),
|
|
166
167
|
})),
|
|
@@ -172,6 +173,9 @@ function deserializeFlavorKamino(flavor) {
|
|
|
172
173
|
tokenProgramBase: new anchor_1.web3.PublicKey(flavor.kaminoSyState.tokenProgramBase),
|
|
173
174
|
klendProgramId: new anchor_1.web3.PublicKey(flavor.kaminoSyState.klendProgramId),
|
|
174
175
|
klendMarketId: new anchor_1.web3.PublicKey(flavor.kaminoSyState.klendMarketId),
|
|
176
|
+
scopePriceFeed: flavor.kaminoSyState.scopePriceFeed
|
|
177
|
+
? new anchor_1.web3.PublicKey(flavor.kaminoSyState.scopePriceFeed)
|
|
178
|
+
: undefined,
|
|
175
179
|
account: {
|
|
176
180
|
kaminoReserve: new anchor_1.web3.PublicKey(flavor.kaminoSyState.account.kaminoReserve),
|
|
177
181
|
kaminoObligation: new anchor_1.web3.PublicKey(flavor.kaminoSyState.account.kaminoObligation),
|
|
@@ -187,8 +191,8 @@ function deserializeFlavorKamino(flavor) {
|
|
|
187
191
|
mint: new anchor_1.web3.PublicKey(emission.mint),
|
|
188
192
|
tokenProgram: new anchor_1.web3.PublicKey(emission.tokenProgram),
|
|
189
193
|
escrowAccount: new anchor_1.web3.PublicKey(emission.escrowAccount),
|
|
190
|
-
index:
|
|
191
|
-
lastSeenIndex:
|
|
194
|
+
index: new precise_number_1.PreciseNumber(emission.index.toString()).anchorify(),
|
|
195
|
+
lastSeenIndex: new precise_number_1.PreciseNumber(emission.lastSeenIndex.toString()).anchorify(),
|
|
192
196
|
lastSeenTotalAccruedEmissions: new anchor_1.BN(emission.lastSeenTotalAccruedEmissions),
|
|
193
197
|
totalClaimedEmissions: new anchor_1.BN(emission.totalClaimedEmissions),
|
|
194
198
|
treasuryEmission: new anchor_1.BN(emission.treasuryEmission),
|
|
@@ -246,7 +250,7 @@ function deserializeFlavorJitoRestaking(flavor) {
|
|
|
246
250
|
mintBase: new anchor_1.web3.PublicKey(flavor.mintBase),
|
|
247
251
|
baseTokenProgram: new anchor_1.web3.PublicKey(flavor.baseTokenProgram),
|
|
248
252
|
emissions: flavor.emissions.map((e) => ({
|
|
249
|
-
exchangeRate:
|
|
253
|
+
exchangeRate: new precise_number_1.PreciseNumber(e.exchangeRate.toString()).anchorify(),
|
|
250
254
|
mint: new anchor_1.web3.PublicKey(e.mint),
|
|
251
255
|
tokenProgram: new anchor_1.web3.PublicKey(e.tokenProgram),
|
|
252
256
|
})),
|
|
@@ -269,8 +273,8 @@ function deserializeFlavorJitoRestaking(flavor) {
|
|
|
269
273
|
mint: new anchor_1.web3.PublicKey(emission.mint),
|
|
270
274
|
tokenProgram: new anchor_1.web3.PublicKey(emission.tokenProgram),
|
|
271
275
|
escrowAccount: new anchor_1.web3.PublicKey(emission.escrowAccount),
|
|
272
|
-
index:
|
|
273
|
-
lastSeenIndex:
|
|
276
|
+
index: new precise_number_1.PreciseNumber(emission.index.toString()).anchorify(),
|
|
277
|
+
lastSeenIndex: new precise_number_1.PreciseNumber(emission.lastSeenIndex.toString()).anchorify(),
|
|
274
278
|
lastSeenTotalAccruedEmissions: new anchor_1.BN(emission.lastSeenTotalAccruedEmissions),
|
|
275
279
|
totalClaimedEmissions: new anchor_1.BN(emission.totalClaimedEmissions),
|
|
276
280
|
treasuryEmission: new anchor_1.BN(emission.treasuryEmission),
|
|
@@ -335,6 +339,9 @@ function serializeFlavorGeneric(flavor) {
|
|
|
335
339
|
selfAddress: flavor.genericSyState.selfAddress.toString(),
|
|
336
340
|
syRate: flavor.genericSyState.syRate,
|
|
337
341
|
tokenProgramBase: flavor.genericSyState.tokenProgramBase.toString(),
|
|
342
|
+
additionalData: flavor.genericSyState.additionalData
|
|
343
|
+
? (0, exponent_types_1.toAdditionalDataGenericJson)(flavor.genericSyState.additionalData)
|
|
344
|
+
: undefined,
|
|
338
345
|
account: {
|
|
339
346
|
yieldBearingMint: flavor.genericSyState.account.yieldBearingMint.toString(),
|
|
340
347
|
mintSy: flavor.genericSyState.account.mintSy.toString(),
|
|
@@ -343,9 +350,11 @@ function serializeFlavorGeneric(flavor) {
|
|
|
343
350
|
minRedeemSize: flavor.genericSyState.account.minRedeemSize.toString(),
|
|
344
351
|
maxSySupply: flavor.genericSyState.account.maxSySupply.toString(),
|
|
345
352
|
hook: {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
353
|
+
enabled: flavor.genericSyState.account.hook.enabled,
|
|
354
|
+
interfaceEmissionsAccountsUntil: flavor.genericSyState.account.hook.interfaceEmissionsAccountsUntil,
|
|
355
|
+
programId: flavor.genericSyState.account.hook.programId.toString(),
|
|
356
|
+
preMintHookDiscriminator: flavor.genericSyState.account.hook.preMintHookDiscriminator,
|
|
357
|
+
postRedeemHookDiscriminator: flavor.genericSyState.account.hook.postRedeemHookDiscriminator,
|
|
349
358
|
},
|
|
350
359
|
emissions: flavor.genericSyState.account.emissions.map((e) => ({
|
|
351
360
|
mint: e.mint.toString(),
|
|
@@ -385,8 +394,8 @@ function deserializeFlavorPerena(flavor) {
|
|
|
385
394
|
mint: new anchor_1.web3.PublicKey(emission.mint),
|
|
386
395
|
tokenProgram: new anchor_1.web3.PublicKey(emission.tokenProgram),
|
|
387
396
|
escrowAccount: new anchor_1.web3.PublicKey(emission.escrowAccount),
|
|
388
|
-
index:
|
|
389
|
-
lastSeenIndex:
|
|
397
|
+
index: new precise_number_1.PreciseNumber(emission.index.toString()).anchorify(),
|
|
398
|
+
lastSeenIndex: new precise_number_1.PreciseNumber(emission.lastSeenIndex.toString()).anchorify(),
|
|
390
399
|
lastSeenTotalAccruedEmissions: new anchor_1.BN(emission.lastSeenTotalAccruedEmissions),
|
|
391
400
|
totalClaimedEmissions: new anchor_1.BN(emission.totalClaimedEmissions),
|
|
392
401
|
treasuryEmission: new anchor_1.BN(emission.treasuryEmission),
|
|
@@ -397,7 +406,7 @@ function deserializeFlavorPerena(flavor) {
|
|
|
397
406
|
tokenProgramBase: new anchor_1.web3.PublicKey(flavor.perenaSyState.tokenProgramBase),
|
|
398
407
|
},
|
|
399
408
|
emissions: flavor.emissions.map((e) => ({
|
|
400
|
-
exchangeRate:
|
|
409
|
+
exchangeRate: new precise_number_1.PreciseNumber(e.exchangeRate.toString()).anchorify(),
|
|
401
410
|
mint: new anchor_1.web3.PublicKey(e.mint),
|
|
402
411
|
tokenProgram: new anchor_1.web3.PublicKey(e.tokenProgram),
|
|
403
412
|
})),
|
|
@@ -411,7 +420,7 @@ function deserializeFlavorGeneric(flavor) {
|
|
|
411
420
|
mintBase: new anchor_1.web3.PublicKey(flavor.mintBase),
|
|
412
421
|
baseTokenProgram: new anchor_1.web3.PublicKey(flavor.baseTokenProgram),
|
|
413
422
|
emissions: flavor.emissions.map((e) => ({
|
|
414
|
-
exchangeRate:
|
|
423
|
+
exchangeRate: new precise_number_1.PreciseNumber(e.exchangeRate.toString()).anchorify(),
|
|
415
424
|
mint: new anchor_1.web3.PublicKey(e.mint),
|
|
416
425
|
tokenProgram: new anchor_1.web3.PublicKey(e.tokenProgram),
|
|
417
426
|
})),
|
|
@@ -419,6 +428,9 @@ function deserializeFlavorGeneric(flavor) {
|
|
|
419
428
|
selfAddress: new anchor_1.web3.PublicKey(flavor.genericSyState.selfAddress),
|
|
420
429
|
syRate: flavor.genericSyState.syRate,
|
|
421
430
|
tokenProgramBase: new anchor_1.web3.PublicKey(flavor.genericSyState.tokenProgramBase),
|
|
431
|
+
additionalData: flavor.genericSyState.additionalData
|
|
432
|
+
? (0, exponent_types_1.fromAdditionalDataGenericJson)(flavor.genericSyState.additionalData)
|
|
433
|
+
: undefined,
|
|
422
434
|
account: {
|
|
423
435
|
mintSy: new anchor_1.web3.PublicKey(flavor.genericSyState.account.mintSy),
|
|
424
436
|
yieldBearingMint: new anchor_1.web3.PublicKey(flavor.genericSyState.account.yieldBearingMint),
|
|
@@ -439,13 +451,13 @@ function deserializeFlavorGeneric(flavor) {
|
|
|
439
451
|
mint: new anchor_1.web3.PublicKey(e.mint),
|
|
440
452
|
tokenProgram: new anchor_1.web3.PublicKey(e.tokenProgram),
|
|
441
453
|
escrowAccount: new anchor_1.web3.PublicKey(e.escrowAccount),
|
|
442
|
-
index:
|
|
443
|
-
lastSeenIndex:
|
|
454
|
+
index: new precise_number_1.PreciseNumber(e.index.toString()).anchorify(),
|
|
455
|
+
lastSeenIndex: new precise_number_1.PreciseNumber(e.lastSeenIndex.toString()).anchorify(),
|
|
444
456
|
lastSeenTotalAccruedEmissions: new anchor_1.BN(e.lastSeenTotalAccruedEmissions),
|
|
445
457
|
totalClaimedEmissions: new anchor_1.BN(e.totalClaimedEmissions),
|
|
446
458
|
treasuryEmission: new anchor_1.BN(e.treasuryEmission),
|
|
447
459
|
})),
|
|
448
|
-
index:
|
|
460
|
+
index: new precise_number_1.PreciseNumber(flavor.genericSyState.account.index.toString()).anchorify(),
|
|
449
461
|
},
|
|
450
462
|
},
|
|
451
463
|
};
|
|
@@ -513,19 +525,19 @@ function makeFlavorGenericSync(data, syConfig) {
|
|
|
513
525
|
}
|
|
514
526
|
exports.makeFlavorGenericSync = makeFlavorGenericSync;
|
|
515
527
|
function flavorFinder(env, syProgram) {
|
|
516
|
-
if (env.marginfiSyProgramId
|
|
528
|
+
if (env.marginfiSyProgramId?.equals(syProgram)) {
|
|
517
529
|
return "marginfi";
|
|
518
530
|
}
|
|
519
|
-
else if (env.kaminoSyProgramId
|
|
531
|
+
else if (env.kaminoSyProgramId?.equals(syProgram)) {
|
|
520
532
|
return "kamino";
|
|
521
533
|
}
|
|
522
|
-
else if (env.jitoRestakingSyProgramId
|
|
534
|
+
else if (env.jitoRestakingSyProgramId?.equals(syProgram)) {
|
|
523
535
|
return "jitoRestaking";
|
|
524
536
|
}
|
|
525
|
-
else if (env.perenaSyProgramId
|
|
537
|
+
else if (env.perenaSyProgramId?.equals(syProgram)) {
|
|
526
538
|
return "perena";
|
|
527
539
|
}
|
|
528
|
-
else if (env.genericSyProgramId
|
|
540
|
+
else if (env.genericSyProgramId?.equals(syProgram)) {
|
|
529
541
|
return "generic";
|
|
530
542
|
}
|
|
531
543
|
else {
|
|
@@ -600,6 +612,8 @@ async function makeKaminoFlavor(fetcher, kaminoSyProgramId, cpiAccounts) {
|
|
|
600
612
|
const reserveAcct = await (0, exponent_fetcher_1.fetchKaminoReserve)(reserve, fetcher.connection);
|
|
601
613
|
const mintBase = reserveAcct.baseMint;
|
|
602
614
|
// TODO - don't do this
|
|
615
|
+
// Type error: 'a' is possibly 'null'.
|
|
616
|
+
// @ts-ignore
|
|
603
617
|
const baseTokenProgram = await fetcher.connection.getAccountInfo(mintBase).then((a) => a.owner);
|
|
604
618
|
const pda = new kamino_sy_pda_1.KaminoSyPda(new anchor_1.web3.PublicKey(kamino_sy_idl_1.PROGRAM_ID));
|
|
605
619
|
const meta = pda.syMeta({ kaminoReserve: reserve });
|
|
@@ -688,6 +702,10 @@ async function makeGenericFlavor(fetcher, genericStandardProgramId, cpiAccounts,
|
|
|
688
702
|
syMetaAddress: genericSyMeta,
|
|
689
703
|
config: syConfig,
|
|
690
704
|
});
|
|
705
|
+
// @ts-ignore
|
|
706
|
+
const preIxs = [];
|
|
707
|
+
// @ts-ignore
|
|
708
|
+
const postIxs = [];
|
|
691
709
|
return {
|
|
692
710
|
flavor: "generic",
|
|
693
711
|
currentSyExchangeRate: sySdk.state.syRate,
|
|
@@ -695,8 +713,10 @@ async function makeGenericFlavor(fetcher, genericStandardProgramId, cpiAccounts,
|
|
|
695
713
|
baseTokenProgram: sySdk.tokenProgramBase,
|
|
696
714
|
ixMintSy: (args) => sySdk.ixMintSy(args),
|
|
697
715
|
ixRedeemSy: (args) => sySdk.ixRedeemSy(args),
|
|
698
|
-
|
|
699
|
-
|
|
716
|
+
// @ts-ignore
|
|
717
|
+
preIxs: async () => preIxs,
|
|
718
|
+
// @ts-ignore
|
|
719
|
+
postIxs: async () => postIxs,
|
|
700
720
|
genericSyState: sySdk.state,
|
|
701
721
|
emissions: sySdk.emissions.map((e) => ({
|
|
702
722
|
exchangeRate: e.index,
|
|
@@ -705,4 +725,38 @@ async function makeGenericFlavor(fetcher, genericStandardProgramId, cpiAccounts,
|
|
|
705
725
|
})),
|
|
706
726
|
};
|
|
707
727
|
}
|
|
728
|
+
function serializeFlavor(flavor) {
|
|
729
|
+
switch (flavor.flavor) {
|
|
730
|
+
case "marginfi":
|
|
731
|
+
return serializeFlavorMarginfi(flavor);
|
|
732
|
+
case "kamino":
|
|
733
|
+
return serializeFlavorKamino(flavor);
|
|
734
|
+
case "jitoRestaking":
|
|
735
|
+
return serializeFlavorJitoRestaking(flavor);
|
|
736
|
+
case "perena":
|
|
737
|
+
return serializeFlavorPerena(flavor);
|
|
738
|
+
case "generic":
|
|
739
|
+
return serializeFlavorGeneric(flavor);
|
|
740
|
+
default:
|
|
741
|
+
throw new Error(`Unsupported flavor for serialization: ${flavor.flavor}`);
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
exports.serializeFlavor = serializeFlavor;
|
|
745
|
+
function deserializeFlavor(flavor) {
|
|
746
|
+
switch (flavor.flavor) {
|
|
747
|
+
case "marginfi":
|
|
748
|
+
return makeFlavorMarginfiSync(deserializeFlavorMarginfi(flavor));
|
|
749
|
+
case "kamino":
|
|
750
|
+
return makeFlavorKaminoSync(deserializeFlavorKamino(flavor));
|
|
751
|
+
case "jitoRestaking":
|
|
752
|
+
return makeFlavorJitoRestakingSync(deserializeFlavorJitoRestaking(flavor));
|
|
753
|
+
case "perena":
|
|
754
|
+
return makeFlavorPerenaSync(deserializeFlavorPerena(flavor));
|
|
755
|
+
case "generic":
|
|
756
|
+
return makeFlavorGenericSync(deserializeFlavorGeneric(flavor));
|
|
757
|
+
default:
|
|
758
|
+
throw new Error(`Unsupported flavor for deserialization: ${flavor.flavor}`);
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
exports.deserializeFlavor = deserializeFlavor;
|
|
708
762
|
//# sourceMappingURL=flavors.js.map
|