@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,149 +1,149 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { Finality, SendOptions, Signer, Transaction } from "@solana/web3.js";
4
- import { SolanaModule } from "../SolanaModule";
5
- import { Buffer } from "buffer";
6
- import { SolanaSigner } from "../../wallet/SolanaSigner";
7
- /**
8
- * Solana unsigned transaction type, optionally also contains additional signers which should be used to additionally
9
- * sign the transaction.
10
- *
11
- * @category Chain Interface
12
- */
13
- export type SolanaTx = {
14
- tx: Transaction;
15
- signers: Signer[];
16
- };
17
- /**
18
- * Alias for signed Solana transaction, uses the native transaction type of `@solana/web3.js`
19
- *
20
- * @category Chain Interface
21
- */
22
- export type SignedSolanaTx = Transaction;
23
- export declare class SolanaTransactions extends SolanaModule {
24
- private cbkBeforeTxSigned?;
25
- /**
26
- * Callback for sending transaction, returns not null if it was successfully able to send the transaction, and null
27
- * if the transaction should be sent through other means)
28
- * @private
29
- */
30
- private cbkSendTransaction?;
31
- /**
32
- * Sends raw solana transaction, first through the cbkSendTransaction callback (for e.g. sending the transaction
33
- * to a different specific RPC), the through the Fees handler (for e.g. Jito transaction) and last through the
34
- * underlying provider's Connection instance (the usual way). Only sends the transaction through one channel.
35
- *
36
- * @param data
37
- * @param options
38
- * @private
39
- */
40
- private sendRawTransaction;
41
- /**
42
- * Waits for the transaction to confirm by periodically checking the transaction status over HTTP, also
43
- * re-sends the transaction at regular intervals
44
- *
45
- * @param tx solana tx to wait for confirmation for
46
- * @param finality wait for this finality
47
- * @param abortSignal signal to abort waiting for tx confirmation
48
- * @private
49
- */
50
- private txConfirmationAndResendWatchdog;
51
- /**
52
- * Waits for the transaction to confirm from WS, sometimes the WS rejects even though the transaction was confirmed
53
- * this therefore also runs an ultimate check on the transaction in case the WS handler rejects, checking if it
54
- * really was expired
55
- *
56
- * @param tx solana tx to wait for confirmation for
57
- * @param finality wait for this finality
58
- * @param abortSignal signal to abort waiting for tx confirmation
59
- * @private
60
- */
61
- private txConfirmFromWebsocket;
62
- /**
63
- * Waits for transaction confirmation using WS subscription and occasional HTTP polling, also re-sends
64
- * the transaction at regular interval
65
- *
66
- * @param tx solana transaction to wait for confirmation for & keep re-sending until it confirms
67
- * @param abortSignal signal to abort waiting for tx confirmation
68
- * @param finality wait for specific finality
69
- * @private
70
- */
71
- private confirmTransaction;
72
- /**
73
- * Prepares solana transactions, assigns recentBlockhash if needed, applies Phantom hotfix,
74
- * sets feePayer to ourselves, calls beforeTxSigned callback & signs transaction with provided signers array
75
- *
76
- * @param txs
77
- * @param signer
78
- */
79
- prepareTransactions(txs: SolanaTx[], signer?: SolanaSigner): Promise<void>;
80
- /**
81
- * Sends out a signed transaction to the RPC
82
- *
83
- * @param tx solana tx to send
84
- * @param options send options to be passed to the RPC
85
- * @param onBeforePublish a callback called before every transaction is published
86
- * @private
87
- */
88
- private sendSignedTransaction;
89
- /**
90
- * Prepares (adds recent blockhash if required, applies Phantom hotfix),
91
- * signs (all together using signAllTransactions() calls), sends (in parallel or sequentially) &
92
- * optionally waits for confirmation of a batch of solana transactions
93
- *
94
- * @param signer
95
- * @param _txs
96
- * @param waitForConfirmation whether to wait for transaction confirmations (this also makes sure the transactions
97
- * are re-sent at regular intervals)
98
- * @param abortSignal abort signal to abort waiting for transaction confirmations
99
- * @param parallel whether the send all the transaction at once in parallel or sequentially (such that transactions
100
- * are executed in order)
101
- * @param onBeforePublish a callback called before every transaction is published
102
- */
103
- sendAndConfirm(signer: SolanaSigner, _txs: SolanaTx[], waitForConfirmation?: boolean, abortSignal?: AbortSignal, parallel?: boolean, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
104
- sendSignedAndConfirm(signedTxs: SignedSolanaTx[], waitForConfirmation?: boolean, abortSignal?: AbortSignal, parallel?: boolean, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
105
- /**
106
- * Serializes the solana transaction, saves the transaction, signers & last valid blockheight
107
- *
108
- * @param tx
109
- */
110
- serializeUnsignedTx(tx: SolanaTx): string;
111
- /**
112
- * Serializes the solana transaction
113
- *
114
- * @param signedTx
115
- */
116
- serializeSignedTx(signedTx: Transaction): string;
117
- /**
118
- * Deserializes saved solana transaction, extracting the transaction, signers & last valid blockheight
119
- *
120
- * @param txData
121
- */
122
- deserializeUnsignedTx(txData: string): SolanaTx;
123
- /**
124
- * Deserializes raw solana transaction
125
- *
126
- * @param txData
127
- */
128
- deserializeSignedTransaction(txData: string): Transaction;
129
- /**
130
- * Gets the status of the raw solana transaction, this also checks transaction expiry & can therefore report tx
131
- * in "pending" status, however pending status doesn't necessarily mean that the transaction was sent (again,
132
- * no mempool on Solana, cannot check that), this function is preferred against getTxIdStatus
133
- *
134
- * @param tx
135
- */
136
- getTxStatus(tx: string): Promise<"pending" | "success" | "not_found" | "reverted">;
137
- /**
138
- * Gets the status of the solana transaction with a specific txId, this cannot report whether the transaction is
139
- * "pending" because Solana has no concept of mempool & only confirmed transactions are accessible
140
- *
141
- * @param txId
142
- * @param finality
143
- */
144
- getTxIdStatus(txId: string, finality?: Finality): Promise<"success" | "not_found" | "reverted">;
145
- onBeforeTxSigned(callback: (tx: SolanaTx) => Promise<void>): void;
146
- offBeforeTxSigned(callback: (tx: SolanaTx) => Promise<void>): boolean;
147
- onSendTransaction(callback: (tx: Buffer, options?: SendOptions) => Promise<string>): void;
148
- offSendTransaction(callback: (tx: Buffer, options?: SendOptions) => Promise<string>): boolean;
149
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { Finality, SendOptions, Signer, Transaction } from "@solana/web3.js";
4
+ import { SolanaModule } from "../SolanaModule";
5
+ import { Buffer } from "buffer";
6
+ import { SolanaSigner } from "../../wallet/SolanaSigner";
7
+ /**
8
+ * Solana unsigned transaction type, optionally also contains additional signers which should be used to additionally
9
+ * sign the transaction.
10
+ *
11
+ * @category Chain Interface
12
+ */
13
+ export type SolanaTx = {
14
+ tx: Transaction;
15
+ signers: Signer[];
16
+ };
17
+ /**
18
+ * Alias for signed Solana transaction, uses the native transaction type of `@solana/web3.js`
19
+ *
20
+ * @category Chain Interface
21
+ */
22
+ export type SignedSolanaTx = Transaction;
23
+ export declare class SolanaTransactions extends SolanaModule {
24
+ private cbkBeforeTxSigned?;
25
+ /**
26
+ * Callback for sending transaction, returns not null if it was successfully able to send the transaction, and null
27
+ * if the transaction should be sent through other means)
28
+ * @private
29
+ */
30
+ private cbkSendTransaction?;
31
+ /**
32
+ * Sends raw solana transaction, first through the cbkSendTransaction callback (for e.g. sending the transaction
33
+ * to a different specific RPC), the through the Fees handler (for e.g. Jito transaction) and last through the
34
+ * underlying provider's Connection instance (the usual way). Only sends the transaction through one channel.
35
+ *
36
+ * @param data
37
+ * @param options
38
+ * @private
39
+ */
40
+ private sendRawTransaction;
41
+ /**
42
+ * Waits for the transaction to confirm by periodically checking the transaction status over HTTP, also
43
+ * re-sends the transaction at regular intervals
44
+ *
45
+ * @param tx solana tx to wait for confirmation for
46
+ * @param finality wait for this finality
47
+ * @param abortSignal signal to abort waiting for tx confirmation
48
+ * @private
49
+ */
50
+ private txConfirmationAndResendWatchdog;
51
+ /**
52
+ * Waits for the transaction to confirm from WS, sometimes the WS rejects even though the transaction was confirmed
53
+ * this therefore also runs an ultimate check on the transaction in case the WS handler rejects, checking if it
54
+ * really was expired
55
+ *
56
+ * @param tx solana tx to wait for confirmation for
57
+ * @param finality wait for this finality
58
+ * @param abortSignal signal to abort waiting for tx confirmation
59
+ * @private
60
+ */
61
+ private txConfirmFromWebsocket;
62
+ /**
63
+ * Waits for transaction confirmation using WS subscription and occasional HTTP polling, also re-sends
64
+ * the transaction at regular interval
65
+ *
66
+ * @param tx solana transaction to wait for confirmation for & keep re-sending until it confirms
67
+ * @param abortSignal signal to abort waiting for tx confirmation
68
+ * @param finality wait for specific finality
69
+ * @private
70
+ */
71
+ private confirmTransaction;
72
+ /**
73
+ * Prepares solana transactions, assigns recentBlockhash if needed, applies Phantom hotfix,
74
+ * sets feePayer to ourselves, calls beforeTxSigned callback & signs transaction with provided signers array
75
+ *
76
+ * @param txs
77
+ * @param signer
78
+ */
79
+ prepareTransactions(txs: SolanaTx[], signer?: SolanaSigner): Promise<void>;
80
+ /**
81
+ * Sends out a signed transaction to the RPC
82
+ *
83
+ * @param tx solana tx to send
84
+ * @param options send options to be passed to the RPC
85
+ * @param onBeforePublish a callback called before every transaction is published
86
+ * @private
87
+ */
88
+ private sendSignedTransaction;
89
+ /**
90
+ * Prepares (adds recent blockhash if required, applies Phantom hotfix),
91
+ * signs (all together using signAllTransactions() calls), sends (in parallel or sequentially) &
92
+ * optionally waits for confirmation of a batch of solana transactions
93
+ *
94
+ * @param signer
95
+ * @param _txs
96
+ * @param waitForConfirmation whether to wait for transaction confirmations (this also makes sure the transactions
97
+ * are re-sent at regular intervals)
98
+ * @param abortSignal abort signal to abort waiting for transaction confirmations
99
+ * @param parallel whether the send all the transaction at once in parallel or sequentially (such that transactions
100
+ * are executed in order)
101
+ * @param onBeforePublish a callback called before every transaction is published
102
+ */
103
+ sendAndConfirm(signer: SolanaSigner, _txs: SolanaTx[], waitForConfirmation?: boolean, abortSignal?: AbortSignal, parallel?: boolean, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
104
+ sendSignedAndConfirm(signedTxs: SignedSolanaTx[], waitForConfirmation?: boolean, abortSignal?: AbortSignal, parallel?: boolean, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
105
+ /**
106
+ * Serializes the solana transaction, saves the transaction, signers & last valid blockheight
107
+ *
108
+ * @param tx
109
+ */
110
+ serializeUnsignedTx(tx: SolanaTx): string;
111
+ /**
112
+ * Serializes the solana transaction
113
+ *
114
+ * @param signedTx
115
+ */
116
+ serializeSignedTx(signedTx: Transaction): string;
117
+ /**
118
+ * Deserializes saved solana transaction, extracting the transaction, signers & last valid blockheight
119
+ *
120
+ * @param txData
121
+ */
122
+ deserializeUnsignedTx(txData: string): SolanaTx;
123
+ /**
124
+ * Deserializes raw solana transaction
125
+ *
126
+ * @param txData
127
+ */
128
+ deserializeSignedTransaction(txData: string): Transaction;
129
+ /**
130
+ * Gets the status of the raw solana transaction, this also checks transaction expiry & can therefore report tx
131
+ * in "pending" status, however pending status doesn't necessarily mean that the transaction was sent (again,
132
+ * no mempool on Solana, cannot check that), this function is preferred against getTxIdStatus
133
+ *
134
+ * @param tx
135
+ */
136
+ getTxStatus(tx: string): Promise<"pending" | "success" | "not_found" | "reverted">;
137
+ /**
138
+ * Gets the status of the solana transaction with a specific txId, this cannot report whether the transaction is
139
+ * "pending" because Solana has no concept of mempool & only confirmed transactions are accessible
140
+ *
141
+ * @param txId
142
+ * @param finality
143
+ */
144
+ getTxIdStatus(txId: string, finality?: Finality): Promise<"success" | "not_found" | "reverted">;
145
+ onBeforeTxSigned(callback: (tx: SolanaTx) => Promise<void>): void;
146
+ offBeforeTxSigned(callback: (tx: SolanaTx) => Promise<void>): boolean;
147
+ onSendTransaction(callback: (tx: Buffer, options?: SendOptions) => Promise<string>): void;
148
+ offSendTransaction(callback: (tx: Buffer, options?: SendOptions) => Promise<string>): boolean;
149
+ }