@getomnichain/omnichain 0.2.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 (296) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +66 -0
  3. package/dist/abstract_gas_pricing.d.ts +31 -0
  4. package/dist/abstract_gas_pricing.d.ts.map +1 -0
  5. package/dist/abstract_gas_pricing.js +22 -0
  6. package/dist/abstract_gas_pricing.js.map +1 -0
  7. package/dist/address.d.ts +10 -0
  8. package/dist/address.d.ts.map +1 -0
  9. package/dist/address.factory.d.ts +26 -0
  10. package/dist/address.factory.d.ts.map +1 -0
  11. package/dist/address.factory.js +75 -0
  12. package/dist/address.factory.js.map +1 -0
  13. package/dist/address.js +13 -0
  14. package/dist/address.js.map +1 -0
  15. package/dist/address_field.decorator.d.ts +17 -0
  16. package/dist/address_field.decorator.d.ts.map +1 -0
  17. package/dist/address_field.decorator.js +34 -0
  18. package/dist/address_field.decorator.js.map +1 -0
  19. package/dist/chain.base.d.ts +79 -0
  20. package/dist/chain.base.d.ts.map +1 -0
  21. package/dist/chain.base.js +113 -0
  22. package/dist/chain.base.js.map +1 -0
  23. package/dist/chain_ids.d.ts +122 -0
  24. package/dist/chain_ids.d.ts.map +1 -0
  25. package/dist/chain_ids.js +193 -0
  26. package/dist/chain_ids.js.map +1 -0
  27. package/dist/errors.d.ts +42 -0
  28. package/dist/errors.d.ts.map +1 -0
  29. package/dist/errors.js +62 -0
  30. package/dist/errors.js.map +1 -0
  31. package/dist/evm/evm_address.d.ts +11 -0
  32. package/dist/evm/evm_address.d.ts.map +1 -0
  33. package/dist/evm/evm_address.js +56 -0
  34. package/dist/evm/evm_address.js.map +1 -0
  35. package/dist/evm/evm_chain.d.ts +123 -0
  36. package/dist/evm/evm_chain.d.ts.map +1 -0
  37. package/dist/evm/evm_chain.js +685 -0
  38. package/dist/evm/evm_chain.js.map +1 -0
  39. package/dist/evm/evm_chains.d.ts +83 -0
  40. package/dist/evm/evm_chains.d.ts.map +1 -0
  41. package/dist/evm/evm_chains.js +493 -0
  42. package/dist/evm/evm_chains.js.map +1 -0
  43. package/dist/evm/evm_gas_estimate.d.ts +45 -0
  44. package/dist/evm/evm_gas_estimate.d.ts.map +1 -0
  45. package/dist/evm/evm_gas_estimate.js +70 -0
  46. package/dist/evm/evm_gas_estimate.js.map +1 -0
  47. package/dist/evm/evm_gas_pricing.d.ts +40 -0
  48. package/dist/evm/evm_gas_pricing.d.ts.map +1 -0
  49. package/dist/evm/evm_gas_pricing.js +56 -0
  50. package/dist/evm/evm_gas_pricing.js.map +1 -0
  51. package/dist/evm/evm_token.d.ts +7 -0
  52. package/dist/evm/evm_token.d.ts.map +1 -0
  53. package/dist/evm/evm_token.js +22 -0
  54. package/dist/evm/evm_token.js.map +1 -0
  55. package/dist/evm/evm_tokens.d.ts +81 -0
  56. package/dist/evm/evm_tokens.d.ts.map +1 -0
  57. package/dist/evm/evm_tokens.js +104 -0
  58. package/dist/evm/evm_tokens.js.map +1 -0
  59. package/dist/evm/evm_transaction_status.d.ts +108 -0
  60. package/dist/evm/evm_transaction_status.d.ts.map +1 -0
  61. package/dist/evm/evm_transaction_status.js +177 -0
  62. package/dist/evm/evm_transaction_status.js.map +1 -0
  63. package/dist/evm/index.d.ts +10 -0
  64. package/dist/evm/index.d.ts.map +1 -0
  65. package/dist/evm/index.js +10 -0
  66. package/dist/evm/index.js.map +1 -0
  67. package/dist/evm/unsigned_evm_transaction.d.ts +19 -0
  68. package/dist/evm/unsigned_evm_transaction.d.ts.map +1 -0
  69. package/dist/evm/unsigned_evm_transaction.js +18 -0
  70. package/dist/evm/unsigned_evm_transaction.js.map +1 -0
  71. package/dist/index.d.ts +18 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +18 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/is_address.decorator.d.ts +3 -0
  76. package/dist/is_address.decorator.d.ts.map +1 -0
  77. package/dist/is_address.decorator.js +51 -0
  78. package/dist/is_address.decorator.js.map +1 -0
  79. package/dist/network_type.d.ts +73 -0
  80. package/dist/network_type.d.ts.map +1 -0
  81. package/dist/network_type.js +144 -0
  82. package/dist/network_type.js.map +1 -0
  83. package/dist/priority.d.ts +23 -0
  84. package/dist/priority.d.ts.map +1 -0
  85. package/dist/priority.js +23 -0
  86. package/dist/priority.js.map +1 -0
  87. package/dist/solana/index.d.ts +9 -0
  88. package/dist/solana/index.d.ts.map +1 -0
  89. package/dist/solana/index.js +9 -0
  90. package/dist/solana/index.js.map +1 -0
  91. package/dist/solana/solana_address.d.ts +20 -0
  92. package/dist/solana/solana_address.d.ts.map +1 -0
  93. package/dist/solana/solana_address.js +45 -0
  94. package/dist/solana/solana_address.js.map +1 -0
  95. package/dist/solana/solana_chain.d.ts +213 -0
  96. package/dist/solana/solana_chain.d.ts.map +1 -0
  97. package/dist/solana/solana_chain.js +704 -0
  98. package/dist/solana/solana_chain.js.map +1 -0
  99. package/dist/solana/solana_chains.d.ts +24 -0
  100. package/dist/solana/solana_chains.d.ts.map +1 -0
  101. package/dist/solana/solana_chains.js +84 -0
  102. package/dist/solana/solana_chains.js.map +1 -0
  103. package/dist/solana/solana_gas_pricing.d.ts +30 -0
  104. package/dist/solana/solana_gas_pricing.d.ts.map +1 -0
  105. package/dist/solana/solana_gas_pricing.js +26 -0
  106. package/dist/solana/solana_gas_pricing.js.map +1 -0
  107. package/dist/solana/solana_token.d.ts +19 -0
  108. package/dist/solana/solana_token.d.ts.map +1 -0
  109. package/dist/solana/solana_token.js +34 -0
  110. package/dist/solana/solana_token.js.map +1 -0
  111. package/dist/solana/solana_tokens.d.ts +22 -0
  112. package/dist/solana/solana_tokens.d.ts.map +1 -0
  113. package/dist/solana/solana_tokens.js +26 -0
  114. package/dist/solana/solana_tokens.js.map +1 -0
  115. package/dist/solana/solana_transaction_status.d.ts +59 -0
  116. package/dist/solana/solana_transaction_status.d.ts.map +1 -0
  117. package/dist/solana/solana_transaction_status.js +144 -0
  118. package/dist/solana/solana_transaction_status.js.map +1 -0
  119. package/dist/solana/unsigned_solana_transaction.d.ts +31 -0
  120. package/dist/solana/unsigned_solana_transaction.d.ts.map +1 -0
  121. package/dist/solana/unsigned_solana_transaction.js +26 -0
  122. package/dist/solana/unsigned_solana_transaction.js.map +1 -0
  123. package/dist/token.d.ts +35 -0
  124. package/dist/token.d.ts.map +1 -0
  125. package/dist/token.js +62 -0
  126. package/dist/token.js.map +1 -0
  127. package/dist/ton/index.d.ts +2 -0
  128. package/dist/ton/index.d.ts.map +1 -0
  129. package/dist/ton/index.js +2 -0
  130. package/dist/ton/index.js.map +1 -0
  131. package/dist/ton/ton_address.d.ts +10 -0
  132. package/dist/ton/ton_address.d.ts.map +1 -0
  133. package/dist/ton/ton_address.js +53 -0
  134. package/dist/ton/ton_address.js.map +1 -0
  135. package/dist/transaction_status.d.ts +140 -0
  136. package/dist/transaction_status.d.ts.map +1 -0
  137. package/dist/transaction_status.js +271 -0
  138. package/dist/transaction_status.js.map +1 -0
  139. package/dist/unsigned_transaction.d.ts +7 -0
  140. package/dist/unsigned_transaction.d.ts.map +1 -0
  141. package/dist/unsigned_transaction.js +9 -0
  142. package/dist/unsigned_transaction.js.map +1 -0
  143. package/dist/utxo/btc/btc_address.d.ts +15 -0
  144. package/dist/utxo/btc/btc_address.d.ts.map +1 -0
  145. package/dist/utxo/btc/btc_address.js +39 -0
  146. package/dist/utxo/btc/btc_address.js.map +1 -0
  147. package/dist/utxo/btc/btc_chain.d.ts +34 -0
  148. package/dist/utxo/btc/btc_chain.d.ts.map +1 -0
  149. package/dist/utxo/btc/btc_chain.js +62 -0
  150. package/dist/utxo/btc/btc_chain.js.map +1 -0
  151. package/dist/utxo/btc/btc_chains.d.ts +25 -0
  152. package/dist/utxo/btc/btc_chains.d.ts.map +1 -0
  153. package/dist/utxo/btc/btc_chains.js +43 -0
  154. package/dist/utxo/btc/btc_chains.js.map +1 -0
  155. package/dist/utxo/btc/btc_token.d.ts +6 -0
  156. package/dist/utxo/btc/btc_token.d.ts.map +1 -0
  157. package/dist/utxo/btc/btc_token.js +11 -0
  158. package/dist/utxo/btc/btc_token.js.map +1 -0
  159. package/dist/utxo/btc/index.d.ts +14 -0
  160. package/dist/utxo/btc/index.d.ts.map +1 -0
  161. package/dist/utxo/btc/index.js +14 -0
  162. package/dist/utxo/btc/index.js.map +1 -0
  163. package/dist/utxo/btc/network_params.d.ts +50 -0
  164. package/dist/utxo/btc/network_params.d.ts.map +1 -0
  165. package/dist/utxo/btc/network_params.js +188 -0
  166. package/dist/utxo/btc/network_params.js.map +1 -0
  167. package/dist/utxo/btc/tools/asset_outpoint.d.ts +7 -0
  168. package/dist/utxo/btc/tools/asset_outpoint.d.ts.map +1 -0
  169. package/dist/utxo/btc/tools/asset_outpoint.js +12 -0
  170. package/dist/utxo/btc/tools/asset_outpoint.js.map +1 -0
  171. package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts +41 -0
  172. package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts.map +1 -0
  173. package/dist/utxo/btc/tools/bitcoin_core.tool.js +172 -0
  174. package/dist/utxo/btc/tools/bitcoin_core.tool.js.map +1 -0
  175. package/dist/utxo/btc/tools/esplora.tool.d.ts +27 -0
  176. package/dist/utxo/btc/tools/esplora.tool.d.ts.map +1 -0
  177. package/dist/utxo/btc/tools/esplora.tool.js +113 -0
  178. package/dist/utxo/btc/tools/esplora.tool.js.map +1 -0
  179. package/dist/utxo/btc/tools/inscription_index.d.ts +6 -0
  180. package/dist/utxo/btc/tools/inscription_index.d.ts.map +1 -0
  181. package/dist/utxo/btc/tools/inscription_index.js +2 -0
  182. package/dist/utxo/btc/tools/inscription_index.js.map +1 -0
  183. package/dist/utxo/btc/tools/ordiscan.tool.d.ts +19 -0
  184. package/dist/utxo/btc/tools/ordiscan.tool.d.ts.map +1 -0
  185. package/dist/utxo/btc/tools/ordiscan.tool.js +53 -0
  186. package/dist/utxo/btc/tools/ordiscan.tool.js.map +1 -0
  187. package/dist/utxo/btc/tools/rare_sat_index.d.ts +6 -0
  188. package/dist/utxo/btc/tools/rare_sat_index.d.ts.map +1 -0
  189. package/dist/utxo/btc/tools/rare_sat_index.js +2 -0
  190. package/dist/utxo/btc/tools/rare_sat_index.js.map +1 -0
  191. package/dist/utxo/btc/tools/rune_index.d.ts +6 -0
  192. package/dist/utxo/btc/tools/rune_index.d.ts.map +1 -0
  193. package/dist/utxo/btc/tools/rune_index.js +2 -0
  194. package/dist/utxo/btc/tools/rune_index.js.map +1 -0
  195. package/dist/utxo/btc/tools/unisat.tool.d.ts +18 -0
  196. package/dist/utxo/btc/tools/unisat.tool.d.ts.map +1 -0
  197. package/dist/utxo/btc/tools/unisat.tool.js +49 -0
  198. package/dist/utxo/btc/tools/unisat.tool.js.map +1 -0
  199. package/dist/utxo/coin_selection.d.ts +29 -0
  200. package/dist/utxo/coin_selection.d.ts.map +1 -0
  201. package/dist/utxo/coin_selection.js +156 -0
  202. package/dist/utxo/coin_selection.js.map +1 -0
  203. package/dist/utxo/doge/doge_chains.d.ts +17 -0
  204. package/dist/utxo/doge/doge_chains.d.ts.map +1 -0
  205. package/dist/utxo/doge/doge_chains.js +28 -0
  206. package/dist/utxo/doge/doge_chains.js.map +1 -0
  207. package/dist/utxo/doge/index.d.ts +3 -0
  208. package/dist/utxo/doge/index.d.ts.map +1 -0
  209. package/dist/utxo/doge/index.js +3 -0
  210. package/dist/utxo/doge/index.js.map +1 -0
  211. package/dist/utxo/doge/network_params.d.ts +4 -0
  212. package/dist/utxo/doge/network_params.d.ts.map +1 -0
  213. package/dist/utxo/doge/network_params.js +24 -0
  214. package/dist/utxo/doge/network_params.js.map +1 -0
  215. package/dist/utxo/ecc.d.ts +2 -0
  216. package/dist/utxo/ecc.d.ts.map +1 -0
  217. package/dist/utxo/ecc.js +11 -0
  218. package/dist/utxo/ecc.js.map +1 -0
  219. package/dist/utxo/fee.d.ts +12 -0
  220. package/dist/utxo/fee.d.ts.map +1 -0
  221. package/dist/utxo/fee.js +51 -0
  222. package/dist/utxo/fee.js.map +1 -0
  223. package/dist/utxo/index.d.ts +20 -0
  224. package/dist/utxo/index.d.ts.map +1 -0
  225. package/dist/utxo/index.js +20 -0
  226. package/dist/utxo/index.js.map +1 -0
  227. package/dist/utxo/ltc/index.d.ts +3 -0
  228. package/dist/utxo/ltc/index.d.ts.map +1 -0
  229. package/dist/utxo/ltc/index.js +3 -0
  230. package/dist/utxo/ltc/index.js.map +1 -0
  231. package/dist/utxo/ltc/ltc_chains.d.ts +17 -0
  232. package/dist/utxo/ltc/ltc_chains.d.ts.map +1 -0
  233. package/dist/utxo/ltc/ltc_chains.js +28 -0
  234. package/dist/utxo/ltc/ltc_chains.js.map +1 -0
  235. package/dist/utxo/ltc/network_params.d.ts +4 -0
  236. package/dist/utxo/ltc/network_params.d.ts.map +1 -0
  237. package/dist/utxo/ltc/network_params.js +27 -0
  238. package/dist/utxo/ltc/network_params.js.map +1 -0
  239. package/dist/utxo/script.d.ts +16 -0
  240. package/dist/utxo/script.d.ts.map +1 -0
  241. package/dist/utxo/script.js +52 -0
  242. package/dist/utxo/script.js.map +1 -0
  243. package/dist/utxo/tools/broadcaster.d.ts +6 -0
  244. package/dist/utxo/tools/broadcaster.d.ts.map +1 -0
  245. package/dist/utxo/tools/broadcaster.js +2 -0
  246. package/dist/utxo/tools/broadcaster.js.map +1 -0
  247. package/dist/utxo/tools/chain_tip_provider.d.ts +5 -0
  248. package/dist/utxo/tools/chain_tip_provider.d.ts.map +1 -0
  249. package/dist/utxo/tools/chain_tip_provider.js +2 -0
  250. package/dist/utxo/tools/chain_tip_provider.js.map +1 -0
  251. package/dist/utxo/tools/fee_estimator.d.ts +6 -0
  252. package/dist/utxo/tools/fee_estimator.d.ts.map +1 -0
  253. package/dist/utxo/tools/fee_estimator.js +2 -0
  254. package/dist/utxo/tools/fee_estimator.js.map +1 -0
  255. package/dist/utxo/tools/raw_transaction_provider.d.ts +8 -0
  256. package/dist/utxo/tools/raw_transaction_provider.d.ts.map +1 -0
  257. package/dist/utxo/tools/raw_transaction_provider.js +2 -0
  258. package/dist/utxo/tools/raw_transaction_provider.js.map +1 -0
  259. package/dist/utxo/tools/utxo_provider.d.ts +7 -0
  260. package/dist/utxo/tools/utxo_provider.d.ts.map +1 -0
  261. package/dist/utxo/tools/utxo_provider.js +2 -0
  262. package/dist/utxo/tools/utxo_provider.js.map +1 -0
  263. package/dist/utxo/unsigned_utxo_transaction.d.ts +32 -0
  264. package/dist/utxo/unsigned_utxo_transaction.d.ts.map +1 -0
  265. package/dist/utxo/unsigned_utxo_transaction.js +32 -0
  266. package/dist/utxo/unsigned_utxo_transaction.js.map +1 -0
  267. package/dist/utxo/utxo.d.ts +43 -0
  268. package/dist/utxo/utxo.d.ts.map +1 -0
  269. package/dist/utxo/utxo.js +2 -0
  270. package/dist/utxo/utxo.js.map +1 -0
  271. package/dist/utxo/utxo_chain.d.ts +102 -0
  272. package/dist/utxo/utxo_chain.d.ts.map +1 -0
  273. package/dist/utxo/utxo_chain.js +524 -0
  274. package/dist/utxo/utxo_chain.js.map +1 -0
  275. package/dist/utxo/utxo_chains.d.ts +29 -0
  276. package/dist/utxo/utxo_chains.d.ts.map +1 -0
  277. package/dist/utxo/utxo_chains.js +63 -0
  278. package/dist/utxo/utxo_chains.js.map +1 -0
  279. package/dist/utxo/utxo_gas_pricing.d.ts +22 -0
  280. package/dist/utxo/utxo_gas_pricing.d.ts.map +1 -0
  281. package/dist/utxo/utxo_gas_pricing.js +20 -0
  282. package/dist/utxo/utxo_gas_pricing.js.map +1 -0
  283. package/dist/utxo/utxo_network_params.d.ts +25 -0
  284. package/dist/utxo/utxo_network_params.d.ts.map +1 -0
  285. package/dist/utxo/utxo_network_params.js +15 -0
  286. package/dist/utxo/utxo_network_params.js.map +1 -0
  287. package/dist/utxo/utxo_transaction_status.d.ts +73 -0
  288. package/dist/utxo/utxo_transaction_status.d.ts.map +1 -0
  289. package/dist/utxo/utxo_transaction_status.js +89 -0
  290. package/dist/utxo/utxo_transaction_status.js.map +1 -0
  291. package/docs/PUBLISHING.md +119 -0
  292. package/docs/README.md +273 -0
  293. package/docs/evm.md +205 -0
  294. package/docs/solana.md +220 -0
  295. package/docs/utxo.md +364 -0
  296. package/package.json +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_chain.js","sourceRoot":"","sources":["../../solana/solana_chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { SolanaChain } from './solana_chain.ts';
