@getomnichain/omnichain 0.5.0 → 0.6.0

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 (305) hide show
  1. package/CHANGELOG.md +134 -0
  2. package/README.md +5 -3
  3. package/dist/cjs/address.factory.js +7 -4
  4. package/dist/cjs/address.factory.js.map +1 -1
  5. package/dist/cjs/asset_balance.js +7 -0
  6. package/dist/cjs/asset_balance.js.map +1 -0
  7. package/dist/cjs/asset_map.js +45 -0
  8. package/dist/cjs/asset_map.js.map +1 -0
  9. package/dist/cjs/asset_registry.js +21 -0
  10. package/dist/cjs/asset_registry.js.map +1 -0
  11. package/dist/cjs/bip39.js +88 -0
  12. package/dist/cjs/bip39.js.map +1 -0
  13. package/dist/cjs/bytes_from_hex.js +34 -0
  14. package/dist/cjs/bytes_from_hex.js.map +1 -0
  15. package/dist/cjs/chain_type.js +35 -0
  16. package/dist/cjs/chain_type.js.map +1 -0
  17. package/dist/cjs/index.js +12 -0
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/network_type.js +5 -2
  20. package/dist/cjs/network_type.js.map +1 -1
  21. package/dist/cjs/python_builtins.js +225 -0
  22. package/dist/cjs/python_builtins.js.map +1 -0
  23. package/dist/cjs/python_json.js +120 -0
  24. package/dist/cjs/python_json.js.map +1 -0
  25. package/dist/cjs/python_pydantic.js +50 -0
  26. package/dist/cjs/python_pydantic.js.map +1 -0
  27. package/dist/cjs/python_repr.js +172 -0
  28. package/dist/cjs/python_repr.js.map +1 -0
  29. package/dist/cjs/signed_transaction.js +24 -0
  30. package/dist/cjs/signed_transaction.js.map +1 -0
  31. package/dist/cjs/solana/solana_chain.js +89 -25
  32. package/dist/cjs/solana/solana_chain.js.map +1 -1
  33. package/dist/cjs/solana/solana_transaction_status.js +39 -3
  34. package/dist/cjs/solana/solana_transaction_status.js.map +1 -1
  35. package/dist/cjs/stellar/index.js +26 -0
  36. package/dist/cjs/stellar/index.js.map +1 -0
  37. package/dist/cjs/stellar/stellar_address.js +25 -0
  38. package/dist/cjs/stellar/stellar_address.js.map +1 -0
  39. package/dist/cjs/stellar/stellar_asset.js +155 -0
  40. package/dist/cjs/stellar/stellar_asset.js.map +1 -0
  41. package/dist/cjs/stellar/stellar_assets.js +26 -0
  42. package/dist/cjs/stellar/stellar_assets.js.map +1 -0
  43. package/dist/cjs/stellar/stellar_chain.js +1334 -0
  44. package/dist/cjs/stellar/stellar_chain.js.map +1 -0
  45. package/dist/cjs/stellar/stellar_chains.js +28 -0
  46. package/dist/cjs/stellar/stellar_chains.js.map +1 -0
  47. package/dist/cjs/stellar/stellar_gas_pricing.js +22 -0
  48. package/dist/cjs/stellar/stellar_gas_pricing.js.map +1 -0
  49. package/dist/cjs/stellar/stellar_strkey.js +71 -0
  50. package/dist/cjs/stellar/stellar_strkey.js.map +1 -0
  51. package/dist/cjs/stellar/stellar_transaction_status.js +72 -0
  52. package/dist/cjs/stellar/stellar_transaction_status.js.map +1 -0
  53. package/dist/cjs/stellar/stellar_transactions.js +475 -0
  54. package/dist/cjs/stellar/stellar_transactions.js.map +1 -0
  55. package/dist/cjs/stellar/stellar_wallet.js +195 -0
  56. package/dist/cjs/stellar/stellar_wallet.js.map +1 -0
  57. package/dist/cjs/token.js +3 -1
  58. package/dist/cjs/token.js.map +1 -1
  59. package/dist/cjs/transaction_json.js +85 -0
  60. package/dist/cjs/transaction_json.js.map +1 -0
  61. package/dist/cjs/transaction_prerequisite.js +19 -0
  62. package/dist/cjs/transaction_prerequisite.js.map +1 -0
  63. package/dist/cjs/transaction_simulation.js +21 -0
  64. package/dist/cjs/transaction_simulation.js.map +1 -0
  65. package/dist/cjs/tron/index.js +32 -0
  66. package/dist/cjs/tron/index.js.map +1 -0
  67. package/dist/cjs/tron/tron_abi.js +287 -0
  68. package/dist/cjs/tron/tron_abi.js.map +1 -0
  69. package/dist/cjs/tron/tron_address.js +38 -0
  70. package/dist/cjs/tron/tron_address.js.map +1 -0
  71. package/dist/cjs/tron/tron_asset.js +56 -0
  72. package/dist/cjs/tron/tron_asset.js.map +1 -0
  73. package/dist/cjs/tron/tron_assets.js +17 -0
  74. package/dist/cjs/tron/tron_assets.js.map +1 -0
  75. package/dist/cjs/tron/tron_base58.js +95 -0
  76. package/dist/cjs/tron/tron_base58.js.map +1 -0
  77. package/dist/cjs/tron/tron_canonical_transaction.js +268 -0
  78. package/dist/cjs/tron/tron_canonical_transaction.js.map +1 -0
  79. package/dist/cjs/tron/tron_chain.js +809 -0
  80. package/dist/cjs/tron/tron_chain.js.map +1 -0
  81. package/dist/cjs/tron/tron_chains.js +19 -0
  82. package/dist/cjs/tron/tron_chains.js.map +1 -0
  83. package/dist/cjs/tron/tron_client.js +327 -0
  84. package/dist/cjs/tron/tron_client.js.map +1 -0
  85. package/dist/cjs/tron/tron_contract.js +195 -0
  86. package/dist/cjs/tron/tron_contract.js.map +1 -0
  87. package/dist/cjs/tron/tron_gas_pricing.js +21 -0
  88. package/dist/cjs/tron/tron_gas_pricing.js.map +1 -0
  89. package/dist/cjs/tron/tron_keys.js +251 -0
  90. package/dist/cjs/tron/tron_keys.js.map +1 -0
  91. package/dist/cjs/tron/tron_transaction_builder.js +196 -0
  92. package/dist/cjs/tron/tron_transaction_builder.js.map +1 -0
  93. package/dist/cjs/tron/tron_transaction_status.js +118 -0
  94. package/dist/cjs/tron/tron_transaction_status.js.map +1 -0
  95. package/dist/cjs/tron/tron_transactions.js +192 -0
  96. package/dist/cjs/tron/tron_transactions.js.map +1 -0
  97. package/dist/cjs/tron/tron_wallet.js +152 -0
  98. package/dist/cjs/tron/tron_wallet.js.map +1 -0
  99. package/dist/cjs/unsigned_transaction.js +12 -0
  100. package/dist/cjs/unsigned_transaction.js.map +1 -1
  101. package/dist/cjs/wallet.base.js +29 -0
  102. package/dist/cjs/wallet.base.js.map +1 -0
  103. package/dist/esm/address.factory.d.ts.map +1 -1
  104. package/dist/esm/address.factory.js +7 -4
  105. package/dist/esm/address.factory.js.map +1 -1
  106. package/dist/esm/asset_balance.d.ts +5 -0
  107. package/dist/esm/asset_balance.d.ts.map +1 -0
  108. package/dist/esm/asset_balance.js +3 -0
  109. package/dist/esm/asset_balance.js.map +1 -0
  110. package/dist/esm/asset_map.d.ts +12 -0
  111. package/dist/esm/asset_map.d.ts.map +1 -0
  112. package/dist/esm/asset_map.js +40 -0
  113. package/dist/esm/asset_map.js.map +1 -0
  114. package/dist/esm/asset_registry.d.ts +6 -0
  115. package/dist/esm/asset_registry.d.ts.map +1 -0
  116. package/dist/esm/asset_registry.js +15 -0
  117. package/dist/esm/asset_registry.js.map +1 -0
  118. package/dist/esm/bip39.d.ts +4 -0
  119. package/dist/esm/bip39.d.ts.map +1 -0
  120. package/dist/esm/bip39.js +83 -0
  121. package/dist/esm/bip39.js.map +1 -0
  122. package/dist/esm/bytes_from_hex.d.ts +2 -0
  123. package/dist/esm/bytes_from_hex.d.ts.map +1 -0
  124. package/dist/esm/bytes_from_hex.js +31 -0
  125. package/dist/esm/bytes_from_hex.js.map +1 -0
  126. package/dist/esm/chain_type.d.ts +29 -0
  127. package/dist/esm/chain_type.d.ts.map +1 -0
  128. package/dist/esm/chain_type.js +32 -0
  129. package/dist/esm/chain_type.js.map +1 -0
  130. package/dist/esm/index.d.ts +12 -0
  131. package/dist/esm/index.d.ts.map +1 -1
  132. package/dist/esm/index.js +12 -0
  133. package/dist/esm/index.js.map +1 -1
  134. package/dist/esm/network_type.d.ts +3 -2
  135. package/dist/esm/network_type.d.ts.map +1 -1
  136. package/dist/esm/network_type.js +6 -3
  137. package/dist/esm/network_type.js.map +1 -1
  138. package/dist/esm/python_builtins.d.ts +13 -0
  139. package/dist/esm/python_builtins.d.ts.map +1 -0
  140. package/dist/esm/python_builtins.js +212 -0
  141. package/dist/esm/python_builtins.js.map +1 -0
  142. package/dist/esm/python_json.d.ts +9 -0
  143. package/dist/esm/python_json.d.ts.map +1 -0
  144. package/dist/esm/python_json.js +117 -0
  145. package/dist/esm/python_json.js.map +1 -0
  146. package/dist/esm/python_pydantic.d.ts +11 -0
  147. package/dist/esm/python_pydantic.d.ts.map +1 -0
  148. package/dist/esm/python_pydantic.js +39 -0
  149. package/dist/esm/python_pydantic.js.map +1 -0
  150. package/dist/esm/python_repr.d.ts +17 -0
  151. package/dist/esm/python_repr.d.ts.map +1 -0
  152. package/dist/esm/python_repr.js +160 -0
  153. package/dist/esm/python_repr.js.map +1 -0
  154. package/dist/esm/signed_transaction.d.ts +17 -0
  155. package/dist/esm/signed_transaction.d.ts.map +1 -0
  156. package/dist/esm/signed_transaction.js +19 -0
  157. package/dist/esm/signed_transaction.js.map +1 -0
  158. package/dist/esm/solana/solana_chain.d.ts.map +1 -1
  159. package/dist/esm/solana/solana_chain.js +90 -26
  160. package/dist/esm/solana/solana_chain.js.map +1 -1
  161. package/dist/esm/solana/solana_transaction_status.d.ts +40 -2
  162. package/dist/esm/solana/solana_transaction_status.d.ts.map +1 -1
  163. package/dist/esm/solana/solana_transaction_status.js +38 -2
  164. package/dist/esm/solana/solana_transaction_status.js.map +1 -1
  165. package/dist/esm/stellar/index.d.ts +10 -0
  166. package/dist/esm/stellar/index.d.ts.map +1 -0
  167. package/dist/esm/stellar/index.js +10 -0
  168. package/dist/esm/stellar/index.js.map +1 -0
  169. package/dist/esm/stellar/stellar_address.d.ts +8 -0
  170. package/dist/esm/stellar/stellar_address.d.ts.map +1 -0
  171. package/dist/esm/stellar/stellar_address.js +21 -0
  172. package/dist/esm/stellar/stellar_address.js.map +1 -0
  173. package/dist/esm/stellar/stellar_asset.d.ts +52 -0
  174. package/dist/esm/stellar/stellar_asset.d.ts.map +1 -0
  175. package/dist/esm/stellar/stellar_asset.js +147 -0
  176. package/dist/esm/stellar/stellar_asset.js.map +1 -0
  177. package/dist/esm/stellar/stellar_assets.d.ts +11 -0
  178. package/dist/esm/stellar/stellar_assets.d.ts.map +1 -0
  179. package/dist/esm/stellar/stellar_assets.js +23 -0
  180. package/dist/esm/stellar/stellar_assets.js.map +1 -0
  181. package/dist/esm/stellar/stellar_chain.d.ts +173 -0
  182. package/dist/esm/stellar/stellar_chain.d.ts.map +1 -0
  183. package/dist/esm/stellar/stellar_chain.js +1325 -0
  184. package/dist/esm/stellar/stellar_chain.js.map +1 -0
  185. package/dist/esm/stellar/stellar_chains.d.ts +5 -0
  186. package/dist/esm/stellar/stellar_chains.d.ts.map +1 -0
  187. package/dist/esm/stellar/stellar_chains.js +25 -0
  188. package/dist/esm/stellar/stellar_chains.js.map +1 -0
  189. package/dist/esm/stellar/stellar_gas_pricing.d.ts +13 -0
  190. package/dist/esm/stellar/stellar_gas_pricing.d.ts.map +1 -0
  191. package/dist/esm/stellar/stellar_gas_pricing.js +18 -0
  192. package/dist/esm/stellar/stellar_gas_pricing.js.map +1 -0
  193. package/dist/esm/stellar/stellar_strkey.d.ts +3 -0
  194. package/dist/esm/stellar/stellar_strkey.d.ts.map +1 -0
  195. package/dist/esm/stellar/stellar_strkey.js +67 -0
  196. package/dist/esm/stellar/stellar_strkey.js.map +1 -0
  197. package/dist/esm/stellar/stellar_transaction_status.d.ts +39 -0
  198. package/dist/esm/stellar/stellar_transaction_status.d.ts.map +1 -0
  199. package/dist/esm/stellar/stellar_transaction_status.js +68 -0
  200. package/dist/esm/stellar/stellar_transaction_status.js.map +1 -0
  201. package/dist/esm/stellar/stellar_transactions.d.ts +166 -0
  202. package/dist/esm/stellar/stellar_transactions.d.ts.map +1 -0
  203. package/dist/esm/stellar/stellar_transactions.js +451 -0
  204. package/dist/esm/stellar/stellar_transactions.js.map +1 -0
  205. package/dist/esm/stellar/stellar_wallet.d.ts +43 -0
  206. package/dist/esm/stellar/stellar_wallet.d.ts.map +1 -0
  207. package/dist/esm/stellar/stellar_wallet.js +190 -0
  208. package/dist/esm/stellar/stellar_wallet.js.map +1 -0
  209. package/dist/esm/token.d.ts +1 -0
  210. package/dist/esm/token.d.ts.map +1 -1
  211. package/dist/esm/token.js +3 -1
  212. package/dist/esm/token.js.map +1 -1
  213. package/dist/esm/transaction_json.d.ts +21 -0
  214. package/dist/esm/transaction_json.d.ts.map +1 -0
  215. package/dist/esm/transaction_json.js +75 -0
  216. package/dist/esm/transaction_json.js.map +1 -0
  217. package/dist/esm/transaction_prerequisite.d.ts +17 -0
  218. package/dist/esm/transaction_prerequisite.d.ts.map +1 -0
  219. package/dist/esm/transaction_prerequisite.js +13 -0
  220. package/dist/esm/transaction_prerequisite.js.map +1 -0
  221. package/dist/esm/transaction_simulation.d.ts +20 -0
  222. package/dist/esm/transaction_simulation.d.ts.map +1 -0
  223. package/dist/esm/transaction_simulation.js +17 -0
  224. package/dist/esm/transaction_simulation.js.map +1 -0
  225. package/dist/esm/tron/index.d.ts +16 -0
  226. package/dist/esm/tron/index.d.ts.map +1 -0
  227. package/dist/esm/tron/index.js +16 -0
  228. package/dist/esm/tron/index.js.map +1 -0
  229. package/dist/esm/tron/tron_abi.d.ts +3 -0
  230. package/dist/esm/tron/tron_abi.d.ts.map +1 -0
  231. package/dist/esm/tron/tron_abi.js +283 -0
  232. package/dist/esm/tron/tron_abi.js.map +1 -0
  233. package/dist/esm/tron/tron_address.d.ts +10 -0
  234. package/dist/esm/tron/tron_address.d.ts.map +1 -0
  235. package/dist/esm/tron/tron_address.js +34 -0
  236. package/dist/esm/tron/tron_address.js.map +1 -0
  237. package/dist/esm/tron/tron_asset.d.ts +19 -0
  238. package/dist/esm/tron/tron_asset.d.ts.map +1 -0
  239. package/dist/esm/tron/tron_asset.js +51 -0
  240. package/dist/esm/tron/tron_asset.js.map +1 -0
  241. package/dist/esm/tron/tron_assets.d.ts +10 -0
  242. package/dist/esm/tron/tron_assets.d.ts.map +1 -0
  243. package/dist/esm/tron/tron_assets.js +14 -0
  244. package/dist/esm/tron/tron_assets.js.map +1 -0
  245. package/dist/esm/tron/tron_base58.d.ts +7 -0
  246. package/dist/esm/tron/tron_base58.d.ts.map +1 -0
  247. package/dist/esm/tron/tron_base58.js +84 -0
  248. package/dist/esm/tron/tron_base58.js.map +1 -0
  249. package/dist/esm/tron/tron_canonical_transaction.d.ts +164 -0
  250. package/dist/esm/tron/tron_canonical_transaction.d.ts.map +1 -0
  251. package/dist/esm/tron/tron_canonical_transaction.js +262 -0
  252. package/dist/esm/tron/tron_canonical_transaction.js.map +1 -0
  253. package/dist/esm/tron/tron_chain.d.ts +136 -0
  254. package/dist/esm/tron/tron_chain.d.ts.map +1 -0
  255. package/dist/esm/tron/tron_chain.js +801 -0
  256. package/dist/esm/tron/tron_chain.js.map +1 -0
  257. package/dist/esm/tron/tron_chains.d.ts +5 -0
  258. package/dist/esm/tron/tron_chains.d.ts.map +1 -0
  259. package/dist/esm/tron/tron_chains.js +16 -0
  260. package/dist/esm/tron/tron_chains.js.map +1 -0
  261. package/dist/esm/tron/tron_client.d.ts +56 -0
  262. package/dist/esm/tron/tron_client.d.ts.map +1 -0
  263. package/dist/esm/tron/tron_client.js +319 -0
  264. package/dist/esm/tron/tron_client.js.map +1 -0
  265. package/dist/esm/tron/tron_contract.d.ts +69 -0
  266. package/dist/esm/tron/tron_contract.d.ts.map +1 -0
  267. package/dist/esm/tron/tron_contract.js +190 -0
  268. package/dist/esm/tron/tron_contract.js.map +1 -0
  269. package/dist/esm/tron/tron_gas_pricing.d.ts +12 -0
  270. package/dist/esm/tron/tron_gas_pricing.d.ts.map +1 -0
  271. package/dist/esm/tron/tron_gas_pricing.js +17 -0
  272. package/dist/esm/tron/tron_gas_pricing.js.map +1 -0
  273. package/dist/esm/tron/tron_keys.d.ts +61 -0
  274. package/dist/esm/tron/tron_keys.d.ts.map +1 -0
  275. package/dist/esm/tron/tron_keys.js +228 -0
  276. package/dist/esm/tron/tron_keys.js.map +1 -0
  277. package/dist/esm/tron/tron_transaction_builder.d.ts +56 -0
  278. package/dist/esm/tron/tron_transaction_builder.d.ts.map +1 -0
  279. package/dist/esm/tron/tron_transaction_builder.js +188 -0
  280. package/dist/esm/tron/tron_transaction_builder.js.map +1 -0
  281. package/dist/esm/tron/tron_transaction_status.d.ts +54 -0
  282. package/dist/esm/tron/tron_transaction_status.d.ts.map +1 -0
  283. package/dist/esm/tron/tron_transaction_status.js +113 -0
  284. package/dist/esm/tron/tron_transaction_status.js.map +1 -0
  285. package/dist/esm/tron/tron_transactions.d.ts +96 -0
  286. package/dist/esm/tron/tron_transactions.d.ts.map +1 -0
  287. package/dist/esm/tron/tron_transactions.js +181 -0
  288. package/dist/esm/tron/tron_transactions.js.map +1 -0
  289. package/dist/esm/tron/tron_wallet.d.ts +43 -0
  290. package/dist/esm/tron/tron_wallet.d.ts.map +1 -0
  291. package/dist/esm/tron/tron_wallet.js +148 -0
  292. package/dist/esm/tron/tron_wallet.js.map +1 -0
  293. package/dist/esm/unsigned_transaction.d.ts +5 -0
  294. package/dist/esm/unsigned_transaction.d.ts.map +1 -1
  295. package/dist/esm/unsigned_transaction.js +12 -0
  296. package/dist/esm/unsigned_transaction.js.map +1 -1
  297. package/dist/esm/wallet.base.d.ts +32 -0
  298. package/dist/esm/wallet.base.d.ts.map +1 -0
  299. package/dist/esm/wallet.base.js +23 -0
  300. package/dist/esm/wallet.base.js.map +1 -0
  301. package/docs/README.md +16 -7
  302. package/docs/solana.md +23 -0
  303. package/docs/stellar.md +113 -0
  304. package/docs/tron.md +103 -0
  305. package/package.json +14 -2
