@atomiqlabs/chain-solana 13.5.13 → 13.5.14
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/LICENSE +201 -201
- package/README.md +73 -73
- package/dist/index.d.ts +81 -81
- package/dist/index.js +102 -102
- package/dist/node/index.d.ts +9 -9
- package/dist/node/index.js +13 -13
- package/dist/solana/SolanaChainType.d.ts +15 -15
- package/dist/solana/SolanaChainType.js +2 -2
- package/dist/solana/SolanaChains.d.ts +12 -12
- package/dist/solana/SolanaChains.js +45 -45
- package/dist/solana/SolanaInitializer.d.ts +94 -94
- package/dist/solana/SolanaInitializer.js +174 -174
- package/dist/solana/btcrelay/SolanaBtcRelay.d.ts +222 -222
- package/dist/solana/btcrelay/SolanaBtcRelay.js +455 -455
- package/dist/solana/btcrelay/headers/SolanaBtcHeader.d.ts +84 -84
- package/dist/solana/btcrelay/headers/SolanaBtcHeader.js +70 -70
- package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.d.ts +92 -92
- package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.js +109 -109
- package/dist/solana/btcrelay/program/programIdl.json +671 -671
- package/dist/solana/chain/SolanaAction.d.ts +26 -26
- package/dist/solana/chain/SolanaAction.js +87 -87
- package/dist/solana/chain/SolanaChainInterface.d.ts +224 -224
- package/dist/solana/chain/SolanaChainInterface.js +275 -275
- package/dist/solana/chain/SolanaModule.d.ts +14 -14
- package/dist/solana/chain/SolanaModule.js +13 -13
- package/dist/solana/chain/modules/SolanaAddresses.d.ts +8 -8
- package/dist/solana/chain/modules/SolanaAddresses.js +22 -22
- package/dist/solana/chain/modules/SolanaBlocks.d.ts +32 -32
- package/dist/solana/chain/modules/SolanaBlocks.js +78 -78
- package/dist/solana/chain/modules/SolanaEvents.d.ts +68 -68
- package/dist/solana/chain/modules/SolanaEvents.js +238 -238
- package/dist/solana/chain/modules/SolanaFees.d.ts +189 -189
- package/dist/solana/chain/modules/SolanaFees.js +434 -434
- package/dist/solana/chain/modules/SolanaSignatures.d.ts +24 -24
- package/dist/solana/chain/modules/SolanaSignatures.js +39 -39
- package/dist/solana/chain/modules/SolanaSlots.d.ts +33 -33
- package/dist/solana/chain/modules/SolanaSlots.js +72 -72
- package/dist/solana/chain/modules/SolanaTokens.d.ts +123 -123
- package/dist/solana/chain/modules/SolanaTokens.js +242 -242
- package/dist/solana/chain/modules/SolanaTransactions.d.ts +149 -149
- package/dist/solana/chain/modules/SolanaTransactions.js +445 -445
- package/dist/solana/connection/ConnectionWithRetries.d.ts +35 -35
- package/dist/solana/connection/ConnectionWithRetries.js +86 -71
- package/dist/solana/events/SolanaChainEvents.d.ts +45 -45
- package/dist/solana/events/SolanaChainEvents.js +108 -108
- package/dist/solana/events/SolanaChainEventsBrowser.d.ts +205 -205
- package/dist/solana/events/SolanaChainEventsBrowser.js +404 -404
- package/dist/solana/program/SolanaProgramBase.d.ts +73 -73
- package/dist/solana/program/SolanaProgramBase.js +54 -54
- package/dist/solana/program/SolanaProgramModule.d.ts +8 -8
- package/dist/solana/program/SolanaProgramModule.js +11 -11
- package/dist/solana/program/modules/SolanaProgramEvents.d.ts +53 -53
- package/dist/solana/program/modules/SolanaProgramEvents.js +117 -117
- package/dist/solana/swaps/SolanaSwapData.d.ts +333 -333
- package/dist/solana/swaps/SolanaSwapData.js +535 -535
- package/dist/solana/swaps/SolanaSwapModule.d.ts +11 -11
- package/dist/solana/swaps/SolanaSwapModule.js +12 -12
- package/dist/solana/swaps/SolanaSwapProgram.d.ts +376 -376
- package/dist/solana/swaps/SolanaSwapProgram.js +769 -769
- package/dist/solana/swaps/SwapTypeEnum.d.ts +11 -11
- package/dist/solana/swaps/SwapTypeEnum.js +43 -43
- package/dist/solana/swaps/modules/SolanaDataAccount.d.ts +95 -95
- package/dist/solana/swaps/modules/SolanaDataAccount.js +232 -232
- package/dist/solana/swaps/modules/SolanaLpVault.d.ts +69 -69
- package/dist/solana/swaps/modules/SolanaLpVault.js +171 -171
- package/dist/solana/swaps/modules/SwapClaim.d.ts +126 -126
- package/dist/solana/swaps/modules/SwapClaim.js +294 -294
- package/dist/solana/swaps/modules/SwapInit.d.ts +213 -213
- package/dist/solana/swaps/modules/SwapInit.js +658 -658
- package/dist/solana/swaps/modules/SwapRefund.d.ts +87 -87
- package/dist/solana/swaps/modules/SwapRefund.js +293 -293
- package/dist/solana/swaps/programIdl.json +945 -945
- package/dist/solana/swaps/programTypes.d.ts +943 -943
- package/dist/solana/swaps/programTypes.js +945 -945
- package/dist/solana/swaps/v1/programIdl.json +945 -945
- package/dist/solana/swaps/v1/programTypes.d.ts +943 -943
- package/dist/solana/swaps/v1/programTypes.js +945 -945
- package/dist/solana/swaps/v2/programIdl.json +952 -952
- package/dist/solana/swaps/v2/programTypes.d.ts +950 -950
- package/dist/solana/swaps/v2/programTypes.js +952 -952
- package/dist/solana/wallet/SolanaKeypairWallet.d.ts +29 -29
- package/dist/solana/wallet/SolanaKeypairWallet.js +50 -50
- package/dist/solana/wallet/SolanaSigner.d.ts +30 -30
- package/dist/solana/wallet/SolanaSigner.js +30 -30
- package/dist/utils/Utils.d.ts +58 -58
- package/dist/utils/Utils.js +170 -170
- package/node/index.d.ts +1 -1
- package/node/index.js +3 -3
- package/package.json +46 -46
- package/src/index.ts +87 -87
- package/src/node/index.ts +9 -9
- package/src/solana/SolanaChainType.ts +32 -32
- package/src/solana/SolanaChains.ts +46 -46
- package/src/solana/SolanaInitializer.ts +278 -278
- package/src/solana/btcrelay/SolanaBtcRelay.ts +615 -615
- package/src/solana/btcrelay/headers/SolanaBtcHeader.ts +116 -116
- package/src/solana/btcrelay/headers/SolanaBtcStoredHeader.ts +148 -148
- package/src/solana/btcrelay/program/programIdl.json +670 -670
- package/src/solana/chain/SolanaAction.ts +109 -109
- package/src/solana/chain/SolanaChainInterface.ts +404 -404
- package/src/solana/chain/SolanaModule.ts +20 -20
- package/src/solana/chain/modules/SolanaAddresses.ts +20 -20
- package/src/solana/chain/modules/SolanaBlocks.ts +89 -89
- package/src/solana/chain/modules/SolanaEvents.ts +271 -271
- package/src/solana/chain/modules/SolanaFees.ts +522 -522
- package/src/solana/chain/modules/SolanaSignatures.ts +39 -39
- package/src/solana/chain/modules/SolanaSlots.ts +85 -85
- package/src/solana/chain/modules/SolanaTokens.ts +300 -300
- package/src/solana/chain/modules/SolanaTransactions.ts +503 -503
- package/src/solana/connection/ConnectionWithRetries.ts +113 -96
- package/src/solana/events/SolanaChainEvents.ts +127 -127
- package/src/solana/events/SolanaChainEventsBrowser.ts +495 -495
- package/src/solana/program/SolanaProgramBase.ts +119 -119
- package/src/solana/program/SolanaProgramModule.ts +15 -15
- package/src/solana/program/modules/SolanaProgramEvents.ts +157 -157
- package/src/solana/swaps/SolanaSwapData.ts +735 -735
- package/src/solana/swaps/SolanaSwapModule.ts +19 -19
- package/src/solana/swaps/SolanaSwapProgram.ts +1074 -1074
- package/src/solana/swaps/SwapTypeEnum.ts +30 -30
- package/src/solana/swaps/modules/SolanaDataAccount.ts +302 -302
- package/src/solana/swaps/modules/SolanaLpVault.ts +208 -208
- package/src/solana/swaps/modules/SwapClaim.ts +387 -387
- package/src/solana/swaps/modules/SwapInit.ts +785 -785
- package/src/solana/swaps/modules/SwapRefund.ts +353 -353
- package/src/solana/swaps/v1/programIdl.json +944 -944
- package/src/solana/swaps/v1/programTypes.ts +1885 -1885
- package/src/solana/swaps/v2/programIdl.json +951 -951
- package/src/solana/swaps/v2/programTypes.ts +1899 -1899
- package/src/solana/wallet/SolanaKeypairWallet.ts +56 -56
- package/src/solana/wallet/SolanaSigner.ts +43 -43
- package/src/utils/Utils.ts +194 -194
|
@@ -1,205 +1,205 @@
|
|
|
1
|
-
import { ChainEvents, ClaimEvent, EventListener, InitializeEvent, RefundEvent } from "@atomiqlabs/base";
|
|
2
|
-
import { SolanaSwapData } from "../swaps/SolanaSwapData";
|
|
3
|
-
import { IdlEvents } from "@coral-xyz/anchor";
|
|
4
|
-
import { SolanaSwapProgram } from "../swaps/SolanaSwapProgram";
|
|
5
|
-
import { Connection } from "@solana/web3.js";
|
|
6
|
-
import { InstructionWithAccounts, ProgramEvent } from "../program/modules/SolanaProgramEvents";
|
|
7
|
-
import { SwapProgram } from "../swaps/v1/programTypes";
|
|
8
|
-
/**
|
|
9
|
-
* Parsed event payload grouped by originating transaction metadata.
|
|
10
|
-
*
|
|
11
|
-
* @category Events
|
|
12
|
-
*/
|
|
13
|
-
export type EventObject = {
|
|
14
|
-
events: ProgramEvent<SwapProgram>[];
|
|
15
|
-
instructions?: (InstructionWithAccounts<SwapProgram> | null)[];
|
|
16
|
-
blockTime: number;
|
|
17
|
-
signature: string;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Legacy current cursor of Solana event listener state.
|
|
21
|
-
*
|
|
22
|
-
* @category Events
|
|
23
|
-
*/
|
|
24
|
-
export type SolanaLegacyEventListenerState = {
|
|
25
|
-
/**
|
|
26
|
-
* Last processed transaction's signature
|
|
27
|
-
*/
|
|
28
|
-
signature: string;
|
|
29
|
-
/**
|
|
30
|
-
* Last processed transaction's slot
|
|
31
|
-
*/
|
|
32
|
-
slot: number;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Current cursor of Solana event listener state.
|
|
36
|
-
*
|
|
37
|
-
* @category Events
|
|
38
|
-
*/
|
|
39
|
-
export type SolanaEventListenerState = {
|
|
40
|
-
[version: string]: SolanaLegacyEventListenerState | null;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Solana on-chain event handler for front-end systems without access to fs, uses pure WS to subscribe, might lose
|
|
44
|
-
* out on some events if the network is unreliable, front-end systems should take this into consideration and not
|
|
45
|
-
* rely purely on events
|
|
46
|
-
*
|
|
47
|
-
* @category Events
|
|
48
|
-
*/
|
|
49
|
-
export declare class SolanaChainEventsBrowser implements ChainEvents<SolanaSwapData, SolanaLegacyEventListenerState | SolanaEventListenerState> {
|
|
50
|
-
/**
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
protected readonly listeners: EventListener<SolanaSwapData>[];
|
|
54
|
-
/**
|
|
55
|
-
* @internal
|
|
56
|
-
*/
|
|
57
|
-
protected readonly connection: Connection;
|
|
58
|
-
/**
|
|
59
|
-
* @internal
|
|
60
|
-
*/
|
|
61
|
-
protected readonly contractVersions: {
|
|
62
|
-
[version: string]: {
|
|
63
|
-
swapContract: SolanaSwapProgram;
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* @internal
|
|
68
|
-
*/
|
|
69
|
-
protected eventListeners: {
|
|
70
|
-
[version: string]: number[];
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* @internal
|
|
74
|
-
*/
|
|
75
|
-
protected readonly logger: {
|
|
76
|
-
debug: (msg: string, ...args: any[]) => false | void;
|
|
77
|
-
info: (msg: string, ...args: any[]) => false | void;
|
|
78
|
-
warn: (msg: string, ...args: any[]) => false | void;
|
|
79
|
-
error: (msg: string, ...args: any[]) => false | void;
|
|
80
|
-
};
|
|
81
|
-
private readonly logFetchLimit;
|
|
82
|
-
private signaturesProcessing;
|
|
83
|
-
private processedSignatures;
|
|
84
|
-
private processedSignaturesIndex;
|
|
85
|
-
constructor(connection: Connection, contractVersions: SolanaSwapProgram | {
|
|
86
|
-
[version: string]: {
|
|
87
|
-
swapContract: SolanaSwapProgram;
|
|
88
|
-
};
|
|
89
|
-
}, logFetchLimit?: number);
|
|
90
|
-
private addProcessedSignature;
|
|
91
|
-
private isSignatureProcessed;
|
|
92
|
-
/**
|
|
93
|
-
* Parses EventObject from the transaction
|
|
94
|
-
*
|
|
95
|
-
* @param transaction
|
|
96
|
-
* @param version
|
|
97
|
-
* @private
|
|
98
|
-
* @returns {EventObject} parsed event object
|
|
99
|
-
*/
|
|
100
|
-
private getEventObjectFromTransaction;
|
|
101
|
-
/**
|
|
102
|
-
* Fetches transaction from the RPC, parses it to even object & processes it through event handler
|
|
103
|
-
*
|
|
104
|
-
* @param signature
|
|
105
|
-
* @param version
|
|
106
|
-
* @private
|
|
107
|
-
* @returns {boolean} whether the operation was successful
|
|
108
|
-
*/
|
|
109
|
-
private fetchTxAndProcessEvent;
|
|
110
|
-
/**
|
|
111
|
-
* Fetches and parses transaction instructions
|
|
112
|
-
*
|
|
113
|
-
* @private
|
|
114
|
-
* @returns {Promise<(InstructionWithAccounts<SwapProgram> | null)[] | null>} array of parsed instructions
|
|
115
|
-
*/
|
|
116
|
-
private getTransactionInstructions;
|
|
117
|
-
/**
|
|
118
|
-
* Returns async getter for fetching on-demand initialize event swap data
|
|
119
|
-
*
|
|
120
|
-
* @param eventObject
|
|
121
|
-
* @param txoHash
|
|
122
|
-
* @param version
|
|
123
|
-
* @private
|
|
124
|
-
* @returns {() => Promise<SolanaSwapData>} getter to be passed to InitializeEvent constructor
|
|
125
|
-
*/
|
|
126
|
-
private getSwapDataGetter;
|
|
127
|
-
/**
|
|
128
|
-
* @internal
|
|
129
|
-
*/
|
|
130
|
-
protected parseInitializeEvent(data: IdlEvents<SwapProgram>["InitializeEvent"], eventObject: EventObject, version: string): InitializeEvent<SolanaSwapData>;
|
|
131
|
-
/**
|
|
132
|
-
* @internal
|
|
133
|
-
*/
|
|
134
|
-
protected parseRefundEvent(data: IdlEvents<SwapProgram>["RefundEvent"], version: string): RefundEvent<SolanaSwapData>;
|
|
135
|
-
/**
|
|
136
|
-
* @internal
|
|
137
|
-
*/
|
|
138
|
-
protected parseClaimEvent(data: IdlEvents<SwapProgram>["ClaimEvent"], version: string): ClaimEvent<SolanaSwapData>;
|
|
139
|
-
/**
|
|
140
|
-
* Processes event as received from the chain, parses it & calls event listeners
|
|
141
|
-
*
|
|
142
|
-
* @param eventObject
|
|
143
|
-
* @param version
|
|
144
|
-
* @internal
|
|
145
|
-
*/
|
|
146
|
-
protected processEvent(eventObject: EventObject, version: string): Promise<void>;
|
|
147
|
-
/**
|
|
148
|
-
* Returns websocket event handler for specific event type
|
|
149
|
-
*
|
|
150
|
-
* @param name
|
|
151
|
-
* @param version
|
|
152
|
-
* @internal
|
|
153
|
-
* @returns event handler to be passed to program's addEventListener function
|
|
154
|
-
*/
|
|
155
|
-
protected getWsEventHandler<E extends "InitializeEvent" | "RefundEvent" | "ClaimEvent">(name: E, version: string): (data: IdlEvents<SwapProgram>[E], slotNumber: number, signature: string) => void;
|
|
156
|
-
/**
|
|
157
|
-
* Sets up event handlers listening for swap events over websocket
|
|
158
|
-
*
|
|
159
|
-
* @internal
|
|
160
|
-
*/
|
|
161
|
-
protected setupWebsocket(): void;
|
|
162
|
-
/**
|
|
163
|
-
* Gets all the new signatures from the last processed signature
|
|
164
|
-
*
|
|
165
|
-
* @param lastProcessedSignature
|
|
166
|
-
* @param version
|
|
167
|
-
* @private
|
|
168
|
-
*/
|
|
169
|
-
private getNewSignatures;
|
|
170
|
-
/**
|
|
171
|
-
* Gets single latest known signature
|
|
172
|
-
*
|
|
173
|
-
* @private
|
|
174
|
-
*/
|
|
175
|
-
private getFirstSignature;
|
|
176
|
-
/**
|
|
177
|
-
* Processes signatures, fetches transactions & processes event through event handlers
|
|
178
|
-
*
|
|
179
|
-
* @param signatures
|
|
180
|
-
* @param version
|
|
181
|
-
* @private
|
|
182
|
-
* @returns {Promise<{signature: string, slot: number}>} latest processed transaction signature and slot height
|
|
183
|
-
*/
|
|
184
|
-
private processSignatures;
|
|
185
|
-
/**
|
|
186
|
-
* @inheritDoc
|
|
187
|
-
*/
|
|
188
|
-
poll(lastSignature?: SolanaLegacyEventListenerState | SolanaEventListenerState): Promise<SolanaEventListenerState>;
|
|
189
|
-
/**
|
|
190
|
-
* @inheritDoc
|
|
191
|
-
*/
|
|
192
|
-
init(noAutomaticPoll?: boolean): Promise<void>;
|
|
193
|
-
/**
|
|
194
|
-
* @inheritDoc
|
|
195
|
-
*/
|
|
196
|
-
stop(): Promise<void>;
|
|
197
|
-
/**
|
|
198
|
-
* @inheritDoc
|
|
199
|
-
*/
|
|
200
|
-
registerListener(cbk: EventListener<SolanaSwapData>): void;
|
|
201
|
-
/**
|
|
202
|
-
* @inheritDoc
|
|
203
|
-
*/
|
|
204
|
-
unregisterListener(cbk: EventListener<SolanaSwapData>): boolean;
|
|
205
|
-
}
|
|
1
|
+
import { ChainEvents, ClaimEvent, EventListener, InitializeEvent, RefundEvent } from "@atomiqlabs/base";
|
|
2
|
+
import { SolanaSwapData } from "../swaps/SolanaSwapData";
|
|
3
|
+
import { IdlEvents } from "@coral-xyz/anchor";
|
|
4
|
+
import { SolanaSwapProgram } from "../swaps/SolanaSwapProgram";
|
|
5
|
+
import { Connection } from "@solana/web3.js";
|
|
6
|
+
import { InstructionWithAccounts, ProgramEvent } from "../program/modules/SolanaProgramEvents";
|
|
7
|
+
import { SwapProgram } from "../swaps/v1/programTypes";
|
|
8
|
+
/**
|
|
9
|
+
* Parsed event payload grouped by originating transaction metadata.
|
|
10
|
+
*
|
|
11
|
+
* @category Events
|
|
12
|
+
*/
|
|
13
|
+
export type EventObject = {
|
|
14
|
+
events: ProgramEvent<SwapProgram>[];
|
|
15
|
+
instructions?: (InstructionWithAccounts<SwapProgram> | null)[];
|
|
16
|
+
blockTime: number;
|
|
17
|
+
signature: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Legacy current cursor of Solana event listener state.
|
|
21
|
+
*
|
|
22
|
+
* @category Events
|
|
23
|
+
*/
|
|
24
|
+
export type SolanaLegacyEventListenerState = {
|
|
25
|
+
/**
|
|
26
|
+
* Last processed transaction's signature
|
|
27
|
+
*/
|
|
28
|
+
signature: string;
|
|
29
|
+
/**
|
|
30
|
+
* Last processed transaction's slot
|
|
31
|
+
*/
|
|
32
|
+
slot: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Current cursor of Solana event listener state.
|
|
36
|
+
*
|
|
37
|
+
* @category Events
|
|
38
|
+
*/
|
|
39
|
+
export type SolanaEventListenerState = {
|
|
40
|
+
[version: string]: SolanaLegacyEventListenerState | null;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Solana on-chain event handler for front-end systems without access to fs, uses pure WS to subscribe, might lose
|
|
44
|
+
* out on some events if the network is unreliable, front-end systems should take this into consideration and not
|
|
45
|
+
* rely purely on events
|
|
46
|
+
*
|
|
47
|
+
* @category Events
|
|
48
|
+
*/
|
|
49
|
+
export declare class SolanaChainEventsBrowser implements ChainEvents<SolanaSwapData, SolanaLegacyEventListenerState | SolanaEventListenerState> {
|
|
50
|
+
/**
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
protected readonly listeners: EventListener<SolanaSwapData>[];
|
|
54
|
+
/**
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
protected readonly connection: Connection;
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
protected readonly contractVersions: {
|
|
62
|
+
[version: string]: {
|
|
63
|
+
swapContract: SolanaSwapProgram;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
protected eventListeners: {
|
|
70
|
+
[version: string]: number[];
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
protected readonly logger: {
|
|
76
|
+
debug: (msg: string, ...args: any[]) => false | void;
|
|
77
|
+
info: (msg: string, ...args: any[]) => false | void;
|
|
78
|
+
warn: (msg: string, ...args: any[]) => false | void;
|
|
79
|
+
error: (msg: string, ...args: any[]) => false | void;
|
|
80
|
+
};
|
|
81
|
+
private readonly logFetchLimit;
|
|
82
|
+
private signaturesProcessing;
|
|
83
|
+
private processedSignatures;
|
|
84
|
+
private processedSignaturesIndex;
|
|
85
|
+
constructor(connection: Connection, contractVersions: SolanaSwapProgram | {
|
|
86
|
+
[version: string]: {
|
|
87
|
+
swapContract: SolanaSwapProgram;
|
|
88
|
+
};
|
|
89
|
+
}, logFetchLimit?: number);
|
|
90
|
+
private addProcessedSignature;
|
|
91
|
+
private isSignatureProcessed;
|
|
92
|
+
/**
|
|
93
|
+
* Parses EventObject from the transaction
|
|
94
|
+
*
|
|
95
|
+
* @param transaction
|
|
96
|
+
* @param version
|
|
97
|
+
* @private
|
|
98
|
+
* @returns {EventObject} parsed event object
|
|
99
|
+
*/
|
|
100
|
+
private getEventObjectFromTransaction;
|
|
101
|
+
/**
|
|
102
|
+
* Fetches transaction from the RPC, parses it to even object & processes it through event handler
|
|
103
|
+
*
|
|
104
|
+
* @param signature
|
|
105
|
+
* @param version
|
|
106
|
+
* @private
|
|
107
|
+
* @returns {boolean} whether the operation was successful
|
|
108
|
+
*/
|
|
109
|
+
private fetchTxAndProcessEvent;
|
|
110
|
+
/**
|
|
111
|
+
* Fetches and parses transaction instructions
|
|
112
|
+
*
|
|
113
|
+
* @private
|
|
114
|
+
* @returns {Promise<(InstructionWithAccounts<SwapProgram> | null)[] | null>} array of parsed instructions
|
|
115
|
+
*/
|
|
116
|
+
private getTransactionInstructions;
|
|
117
|
+
/**
|
|
118
|
+
* Returns async getter for fetching on-demand initialize event swap data
|
|
119
|
+
*
|
|
120
|
+
* @param eventObject
|
|
121
|
+
* @param txoHash
|
|
122
|
+
* @param version
|
|
123
|
+
* @private
|
|
124
|
+
* @returns {() => Promise<SolanaSwapData>} getter to be passed to InitializeEvent constructor
|
|
125
|
+
*/
|
|
126
|
+
private getSwapDataGetter;
|
|
127
|
+
/**
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
130
|
+
protected parseInitializeEvent(data: IdlEvents<SwapProgram>["InitializeEvent"], eventObject: EventObject, version: string): InitializeEvent<SolanaSwapData>;
|
|
131
|
+
/**
|
|
132
|
+
* @internal
|
|
133
|
+
*/
|
|
134
|
+
protected parseRefundEvent(data: IdlEvents<SwapProgram>["RefundEvent"], version: string): RefundEvent<SolanaSwapData>;
|
|
135
|
+
/**
|
|
136
|
+
* @internal
|
|
137
|
+
*/
|
|
138
|
+
protected parseClaimEvent(data: IdlEvents<SwapProgram>["ClaimEvent"], version: string): ClaimEvent<SolanaSwapData>;
|
|
139
|
+
/**
|
|
140
|
+
* Processes event as received from the chain, parses it & calls event listeners
|
|
141
|
+
*
|
|
142
|
+
* @param eventObject
|
|
143
|
+
* @param version
|
|
144
|
+
* @internal
|
|
145
|
+
*/
|
|
146
|
+
protected processEvent(eventObject: EventObject, version: string): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Returns websocket event handler for specific event type
|
|
149
|
+
*
|
|
150
|
+
* @param name
|
|
151
|
+
* @param version
|
|
152
|
+
* @internal
|
|
153
|
+
* @returns event handler to be passed to program's addEventListener function
|
|
154
|
+
*/
|
|
155
|
+
protected getWsEventHandler<E extends "InitializeEvent" | "RefundEvent" | "ClaimEvent">(name: E, version: string): (data: IdlEvents<SwapProgram>[E], slotNumber: number, signature: string) => void;
|
|
156
|
+
/**
|
|
157
|
+
* Sets up event handlers listening for swap events over websocket
|
|
158
|
+
*
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
protected setupWebsocket(): void;
|
|
162
|
+
/**
|
|
163
|
+
* Gets all the new signatures from the last processed signature
|
|
164
|
+
*
|
|
165
|
+
* @param lastProcessedSignature
|
|
166
|
+
* @param version
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
169
|
+
private getNewSignatures;
|
|
170
|
+
/**
|
|
171
|
+
* Gets single latest known signature
|
|
172
|
+
*
|
|
173
|
+
* @private
|
|
174
|
+
*/
|
|
175
|
+
private getFirstSignature;
|
|
176
|
+
/**
|
|
177
|
+
* Processes signatures, fetches transactions & processes event through event handlers
|
|
178
|
+
*
|
|
179
|
+
* @param signatures
|
|
180
|
+
* @param version
|
|
181
|
+
* @private
|
|
182
|
+
* @returns {Promise<{signature: string, slot: number}>} latest processed transaction signature and slot height
|
|
183
|
+
*/
|
|
184
|
+
private processSignatures;
|
|
185
|
+
/**
|
|
186
|
+
* @inheritDoc
|
|
187
|
+
*/
|
|
188
|
+
poll(lastSignature?: SolanaLegacyEventListenerState | SolanaEventListenerState): Promise<SolanaEventListenerState>;
|
|
189
|
+
/**
|
|
190
|
+
* @inheritDoc
|
|
191
|
+
*/
|
|
192
|
+
init(noAutomaticPoll?: boolean): Promise<void>;
|
|
193
|
+
/**
|
|
194
|
+
* @inheritDoc
|
|
195
|
+
*/
|
|
196
|
+
stop(): Promise<void>;
|
|
197
|
+
/**
|
|
198
|
+
* @inheritDoc
|
|
199
|
+
*/
|
|
200
|
+
registerListener(cbk: EventListener<SolanaSwapData>): void;
|
|
201
|
+
/**
|
|
202
|
+
* @inheritDoc
|
|
203
|
+
*/
|
|
204
|
+
unregisterListener(cbk: EventListener<SolanaSwapData>): boolean;
|
|
205
|
+
}
|