@exponent-labs/exponent-sdk 0.1.7 → 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.
Files changed (92) hide show
  1. package/build/EventDecoderV2.d.ts +31 -0
  2. package/build/EventDecoderV2.js +76 -0
  3. package/build/EventDecoderV2.js.map +1 -0
  4. package/build/addressLookupTableUtil.d.ts +17 -1
  5. package/build/addressLookupTableUtil.js +35 -1
  6. package/build/addressLookupTableUtil.js.map +1 -1
  7. package/build/clmm/events.d.ts +10 -0
  8. package/build/clmm/events.js +10 -0
  9. package/build/clmm/events.js.map +1 -0
  10. package/build/clmm/index.d.ts +1 -0
  11. package/build/clmm/index.js +18 -0
  12. package/build/clmm/index.js.map +1 -0
  13. package/build/events.d.ts +200 -9
  14. package/build/events.js +73 -24
  15. package/build/events.js.map +1 -1
  16. package/build/eventsV2.d.ts +7 -0
  17. package/build/eventsV2.js +10 -0
  18. package/build/eventsV2.js.map +1 -0
  19. package/build/flavors.d.ts +2 -0
  20. package/build/flavors.js +81 -27
  21. package/build/flavors.js.map +1 -1
  22. package/build/index.d.ts +6 -0
  23. package/build/index.js +14 -4
  24. package/build/index.js.map +1 -1
  25. package/build/lpPosition.js +4 -1
  26. package/build/lpPosition.js.map +1 -1
  27. package/build/market.d.ts +14 -2
  28. package/build/market.js +70 -29
  29. package/build/market.js.map +1 -1
  30. package/build/marketThree.d.ts +664 -0
  31. package/build/marketThree.js +1415 -0
  32. package/build/marketThree.js.map +1 -0
  33. package/build/marketThree.test.d.ts +1 -0
  34. package/build/marketThree.test.js +166 -0
  35. package/build/marketThree.test.js.map +1 -0
  36. package/build/orderbook/events.d.ts +7 -0
  37. package/build/orderbook/events.js +10 -0
  38. package/build/orderbook/events.js.map +1 -0
  39. package/build/orderbook/index.d.ts +4 -0
  40. package/build/orderbook/index.js +41 -0
  41. package/build/orderbook/index.js.map +1 -0
  42. package/build/orderbook/math.d.ts +26 -0
  43. package/build/orderbook/math.js +111 -0
  44. package/build/orderbook/math.js.map +1 -0
  45. package/build/orderbook/orderbook.d.ts +175 -0
  46. package/build/orderbook/orderbook.js +756 -0
  47. package/build/orderbook/orderbook.js.map +1 -0
  48. package/build/orderbook/types.d.ts +49 -0
  49. package/build/orderbook/types.js +27 -0
  50. package/build/orderbook/types.js.map +1 -0
  51. package/build/orderbook/utils.d.ts +18 -0
  52. package/build/orderbook/utils.js +74 -0
  53. package/build/orderbook/utils.js.map +1 -0
  54. package/build/router.d.ts +92 -0
  55. package/build/router.js +214 -0
  56. package/build/router.js.map +1 -0
  57. package/build/syPosition.js +6 -0
  58. package/build/syPosition.js.map +1 -1
  59. package/build/utils/index.d.ts +3 -2
  60. package/build/utils/index.js +22 -1
  61. package/build/utils/index.js.map +1 -1
  62. package/build/vault.d.ts +3 -1
  63. package/build/vault.js +98 -62
  64. package/build/vault.js.map +1 -1
  65. package/build/ytPosition.d.ts +2 -0
  66. package/build/ytPosition.js +18 -5
  67. package/build/ytPosition.js.map +1 -1
  68. package/package.json +28 -23
  69. package/src/EventDecoderV2.ts +96 -0
  70. package/src/addressLookupTableUtil.ts +42 -1
  71. package/src/clmm/events.ts +17 -0
  72. package/src/clmm/index.ts +1 -0
  73. package/src/events.ts +280 -27
  74. package/src/eventsV2.ts +13 -0
  75. package/src/flavors.ts +97 -27
  76. package/src/index.ts +6 -0
  77. package/src/lpPosition.ts +5 -2
  78. package/src/market.ts +100 -31
  79. package/src/marketThree.test.ts +208 -0
  80. package/src/marketThree.ts +2430 -0
  81. package/src/orderbook/events.ts +13 -0
  82. package/src/orderbook/index.ts +12 -0
  83. package/src/orderbook/math.ts +122 -0
  84. package/src/orderbook/orderbook.ts +1153 -0
  85. package/src/orderbook/types.ts +45 -0
  86. package/src/orderbook/utils.ts +74 -0
  87. package/src/router.ts +360 -0
  88. package/src/syPosition.ts +4 -0
  89. package/src/utils/index.ts +27 -2
  90. package/src/vault.ts +100 -62
  91. package/src/ytPosition.ts +28 -7
  92. 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 eventIxTag = EVENT_IX_TAG;
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(log) {
19
+ parseAsTransactionCpiData(ixnData, errLogger) {
20
20
  try {
21
- const encodedLog = Buffer.from(bs58_1.default.decode(log));
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 = Uint8Array.from(EventDecoder.eventIxTag.toBuffer("le", 8));
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
- throw new Error("Discriminator not found");
27
+ // Not an event instruction - just a regular instruction from the same program
28
+ return null;
28
29
  }
29
30
  catch (error) {
30
- console.error("Unable tp parse transaction CPI data:", error);
31
+ errLogger?.("Unable to parse transaction CPI data:", error);
31
32
  return null;
32
33
  }
33
34
  }
34
- decode(log) {
35
- const cpiData = this.parseAsTransactionCpiData(log);
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
- console.error(`Failed to decode event:`, error);
48
+ errLogger?.(`Failed to decode event:`, error);
48
49
  return null;
49
50
  }
50
51
  }
