@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.
- 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
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Program as AnchorProgram, Idl, web3 } from "@coral-xyz/anchor";
|
|
2
|
+
export type GenericEvent = {
|
|
3
|
+
name: string;
|
|
4
|
+
data: unknown;
|
|
5
|
+
};
|
|
6
|
+
type OnErrorHandler = (error: Error) => void | Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Works with any anchor idl
|
|
9
|
+
* Provides only one method: parseEvents which takes instructions and accountKeys and returns GenericEvent[]
|
|
10
|
+
* GenericEvent: {name: string, data: unknown }
|
|
11
|
+
* Can determine only events from the provided idl
|
|
12
|
+
*/
|
|
13
|
+
export declare class EventDecoderV2<IdlType extends Idl> {
|
|
14
|
+
private program;
|
|
15
|
+
private static eventIxTagBuffer;
|
|
16
|
+
private onError?;
|
|
17
|
+
constructor(program: AnchorProgram<IdlType>, params?: {
|
|
18
|
+
onError?: OnErrorHandler;
|
|
19
|
+
});
|
|
20
|
+
private getEventDataFromIxn;
|
|
21
|
+
private parseEvent;
|
|
22
|
+
static ixnHasProgramId(instruction: web3.CompiledInstruction, accountKeys: web3.MessageAccountKeys, programId: web3.PublicKey): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Function to check if transaction contains instruction with given programId
|
|
25
|
+
* As decoding events from transaction is very performance-intensive operation,
|
|
26
|
+
* we need to filter first and then apply only necessary event decoder(s)
|
|
27
|
+
*/
|
|
28
|
+
static txnHasProgramId(instructions: web3.CompiledInstruction[], accountKeys: web3.MessageAccountKeys, programId: web3.PublicKey): boolean;
|
|
29
|
+
parseEvents(instructions: web3.CompiledInstruction[], accountKeys: web3.MessageAccountKeys): GenericEvent[];
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EventDecoderV2 = void 0;
|
|
7
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
8
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
9
|
+
const EVENT_IX_TAG = new anchor_1.BN("1d9acb512ea545e4", 16);
|
|
10
|
+
/**
|
|
11
|
+
* Works with any anchor idl
|
|
12
|
+
* Provides only one method: parseEvents which takes instructions and accountKeys and returns GenericEvent[]
|
|
13
|
+
* GenericEvent: {name: string, data: unknown }
|
|
14
|
+
* Can determine only events from the provided idl
|
|
15
|
+
*/
|
|
16
|
+
class EventDecoderV2 {
|
|
17
|
+
program;
|
|
18
|
+
static eventIxTagBuffer = Buffer.from(EVENT_IX_TAG.toArray("le", 8));
|
|
19
|
+
onError;
|
|
20
|
+
constructor(program, params) {
|
|
21
|
+
this.program = program;
|
|
22
|
+
this.onError = params?.onError;
|
|
23
|
+
}
|
|
24
|
+
getEventDataFromIxn(ixnData, ixnIdx) {
|
|
25
|
+
const encodedLog = typeof ixnData === "string" ? Buffer.from(bs58_1.default.decode(ixnData)) : Buffer.from(ixnData);
|
|
26
|
+
const discriminator = encodedLog.subarray(0, 8);
|
|
27
|
+
if (discriminator.equals(EventDecoderV2.eventIxTagBuffer)) {
|
|
28
|
+
return Buffer.from(Uint8Array.from(encodedLog.subarray(8))).toString("base64");
|
|
29
|
+
}
|
|
30
|
+
throw new Error("Discriminator not found", { cause: { ixnData, instructionIndex: ixnIdx } });
|
|
31
|
+
}
|
|
32
|
+
parseEvent(ixnData, ixnIdx) {
|
|
33
|
+
try {
|
|
34
|
+
const eventData = this.getEventDataFromIxn(ixnData, ixnIdx);
|
|
35
|
+
const event = this.program.coder.events.decode(eventData);
|
|
36
|
+
return {
|
|
37
|
+
name: event.name,
|
|
38
|
+
data: event.data,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.onError?.(error);
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
static ixnHasProgramId(instruction, accountKeys, programId) {
|
|
47
|
+
const programPubkey = accountKeys.get(instruction.programIdIndex);
|
|
48
|
+
if (!!programPubkey && programPubkey.equals(programId)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Function to check if transaction contains instruction with given programId
|
|
55
|
+
* As decoding events from transaction is very performance-intensive operation,
|
|
56
|
+
* we need to filter first and then apply only necessary event decoder(s)
|
|
57
|
+
*/
|
|
58
|
+
static txnHasProgramId(instructions, accountKeys, programId) {
|
|
59
|
+
return instructions.some((ixn) => {
|
|
60
|
+
return EventDecoderV2.ixnHasProgramId(ixn, accountKeys, new anchor_1.web3.PublicKey(programId));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
parseEvents(instructions, accountKeys) {
|
|
64
|
+
const events = instructions
|
|
65
|
+
.map((ixn, ixnIdx) => {
|
|
66
|
+
if (EventDecoderV2.ixnHasProgramId(ixn, accountKeys, this.program.programId)) {
|
|
67
|
+
return this.parseEvent(ixn.data, ixnIdx) || null;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
})
|
|
71
|
+
.filter((ev) => !!ev);
|
|
72
|
+
return events;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.EventDecoderV2 = EventDecoderV2;
|
|
76
|
+
//# sourceMappingURL=EventDecoderV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDecoderV2.js","sourceRoot":"","sources":["../src/EventDecoderV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { web3 } from "@coral-xyz/anchor";
|
|
2
|
-
import { CpiAccountIndexes } from "@exponent-labs/exponent-types";
|
|
2
|
+
import { CpiAccountIndexes, ExponentCoreCpiIndexes, MarketCpiCoreIndexes } from "@exponent-labs/exponent-types";
|
|
3
3
|
/** Fetch and deserialize the ALT */
|
|
4
4
|
export declare function fetchAddressLookupTable(connection: web3.Connection, address: web3.PublicKey): Promise<web3.PublicKey[]>;
|
|
5
5
|
/** Create the CPI accounts lists from the Address Lookup Table and the on-chain stored CPI account indexes */
|
|
@@ -10,3 +10,19 @@ export declare function makeCpiAccountMetaLists(altAddresses: web3.PublicKey[],
|
|
|
10
10
|
claimEmission: web3.AccountMeta[][];
|
|
11
11
|
getPositionState: web3.AccountMeta[];
|
|
12
12
|
};
|
|
13
|
+
/** Create the CPI accounts lists from the Address Lookup Table and the on-chain stored CPI account indexes (for Orderbook/full core CPI) */
|
|
14
|
+
export declare function makeCoreCpiAccountMetaLists(altAddresses: web3.PublicKey[], cpiIndexes: ExponentCoreCpiIndexes): {
|
|
15
|
+
depositYt: web3.AccountMeta[];
|
|
16
|
+
withdrawYt: web3.AccountMeta[];
|
|
17
|
+
stripSy: web3.AccountMeta[];
|
|
18
|
+
mergeSy: web3.AccountMeta[];
|
|
19
|
+
collectInterest: web3.AccountMeta[];
|
|
20
|
+
};
|
|
21
|
+
/** Create the CPI accounts lists from the Address Lookup Table for MarketThree (only stripSy and mergeSy, others empty) */
|
|
22
|
+
export declare function makeMarketCoreCpiAccountMetaLists(altAddresses: web3.PublicKey[], cpiIndexes: MarketCpiCoreIndexes): {
|
|
23
|
+
depositYt: any[];
|
|
24
|
+
withdrawYt: any[];
|
|
25
|
+
stripSy: web3.AccountMeta[];
|
|
26
|
+
mergeSy: web3.AccountMeta[];
|
|
27
|
+
collectInterest: any[];
|
|
28
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeCpiAccountMetaLists = exports.fetchAddressLookupTable = void 0;
|
|
3
|
+
exports.makeMarketCoreCpiAccountMetaLists = exports.makeCoreCpiAccountMetaLists = exports.makeCpiAccountMetaLists = exports.fetchAddressLookupTable = void 0;
|
|
4
4
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
5
5
|
/** Fetch and deserialize the ALT */
|
|
6
6
|
async function fetchAddressLookupTable(connection, address) {
|
|
@@ -29,4 +29,38 @@ function makeCpiAccountMetaLists(altAddresses, cpiIndexes) {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
exports.makeCpiAccountMetaLists = makeCpiAccountMetaLists;
|
|
32
|
+
/** Create the CPI accounts lists from the Address Lookup Table and the on-chain stored CPI account indexes (for Orderbook/full core CPI) */
|
|
33
|
+
function makeCoreCpiAccountMetaLists(altAddresses, cpiIndexes) {
|
|
34
|
+
const pluckAddress = (index) => altAddresses[index];
|
|
35
|
+
const transform = (a) => ({
|
|
36
|
+
isSigner: false,
|
|
37
|
+
isWritable: a.isWritable,
|
|
38
|
+
pubkey: pluckAddress(a.altIndex),
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
depositYt: cpiIndexes.depositYt.map(transform),
|
|
42
|
+
withdrawYt: cpiIndexes.withdrawYt.map(transform),
|
|
43
|
+
stripSy: cpiIndexes.stripSy.map(transform),
|
|
44
|
+
mergeSy: cpiIndexes.mergeSy.map(transform),
|
|
45
|
+
collectInterest: cpiIndexes.collectInterest.map(transform),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
exports.makeCoreCpiAccountMetaLists = makeCoreCpiAccountMetaLists;
|
|
49
|
+
/** Create the CPI accounts lists from the Address Lookup Table for MarketThree (only stripSy and mergeSy, others empty) */
|
|
50
|
+
function makeMarketCoreCpiAccountMetaLists(altAddresses, cpiIndexes) {
|
|
51
|
+
const pluckAddress = (index) => altAddresses[index];
|
|
52
|
+
const transform = (a) => ({
|
|
53
|
+
isSigner: false,
|
|
54
|
+
isWritable: a.isWritable,
|
|
55
|
+
pubkey: pluckAddress(a.altIndex),
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
depositYt: [],
|
|
59
|
+
withdrawYt: [],
|
|
60
|
+
stripSy: cpiIndexes.stripSy.map(transform),
|
|
61
|
+
mergeSy: cpiIndexes.mergeSy.map(transform),
|
|
62
|
+
collectInterest: [],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
exports.makeMarketCoreCpiAccountMetaLists = makeMarketCoreCpiAccountMetaLists;
|
|
32
66
|
//# sourceMappingURL=addressLookupTableUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressLookupTableUtil.js","sourceRoot":"","sources":["../src/addressLookupTableUtil.ts"],"names":[],"mappings":";;;AAAA,8CAAwC;
|
|
1
|
+
{"version":3,"file":"addressLookupTableUtil.js","sourceRoot":"","sources":["../src/addressLookupTableUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IdlTypes } from "@coral-xyz/anchor";
|
|
2
|
+
import { ExponentClmm } from "@exponent-labs/exponent-clmm-idl";
|
|
3
|
+
import { EventDecoderV2 } from "../EventDecoderV2";
|
|
4
|
+
export declare const CLMM_PROGRAM_ID: string;
|
|
5
|
+
export declare const CLMM_EVENT_DECODER: EventDecoderV2<ExponentClmm>;
|
|
6
|
+
export type ClmmEventNames = ExponentClmm["events"][number]["name"];
|
|
7
|
+
export type ClmmEvent<Name extends ClmmEventNames> = IdlTypes<ExponentClmm>[Name];
|
|
8
|
+
export type PersonalYieldTrackers = IdlTypes<ExponentClmm>["personalYieldTrackers"];
|
|
9
|
+
export type PrincipalShare = IdlTypes<ExponentClmm>["principalShare"];
|
|
10
|
+
export type PrincipalShareTrackers = IdlTypes<ExponentClmm>["principalShareTrackers"];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CLMM_EVENT_DECODER = exports.CLMM_PROGRAM_ID = void 0;
|
|
4
|
+
const exponent_clmm_idl_1 = require("@exponent-labs/exponent-clmm-idl");
|
|
5
|
+
const EventDecoderV2_1 = require("../EventDecoderV2");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
exports.CLMM_PROGRAM_ID = exponent_clmm_idl_1.PROGRAM_ID;
|
|
8
|
+
const CLMM_PROGRAM = (0, utils_1.createAnchorProgram)(exponent_clmm_idl_1.IDL);
|
|
9
|
+
exports.CLMM_EVENT_DECODER = new EventDecoderV2_1.EventDecoderV2(CLMM_PROGRAM);
|
|
10
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/clmm/events.ts"],"names":[],"mappings":";;;AAEA,wEAAgF;AAEhF,sDAAkD;AAClD,oCAA8C;AAEjC,QAAA,eAAe,GAAG,8BAAU,CAAA;AACzC,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC,uBAAmB,CAAC,CAAA;AAChD,QAAA,kBAAkB,GAAG,IAAI,+BAAc,CAAC,YAAY,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./events";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./events"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clmm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
package/build/events.d.ts
CHANGED
|
@@ -5,35 +5,41 @@ import { AnchorizedPNum } from "@exponent-labs/exponent-types";
|
|
|
5
5
|
export declare class EventDecoder {
|
|
6
6
|
private coder;
|
|
7
7
|
programId: web3.PublicKey;
|
|
8
|
-
private static
|
|
8
|
+
private static eventIxTagBuffer;
|
|
9
9
|
constructor(idl?: ExponentCore);
|
|
10
|
-
parseAsTransactionCpiData
|
|
11
|
-
decode
|
|
12
|
-
parseCpiEvents(
|
|
10
|
+
private parseAsTransactionCpiData;
|
|
11
|
+
private decode;
|
|
12
|
+
parseCpiEvents(instructions: web3.CompiledInstruction[], accountKeys: web3.MessageAccountKeys): CategorizedEvents;
|
|
13
|
+
parseTransactionResponseCpiEvents(transactionResponse: web3.VersionedTransactionResponse | web3.TransactionResponse, connection: web3.Connection): Promise<CategorizedEvents>;
|
|
13
14
|
parseHeliusWebsocketCpiEvents(transactionResponse: web3.VersionedTransactionResponse | web3.TransactionResponse): CategorizedEvents;
|
|
14
15
|
}
|
|
15
|
-
interface GenericEvent {
|
|
16
|
-
name: string;
|
|
17
|
-
data: any;
|
|
18
|
-
}
|
|
19
16
|
export interface CategorizedEvents {
|
|
20
17
|
tradePtEvents: TradePtEvent[];
|
|
21
18
|
stripEvents: StripEvent[];
|
|
22
19
|
mergeEvents: MergeEvent[];
|
|
23
20
|
depositYtEvents: DepositYtEvent[];
|
|
21
|
+
depositYtEventsV2: DepositYtEventV2[];
|
|
24
22
|
withdrawYtEvents: WithdrawYtEvent[];
|
|
23
|
+
withdrawYtEventsV2: WithdrawYtEventV2[];
|
|
25
24
|
collectInterestEvents: CollectInterestEvent[];
|
|
25
|
+
collectInterestEventsV2: CollectInterestEventV2[];
|
|
26
26
|
collectEmissionEvents: CollectEmissionEvent[];
|
|
27
|
+
collectEmissionEventsV2: CollectEmissionEventV2[];
|
|
27
28
|
stageYieldEvents: StageYieldEvent[];
|
|
29
|
+
stageYieldEventsV2: StageYieldEventV2[];
|
|
28
30
|
initializeYieldPositionEvents: InitializeYieldPositionEvent[];
|
|
29
31
|
withdrawLpEvents: WithdrawLpEvent[];
|
|
32
|
+
withdrawLpEventsV2: WithdrawLpEventV2[];
|
|
30
33
|
withdrawLiquidityEvents: WithdrawLiquidityEvent[];
|
|
31
34
|
sellYtEvents: SellYtEvent[];
|
|
32
35
|
marketCollectEmissionEvents: MarketCollectEmissionEvent[];
|
|
36
|
+
marketCollectEmissionEventsV2: MarketCollectEmissionEventV2[];
|
|
33
37
|
initLpPositionEvents: InitLpPositionEvent[];
|
|
34
38
|
depositLpEvents: DepositLpEvent[];
|
|
39
|
+
depositLpEventsV2: DepositLpEventV2[];
|
|
35
40
|
depositLiquidityEvents: DepositLiquidityEvent[];
|
|
36
41
|
claimFarmEmissionsEvents: ClaimFarmEmissionsEvent[];
|
|
42
|
+
claimFarmEmissionsEventsV2: ClaimFarmEmissionsEventV2[];
|
|
37
43
|
buyYtEvents: BuyYtEvent[];
|
|
38
44
|
wrapperBuyYtEvents: WrapperBuyYtEvent[];
|
|
39
45
|
wrapperSellYtEvents: WrapperSellYtEvent[];
|
|
@@ -117,6 +123,28 @@ export interface DepositYtEvent {
|
|
|
117
123
|
user_staged_yield: BN;
|
|
118
124
|
unix_timestamp: BN;
|
|
119
125
|
}
|
|
126
|
+
export interface DepositYtEventV2 {
|
|
127
|
+
depositor: web3.PublicKey;
|
|
128
|
+
vault: web3.PublicKey;
|
|
129
|
+
user_yield_position: web3.PublicKey;
|
|
130
|
+
vault_yield_position: web3.PublicKey;
|
|
131
|
+
yt_src: web3.PublicKey;
|
|
132
|
+
escrow_yt: web3.PublicKey;
|
|
133
|
+
amount: BN;
|
|
134
|
+
sy_exchange_rate: AnchorizedPNum;
|
|
135
|
+
user_yt_balance_after: BN;
|
|
136
|
+
vault_yt_balance_after: BN;
|
|
137
|
+
user_staged_yield: BN;
|
|
138
|
+
unix_timestamp: BN;
|
|
139
|
+
user_interest: {
|
|
140
|
+
last_seen_index: AnchorizedPNum;
|
|
141
|
+
staged: BN;
|
|
142
|
+
};
|
|
143
|
+
user_emissions: {
|
|
144
|
+
last_seen_index: AnchorizedPNum;
|
|
145
|
+
staged: BN;
|
|
146
|
+
}[];
|
|
147
|
+
}
|
|
120
148
|
export interface WithdrawYtEvent {
|
|
121
149
|
owner: web3.PublicKey;
|
|
122
150
|
vault: web3.PublicKey;
|
|
@@ -131,6 +159,28 @@ export interface WithdrawYtEvent {
|
|
|
131
159
|
user_staged_yield: BN;
|
|
132
160
|
unix_timestamp: BN;
|
|
133
161
|
}
|
|
162
|
+
export interface WithdrawYtEventV2 {
|
|
163
|
+
owner: web3.PublicKey;
|
|
164
|
+
vault: web3.PublicKey;
|
|
165
|
+
user_yield_position: web3.PublicKey;
|
|
166
|
+
vault_yield_position: web3.PublicKey;
|
|
167
|
+
yt_dst: web3.PublicKey;
|
|
168
|
+
escrow_yt: web3.PublicKey;
|
|
169
|
+
amount: BN;
|
|
170
|
+
sy_exchange_rate: AnchorizedPNum;
|
|
171
|
+
user_yt_balance_after: BN;
|
|
172
|
+
vault_yt_balance_after: BN;
|
|
173
|
+
user_staged_yield: BN;
|
|
174
|
+
unix_timestamp: BN;
|
|
175
|
+
user_interest: {
|
|
176
|
+
last_seen_index: AnchorizedPNum;
|
|
177
|
+
staged: BN;
|
|
178
|
+
};
|
|
179
|
+
user_emissions: {
|
|
180
|
+
last_seen_index: AnchorizedPNum;
|
|
181
|
+
staged: BN;
|
|
182
|
+
}[];
|
|
183
|
+
}
|
|
134
184
|
export interface CollectInterestEvent {
|
|
135
185
|
user: web3.PublicKey;
|
|
136
186
|
vault: web3.PublicKey;
|
|
@@ -139,6 +189,22 @@ export interface CollectInterestEvent {
|
|
|
139
189
|
amount_to_treasury: BN;
|
|
140
190
|
unix_timestamp: BN;
|
|
141
191
|
}
|
|
192
|
+
export interface CollectInterestEventV2 {
|
|
193
|
+
user: web3.PublicKey;
|
|
194
|
+
vault: web3.PublicKey;
|
|
195
|
+
user_yield_position: web3.PublicKey;
|
|
196
|
+
amount_to_user: BN;
|
|
197
|
+
amount_to_treasury: BN;
|
|
198
|
+
unix_timestamp: BN;
|
|
199
|
+
user_interest: {
|
|
200
|
+
last_seen_index: AnchorizedPNum;
|
|
201
|
+
staged: BN;
|
|
202
|
+
};
|
|
203
|
+
user_emissions: {
|
|
204
|
+
last_seen_index: AnchorizedPNum;
|
|
205
|
+
staged: BN;
|
|
206
|
+
}[];
|
|
207
|
+
}
|
|
142
208
|
export interface CollectEmissionEvent {
|
|
143
209
|
user: web3.PublicKey;
|
|
144
210
|
vault: web3.PublicKey;
|
|
@@ -148,6 +214,23 @@ export interface CollectEmissionEvent {
|
|
|
148
214
|
amount_to_treasury: BN;
|
|
149
215
|
unix_timestamp: BN;
|
|
150
216
|
}
|
|
217
|
+
export interface CollectEmissionEventV2 {
|
|
218
|
+
user: web3.PublicKey;
|
|
219
|
+
vault: web3.PublicKey;
|
|
220
|
+
position: web3.PublicKey;
|
|
221
|
+
emission_index: number;
|
|
222
|
+
amount_to_user: BN;
|
|
223
|
+
amount_to_treasury: BN;
|
|
224
|
+
unix_timestamp: BN;
|
|
225
|
+
user_interest: {
|
|
226
|
+
last_seen_index: AnchorizedPNum;
|
|
227
|
+
staged: BN;
|
|
228
|
+
};
|
|
229
|
+
user_emissions: {
|
|
230
|
+
last_seen_index: AnchorizedPNum;
|
|
231
|
+
staged: BN;
|
|
232
|
+
}[];
|
|
233
|
+
}
|
|
151
234
|
export interface StageYieldEvent {
|
|
152
235
|
payer: web3.PublicKey;
|
|
153
236
|
vault: web3.PublicKey;
|
|
@@ -159,6 +242,24 @@ export interface StageYieldEvent {
|
|
|
159
242
|
user_staged_emissions: BN[];
|
|
160
243
|
unix_timestamp: BN;
|
|
161
244
|
}
|
|
245
|
+
export interface StageYieldEventV2 {
|
|
246
|
+
payer: web3.PublicKey;
|
|
247
|
+
vault: web3.PublicKey;
|
|
248
|
+
user_yield_position: web3.PublicKey;
|
|
249
|
+
vault_yield_position: web3.PublicKey;
|
|
250
|
+
sy_exchange_rate: AnchorizedPNum;
|
|
251
|
+
user_yt_balance: BN;
|
|
252
|
+
user_staged_yield: BN;
|
|
253
|
+
unix_timestamp: BN;
|
|
254
|
+
user_interest: {
|
|
255
|
+
last_seen_index: AnchorizedPNum;
|
|
256
|
+
staged: BN;
|
|
257
|
+
};
|
|
258
|
+
user_emissions: {
|
|
259
|
+
last_seen_index: AnchorizedPNum;
|
|
260
|
+
staged: BN;
|
|
261
|
+
}[];
|
|
262
|
+
}
|
|
162
263
|
export interface InitializeYieldPositionEvent {
|
|
163
264
|
owner: web3.PublicKey;
|
|
164
265
|
vault: web3.PublicKey;
|
|
@@ -176,6 +277,29 @@ export interface WithdrawLpEvent {
|
|
|
176
277
|
new_lp_balance: BN;
|
|
177
278
|
unix_timestamp: BN;
|
|
178
279
|
}
|
|
280
|
+
export interface WithdrawLpEventV2 {
|
|
281
|
+
owner: web3.PublicKey;
|
|
282
|
+
market: web3.PublicKey;
|
|
283
|
+
lp_position: web3.PublicKey;
|
|
284
|
+
mint_lp: web3.PublicKey;
|
|
285
|
+
token_lp_dst: web3.PublicKey;
|
|
286
|
+
token_lp_escrow: web3.PublicKey;
|
|
287
|
+
amount: BN;
|
|
288
|
+
new_lp_balance: BN;
|
|
289
|
+
unix_timestamp: BN;
|
|
290
|
+
emissions: {
|
|
291
|
+
trackers: {
|
|
292
|
+
last_seen_index: AnchorizedPNum;
|
|
293
|
+
staged: BN;
|
|
294
|
+
}[];
|
|
295
|
+
};
|
|
296
|
+
farms: {
|
|
297
|
+
trackers: {
|
|
298
|
+
last_seen_index: AnchorizedPNum;
|
|
299
|
+
staged: BN;
|
|
300
|
+
}[];
|
|
301
|
+
};
|
|
302
|
+
}
|
|
179
303
|
export interface WithdrawLiquidityEvent {
|
|
180
304
|
withdrawer: web3.PublicKey;
|
|
181
305
|
market: web3.PublicKey;
|
|
@@ -216,6 +340,28 @@ export interface MarketCollectEmissionEvent {
|
|
|
216
340
|
amount_collected: BN;
|
|
217
341
|
timestamp: BN;
|
|
218
342
|
}
|
|
343
|
+
export interface MarketCollectEmissionEventV2 {
|
|
344
|
+
owner: web3.PublicKey;
|
|
345
|
+
market: web3.PublicKey;
|
|
346
|
+
lp_position: web3.PublicKey;
|
|
347
|
+
token_emission_escrow: web3.PublicKey;
|
|
348
|
+
token_emission_dst: web3.PublicKey;
|
|
349
|
+
emission_index: number;
|
|
350
|
+
amount_collected: BN;
|
|
351
|
+
timestamp: BN;
|
|
352
|
+
emissions: {
|
|
353
|
+
trackers: {
|
|
354
|
+
last_seen_index: AnchorizedPNum;
|
|
355
|
+
staged: BN;
|
|
356
|
+
}[];
|
|
357
|
+
};
|
|
358
|
+
farms: {
|
|
359
|
+
trackers: {
|
|
360
|
+
last_seen_index: AnchorizedPNum;
|
|
361
|
+
staged: BN;
|
|
362
|
+
}[];
|
|
363
|
+
};
|
|
364
|
+
}
|
|
219
365
|
export interface InitLpPositionEvent {
|
|
220
366
|
fee_payer: web3.PublicKey;
|
|
221
367
|
owner: web3.PublicKey;
|
|
@@ -236,6 +382,29 @@ export interface DepositLpEvent {
|
|
|
236
382
|
new_lp_balance: BN;
|
|
237
383
|
timestamp: BN;
|
|
238
384
|
}
|
|
385
|
+
export interface DepositLpEventV2 {
|
|
386
|
+
owner: web3.PublicKey;
|
|
387
|
+
market: web3.PublicKey;
|
|
388
|
+
lp_position: web3.PublicKey;
|
|
389
|
+
token_lp_src: web3.PublicKey;
|
|
390
|
+
token_lp_escrow: web3.PublicKey;
|
|
391
|
+
mint_lp: web3.PublicKey;
|
|
392
|
+
amount: BN;
|
|
393
|
+
new_lp_balance: BN;
|
|
394
|
+
timestamp: BN;
|
|
395
|
+
emissions: {
|
|
396
|
+
trackers: {
|
|
397
|
+
last_seen_index: AnchorizedPNum;
|
|
398
|
+
staged: BN;
|
|
399
|
+
}[];
|
|
400
|
+
};
|
|
401
|
+
farms: {
|
|
402
|
+
trackers: {
|
|
403
|
+
last_seen_index: AnchorizedPNum;
|
|
404
|
+
staged: BN;
|
|
405
|
+
}[];
|
|
406
|
+
};
|
|
407
|
+
}
|
|
239
408
|
export interface DepositLiquidityEvent {
|
|
240
409
|
depositor: web3.PublicKey;
|
|
241
410
|
market: web3.PublicKey;
|
|
@@ -264,6 +433,29 @@ export interface ClaimFarmEmissionsEvent {
|
|
|
264
433
|
amount_claimed: BN;
|
|
265
434
|
remaining_staged: BN;
|
|
266
435
|
}
|
|
436
|
+
export interface ClaimFarmEmissionsEventV2 {
|
|
437
|
+
owner: web3.PublicKey;
|
|
438
|
+
market: web3.PublicKey;
|
|
439
|
+
lp_position: web3.PublicKey;
|
|
440
|
+
token_dst: web3.PublicKey;
|
|
441
|
+
mint: web3.PublicKey;
|
|
442
|
+
token_farm: web3.PublicKey;
|
|
443
|
+
farm_index: number;
|
|
444
|
+
amount_claimed: BN;
|
|
445
|
+
remaining_staged: BN;
|
|
446
|
+
emissions: {
|
|
447
|
+
trackers: {
|
|
448
|
+
last_seen_index: AnchorizedPNum;
|
|
449
|
+
staged: BN;
|
|
450
|
+
}[];
|
|
451
|
+
};
|
|
452
|
+
farms: {
|
|
453
|
+
trackers: {
|
|
454
|
+
last_seen_index: AnchorizedPNum;
|
|
455
|
+
staged: BN;
|
|
456
|
+
}[];
|
|
457
|
+
};
|
|
458
|
+
}
|
|
267
459
|
export interface BuyYtEvent {
|
|
268
460
|
trader: web3.PublicKey;
|
|
269
461
|
market: web3.PublicKey;
|
|
@@ -369,4 +561,3 @@ export interface WrapperMergeEvent {
|
|
|
369
561
|
amount_sy_redeemed: BN;
|
|
370
562
|
amount_base_out: BN;
|
|
371
563
|
}
|
|
372
|
-
export {};
|