@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,23 @@
1
+ /**
2
+ * Speed-vs-cost knob for landing a transaction on chain. Lives in the chain SDK so that
3
+ * every chain's `suggest*` helpers and `createTransferUnsignedTransaction` can speak the
4
+ * same vocabulary. Consumers (depositron, pluton) re-export or re-use this enum directly —
5
+ * they should never invent their own three-tier mirror.
6
+ *
7
+ * The semantics per chain are documented on each chain's `suggest*` method.
8
+ */
9
+ export var Priority;
10
+ (function (Priority) {
11
+ Priority["SLOW"] = "SLOW";
12
+ Priority["NORMAL"] = "NORMAL";
13
+ Priority["FAST"] = "FAST";
14
+ })(Priority || (Priority = {}));
15
+ export const DEFAULT_PRIORITY = Priority.NORMAL;
16
+ /**
17
+ * Python-name alias for `Priority`. omnichain-py names the same enum
18
+ * `FeePriority` (base/base.py:123); consumers writing Python-parity code
19
+ * can import either identifier. `Priority` remains the canonical TS name
20
+ * for back-compat.
21
+ */
22
+ export const FeePriority = Priority;
23
+ //# sourceMappingURL=priority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.js","sourceRoot":"","sources":["../priority.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB,yBAAa,CAAA;AACf,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAa,QAAQ,CAAC,MAAM,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './solana_address.ts';
2
+ export * from './solana_chain.ts';
3
+ export * from './solana_chains.ts';
4
+ export * from './solana_gas_pricing.ts';
5
+ export * from './solana_token.ts';
6
+ export * from './solana_tokens.ts';
7
+ export * from './solana_transaction_status.ts';
8
+ export * from './unsigned_solana_transaction.ts';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../solana/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from "./solana_address.js";
2
+ export * from "./solana_chain.js";
3
+ export * from "./solana_chains.js";
4
+ export * from "./solana_gas_pricing.js";
5
+ export * from "./solana_token.js";
6
+ export * from "./solana_tokens.js";
7
+ export * from "./solana_transaction_status.js";
8
+ export * from "./unsigned_solana_transaction.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../solana/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { Address } from '../address.ts';
3
+ import { NetworkType } from '../network_type.ts';
4
+ /**
5
+ * Solana addresses are 32-byte ed25519 public keys, encoded in base58 (no fixed length but
6
+ * always 32–44 chars after encoding). Validation defers to `PublicKey` which checks the
7
+ * base58 alphabet, decodes, and asserts the 32-byte length.
8
+ *
9
+ * Unlike EVM there is no case-folding / EIP-55 checksum — every valid address has exactly
10
+ * one canonical string form, so `canonical()` just returns the trimmed input verbatim once
11
+ * we've confirmed it parses.
12
+ */
13
+ export declare class SolanaAddress extends Address {
14
+ readonly pubkey: PublicKey;
15
+ constructor(raw: string);
16
+ canonical(): string;
17
+ get networkType(): NetworkType;
18
+ private static assertValid;
19
+ }
20
+ //# sourceMappingURL=solana_address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_address.d.ts","sourceRoot":"","sources":["../../solana/solana_address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;gBAEf,GAAG,EAAE,MAAM;IAKvB,SAAS,IAAI,MAAM;IAInB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,OAAO,CAAC,MAAM,CAAC,WAAW;CAkB3B"}
@@ -0,0 +1,45 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { Address } from "../address.js";
3
+ import { NetworkType } from "../network_type.js";
4
+ /**
5
+ * Solana addresses are 32-byte ed25519 public keys, encoded in base58 (no fixed length but
6
+ * always 32–44 chars after encoding). Validation defers to `PublicKey` which checks the
7
+ * base58 alphabet, decodes, and asserts the 32-byte length.
8
+ *
9
+ * Unlike EVM there is no case-folding / EIP-55 checksum — every valid address has exactly
10
+ * one canonical string form, so `canonical()` just returns the trimmed input verbatim once
11
+ * we've confirmed it parses.
12
+ */
13
+ export class SolanaAddress extends Address {
14
+ pubkey;
15
+ constructor(raw) {
16
+ super(SolanaAddress.assertValid(raw));
17
+ this.pubkey = new PublicKey(this.raw);
18
+ }
19
+ canonical() {
20
+ return this.raw;
21
+ }
22
+ get networkType() {
23
+ return NetworkType.SOLANA;
24
+ }
25
+ static assertValid(raw) {
26
+ if (typeof raw !== 'string') {
27
+ throw new Error('Invalid Solana address: not a string');
28
+ }
29
+ const trimmed = raw.trim();
30
+ if (trimmed.length === 0) {
31
+ throw new Error('Invalid Solana address: empty');
32
+ }
33
+ try {
34
+ const pk = new PublicKey(trimmed);
35
+ if (pk.toBytes().length !== 32) {
36
+ throw new Error('Solana address must be 32 bytes');
37
+ }
38
+ }
39
+ catch (err) {
40
+ throw new Error(`Invalid Solana address: "${raw}": ${err.message}`);
41
+ }
42
+ return trimmed;
43
+ }
44
+ }
45
+ //# sourceMappingURL=solana_address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_address.js","sourceRoot":"","sources":["../../solana/solana_address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IAC/B,MAAM,CAAY;IAE3B,YAAY,GAAW;QACrB,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,GAAW;QACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,213 @@
1
+ import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
2
+ import { Chain, CreateTransferRequest } from '../chain.base.ts';
3
+ import { Priority } from '../priority.ts';
4
+ import { NestedBalanceChanges } from '../transaction_status.ts';
5
+ import { SolanaTransactionStatus } from './solana_transaction_status.ts';
6
+ import { SolanaToken } from './solana_token.ts';
7
+ import { UnsignedSolanaTransaction } from './unsigned_solana_transaction.ts';
8
+ export interface SolanaChainInit {
9
+ chainId: number;
10
+ name: string;
11
+ /** ~0.4s mainnet, used to size confirmation polling intervals. */
12
+ blockTimeSeconds: number;
13
+ explorerBaseUrl: string;
14
+ /** e.g. `?cluster=devnet` for non-mainnet networks; mainnet keeps this empty. */
15
+ explorerClusterSuffix?: string;
16
+ nativeSymbol: string;
17
+ nativeDecimals?: number;
18
+ /**
19
+ * Public cluster URL used as the final fallback when no override is set.
20
+ * Required — Solana never throws "not configured" like EVM; it falls back
21
+ * to this so a call without env config still reaches a real cluster.
22
+ */
23
+ defaultRpcUrl: string;
24
+ /**
25
+ * Optional override. When set, used verbatim. See `readRpcUrl` below for
26
+ * the full precedence chain (constructor → derived `<NAME>_RPC_URL` →
27
+ * signed `SOLANA_<chainId>_RPC_URL` → `legacyRpcEnvNames` → `defaultRpcUrl`).
28
+ */
29
+ rpcUrl?: string;
30
+ /**
31
+ * Additional env var names to consult during RPC URL resolution, tried
32
+ * *after* the derived name and the `SOLANA_<chainId>_RPC_URL` fallback
33
+ * but *before* `defaultRpcUrl`. Used to keep pre-rename env vars working —
34
+ * e.g. `SolanaMainnet` used to derive `SOLANA_RPC_URL`; after the rename
35
+ * to `"Solana Mainnet"` the derived name is `SOLANA_MAINNET_RPC_URL`, and
36
+ * this field lets the old key stay honored.
37
+ */
38
+ legacyRpcEnvNames?: readonly string[];
39
+ /** CAIP-2 genesis hash (first 32 chars). Surfaced for the depositron `chainAgnosticName` column. */
40
+ chainAgnosticGenesisHash: string;
41
+ }
42
+ export interface SolanaTransferOptions extends CreateTransferRequest {
43
+ /**
44
+ * Optional priority fee in microlamports per compute unit. Solana's priority queue is
45
+ * purely fee-based — there's no concept of replacement-by-fee. Map depositron's
46
+ * Priority enum here at the caller layer.
47
+ */
48
+ priorityFeeMicroLamportsPerCu?: number;
49
+ /** Override CU limit. Default 200,000 covers SOL transfer + ATA creation comfortably. */
50
+ computeUnitLimit?: number;
51
+ /**
52
+ * Optional sponsor / fee-payer pubkey. When set, the compiled tx names this account as
53
+ * `payerKey` and as the funding `payer` for any prepended `createAssociatedTokenAccount`
54
+ * instruction. The caller (sender) stays the SPL ATA owner / native-SOL source.
55
+ * Caller is then responsible for signing the tx with BOTH the sponsor's and the sender's
56
+ * keypairs. When omitted, `from` is both fee payer and source (backward-compatible).
57
+ */
58
+ feePayer?: string;
59
+ }
60
+ /**
61
+ * Solana is account-based but very different from EVM (see docs/solana.md). Key choices made
62
+ * for depositron:
63
+ * - Transfers always build a `VersionedTransaction` (MessageV0) — legacy transactions are
64
+ * deprecated and can't address account-lookup tables for fee reduction.
65
+ * - The fee payer is always the sender (no relayer pattern here).
66
+ * - SPL transfers use `transferChecked` (which asserts the recipient mint matches the
67
+ * declared mint, defeating the entire class of "wrong-token-decimals" attacks).
68
+ * - When the recipient doesn't have an ATA for the mint, we *prepend* a create-ATA
69
+ * instruction paid by the sender. This costs ~2039 lamports of rent-exempt deposit.
70
+ * - We do NOT consult a curated registry to determine SPL vs Token-2022 —
71
+ * instead we read the mint account owner at build time. That's one RPC per transfer but
72
+ * it's authoritative.
73
+ */
74
+ export declare class SolanaChain extends Chain {
75
+ readonly defaultRpcUrl: string;
76
+ readonly rpcUrl: string | undefined;
77
+ readonly legacyRpcEnvNames: readonly string[];
78
+ readonly explorerClusterSuffix: string;
79
+ readonly chainAgnosticGenesisHash: string;
80
+ private readonly _nativeToken;
81
+ private _connection;
82
+ constructor(init: SolanaChainInit);
83
+ get nativeToken(): SolanaToken;
84
+ getConnection(): Connection;
85
+ /**
86
+ * Network-aware priority fee suggestion in microlamports per compute unit.
87
+ * Samples `getRecentPrioritizationFees({ lockedWritableAccounts: [] })` (cluster-wide, ~150 most recent slots) and
88
+ * picks a percentile per priority:
89
+ * - SLOW = p25
90
+ * - NORMAL = p50
91
+ * - FAST = p90
92
+ * Returns 0 if the cluster has been so quiet that the chosen percentile is 0 (legitimate
93
+ * outcome on devnet / off-peak mainnet). Caller plugs this into
94
+ * `ComputeBudgetProgram.setComputeUnitPrice({ microLamports })`.
95
+ */
96
+ suggestPriorityFeeMicroLamports(priority: Priority): Promise<number>;
97
+ /**
98
+ * Env var name for a Solana chain by chain id — mirrors Python's
99
+ * `SolanaChain.rpc_url_env_for_chain_id` (impl/solana/base.py:421-423)
100
+ * exactly, including the signed chainId. Shell operators must set via
101
+ * dotenv / docker / k8s since `SOLANA_-2000_RPC_URL` is not a settable
102
+ * name in sh/bash/zsh.
103
+ */
104
+ static rpcUrlEnvForChainId(chainId: number): string;
105
+ /**
106
+ * Resolution precedence, mirrors omnichain-py/impl/solana/base.py:424-434
107
+ * plus a TS-side legacy fallback for consumers with pre-v0 env-var names:
108
+ * 1. constructor `rpcUrl`
109
+ * 2. env `<NAME_UPPERCASE_UNDERSCORED>_RPC_URL`
110
+ * 3. env `SOLANA_<chainId>_RPC_URL` (Python parity — signed)
111
+ * 4. env from `legacyRpcEnvNames` (if configured — e.g. mainnet checks
112
+ * the pre-rename `SOLANA_RPC_URL` here)
113
+ * 5. `defaultRpcUrl` (never throws — public cluster)
114
+ */
115
+ private readRpcUrl;
116
+ getWalletExplorerUrl(address: string): string;
117
+ getTokenExplorerUrl(tokenIdentifier?: string): string;
118
+ getTransactionExplorerUrl(txHash: string): string;
119
+ validateAddress(raw: string): boolean;
120
+ validateTokenIdentifier(raw: string | undefined): boolean;
121
+ getBalance(owner: string, tokenIdentifier?: string): Promise<bigint>;
122
+ createTransferUnsignedTransaction(req: SolanaTransferOptions): Promise<UnsignedSolanaTransaction>;
123
+ /**
124
+ * Wraps a caller-supplied list of program instructions into a fully-formed
125
+ * UnsignedSolanaTransaction. Used by depositron's SOL_INSTRUCTIONS action type to support
126
+ * arbitrary program calls (staking, swaps, custom programs) without the SDK having to
127
+ * understand the instruction semantics. The SDK still owns the envelope: CU limit + price,
128
+ * MessageV0 compilation, fresh blockhash, VersionedTransaction wrapping.
129
+ *
130
+ * Caller is responsible for: instruction correctness, signer-account constraints (only the
131
+ * single key the caller will sign with — typically the vault key — can be flagged as signer),
132
+ * ATA creation (if any instruction touches an ATA that doesn't exist yet), and decimals
133
+ * validation (no automatic `transferChecked` fallback here).
134
+ */
135
+ createInstructionsUnsignedTransaction(req: {
136
+ from: string;
137
+ instructions: TransactionInstruction[];
138
+ priorityFeeMicroLamportsPerCu?: number;
139
+ computeUnitLimit?: number;
140
+ /**
141
+ * Optional sponsor / fee-payer pubkey. When set, the compiled tx names this account as
142
+ * `payerKey`. The caller (sender / `from`) stays as the authority for any signing role
143
+ * inside the supplied instructions. Caller signs with BOTH sponsor and sender keypairs.
144
+ * When omitted, `from` is also the fee payer (backward-compatible).
145
+ */
146
+ feePayer?: string;
147
+ }): Promise<UnsignedSolanaTransaction>;
148
+ /**
149
+ * Returns a fresh UnsignedSolanaTransaction with the same instructions but a newly-fetched
150
+ * blockhash. Use when a previously-built tx couldn't broadcast inside its blockhash window
151
+ * (~60s on mainnet) — Solana drops txs whose blockhash has expired. Caller must re-sign:
152
+ * the new signed message has a different recent_blockhash byte sequence, so any existing
153
+ * signature is invalid.
154
+ */
155
+ refreshBlockhash(unsigned: UnsignedSolanaTransaction): Promise<UnsignedSolanaTransaction>;
156
+ /**
157
+ * Simulates the tx and right-sizes its setComputeUnitLimit instruction (10% headroom).
158
+ * Lowers priority-fee cost because the fee = CU price × CU limit; oversized limits pay for
159
+ * unused compute. Returns the unsigned untouched if it has no CU-limit ix or simulation didn't
160
+ * report unitsConsumed. Throws ChainError(SimulationFailed) when the sim returns `err`.
161
+ */
162
+ estimateAndApplyCu(unsigned: UnsignedSolanaTransaction): Promise<UnsignedSolanaTransaction>;
163
+ /** Whether the given error came from a preflight simulation rejection (vs network/transport). */
164
+ static isSimulationError(err: unknown): boolean;
165
+ /** Whether the given error indicates the tx's blockhash has expired and a refresh is needed. */
166
+ static isBlockhashExpiredError(err: unknown): boolean;
167
+ getTransactionStatus(txHash: string): Promise<SolanaTransactionStatus>;
168
+ getChainTipHeight(): Promise<number>;
169
+ /**
170
+ * Resolves the token program owner for a given mint. Token-2022 mints are owned by
171
+ * TOKEN_2022_PROGRAM_ID; classic SPL by TOKEN_PROGRAM_ID. Required for `transferChecked`
172
+ * and ATA derivation.
173
+ */
174
+ resolveTokenProgramId(mint: PublicKey): Promise<PublicKey>;
175
+ resolveMintDecimals(mint: PublicKey): Promise<number>;
176
+ /**
177
+ * Raw-instruction helper for callers that will compile the transaction downstream
178
+ * (e.g. depositron's SOL_INSTRUCTIONS action type) instead of using
179
+ * createTransferUnsignedTransaction's compiled-tx surface.
180
+ *
181
+ * Synchronous — no RPC.
182
+ */
183
+ buildNativeTransferInstruction(from: PublicKey, to: PublicKey, lamports: bigint): TransactionInstruction;
184
+ /**
185
+ * Raw-instruction helper for SPL / Token-2022 transfers where the caller will compile
186
+ * the transaction downstream. Returns [createATA-idempotent?, transferChecked].
187
+ *
188
+ * Idempotent ATA (vs the probe-then-create pattern in createTransferUnsignedTransaction)
189
+ * is deliberate: when a downstream compiler runs the emitted instructions blindly,
190
+ * a probe done here can race with execution — the idempotent form is a no-op when the
191
+ * ATA exists and a create when it doesn't, without needing a probe RPC.
192
+ *
193
+ * `allowOwnerOffCurve: true` applies to BOTH source and destination ATA derivation —
194
+ * needed for PDA-owned vaults / program-owned recipients. Defaults to false to match
195
+ * createTransferUnsignedTransaction.
196
+ */
197
+ buildSplTransferInstructions(req: {
198
+ from: PublicKey;
199
+ to: PublicKey;
200
+ mint: PublicKey;
201
+ amount: bigint;
202
+ includeCreateAta?: boolean;
203
+ allowOwnerOffCurve?: boolean;
204
+ }): Promise<TransactionInstruction[]>;
205
+ /**
206
+ * Decodes per-account lamport deltas + SPL pre/post token-balance diffs into
207
+ * a `NestedBalanceChanges` map. Marked internal via naming rather than TS
208
+ * `private` so chain-agnostic unit tests can exercise it directly without
209
+ * spinning up a Connection.
210
+ */
211
+ _decodeBalanceChanges(tx: NonNullable<Awaited<ReturnType<Connection['getTransaction']>>>): NestedBalanceChanges;
212
+ }
213
+ //# sourceMappingURL=solana_chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana_chain.d.ts","sourceRoot":"","sources":["../../solana/solana_chain.ts"],"names":[],"mappings":"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"}