51
- async parseCpiEvents(transactionResponse, connection) {
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
- const events = instructions
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,
@@ -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,UAAU,GAAG,YAAY,CAAA;IAExC,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;IAED,yBAAyB,CAAC,GAAW;QACnC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,cAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAChD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAEnF,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,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAA;QACnD,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,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,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,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,MAAM,WAAW,GAAG,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC1E,0BAA0B,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aACvE,CAAC,CAAA;YACF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;YACxD,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;IAED,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;;AA3GH,oCA4GC;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,gBAAgB,GAAsB,EAAE,CAAA;IAC9C,MAAM,qBAAqB,GAA2B,EAAE,CAAA;IACxD,MAAM,qBAAqB,GAA2B,EAAE,CAAA;IACxD,MAAM,gBAAgB,GAAsB,EAAE,CAAA;IAC9C,MAAM,6BAA6B,GAAmC,EAAE,CAAA;IACxE,MAAM,gBAAgB,GAAsB,EAAE,CAAA;IAC9C,MAAM,uBAAuB,GAA6B,EAAE,CAAA;IAC5D,MAAM,YAAY,GAAkB,EAAE,CAAA;IACtC,MAAM,2BAA2B,GAAiC,EAAE,CAAA;IACpE,MAAM,oBAAoB,GAA0B,EAAE,CAAA;IACtD,MAAM,eAAe,GAAqB,EAAE,CAAA;IAC5C,MAAM,sBAAsB,GAA4B,EAAE,CAAA;IAC1D,MAAM,wBAAwB,GAA8B,EAAE,CAAA;IAC9D,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,iBAAiB;gBACpB,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAuB,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,sBAAsB;gBACzB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA4B,CAAC,CAAA;gBAC3D,MAAK;YACP,KAAK,sBAAsB;gBACzB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,IAA4B,CAAC,CAAA;gBAC3D,MAAK;YACP,KAAK,iBAAiB;gBACpB,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAuB,CAAC,CAAA;gBACjD,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,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,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,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,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,gBAAgB;QAChB,qBAAqB;QACrB,qBAAqB;QACrB,gBAAgB;QAChB,6BAA6B;QAC7B,gBAAgB;QAChB,uBAAuB;QACvB,YAAY;QACZ,2BAA2B;QAC3B,oBAAoB;QACpB,eAAe;QACf,sBAAsB;QACtB,wBAAwB;QACxB,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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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: { 0: [new anchor_1.BN(precise_number_1.PreciseNumber.fromRaw([new anchor_1.BN(e.exchangeRate)]).valueString)] },
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: { 0: [new anchor_1.BN(emission.index)] },
101
- lastSeenIndex: { 0: [new anchor_1.BN(emission.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: { 0: [new anchor_1.BN(precise_number_1.PreciseNumber.fromRaw([new anchor_1.BN(e.exchangeRate)]).valueString)] },
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: { 0: [new anchor_1.BN(emission.index)] },
191
- lastSeenIndex: { 0: [new anchor_1.BN(emission.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: { 0: [new anchor_1.BN(precise_number_1.PreciseNumber.fromRaw([new anchor_1.BN(e.exchangeRate)]).valueString)] },
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: { 0: [new anchor_1.BN(emission.index)] },
273
- lastSeenIndex: { 0: [new anchor_1.BN(emission.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
- ...flavor.genericSyState.account.hook,
347
- preMintHookDiscriminator: Buffer.from(flavor.genericSyState.account.hook.preMintHookDiscriminator),
348
- postRedeemHookDiscriminator: Buffer.from(flavor.genericSyState.account.hook.postRedeemHookDiscriminator),
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: { 0: [new anchor_1.BN(emission.index)] },
389
- lastSeenIndex: { 0: [new anchor_1.BN(emission.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: { 0: [new anchor_1.BN(precise_number_1.PreciseNumber.fromRaw([new anchor_1.BN(e.exchangeRate)]).valueString)] },
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: { 0: [new anchor_1.BN(precise_number_1.PreciseNumber.fromRaw([new anchor_1.BN(e.exchangeRate)]).valueString)] },
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: { 0: [new anchor_1.BN(e.index)] },
443
- lastSeenIndex: { 0: [new anchor_1.BN(e.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: { 0: [new anchor_1.BN(flavor.genericSyState.account.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.equals(syProgram)) {
528
+ if (env.marginfiSyProgramId?.equals(syProgram)) {
517
529
  return "marginfi";
518
530
  }
519
- else if (env.kaminoSyProgramId.equals(syProgram)) {
531
+ else if (env.kaminoSyProgramId?.equals(syProgram)) {
520
532
  return "kamino";
521
533
  }
522
- else if (env.jitoRestakingSyProgramId.equals(syProgram)) {
534
+ else if (env.jitoRestakingSyProgramId?.equals(syProgram)) {
523
535
  return "jitoRestaking";
524
536
  }
525
- else if (env.perenaSyProgramId.equals(syProgram)) {
537
+ else if (env.perenaSyProgramId?.equals(syProgram)) {
526
538
  return "perena";
527
539
  }
528
- else if (env.genericSyProgramId.equals(syProgram)) {
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
- preIxs: async () => [],
699
- postIxs: async () => [],
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