2
+ /**
3
+ * Solana chain constants and pre-baked instances. Mirrors
4
+ * omnichain-py/src/omnichain/impl/solana/chains.py.
5
+ *
6
+ * Chain IDs match Python's -2000/-2001/-2002 scheme (chain_ids.py:43-45).
7
+ * Chain names include the cluster suffix ("Solana Mainnet", "Solana Testnet",
8
+ * "Solana Devnet") so `<NAME>_RPC_URL` env-var derivation is unambiguous.
9
+ */
10
+ /** @deprecated Use CHAIN_ID_SOLANA_MAINNET from chain_ids.ts (value changed from -100 to -2000). */
11
+ export declare const SOLANA_MAINNET_CHAIN_ID = -2000;
12
+ /** @deprecated Use CHAIN_ID_SOLANA_TESTNET from chain_ids.ts (value changed from -101 to -2001). */
13
+ export declare const SOLANA_TESTNET_CHAIN_ID = -2001;
14
+ /** @deprecated Use CHAIN_ID_SOLANA_DEVNET from chain_ids.ts (value changed from -102 to -2002). */
15
+ export declare const SOLANA_DEVNET_CHAIN_ID = -2002;
16
+ /** Map a legacy Solana chainId (-100/-101/-102) to its canonical v0 value
17
+ * (-2000/-2001/-2002). Non-legacy IDs are returned unchanged.
18
+ * Call this on any persisted chainId before passing it into the SDK. */
19
+ export declare function migrateLegacySolanaChainId(chainId: number): number;
20
+ export declare const SolanaMainnet: SolanaChain;
21
+ export declare const SolanaTestnet: SolanaChain;
22
+ export declare const SolanaDevnet: SolanaChain;
23
+ export declare const ALL_SOLANA_CHAINS: ReadonlyArray<SolanaChain>;
24
+ //# sourceMappingURL=solana_chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_chains.d.ts","sourceRoot":"","sources":["../../solana/solana_chains.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;GAOG;AAEH,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,QAA0B,CAAC;AAC/D,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,QAA0B,CAAC;AAC/D,mGAAmG;AACnG,eAAO,MAAM,sBAAsB,QAAyB,CAAC;AAgB7D;;yEAEyE;AACzE,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlE;AAOD,eAAO,MAAM,aAAa,aAYxB,CAAC;AAEH,eAAO,MAAM,aAAa,aASxB,CAAC;AAEH,eAAO,MAAM,YAAY,aASvB,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,WAAW,CAIxD,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { CHAIN_ID_SOLANA_DEVNET, CHAIN_ID_SOLANA_MAINNET, CHAIN_ID_SOLANA_TESTNET, } from "../chain_ids.js";
2
+ import { SolanaChain } from "./solana_chain.js";
3
+ /**
4
+ * Solana chain constants and pre-baked instances. Mirrors
5
+ * omnichain-py/src/omnichain/impl/solana/chains.py.
6
+ *
7
+ * Chain IDs match Python's -2000/-2001/-2002 scheme (chain_ids.py:43-45).
8
+ * Chain names include the cluster suffix ("Solana Mainnet", "Solana Testnet",
9
+ * "Solana Devnet") so `<NAME>_RPC_URL` env-var derivation is unambiguous.
10
+ */
11
+ /** @deprecated Use CHAIN_ID_SOLANA_MAINNET from chain_ids.ts (value changed from -100 to -2000). */
12
+ export const SOLANA_MAINNET_CHAIN_ID = CHAIN_ID_SOLANA_MAINNET;
13
+ /** @deprecated Use CHAIN_ID_SOLANA_TESTNET from chain_ids.ts (value changed from -101 to -2001). */
14
+ export const SOLANA_TESTNET_CHAIN_ID = CHAIN_ID_SOLANA_TESTNET;
15
+ /** @deprecated Use CHAIN_ID_SOLANA_DEVNET from chain_ids.ts (value changed from -102 to -2002). */
16
+ export const SOLANA_DEVNET_CHAIN_ID = CHAIN_ID_SOLANA_DEVNET;
17
+ /**
18
+ * Legacy Solana chainId numbering used by the pre-v0 TS SDK.
19
+ *
20
+ * These are NOT registered as `NetworkType.SOLANA` aliases — a half-wired
21
+ * shim (accept-then-fail-later) is worse than fail-closed for a signing SDK.
22
+ * Consumers with persisted `-100 / -101 / -102` rows MUST call
23
+ * `migrateLegacySolanaChainId(id)` before those values enter the SDK;
24
+ * otherwise `networkTypeOf(-100)` throws `ChainError(ChainNotSupported)`
25
+ * at validation time, which is the intended safe behavior.
26
+ */
27
+ const LEGACY_SOLANA_MAINNET_CHAIN_ID = -100;
28
+ const LEGACY_SOLANA_TESTNET_CHAIN_ID = -101;
29
+ const LEGACY_SOLANA_DEVNET_CHAIN_ID = -102;
30
+ /** Map a legacy Solana chainId (-100/-101/-102) to its canonical v0 value
31
+ * (-2000/-2001/-2002). Non-legacy IDs are returned unchanged.
32
+ * Call this on any persisted chainId before passing it into the SDK. */
33
+ export function migrateLegacySolanaChainId(chainId) {
34
+ if (chainId === LEGACY_SOLANA_MAINNET_CHAIN_ID)
35
+ return CHAIN_ID_SOLANA_MAINNET;
36
+ if (chainId === LEGACY_SOLANA_TESTNET_CHAIN_ID)
37
+ return CHAIN_ID_SOLANA_TESTNET;
38
+ if (chainId === LEGACY_SOLANA_DEVNET_CHAIN_ID)
39
+ return CHAIN_ID_SOLANA_DEVNET;
40
+ return chainId;
41
+ }
42
+ // Predefined factories don't set rpcUrl — SolanaChain's fallback chain is:
43
+ // <NAME_UPPERCASE_UNDERSCORED>_RPC_URL env,
44
+ // then SOLANA_<chainId>_RPC_URL env (mirrors Python impl/solana/base.py:424-434),
45
+ // then defaultRpcUrl (public cluster). Solana never throws "not configured".
46
+ export const SolanaMainnet = new SolanaChain({
47
+ chainId: CHAIN_ID_SOLANA_MAINNET,
48
+ name: 'Solana Mainnet',
49
+ blockTimeSeconds: 0.4,
50
+ explorerBaseUrl: 'https://solscan.io',
51
+ nativeSymbol: 'SOL',
52
+ defaultRpcUrl: 'https://api.mainnet-beta.solana.com',
53
+ // Pre-v0 SDK derived SOLANA_RPC_URL for the mainnet instance; keep it as a
54
+ // legacy fallback so existing deployments don't silently switch to the
55
+ // rate-limited public cluster when they haven't renamed their env var yet.
56
+ legacyRpcEnvNames: ['SOLANA_RPC_URL'],
57
+ chainAgnosticGenesisHash: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
58
+ });
59
+ export const SolanaTestnet = new SolanaChain({
60
+ chainId: CHAIN_ID_SOLANA_TESTNET,
61
+ name: 'Solana Testnet',
62
+ blockTimeSeconds: 0.4,
63
+ explorerBaseUrl: 'https://solscan.io',
64
+ explorerClusterSuffix: '?cluster=testnet',
65
+ nativeSymbol: 'SOL',
66
+ defaultRpcUrl: 'https://api.testnet.solana.com',
67
+ chainAgnosticGenesisHash: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
68
+ });
69
+ export const SolanaDevnet = new SolanaChain({
70
+ chainId: CHAIN_ID_SOLANA_DEVNET,
71
+ name: 'Solana Devnet',
72
+ blockTimeSeconds: 0.4,
73
+ explorerBaseUrl: 'https://solscan.io',
74
+ explorerClusterSuffix: '?cluster=devnet',
75
+ nativeSymbol: 'SOL',
76
+ defaultRpcUrl: 'https://api.devnet.solana.com',
77
+ chainAgnosticGenesisHash: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
78
+ });
79
+ export const ALL_SOLANA_CHAINS = [
80
+ SolanaMainnet,
81
+ SolanaTestnet,
82
+ SolanaDevnet,
83
+ ];
84
+ //# sourceMappingURL=solana_chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_chains.js","sourceRoot":"","sources":["../../solana/solana_chains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;GAOG;AAEH,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAC/D,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAC/D,mGAAmG;AACnG,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,8BAA8B,GAAG,CAAC,GAAG,CAAC;AAC5C,MAAM,8BAA8B,GAAG,CAAC,GAAG,CAAC;AAC5C,MAAM,6BAA6B,GAAG,CAAC,GAAG,CAAC;AAE3C;;yEAEyE;AACzE,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,IAAI,OAAO,KAAK,8BAA8B;QAAE,OAAO,uBAAuB,CAAC;IAC/E,IAAI,OAAO,KAAK,8BAA8B;QAAE,OAAO,uBAAuB,CAAC;IAC/E,IAAI,OAAO,KAAK,6BAA6B;QAAE,OAAO,sBAAsB,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2EAA2E;AAC3E,8CAA8C;AAC9C,oFAAoF;AACpF,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC;IAC3C,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,gBAAgB;IACtB,gBAAgB,EAAE,GAAG;IACrB,eAAe,EAAE,oBAAoB;IACrC,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,qCAAqC;IACpD,2EAA2E;IAC3E,uEAAuE;IACvE,2EAA2E;IAC3E,iBAAiB,EAAE,CAAC,gBAAgB,CAAC;IACrC,wBAAwB,EAAE,kCAAkC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC;IAC3C,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,gBAAgB;IACtB,gBAAgB,EAAE,GAAG;IACrB,eAAe,EAAE,oBAAoB;IACrC,qBAAqB,EAAE,kBAAkB;IACzC,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,gCAAgC;IAC/C,wBAAwB,EAAE,kCAAkC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC;IAC1C,OAAO,EAAE,sBAAsB;IAC/B,IAAI,EAAE,eAAe;IACrB,gBAAgB,EAAE,GAAG;IACrB,eAAe,EAAE,oBAAoB;IACrC,qBAAqB,EAAE,iBAAiB;IACxC,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,+BAA+B;IAC9C,wBAAwB,EAAE,kCAAkC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,aAAa;IACb,aAAa;IACb,YAAY;CACb,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { AbstractGasPricing } from '../abstract_gas_pricing.ts';
2
+ import { NetworkType } from '../network_type.ts';
3
+ export interface SolanaGasPricingInit {
4
+ /**
5
+ * Priority fee per compute unit, in micro-lamports. Passed to the
6
+ * `ComputeBudgetProgram.setComputeUnitPrice` instruction so the leader
7
+ * reorders the tx above lower-priced traffic. `0n` means "no bid" —
8
+ * the tx pays only the base fee.
9
+ */
10
+ priorityFeeMicroLamports: bigint;
11
+ /**
12
+ * Optional explicit compute-unit limit. When omitted, the transfer
13
+ * builder uses the chain's default (usually 200_000 for a native SOL
14
+ * transfer + 400_000 for SPL transfers with ATA creation).
15
+ */
16
+ computeUnitLimit?: bigint;
17
+ }
18
+ /**
19
+ * Solana explicit-fee override — mirrors Python's `SolanaGasPricing` at
20
+ * `impl/solana/base.py`. Alternative to passing a `FeePriority` tier to
21
+ * `createTransferUnsignedTransaction`; the tier is resolved via
22
+ * `suggestPriorityFeeMicroLamports`.
23
+ */
24
+ export declare class SolanaGasPricing extends AbstractGasPricing {
25
+ readonly networkType = NetworkType.SOLANA;
26
+ readonly priorityFeeMicroLamports: bigint;
27
+ readonly computeUnitLimit: bigint | undefined;
28
+ constructor(init: SolanaGasPricingInit);
29
+ }
30
+ //# sourceMappingURL=solana_gas_pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_gas_pricing.d.ts","sourceRoot":"","sources":["../../solana/solana_gas_pricing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,wBAAwB,EAAE,MAAM,CAAC;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,QAAQ,CAAC,WAAW,sBAAsB;IAC1C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAElC,IAAI,EAAE,oBAAoB;CAiBvC"}
@@ -0,0 +1,26 @@
1
+ import { AbstractGasPricing } from "../abstract_gas_pricing.js";
2
+ import { ChainError, ChainErrorKinds } from "../errors.js";
3
+ import { NetworkType } from "../network_type.js";
4
+ /**
5
+ * Solana explicit-fee override — mirrors Python's `SolanaGasPricing` at
6
+ * `impl/solana/base.py`. Alternative to passing a `FeePriority` tier to
7
+ * `createTransferUnsignedTransaction`; the tier is resolved via
8
+ * `suggestPriorityFeeMicroLamports`.
9
+ */
10
+ export class SolanaGasPricing extends AbstractGasPricing {
11
+ networkType = NetworkType.SOLANA;
12
+ priorityFeeMicroLamports;
13
+ computeUnitLimit;
14
+ constructor(init) {
15
+ super();
16
+ if (init.priorityFeeMicroLamports < 0n) {
17
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `SolanaGasPricing.priorityFeeMicroLamports must be >= 0, got ${init.priorityFeeMicroLamports}`);
18
+ }
19
+ if (init.computeUnitLimit !== undefined && init.computeUnitLimit <= 0n) {
20
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `SolanaGasPricing.computeUnitLimit must be > 0 or undefined, got ${init.computeUnitLimit}`);
21
+ }
22
+ this.priorityFeeMicroLamports = init.priorityFeeMicroLamports;
23
+ this.computeUnitLimit = init.computeUnitLimit;
24
+ }
25
+ }
26
+ //# sourceMappingURL=solana_gas_pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_gas_pricing.js","sourceRoot":"","sources":["../../solana/solana_gas_pricing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkBjD;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IAC7C,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IACjC,wBAAwB,CAAS;IACjC,gBAAgB,CAAqB;IAE9C,YAAY,IAA0B;QACpC,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,CAAC,wBAAwB,GAAG,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,+DAA+D,IAAI,CAAC,wBAAwB,EAAE,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;YACvE,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,mEAAmE,IAAI,CAAC,gBAAgB,EAAE,CAC3F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { Token } from '../token.ts';
3
+ /**
4
+ * On Solana, the "token identifier" is the mint address (a Solana address belonging to the
5
+ * SPL Token program). Native SOL has no mint — represented as `identifier: undefined`,
6
+ * matching the EVM-side convention for native ETH.
7
+ *
8
+ * The mint determines which Token program owns the asset (TOKEN_PROGRAM_ID vs
9
+ * TOKEN_2022_PROGRAM_ID); that's resolved at runtime by `SolanaChain.resolveSplToken` because
10
+ * we don't want to RPC for it at constant-construction time.
11
+ */
12
+ export declare class SolanaToken extends Token {
13
+ constructor(chainId: number, symbol: string, mintAddress: string | undefined, decimals: number);
14
+ get mintAddress(): string | undefined;
15
+ get mintPubkey(): PublicKey | undefined;
16
+ static native(chainId: number, symbol?: string, decimals?: number): SolanaToken;
17
+ static spl(chainId: number, symbol: string, mintAddress: string, decimals: number): SolanaToken;
18
+ }
19
+ //# sourceMappingURL=solana_token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_token.d.ts","sourceRoot":"","sources":["../../solana/solana_token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBAElC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM;IASlB,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,UAAU,IAAI,SAAS,GAAG,SAAS,CAEtC;IAED,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAQ,EAAE,QAAQ,SAAI,GAAG,WAAW;IAIzE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW;CAGhG"}
@@ -0,0 +1,34 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { Token } from "../token.js";
3
+ import { SolanaAddress } from "./solana_address.js";
4
+ /**
5
+ * On Solana, the "token identifier" is the mint address (a Solana address belonging to the
6
+ * SPL Token program). Native SOL has no mint — represented as `identifier: undefined`,
7
+ * matching the EVM-side convention for native ETH.
8
+ *
9
+ * The mint determines which Token program owns the asset (TOKEN_PROGRAM_ID vs
10
+ * TOKEN_2022_PROGRAM_ID); that's resolved at runtime by `SolanaChain.resolveSplToken` because
11
+ * we don't want to RPC for it at constant-construction time.
12
+ */
13
+ export class SolanaToken extends Token {
14
+ constructor(chainId, symbol, mintAddress, decimals) {
15
+ super(chainId, symbol, mintAddress, decimals);
16
+ if (mintAddress !== undefined) {
17
+ // Validate base58 + 32-byte length.
18
+ new SolanaAddress(mintAddress);
19
+ }
20
+ }
21
+ get mintAddress() {
22
+ return this.identifier;
23
+ }
24
+ get mintPubkey() {
25
+ return this.identifier ? new PublicKey(this.identifier) : undefined;
26
+ }
27
+ static native(chainId, symbol = 'SOL', decimals = 9) {
28
+ return new SolanaToken(chainId, symbol, undefined, decimals);
29
+ }
30
+ static spl(chainId, symbol, mintAddress, decimals) {
31
+ return new SolanaToken(chainId, symbol, mintAddress, decimals);
32
+ }
33
+ }
34
+ //# sourceMappingURL=solana_token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_token.js","sourceRoot":"","sources":["../../solana/solana_token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YACE,OAAe,EACf,MAAc,EACd,WAA+B,EAC/B,QAAgB;QAEhB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,oCAAoC;YACpC,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,GAAG,CAAC;QACzD,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,OAAe,EAAE,MAAc,EAAE,WAAmB,EAAE,QAAgB;QAC/E,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { SolanaToken } from './solana_token.ts';
2
+ /**
3
+ * Pre-baked SolanaToken instances. Mirrors
4
+ * omnichain-py/src/omnichain/impl/solana/assets.py — token-for-token.
5
+ *
6
+ * Note: SolanaToken doesn't distinguish TOKEN vs TOKEN_2022 program at
7
+ * construction (that's resolved via `SolanaChain.resolveTokenProgramId` at
8
+ * runtime by reading the mint account owner). All entries below use
9
+ * `SolanaToken.spl(...)`; Token-2022 mints route through TOKEN_2022_PROGRAM_ID
10
+ * automatically at transfer-build time.
11
+ */
12
+ export declare const SOLANA_SOL: SolanaToken;
13
+ export declare const SOLANA_USDC: SolanaToken;
14
+ export declare const SOLANA_EURC: SolanaToken;
15
+ export declare const SOLANA_WSOL: SolanaToken;
16
+ export declare const SOLANA_PYUSD: SolanaToken;
17
+ export declare const SOLANA_USDT: SolanaToken;
18
+ export declare const SOLANA_TESTNET_SOL: SolanaToken;
19
+ export declare const SOLANA_DEVNET_SOL: SolanaToken;
20
+ export declare const SOLANA_DEVNET_USDC: SolanaToken;
21
+ export declare const SOLANA_DEVNET_EURC: SolanaToken;
22
+ //# sourceMappingURL=solana_tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_tokens.d.ts","sourceRoot":"","sources":["../../solana/solana_tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;;;;;GASG;AAGH,eAAO,MAAM,UAAU,aAA4B,CAAC;AACpD,eAAO,MAAM,WAAW,aAKvB,CAAC;AACF,eAAO,MAAM,WAAW,aAKvB,CAAC;AACF,eAAO,MAAM,WAAW,aAKvB,CAAC;AACF,eAAO,MAAM,YAAY,aAKxB,CAAC;AACF,eAAO,MAAM,WAAW,aAKvB,CAAC;AAGF,eAAO,MAAM,kBAAkB,aAA4B,CAAC;AAG5D,eAAO,MAAM,iBAAiB,aAA2B,CAAC;AAC1D,eAAO,MAAM,kBAAkB,aAK9B,CAAC;AACF,eAAO,MAAM,kBAAkB,aAK9B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { SolanaToken } from "./solana_token.js";
2
+ import { SolanaDevnet, SolanaMainnet, SolanaTestnet } from "./solana_chains.js";
3
+ /**
4
+ * Pre-baked SolanaToken instances. Mirrors
5
+ * omnichain-py/src/omnichain/impl/solana/assets.py — token-for-token.
6
+ *
7
+ * Note: SolanaToken doesn't distinguish TOKEN vs TOKEN_2022 program at
8
+ * construction (that's resolved via `SolanaChain.resolveTokenProgramId` at
9
+ * runtime by reading the mint account owner). All entries below use
10
+ * `SolanaToken.spl(...)`; Token-2022 mints route through TOKEN_2022_PROGRAM_ID
11
+ * automatically at transfer-build time.
12
+ */
13
+ // assets.py:4-29 — Mainnet
14
+ export const SOLANA_SOL = SolanaMainnet.nativeToken;
15
+ export const SOLANA_USDC = SolanaToken.spl(SolanaMainnet.chainId, 'USDC', 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 6);
16
+ export const SOLANA_EURC = SolanaToken.spl(SolanaMainnet.chainId, 'EURC', 'HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr', 6);
17
+ export const SOLANA_WSOL = SolanaToken.spl(SolanaMainnet.chainId, 'WSOL', 'So11111111111111111111111111111111111111112', 9);
18
+ export const SOLANA_PYUSD = SolanaToken.spl(SolanaMainnet.chainId, 'PYUSD', '2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo', 6);
19
+ export const SOLANA_USDT = SolanaToken.spl(SolanaMainnet.chainId, 'USDT', 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', 6);
20
+ // assets.py:31 — Testnet native
21
+ export const SOLANA_TESTNET_SOL = SolanaTestnet.nativeToken;
22
+ // assets.py:33-43 — Devnet
23
+ export const SOLANA_DEVNET_SOL = SolanaDevnet.nativeToken;
24
+ export const SOLANA_DEVNET_USDC = SolanaToken.spl(SolanaDevnet.chainId, 'USDC', '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU', 6);
25
+ export const SOLANA_DEVNET_EURC = SolanaToken.spl(SolanaDevnet.chainId, 'EURC', 'HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr', 6);
26
+ //# sourceMappingURL=solana_tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_tokens.js","sourceRoot":"","sources":["../../solana/solana_tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhF;;;;;;;;;GASG;AAEH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CACxC,aAAa,CAAC,OAAO,EACrB,MAAM,EACN,8CAA8C,EAC9C,CAAC,CACF,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CACxC,aAAa,CAAC,OAAO,EACrB,MAAM,EACN,8CAA8C,EAC9C,CAAC,CACF,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CACxC,aAAa,CAAC,OAAO,EACrB,MAAM,EACN,6CAA6C,EAC7C,CAAC,CACF,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CACzC,aAAa,CAAC,OAAO,EACrB,OAAO,EACP,8CAA8C,EAC9C,CAAC,CACF,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CACxC,aAAa,CAAC,OAAO,EACrB,MAAM,EACN,8CAA8C,EAC9C,CAAC,CACF,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC,WAAW,CAAC;AAE5D,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAC/C,YAAY,CAAC,OAAO,EACpB,MAAM,EACN,8CAA8C,EAC9C,CAAC,CACF,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAC/C,YAAY,CAAC,OAAO,EACpB,MAAM,EACN,8CAA8C,EAC9C,CAAC,CACF,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { Token } from '../token.ts';
2
+ import { NestedBalanceChanges, TransactionErrorInfo, TransactionStatus, TransactionStatusType } from '../transaction_status.ts';
3
+ export interface SolanaTransactionFeesInit {
4
+ feePayer: string;
5
+ feeLamports: bigint;
6
+ computeUnitsConsumed: bigint | null;
7
+ netLamportsChangeByFeePayer: bigint;
8
+ }
9
+ export declare class SolanaTransactionFees {
10
+ readonly feePayer: string;
11
+ readonly feeLamports: bigint;
12
+ /** Nullable because getTransaction may omit `computeUnitsConsumed` in
13
+ * older meta shapes; fabricating a value would misrepresent observed data. */
14
+ readonly computeUnitsConsumed: bigint | null;
15
+ readonly netLamportsChangeByFeePayer: bigint;
16
+ constructor(init: SolanaTransactionFeesInit);
17
+ }
18
+ export interface SolanaTransactionStatusInit {
19
+ chainId: number;
20
+ status: TransactionStatusType;
21
+ inclusionAt?: Date | null;
22
+ balanceChanges?: NestedBalanceChanges | null;
23
+ error?: TransactionErrorInfo | null;
24
+ fees?: SolanaTransactionFees | null;
25
+ }
26
+ export declare class SolanaTransactionStatus extends TransactionStatus {
27
+ readonly fees: SolanaTransactionFees | null;
28
+ constructor(init: SolanaTransactionStatusInit);
29
+ static successful(args: {
30
+ chainId: number;
31
+ inclusionAt: Date | null;
32
+ balanceChanges: NestedBalanceChanges;
33
+ fees: SolanaTransactionFees;
34
+ }): SolanaTransactionStatus;
35
+ /**
36
+ * `fees` is nullable — the settled-but-unfetchable path (RPC pruned
37
+ * the slot's ledger data so `getTransaction` returned null but
38
+ * `getSignatureStatus` reports `finalized` + `err`) has no way to
39
+ * reconstruct fees; the alternative would be polling `Pending`
40
+ * indefinitely (iter-2 medium).
41
+ */
42
+ static failed(args: {
43
+ chainId: number;
44
+ inclusionAt: Date | null;
45
+ error: TransactionErrorInfo;
46
+ fees: SolanaTransactionFees | null;
47
+ }): SolanaTransactionStatus;
48
+ static pending(chainId: number): SolanaTransactionStatus;
49
+ static notFound(chainId: number, error?: TransactionErrorInfo | null): SolanaTransactionStatus;
50
+ /**
51
+ * Deep-copies `balanceChanges` and reverses the fee debit on the fee_payer's
52
+ * native row — mirrors omnichain-py `SolanaTransactionStatus.balance_changes_excluding_fees`
53
+ * (impl/solana/base.py). Solana's raw balance deltas already include the
54
+ * fee_payer's fee debit; this helper strips it so callers see gross-of-fee
55
+ * balance movements.
56
+ */
57
+ balanceChangesExcludingFees(nativeAsset: Token): NestedBalanceChanges;
58
+ }
59
+ //# sourceMappingURL=solana_transaction_status.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,144 @@
1
+ import { ChainError, ChainErrorKinds } from "../errors.js";
2
+ import { AssetBalanceChange, TransactionStatus, TransactionStatusTypes, } from "../transaction_status.js";
3
+ export class SolanaTransactionFees {
4
+ feePayer;
5
+ feeLamports;
6
+ /** Nullable because getTransaction may omit `computeUnitsConsumed` in
7
+ * older meta shapes; fabricating a value would misrepresent observed data. */
8
+ computeUnitsConsumed;
9
+ netLamportsChangeByFeePayer;
10
+ constructor(init) {
11
+ if (init.feePayer.length === 0) {
12
+ throw new ChainError(ChainErrorKinds.InvalidArgument, 'SolanaTransactionFees.feePayer must be non-empty');
13
+ }
14
+ // Observed on-chain values (not caller inputs) — reject negatives only.
15
+ if (init.feeLamports < 0n) {
16
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `SolanaTransactionFees.feeLamports must be >= 0, got ${init.feeLamports}`);
17
+ }
18
+ if (init.computeUnitsConsumed !== null && init.computeUnitsConsumed < 0n) {
19
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `SolanaTransactionFees.computeUnitsConsumed must be >= 0 or null, got ${init.computeUnitsConsumed}`);
20
+ }
21
+ this.feePayer = init.feePayer;
22
+ this.feeLamports = init.feeLamports;
23
+ this.computeUnitsConsumed = init.computeUnitsConsumed;
24
+ this.netLamportsChangeByFeePayer = init.netLamportsChangeByFeePayer;
25
+ }
26
+ }
27
+ export class SolanaTransactionStatus extends TransactionStatus {
28
+ fees;
29
+ constructor(init) {
30
+ super({
31
+ chainId: init.chainId,
32
+ status: init.status,
33
+ inclusionAt: init.inclusionAt,
34
+ error: init.error,
35
+ balanceChanges: init.balanceChanges,
36
+ });
37
+ this.fees = init.fees ?? null;
38
+ }
39
+ static successful(args) {
40
+ return new SolanaTransactionStatus({
41
+ chainId: args.chainId,
42
+ status: TransactionStatusTypes.Success,
43
+ inclusionAt: args.inclusionAt,
44
+ balanceChanges: args.balanceChanges,
45
+ fees: args.fees,
46
+ error: null,
47
+ });
48
+ }
49
+ /**
50
+ * `fees` is nullable — the settled-but-unfetchable path (RPC pruned
51
+ * the slot's ledger data so `getTransaction` returned null but
52
+ * `getSignatureStatus` reports `finalized` + `err`) has no way to
53
+ * reconstruct fees; the alternative would be polling `Pending`
54
+ * indefinitely (iter-2 medium).
55
+ */
56
+ static failed(args) {
57
+ return new SolanaTransactionStatus({
58
+ chainId: args.chainId,
59
+ status: TransactionStatusTypes.Failed,
60
+ inclusionAt: args.inclusionAt,
61
+ error: args.error,
62
+ balanceChanges: null,
63
+ fees: args.fees,
64
+ });
65
+ }
66
+ static pending(chainId) {
67
+ return new SolanaTransactionStatus({
68
+ chainId,
69
+ status: TransactionStatusTypes.Pending,
70
+ inclusionAt: null,
71
+ error: null,
72
+ balanceChanges: null,
73
+ fees: null,
74
+ });
75
+ }
76
+ static notFound(chainId, error = null) {
77
+ return new SolanaTransactionStatus({
78
+ chainId,
79
+ status: TransactionStatusTypes.NotFound,
80
+ inclusionAt: null,
81
+ error,
82
+ balanceChanges: null,
83
+ fees: null,
84
+ });
85
+ }
86
+ /**
87
+ * Deep-copies `balanceChanges` and reverses the fee debit on the fee_payer's
88
+ * native row — mirrors omnichain-py `SolanaTransactionStatus.balance_changes_excluding_fees`
89
+ * (impl/solana/base.py). Solana's raw balance deltas already include the
90
+ * fee_payer's fee debit; this helper strips it so callers see gross-of-fee
91
+ * balance movements.
92
+ */
93
+ balanceChangesExcludingFees(nativeAsset) {
94
+ if (this.balanceChanges === null) {
95
+ throw new ChainError(ChainErrorKinds.InvalidArgument, 'balanceChangesExcludingFees requires a non-null balanceChanges');
96
+ }
97
+ if (this.fees === null) {
98
+ throw new ChainError(ChainErrorKinds.InvalidArgument, 'balanceChangesExcludingFees requires non-null fees to know which fee_payer to credit');
99
+ }
100
+ // Validate the caller-provided `nativeAsset` is actually a native token
101
+ // for this chain — otherwise `upsert` would silently create a phantom
102
+ // `+feeLamports` credit under a foreign asset key on the fee_payer's
103
+ // row (a fabricated balance movement that no consumer would notice
104
+ // until reconciliation drift).
105
+ if (nativeAsset.chainId !== this.chainId) {
106
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `balanceChangesExcludingFees: nativeAsset.chainId=${nativeAsset.chainId} does not match this.chainId=${this.chainId}`);
107
+ }
108
+ if (nativeAsset.identifier !== undefined && nativeAsset.identifier !== '') {
109
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `balanceChangesExcludingFees: nativeAsset must be a native token (identifier undefined/empty), got identifier="${nativeAsset.identifier}"`);
110
+ }
111
+ // Also check decimals against the existing fee-payer native row (when
112
+ // present) — assetHashOf drops decimals, so a passed nativeAsset with
113
+ // decimals=6 would silently rewrite a decimals=9 row to 6 (upsert lets
114
+ // change.decimals win). That's a 10^3 error the moment
115
+ // balanceChangeHr accessors land in Wave 2B.
116
+ const existingFeePayerRow = this.balanceChanges.get(this.fees.feePayer);
117
+ if (existingFeePayerRow) {
118
+ // The native-token key is `${chainId}_` (empty identifier).
119
+ const nativeKey = `${nativeAsset.chainId}_`;
120
+ const existingNative = existingFeePayerRow.get(nativeKey);
121
+ if (existingNative && existingNative.change.decimals !== nativeAsset.decimals) {
122
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `balanceChangesExcludingFees: nativeAsset.decimals=${nativeAsset.decimals} does not match existing fee-payer native row's decimals=${existingNative.change.decimals}`);
123
+ }
124
+ }
125
+ // The fee-payer's native row may be *absent* — the decoder drops
126
+ // delta === 0n rows, so a fee-payer whose received lamports exactly
127
+ // offset the fee has no entry. The upsert below handles that
128
+ // correctly (creates a fresh +feeLamports entry).
129
+ const copy = new Map();
130
+ for (const [wallet, perWallet] of this.balanceChanges) {
131
+ const inner = new Map();
132
+ for (const [hash, entry] of perWallet) {
133
+ inner.set(hash, {
134
+ token: entry.token,
135
+ change: AssetBalanceChange.fromMr(entry.change.balanceChangeMr, entry.change.decimals),
136
+ });
137
+ }
138
+ copy.set(wallet, inner);
139
+ }
140
+ AssetBalanceChange.upsert(copy, this.fees.feePayer, nativeAsset, AssetBalanceChange.fromMr(this.fees.feeLamports, nativeAsset.decimals));
141
+ return copy;
142
+ }
143
+ }
144
+ //# sourceMappingURL=solana_transaction_status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_transaction_status.js","sourceRoot":"","sources":["../../solana/solana_transaction_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EACL,kBAAkB,EAGlB,iBAAiB,EAEjB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AASlC,MAAM,OAAO,qBAAqB;IACvB,QAAQ,CAAS;IACjB,WAAW,CAAS;IAC7B;kFAC8E;IACrE,oBAAoB,CAAgB;IACpC,2BAA2B,CAAS;IAE7C,YAAY,IAA+B;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,kDAAkD,CACnD,CAAC;QACJ,CAAC;QACD,wEAAwE;QACxE,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,uDAAuD,IAAI,CAAC,WAAW,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,GAAG,EAAE,EAAE,CAAC;YACzE,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,wEAAwE,IAAI,CAAC,oBAAoB,EAAE,CACpG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC;IACtE,CAAC;CACF;AAWD,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IACnD,IAAI,CAA+B;IAE5C,YAAY,IAAiC;QAC3C,KAAK,CAAC;YACJ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAKjB;QACC,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,sBAAsB,CAAC,OAAO;YACtC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,IAKb;QACC,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,sBAAsB,CAAC,MAAM;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO;YACP,MAAM,EAAE,sBAAsB,CAAC,OAAO;YACtC,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,OAAe,EACf,QAAqC,IAAI;QAEzC,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO;YACP,MAAM,EAAE,sBAAsB,CAAC,QAAQ;YACvC,WAAW,EAAE,IAAI;YACjB,KAAK;YACL,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,2BAA2B,CAAC,WAAkB;QAC5C,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,sFAAsF,CACvF,CAAC;QACJ,CAAC;QACD,wEAAwE;QACxE,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,+BAA+B;QAC/B,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,oDAAoD,WAAW,CAAC,OAAO,gCAAgC,IAAI,CAAC,OAAO,EAAE,CACtH,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;YAC1E,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,iHAAiH,WAAW,CAAC,UAAU,GAAG,CAC3I,CAAC;QACJ,CAAC;QACD,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,uDAAuD;QACvD,6CAA6C;QAC7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,mBAAmB,EAAE,CAAC;YACxB,4DAA4D;YAC5D,MAAM,SAAS,GAAG,GAAG,WAAW,CAAC,OAAO,GAAG,CAAC;YAC5C,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC9E,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,qDAAqD,WAAW,CAAC,QAAQ,4DAA4D,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,CACtK,CAAC;YACJ,CAAC;QACH,CAAC;QACD,iEAAiE;QACjE,oEAAoE;QACpE,6DAA6D;QAC7D,kDAAkD;QAClD,MAAM,IAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwD,CAAC;YAC9E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;oBACd,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACvF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,kBAAkB,CAAC,MAAM,CACvB,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,WAAW,EACX,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CACvE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import { PublicKey, TransactionInstruction, VersionedTransaction } from '@solana/web3.js';
2
+ import { UnsignedTransaction } from '../unsigned_transaction.ts';
3
+ export interface UnsignedSolanaTransactionInit {
4
+ chainId: number;
5
+ /** A built VersionedTransaction (MessageV0) with a fresh blockhash baked in but no signatures yet. */
6
+ transaction: VersionedTransaction;
7
+ /** Base58 fee-payer pubkey (always the sender in our case). */
8
+ feePayer: string;
9
+ /** Recent blockhash used to build this tx; needed to decide if it must be re-built before signing. */
10
+ recentBlockhash: string;
11
+ /** Last slot at which this blockhash is valid. Used to bail before signing if expired. */
12
+ lastValidBlockHeight: number;
13
+ /**
14
+ * Original instruction list — kept for rebuild operations (blockhash refresh, CU-limit re-tuning).
15
+ * Without this the only way to refresh the blockhash would be to mutate `transaction.message`,
16
+ * which is read-only by design in @solana/web3.js.
17
+ */
18
+ instructions: TransactionInstruction[];
19
+ }
20
+ export declare class UnsignedSolanaTransaction extends UnsignedTransaction {
21
+ readonly transaction: VersionedTransaction;
22
+ readonly feePayer: string;
23
+ readonly recentBlockhash: string;
24
+ readonly lastValidBlockHeight: number;
25
+ readonly instructions: TransactionInstruction[];
26
+ constructor(init: UnsignedSolanaTransactionInit);
27
+ /** Serializes the message (without signatures). Useful for off-line signers / tests. */
28
+ messageBytes(): Uint8Array;
29
+ get feePayerPubkey(): PublicKey;
30
+ }
31
+ //# sourceMappingURL=unsigned_solana_transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsigned_solana_transaction.d.ts","sourceRoot":"","sources":["../../solana/unsigned_solana_transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,WAAW,EAAE,oBAAoB,CAAC;IAClC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,eAAe,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,YAAY,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED,qBAAa,yBAA0B,SAAQ,mBAAmB;IAChE,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,EAAE,CAAC;gBAEpC,IAAI,EAAE,6BAA6B;IAS/C,wFAAwF;IACxF,YAAY,IAAI,UAAU;IAI1B,IAAI,cAAc,IAAI,SAAS,CAE9B;CACF"}