@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.
Files changed (131) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +73 -73
  3. package/dist/index.d.ts +81 -81
  4. package/dist/index.js +102 -102
  5. package/dist/node/index.d.ts +9 -9
  6. package/dist/node/index.js +13 -13
  7. package/dist/solana/SolanaChainType.d.ts +15 -15
  8. package/dist/solana/SolanaChainType.js +2 -2
  9. package/dist/solana/SolanaChains.d.ts +12 -12
  10. package/dist/solana/SolanaChains.js +45 -45
  11. package/dist/solana/SolanaInitializer.d.ts +94 -94
  12. package/dist/solana/SolanaInitializer.js +174 -174
  13. package/dist/solana/btcrelay/SolanaBtcRelay.d.ts +222 -222
  14. package/dist/solana/btcrelay/SolanaBtcRelay.js +455 -455
  15. package/dist/solana/btcrelay/headers/SolanaBtcHeader.d.ts +84 -84
  16. package/dist/solana/btcrelay/headers/SolanaBtcHeader.js +70 -70
  17. package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.d.ts +92 -92
  18. package/dist/solana/btcrelay/headers/SolanaBtcStoredHeader.js +109 -109
  19. package/dist/solana/btcrelay/program/programIdl.json +671 -671
  20. package/dist/solana/chain/SolanaAction.d.ts +26 -26
  21. package/dist/solana/chain/SolanaAction.js +87 -87
  22. package/dist/solana/chain/SolanaChainInterface.d.ts +224 -224
  23. package/dist/solana/chain/SolanaChainInterface.js +275 -275
  24. package/dist/solana/chain/SolanaModule.d.ts +14 -14
  25. package/dist/solana/chain/SolanaModule.js +13 -13
  26. package/dist/solana/chain/modules/SolanaAddresses.d.ts +8 -8
  27. package/dist/solana/chain/modules/SolanaAddresses.js +22 -22
  28. package/dist/solana/chain/modules/SolanaBlocks.d.ts +32 -32
  29. package/dist/solana/chain/modules/SolanaBlocks.js +78 -78
  30. package/dist/solana/chain/modules/SolanaEvents.d.ts +68 -68
  31. package/dist/solana/chain/modules/SolanaEvents.js +238 -238
  32. package/dist/solana/chain/modules/SolanaFees.d.ts +189 -189
  33. package/dist/solana/chain/modules/SolanaFees.js +434 -434
  34. package/dist/solana/chain/modules/SolanaSignatures.d.ts +24 -24
  35. package/dist/solana/chain/modules/SolanaSignatures.js +39 -39
  36. package/dist/solana/chain/modules/SolanaSlots.d.ts +33 -33
  37. package/dist/solana/chain/modules/SolanaSlots.js +72 -72
  38. package/dist/solana/chain/modules/SolanaTokens.d.ts +123 -123
  39. package/dist/solana/chain/modules/SolanaTokens.js +242 -242
  40. package/dist/solana/chain/modules/SolanaTransactions.d.ts +149 -149
  41. package/dist/solana/chain/modules/SolanaTransactions.js +445 -445
  42. package/dist/solana/connection/ConnectionWithRetries.d.ts +35 -35
  43. package/dist/solana/connection/ConnectionWithRetries.js +86 -71
  44. package/dist/solana/events/SolanaChainEvents.d.ts +45 -45
  45. package/dist/solana/events/SolanaChainEvents.js +108 -108
  46. package/dist/solana/events/SolanaChainEventsBrowser.d.ts +205 -205
  47. package/dist/solana/events/SolanaChainEventsBrowser.js +404 -404
  48. package/dist/solana/program/SolanaProgramBase.d.ts +73 -73
  49. package/dist/solana/program/SolanaProgramBase.js +54 -54
  50. package/dist/solana/program/SolanaProgramModule.d.ts +8 -8
  51. package/dist/solana/program/SolanaProgramModule.js +11 -11
  52. package/dist/solana/program/modules/SolanaProgramEvents.d.ts +53 -53
  53. package/dist/solana/program/modules/SolanaProgramEvents.js +117 -117
  54. package/dist/solana/swaps/SolanaSwapData.d.ts +333 -333
  55. package/dist/solana/swaps/SolanaSwapData.js +535 -535
  56. package/dist/solana/swaps/SolanaSwapModule.d.ts +11 -11
  57. package/dist/solana/swaps/SolanaSwapModule.js +12 -12
  58. package/dist/solana/swaps/SolanaSwapProgram.d.ts +376 -376
  59. package/dist/solana/swaps/SolanaSwapProgram.js +769 -769
  60. package/dist/solana/swaps/SwapTypeEnum.d.ts +11 -11
  61. package/dist/solana/swaps/SwapTypeEnum.js +43 -43
  62. package/dist/solana/swaps/modules/SolanaDataAccount.d.ts +95 -95
  63. package/dist/solana/swaps/modules/SolanaDataAccount.js +232 -232
  64. package/dist/solana/swaps/modules/SolanaLpVault.d.ts +69 -69
  65. package/dist/solana/swaps/modules/SolanaLpVault.js +171 -171
  66. package/dist/solana/swaps/modules/SwapClaim.d.ts +126 -126
  67. package/dist/solana/swaps/modules/SwapClaim.js +294 -294
  68. package/dist/solana/swaps/modules/SwapInit.d.ts +213 -213
  69. package/dist/solana/swaps/modules/SwapInit.js +658 -658
  70. package/dist/solana/swaps/modules/SwapRefund.d.ts +87 -87
  71. package/dist/solana/swaps/modules/SwapRefund.js +293 -293
  72. package/dist/solana/swaps/programIdl.json +945 -945
  73. package/dist/solana/swaps/programTypes.d.ts +943 -943
  74. package/dist/solana/swaps/programTypes.js +945 -945
  75. package/dist/solana/swaps/v1/programIdl.json +945 -945
  76. package/dist/solana/swaps/v1/programTypes.d.ts +943 -943
  77. package/dist/solana/swaps/v1/programTypes.js +945 -945
  78. package/dist/solana/swaps/v2/programIdl.json +952 -952
  79. package/dist/solana/swaps/v2/programTypes.d.ts +950 -950
  80. package/dist/solana/swaps/v2/programTypes.js +952 -952
  81. package/dist/solana/wallet/SolanaKeypairWallet.d.ts +29 -29
  82. package/dist/solana/wallet/SolanaKeypairWallet.js +50 -50
  83. package/dist/solana/wallet/SolanaSigner.d.ts +30 -30
  84. package/dist/solana/wallet/SolanaSigner.js +30 -30
  85. package/dist/utils/Utils.d.ts +58 -58
  86. package/dist/utils/Utils.js +170 -170
  87. package/node/index.d.ts +1 -1
  88. package/node/index.js +3 -3
  89. package/package.json +46 -46
  90. package/src/index.ts +87 -87
  91. package/src/node/index.ts +9 -9
  92. package/src/solana/SolanaChainType.ts +32 -32
  93. package/src/solana/SolanaChains.ts +46 -46
  94. package/src/solana/SolanaInitializer.ts +278 -278
  95. package/src/solana/btcrelay/SolanaBtcRelay.ts +615 -615
  96. package/src/solana/btcrelay/headers/SolanaBtcHeader.ts +116 -116
  97. package/src/solana/btcrelay/headers/SolanaBtcStoredHeader.ts +148 -148
  98. package/src/solana/btcrelay/program/programIdl.json +670 -670
  99. package/src/solana/chain/SolanaAction.ts +109 -109
  100. package/src/solana/chain/SolanaChainInterface.ts +404 -404
  101. package/src/solana/chain/SolanaModule.ts +20 -20
  102. package/src/solana/chain/modules/SolanaAddresses.ts +20 -20
  103. package/src/solana/chain/modules/SolanaBlocks.ts +89 -89
  104. package/src/solana/chain/modules/SolanaEvents.ts +271 -271
  105. package/src/solana/chain/modules/SolanaFees.ts +522 -522
  106. package/src/solana/chain/modules/SolanaSignatures.ts +39 -39
  107. package/src/solana/chain/modules/SolanaSlots.ts +85 -85
  108. package/src/solana/chain/modules/SolanaTokens.ts +300 -300
  109. package/src/solana/chain/modules/SolanaTransactions.ts +503 -503
  110. package/src/solana/connection/ConnectionWithRetries.ts +113 -96
  111. package/src/solana/events/SolanaChainEvents.ts +127 -127
  112. package/src/solana/events/SolanaChainEventsBrowser.ts +495 -495
  113. package/src/solana/program/SolanaProgramBase.ts +119 -119
  114. package/src/solana/program/SolanaProgramModule.ts +15 -15
  115. package/src/solana/program/modules/SolanaProgramEvents.ts +157 -157
  116. package/src/solana/swaps/SolanaSwapData.ts +735 -735
  117. package/src/solana/swaps/SolanaSwapModule.ts +19 -19
  118. package/src/solana/swaps/SolanaSwapProgram.ts +1074 -1074
  119. package/src/solana/swaps/SwapTypeEnum.ts +30 -30
  120. package/src/solana/swaps/modules/SolanaDataAccount.ts +302 -302
  121. package/src/solana/swaps/modules/SolanaLpVault.ts +208 -208
  122. package/src/solana/swaps/modules/SwapClaim.ts +387 -387
  123. package/src/solana/swaps/modules/SwapInit.ts +785 -785
  124. package/src/solana/swaps/modules/SwapRefund.ts +353 -353
  125. package/src/solana/swaps/v1/programIdl.json +944 -944
  126. package/src/solana/swaps/v1/programTypes.ts +1885 -1885
  127. package/src/solana/swaps/v2/programIdl.json +951 -951
  128. package/src/solana/swaps/v2/programTypes.ts +1899 -1899
  129. package/src/solana/wallet/SolanaKeypairWallet.ts +56 -56
  130. package/src/solana/wallet/SolanaSigner.ts +43 -43
  131. 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
+ }