@@ -7,7 +7,7 @@ import { ChainError, ChainErrorKinds, sanitizeCause, sanitizeMessage } from "../
7
7
  import { NetworkType, registerNonEvmChain } from "../network_type.js";
8
8
  import { Priority } from "../priority.js";
9
9
  import { AssetBalanceChange, } from "../transaction_status.js";
10
- import { SolanaTransactionFees, SolanaTransactionStatus, } from "./solana_transaction_status.js";
10
+ import { SOLANA_FINALIZED_CONFIRMATIONS, SolanaTransactionFees, SolanaTransactionStatus, } from "./solana_transaction_status.js";
11
11
  import { SolanaAddress } from "./solana_address.js";
12
12
  import { SolanaToken } from "./solana_token.js";
13
13
  import { UnsignedSolanaTransaction } from "./unsigned_solana_transaction.js";
@@ -579,56 +579,85 @@ export class SolanaChain extends Chain {
579
579
  catch {
580
580
  scrubUrl = null;
581
581
  }
582
- let tx;
583
- try {
584
- tx = await connection.getTransaction(txHash, {
582
+ // RIN-296 D1: fetch `getTransaction` and `getSignatureStatus` in
583
+ // parallel so the common (Success) case pays one round-trip of
584
+ // latency instead of two. `getSignatureStatus` populates the four
585
+ // new finality fields (slot / confirmations / confirmationStatus /
586
+ // signers) on the status; `slot` and `signers` also come from
587
+ // `getTransaction` when it succeeds.
588
+ const [txResult, sigResult] = await Promise.allSettled([
589
+ connection.getTransaction(txHash, {
585
590
  commitment: 'confirmed',
586
591
  maxSupportedTransactionVersion: 0,
587
- });
588
- }
589
- catch (err) {
592
+ }),
593
+ connection.getSignatureStatus(txHash, { searchTransactionHistory: true }),
594
+ ]);
595
+ if (txResult.status === 'rejected') {
596
+ const err = txResult.reason;
590
597
  const rawMsg = err instanceof Error ? err.message : String(err);
591
598
  throw new ChainError(ChainErrorKinds.RpcError, sanitizeMessage(`Failed to read Solana tx ${txHash}: ${rawMsg}`, scrubUrl), { chainId: this.chainId, txHash }, sanitizeCause(err, scrubUrl));
592
599
  }
600
+ const tx = txResult.value;
601
+ // RIN-296 D2: sig-status failure on the Success path degrades to
602
+ // `null` fields rather than throwing — a working tx read must not
603
+ // fail because a metadata enrichment call failed.
604
+ const sigValue = sigResult.status === 'fulfilled' ? (sigResult.value?.value ?? null) : null;
605
+ const confirmationStatus = extractSolanaConfirmationStatus(sigValue?.confirmationStatus);
606
+ const confirmations = normaliseSolanaConfirmations(sigValue);
593
607
  if (!tx) {
594
- // Full tx not fetchable; fall back to signature status. Consume BOTH
595
- // fields (`confirmationStatus` + `err`) — the previous fix that
596
- // always returned Pending on settled-but-unfetchable let a settled-
597
- // FAILED tx poll indefinitely.
598
- let sig;
599
- try {
600
- sig = await connection.getSignatureStatus(txHash, { searchTransactionHistory: true });
601
- }
602
- catch (err) {
608
+ // Full tx not fetchable; use signature status. Consume BOTH fields
609
+ // (`confirmationStatus` + `err`) — always returning Pending on
610
+ // settled-but-unfetchable would let a settled-FAILED tx poll
611
+ // indefinitely.
612
+ if (sigResult.status === 'rejected') {
613
+ const err = sigResult.reason;
603
614
  const rawMsg = err instanceof Error ? err.message : String(err);
604
615
  throw new ChainError(ChainErrorKinds.RpcError, sanitizeMessage(`Failed to read Solana signature status ${txHash}: ${rawMsg}`, scrubUrl), { chainId: this.chainId, txHash }, sanitizeCause(err, scrubUrl));
605
616
  }
606
- if (!sig || !sig.value)
617
+ if (!sigValue)
607
618
  return SolanaTransactionStatus.notFound(this.chainId);
608
- const settled = sig.value.confirmationStatus === 'finalized' ||
609
- sig.value.confirmationStatus === 'confirmed';
610
- if (settled && sig.value.err) {
611
- // Fees are not reconstructable from a sig-status only — factory
612
- // now accepts fees: null for exactly this case.
619
+ const slot = sigValue.slot ?? null;
620
+ const settled = confirmationStatus === 'finalized' || confirmationStatus === 'confirmed';
621
+ if (settled && sigValue.err) {
613
622
  return SolanaTransactionStatus.failed({
614
623
  chainId: this.chainId,
615
624
  inclusionAt: null,
616
- error: { code: 'REVERTED', reason: JSON.stringify(sig.value.err) },
625
+ error: { code: 'REVERTED', reason: JSON.stringify(sigValue.err) },
617
626
  fees: null,
627
+ slot,
628
+ confirmations,
629
+ confirmationStatus,
618
630
  });
619
631
  }
620
632
  // settled-Success without a fetchable body OR still propagating —
621
633
  // keep polling. NotFound here would misreport a settled deposit.
622
- return SolanaTransactionStatus.pending(this.chainId);
634
+ // RIN-296 D3: pass finality through so consumers polling on
635
+ // Pending see the tx's position toward finality.
636
+ return SolanaTransactionStatus.pending(this.chainId, {
637
+ slot,
638
+ confirmations,
639
+ confirmationStatus,
640
+ });
623
641
  }
642
+ // RIN-296 R2: `slot` and `signers` are read from the `getTransaction`
643
+ // response the SDK already fetches. `signers` = the first
644
+ // `numRequiredSignatures` static account keys, matching
645
+ // omnichain-py `signer_keys = account_keys[: header.num_required_signatures]`.
646
+ const slot = tx.slot;
647
+ const accounts = tx.transaction.message.staticAccountKeys.map((k) => k.toBase58());
648
+ const signers = accounts.slice(0, tx.transaction.message.header.numRequiredSignatures);
624
649
  if (!tx.meta) {
625
650
  // A returned tx without meta is a valid RPC response shape (some
626
651
  // very old txs or unusual nodes). Report Pending so consumers keep
627
652
  // polling rather than throwing from a status read; matches the
628
653
  // _decodeBalanceChanges guard at the same file.
629
- return SolanaTransactionStatus.pending(this.chainId);
654
+ return SolanaTransactionStatus.pending(this.chainId, {
655
+ slot,
656
+ confirmations,
657
+ confirmationStatus,
658
+ signers,
659
+ });
630
660
  }
631
- const accounts = tx.transaction.message.staticAccountKeys.map((k) => k.toBase58());
632
661
  const feePayer = accounts[0] ?? '';
633
662
  if (feePayer.length === 0) {
634
663
  throw new ChainError(ChainErrorKinds.TransactionDecodeFailed, `Solana tx ${txHash} has no fee_payer account`, { chainId: this.chainId, txHash });
@@ -651,6 +680,10 @@ export class SolanaChain extends Chain {
651
680
  inclusionAt,
652
681
  error: { code: 'REVERTED', reason: JSON.stringify(tx.meta.err) },
653
682
  fees,
683
+ slot,
684
+ confirmations,
685
+ confirmationStatus,
686
+ signers,
654
687
  });
655
688
  }
656
689
  // Wrap the decoder so a malformed uiTokenAmount.amount / pre/postBalance
@@ -671,6 +704,10 @@ export class SolanaChain extends Chain {
671
704
  inclusionAt,
672
705
  balanceChanges,
673
706
  fees,
707
+ slot,
708
+ confirmations,
709
+ confirmationStatus,
710
+ signers,
674
711
  });
675
712
  }
676
713
  async getChainTipHeight() {
@@ -1288,6 +1325,33 @@ export function signatureBase58FromBytes(txBytes) {
1288
1325
  return bs58encode(sigBytes);
1289
1326
  }
1290
1327
  const ED25519_SPKI_PREFIX = Buffer.from('302a300506032b6570032100', 'hex');
1328
+ /**
1329
+ * Narrow `getSignatureStatuses` `confirmationStatus` (a raw string) to
1330
+ * the known union, falling back to `null` for unknown values so a
1331
+ * future upstream widening doesn't lie about the type.
1332
+ */
1333
+ function extractSolanaConfirmationStatus(raw) {
1334
+ if (raw === 'processed' || raw === 'confirmed' || raw === 'finalized')
1335
+ return raw;
1336
+ return null;
1337
+ }
1338
+ /**
1339
+ * Normalise `getSignatureStatuses` `value.confirmations` to a monotone
1340
+ * count consumers can gate on. Per the RPC contract, `null` means
1341
+ * rooted (past `finalized`); the SDK maps that to
1342
+ * {@link SOLANA_FINALIZED_CONFIRMATIONS} so `confirmations >= threshold`
1343
+ * checks behave the way callers expect. Passing a null `sigValue`
1344
+ * (sig-status unavailable — a metadata-enrichment failure on the
1345
+ * success path) returns `null` so consumers can distinguish "unknown"
1346
+ * from any real count.
1347
+ */
1348
+ function normaliseSolanaConfirmations(sigValue) {
1349
+ if (sigValue === null)
1350
+ return null;
1351
+ if (sigValue.confirmations !== null)
1352
+ return sigValue.confirmations;
1353
+ return SOLANA_FINALIZED_CONFIRMATIONS;
1354
+ }
1291
1355
  function parseSolanaSignature(raw) {
1292
1356
  const hexCandidate = raw.startsWith('0x') ? raw.slice(2) : raw;
1293
1357
  if (/^[0-9a-fA-F]+$/.test(hexCandidate) && hexCandidate.length === 128) {
@@ -1 +1 @@
1
- {"version":3,"file":"solana_chain.js","sourceRoot":"","sources":["../../../solana/solana_chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana_chain.js","sourceRoot":"","sources":["../../../solana/solana_chain.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,14 @@ export declare class SolanaTransactionFees {
15
15
  readonly netLamportsChangeByFeePayer: bigint;
16
16
  constructor(init: SolanaTransactionFeesInit);
17
17
  }
18
+ /**
19
+ * Confirmation count reported for a rooted (finalized-and-past)
20
+ * Solana transaction. The RPC returns `confirmations: null` when rooted;
21
+ * the SDK normalises to this constant so consumers gated on
22
+ * `confirmations >= threshold` see a monotone number.
23
+ */
24
+ export declare const SOLANA_FINALIZED_CONFIRMATIONS = 32;
25
+ export type SolanaConfirmationStatus = 'processed' | 'confirmed' | 'finalized';
18
26
  export interface SolanaTransactionStatusInit {
19
27
  chainId: number;
20
28
  status: TransactionStatusType;
@@ -22,30 +30,60 @@ export interface SolanaTransactionStatusInit {
22
30
  balanceChanges?: NestedBalanceChanges | null;
23
31
  error?: TransactionErrorInfo | null;
24
32
  fees?: SolanaTransactionFees | null;
33
+ slot?: number | null;
34
+ confirmations?: number | null;
35
+ confirmationStatus?: SolanaConfirmationStatus | null;
36
+ signers?: readonly string[];
25
37
  }
26
38
  export declare class SolanaTransactionStatus extends TransactionStatus {
27
39
  readonly fees: SolanaTransactionFees | null;
40
+ /** Slot from `getTransaction.slot`, or from `getSignatureStatus.slot`
41
+ * on the ledger-pruned fallback. `null` when neither surfaced it. */
42
+ readonly slot: number | null;
43
+ /** `getSignatureStatus.confirmations`, normalised to
44
+ * {@link SOLANA_FINALIZED_CONFIRMATIONS} for rooted responses. `null`
45
+ * when the sig-status read was unavailable. */
46
+ readonly confirmations: number | null;
47
+ /** Raw RPC `confirmationStatus`. `null` when unavailable or unknown. */
48
+ readonly confirmationStatus: SolanaConfirmationStatus | null;
49
+ /** Base58 signer keys in message order (`staticAccountKeys[0..header.numRequiredSignatures]`).
50
+ * Empty when the SDK never observed the message (ledger-pruned fallback,
51
+ * `notFound`). */
52
+ readonly signers: readonly string[];
28
53
  constructor(init: SolanaTransactionStatusInit);
29
54
  static successful(args: {
30
55
  chainId: number;
31
56
  inclusionAt: Date | null;
32
57
  balanceChanges: NestedBalanceChanges;
33
58
  fees: SolanaTransactionFees;
59
+ slot?: number | null;
60
+ confirmations?: number | null;
61
+ confirmationStatus?: SolanaConfirmationStatus | null;
62
+ signers?: readonly string[];
34
63
  }): SolanaTransactionStatus;
35
64
  /**
36
65
  * `fees` is nullable — the settled-but-unfetchable path (RPC pruned
37
66
  * the slot's ledger data so `getTransaction` returned null but
38
67
  * `getSignatureStatus` reports `finalized` + `err`) has no way to
39
68
  * reconstruct fees; the alternative would be polling `Pending`
40
- * indefinitely (iter-2 medium).
69
+ * indefinitely.
41
70
  */
42
71
  static failed(args: {
43
72
  chainId: number;
44
73
  inclusionAt: Date | null;
45
74
  error: TransactionErrorInfo;
46
75
  fees: SolanaTransactionFees | null;
76
+ slot?: number | null;
77
+ confirmations?: number | null;
78
+ confirmationStatus?: SolanaConfirmationStatus | null;
79
+ signers?: readonly string[];
80
+ }): SolanaTransactionStatus;
81
+ static pending(chainId: number, finality?: {
82
+ slot?: number | null;
83
+ confirmations?: number | null;
84
+ confirmationStatus?: SolanaConfirmationStatus | null;
85
+ signers?: readonly string[];
47
86
  }): SolanaTransactionStatus;
48
- static pending(chainId: number): SolanaTransactionStatus;
49
87
  static notFound(chainId: number, error?: TransactionErrorInfo | null): SolanaTransactionStatus;
50
88
  /**
51
89
  * Deep-copies `balanceChanges` and reverses the fee debit on the fee_payer's
@@ -1 +1 @@
1
- {"version":3,"file":"solana_transaction_status.d.ts","sourceRoot":"","sources":["../../../solana/solana_transaction_status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;kFAC8E;IAC9E,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;gBAEjC,IAAI,EAAE,yBAAyB;CAyB5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;gBAEhC,IAAI,EAAE,2BAA2B;IAW7C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;QACzB,cAAc,EAAE,oBAAoB,CAAC;QACrC,IAAI,EAAE,qBAAqB,CAAC;KAC7B,GAAG,uBAAuB;IAW3B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;QACzB,KAAK,EAAE,oBAAoB,CAAC;QAC5B,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;KACpC,GAAG,uBAAuB;IAW3B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB;IAWxD,MAAM,CAAC,QAAQ,CACb,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,oBAAoB,GAAG,IAAW,GACxC,uBAAuB;IAW1B;;;;;;OAMG;IACH,2BAA2B,CAAC,WAAW,EAAE,KAAK,GAAG,oBAAoB;CAsEtE"}
1
+ {"version":3,"file":"solana_transaction_status.d.ts","sourceRoot":"","sources":["../../../solana/solana_transaction_status.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,28 @@ export class SolanaTransactionFees {
24
24
  this.netLamportsChangeByFeePayer = init.netLamportsChangeByFeePayer;
25
25
  }
26
26
  }
27
+ /**
28
+ * Confirmation count reported for a rooted (finalized-and-past)
29
+ * Solana transaction. The RPC returns `confirmations: null` when rooted;
30
+ * the SDK normalises to this constant so consumers gated on
31
+ * `confirmations >= threshold` see a monotone number.
32
+ */
33
+ export const SOLANA_FINALIZED_CONFIRMATIONS = 32;
27
34
  export class SolanaTransactionStatus extends TransactionStatus {
28
35
  fees;
36
+ /** Slot from `getTransaction.slot`, or from `getSignatureStatus.slot`
37
+ * on the ledger-pruned fallback. `null` when neither surfaced it. */
38
+ slot;
39
+ /** `getSignatureStatus.confirmations`, normalised to
40
+ * {@link SOLANA_FINALIZED_CONFIRMATIONS} for rooted responses. `null`
41
+ * when the sig-status read was unavailable. */
42
+ confirmations;
43
+ /** Raw RPC `confirmationStatus`. `null` when unavailable or unknown. */
44
+ confirmationStatus;
45
+ /** Base58 signer keys in message order (`staticAccountKeys[0..header.numRequiredSignatures]`).
46
+ * Empty when the SDK never observed the message (ledger-pruned fallback,
47
+ * `notFound`). */
48
+ signers;
29
49
  constructor(init) {
30
50
  super({
31
51
  chainId: init.chainId,
@@ -35,6 +55,10 @@ export class SolanaTransactionStatus extends TransactionStatus {
35
55
  balanceChanges: init.balanceChanges,
36
56
  });
37
57
  this.fees = init.fees ?? null;
58
+ this.slot = init.slot ?? null;
59
+ this.confirmations = init.confirmations ?? null;
60
+ this.confirmationStatus = init.confirmationStatus ?? null;
61
+ this.signers = init.signers ?? [];
38
62
  }
39
63
  static successful(args) {
40
64
  return new SolanaTransactionStatus({
@@ -44,6 +68,10 @@ export class SolanaTransactionStatus extends TransactionStatus {
44
68
  balanceChanges: args.balanceChanges,
45
69
  fees: args.fees,
46
70
  error: null,
71
+ slot: args.slot,
72
+ confirmations: args.confirmations,
73
+ confirmationStatus: args.confirmationStatus,
74
+ signers: args.signers,
47
75
  });
48
76
  }
49
77
  /**
@@ -51,7 +79,7 @@ export class SolanaTransactionStatus extends TransactionStatus {
51
79
  * the slot's ledger data so `getTransaction` returned null but
52
80
  * `getSignatureStatus` reports `finalized` + `err`) has no way to
53
81
  * reconstruct fees; the alternative would be polling `Pending`
54
- * indefinitely (iter-2 medium).
82
+ * indefinitely.
55
83
  */
56
84
  static failed(args) {
57
85
  return new SolanaTransactionStatus({
@@ -61,9 +89,13 @@ export class SolanaTransactionStatus extends TransactionStatus {
61
89
  error: args.error,
62
90
  balanceChanges: null,
63
91
  fees: args.fees,
92
+ slot: args.slot,
93
+ confirmations: args.confirmations,
94
+ confirmationStatus: args.confirmationStatus,
95
+ signers: args.signers,
64
96
  });
65
97
  }
66
- static pending(chainId) {
98
+ static pending(chainId, finality) {
67
99
  return new SolanaTransactionStatus({
68
100
  chainId,
69
101
  status: TransactionStatusTypes.Pending,
@@ -71,6 +103,10 @@ export class SolanaTransactionStatus extends TransactionStatus {
71
103
  error: null,
72
104
  balanceChanges: null,
73
105
  fees: null,
106
+ slot: finality?.slot,
107
+ confirmations: finality?.confirmations,
108
+ confirmationStatus: finality?.confirmationStatus,
109
+ signers: finality?.signers,
74
110
  });
75
111
  }
76
112
  static notFound(chainId, error = null) {