@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
@@ -0,0 +1,190 @@
1
+ import { createHmac } from 'node:crypto';
2
+ import { Keypair, Operation, StrKey } from '@stellar/stellar-sdk';
3
+ import { mnemonicToSeedSep5 } from "../bip39.js";
4
+ import { ChainType, WalletFamily } from "../chain_type.js";
5
+ import { ChainError, ChainErrorKinds } from "../errors.js";
6
+ import { pyTypeRepr } from "../python_repr.js";
7
+ import { AbstractBip32StyleSingleAccountWallet } from "../wallet.base.js";
8
+ import { stellarSdkAsset } from "./stellar_asset.js";
9
+ import { StellarChain, StellarSignedMessage, stellarMessageHash } from "./stellar_chain.js";
10
+ import { StellarChangeTrustLineTransactionPrerequisite, StellarChangeTrustPrerequisiteResponse, StellarSignedTransaction, StellarUnsignedTransaction, stellarOperationAmount, } from "./stellar_transactions.js";
11
+ const STELLAR_DERIVATION_PATH_REGEX = /^m\/44'\/148'\/(\d+)'$/;
12
+ const SLIP10_ED25519_SEED_MODIFIER = 'ed25519 seed';
13
+ const FIRST_HARDENED_INDEX = 0x80000000;
14
+ export function deriveSep5Ed25519Seed(bip39Seed, index) {
15
+ let digest = createHmac('sha512', SLIP10_ED25519_SEED_MODIFIER).update(bip39Seed.subarray(0, 64)).digest();
16
+ let il = digest.subarray(0, 32);
17
+ let ir = digest.subarray(32);
18
+ for (const segment of [44, 148, index]) {
19
+ const indexBytes = Buffer.alloc(4);
20
+ indexBytes.writeUInt32BE(FIRST_HARDENED_INDEX + segment);
21
+ digest = createHmac('sha512', ir).update(Buffer.concat([Buffer.alloc(1), il, indexBytes])).digest();
22
+ il = digest.subarray(0, 32);
23
+ ir = digest.subarray(32);
24
+ }
25
+ return Buffer.from(il);
26
+ }
27
+ export class StellarWallet extends AbstractBip32StyleSingleAccountWallet {
28
+ #secretSeed;
29
+ #keypair;
30
+ _address;
31
+ constructor(secretSeed) {
32
+ super();
33
+ if (!StrKey.isValidEd25519SecretSeed(secretSeed)) {
34
+ throw new ChainError(ChainErrorKinds.InvalidArgument, 'Invalid Stellar secret seed');
35
+ }
36
+ this.#secretSeed = secretSeed;
37
+ this.#keypair = Keypair.fromSecret(secretSeed);
38
+ this._address = this.#keypair.publicKey();
39
+ }
40
+ get secretSeed() {
41
+ return this.#secretSeed;
42
+ }
43
+ [Symbol.for('nodejs.util.inspect.custom')]() {
44
+ return `StellarWallet { address: '${this._address}' }`;
45
+ }
46
+ static chainType() {
47
+ return ChainType.STELLAR;
48
+ }
49
+ static walletFamily() {
50
+ return WalletFamily.STELLAR;
51
+ }
52
+ chainType() {
53
+ return StellarWallet.chainType();
54
+ }
55
+ walletFamily() {
56
+ return StellarWallet.walletFamily();
57
+ }
58
+ get address() {
59
+ return this._address;
60
+ }
61
+ get publicKey() {
62
+ return this.#keypair.publicKey();
63
+ }
64
+ static fromSecret(secretSeed) {
65
+ return new StellarWallet(secretSeed);
66
+ }
67
+ static fromMnemonic(mnemonicStr, opts = {}) {
68
+ const derivationPath = opts.derivationPath ?? "m/44'/148'/0'";
69
+ const passphrase = opts.passphrase ?? '';
70
+ const index = StellarWallet._indexFromDerivationPath(derivationPath);
71
+ const rawEd25519Seed = deriveSep5Ed25519Seed(mnemonicToSeedSep5(mnemonicStr, passphrase), index);
72
+ return new StellarWallet(Keypair.fromRawEd25519Seed(rawEd25519Seed).secret());
73
+ }
74
+ static derivationPath(args = {}) {
75
+ const purpose = args.purpose ?? 44;
76
+ const coinType = args.coinType ?? 148;
77
+ const change = args.change ?? 0;
78
+ const index = args.index ?? 0;
79
+ if (purpose !== 44) {
80
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Invalid purpose ${purpose} for Stellar BIP44, expected 44.`);
81
+ }
82
+ if (coinType !== 148) {
83
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Invalid coin_type ${coinType} for Stellar, expected 148.`);
84
+ }
85
+ if (change !== 0) {
86
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Stellar derivation does not use the change level (got ${change}).`);
87
+ }
88
+ if (index !== 0) {
89
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Stellar derivation does not use the index level (got ${index}); use account instead.`);
90
+ }
91
+ return `m/44'/148'/${args.account ?? 0}'`;
92
+ }
93
+ static _indexFromDerivationPath(derivationPath) {
94
+ const match = STELLAR_DERIVATION_PATH_REGEX.exec(derivationPath);
95
+ if (match === null) {
96
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Invalid Stellar derivation path: ${derivationPath}, expected m/44'/148'/<index>'`);
97
+ }
98
+ return Number.parseInt(match[1], 10);
99
+ }
100
+ async ensureMinimumTrustLine(chain, code, issuer, limit) {
101
+ const asset = chain.createSacToken(code, issuer);
102
+ const currentLimit = await chain.getTrustLineLimit(this.address, asset);
103
+ if (currentLimit.limit.gte(limit)) {
104
+ return null;
105
+ }
106
+ const changeTrustOp = Operation.changeTrust({
107
+ asset: stellarSdkAsset(code, issuer),
108
+ limit: stellarOperationAmount(limit, 'limit', { allowZero: true }),
109
+ });
110
+ const unsignedTx = new StellarUnsignedTransaction({
111
+ chainId: chain.chainId,
112
+ sourceAccountId: this.address,
113
+ operations: [changeTrustOp],
114
+ });
115
+ const signedTx = await this.signTransaction(unsignedTx, chain);
116
+ return chain.broadcastSignedTransaction(signedTx);
117
+ }
118
+ async closeTrustLine(chain, code, issuer) {
119
+ const asset = chain.createSacToken(code, issuer);
120
+ const currentLimit = await chain.getTrustLineLimit(this.address, asset);
121
+ if (!currentLimit.balance.isZero()) {
122
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Wallet ${this.address} has still balance of ${currentLimit.balance.toString()} ${code}, Removing trustline requires zero balance. Either swap this token to XLM or send it back to the issuer.`, { chainId: chain.chainId, address: this.address });
123
+ }
124
+ const changeTrustOp = Operation.changeTrust({ asset: stellarSdkAsset(code, issuer), limit: '0' });
125
+ const unsignedTx = new StellarUnsignedTransaction({
126
+ chainId: chain.chainId,
127
+ sourceAccountId: this.address,
128
+ operations: [changeTrustOp],
129
+ });
130
+ const signedTx = await this.signTransaction(unsignedTx, chain);
131
+ return chain.broadcastSignedTransaction(signedTx);
132
+ }
133
+ async handleTransactionPrerequisite(prerequisite, chain) {
134
+ if (prerequisite instanceof StellarChangeTrustLineTransactionPrerequisite) {
135
+ const stellarChain = assertStellarChain(chain);
136
+ if (prerequisite.chainId !== stellarChain.chainId) {
137
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Invalid chain with id ${stellarChain.chainId} for handling prerequisite ${String(prerequisite)} with chain id ${prerequisite.chainId}`, { chainId: stellarChain.chainId });
138
+ }
139
+ if (prerequisite.walletAddress !== this.address) {
140
+ const asset = stellarChain.createSacToken(prerequisite.code, prerequisite.issuer);
141
+ const currentLimit = await stellarChain.getTrustLineLimit(prerequisite.walletAddress, asset);
142
+ if (currentLimit.limit.lt(prerequisite.limit)) {
143
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Prerequisite not handled and does not belong to Stellar wallet ${this.address}, so it cannot behandled. Prerequisite ${String(prerequisite)} of type ${pyTypeRepr(prerequisite)}`, { chainId: stellarChain.chainId });
144
+ }
145
+ }
146
+ if (prerequisite.walletAddress !== this.address) {
147
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Stellar wallet ${this.address} cannot handle trustline prerequisite for ${prerequisite.walletAddress}`, { chainId: stellarChain.chainId });
148
+ }
149
+ const response = await this.ensureMinimumTrustLine(stellarChain, prerequisite.code, prerequisite.issuer, prerequisite.limit);
150
+ if (response === null) {
151
+ return new StellarChangeTrustPrerequisiteResponse({ skipped: true, txHash: null });
152
+ }
153
+ return new StellarChangeTrustPrerequisiteResponse({ skipped: false, txHash: response.txHash });
154
+ }
155
+ throw new ChainError(ChainErrorKinds.FeatureNotSupported, `Unsupported prerequisite ${String(prerequisite)} of type ${pyTypeRepr(prerequisite)}, expected StellarChangeTrustTransactionPrerequisite.`);
156
+ }
157
+ async signTransaction(transaction, chain) {
158
+ if (!(transaction instanceof StellarUnsignedTransaction)) {
159
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Invalid transaction ${String(transaction)}, expected StellarUnsignedTransaction.`);
160
+ }
161
+ const stellarChain = assertStellarChain(chain);
162
+ const envelope = await transaction.buildTransactionEnvelope(stellarChain);
163
+ envelope.sign(this.#keypair);
164
+ return new StellarSignedTransaction({
165
+ chainId: stellarChain.chainId,
166
+ signedXdr: envelope.toXDR(),
167
+ networkPassphrase: stellarChain.networkPassphrase,
168
+ });
169
+ }
170
+ async requestTestnetFaucetStroops() {
171
+ const response = await fetch(`https://friendbot.stellar.org/?addr=${this.address}`);
172
+ if (!response.ok) {
173
+ throw new ChainError(ChainErrorKinds.RpcError, `Friendbot request failed with HTTP ${response.status}`, { address: this.address });
174
+ }
175
+ return response.json();
176
+ }
177
+ signMessage(message) {
178
+ return new StellarSignedMessage(this.#keypair.sign(stellarMessageHash(message)).toString('hex'));
179
+ }
180
+ verifySignature(message, signedMessage) {
181
+ return StellarChain.verifySignature(this.publicKey, message, signedMessage);
182
+ }
183
+ }
184
+ function assertStellarChain(chain) {
185
+ if (!(chain instanceof StellarChain)) {
186
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Invalid chain ${String(chain)}, expected StellarChain`);
187
+ }
188
+ return chain;
189
+ }
190
+ //# sourceMappingURL=stellar_wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellar_wallet.js","sourceRoot":"","sources":["../../../stellar/stellar_wallet.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare abstract class Token {
2
+ protected static readonly allowsEmptySymbol: boolean;
2
3
  readonly chainId: number;
3
4
  readonly symbol: string;
4
5
  readonly identifier?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../token.ts"],"names":[],"mappings":"AAEA,8BAAsB,KAAK;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,SAAS,aACP,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM;IAoBlB,QAAQ,IAAI,OAAO;IAInB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAQ7B;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAInC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIhC,QAAQ,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../token.ts"],"names":[],"mappings":"AAEA,8BAAsB,KAAK;IACzB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAS;IAE7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,SAAS,aACP,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM;IAqBlB,QAAQ,IAAI,OAAO;IAInB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAQ7B;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAInC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIhC,QAAQ,IAAI,MAAM;CAGnB"}
package/dist/esm/token.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ChainError, ChainErrorKinds } from "./errors.js";
2
2
  export class Token {
3
+ static allowsEmptySymbol = false;
3
4
  chainId;
4
5
  symbol;
5
6
  identifier;
@@ -8,7 +9,8 @@ export class Token {
8
9
  if (!Number.isInteger(chainId)) {
9
10
  throw new ChainError(ChainErrorKinds.InvalidArgument, 'Token chainId must be an integer');
10
11
  }
11
- if (!symbol) {
12
+ const emptySymbolAllowed = symbol === '' && new.target.allowsEmptySymbol;
13
+ if (!symbol && !emptySymbolAllowed) {
12
14
  throw new ChainError(ChainErrorKinds.InvalidArgument, 'Token symbol is required');
13
15
  }
14
16
  if (!Number.isInteger(decimals) || decimals < 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,OAAgB,KAAK;IAChB,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,UAAU,CAAU;IACpB,QAAQ,CAAS;IAE1B,YACE,OAAe,EACf,MAAc,EACd,UAA8B,EAC9B,QAAgB;QAEhB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,+CAA+C,CAChD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAY;QACjB,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAC9B,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC5B,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CACrC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAY;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAY;QACpB,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC;IAChF,CAAC;IAED,QAAQ;QACN,OAAO,iBAAiB,IAAI,CAAC,OAAO,YAAY,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,UAAU,IAAI,QAAQ,cAAc,IAAI,CAAC,QAAQ,GAAG,CAAC;IACvI,CAAC;CACF"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,OAAgB,KAAK;IACf,MAAM,CAAU,iBAAiB,GAAY,KAAK,CAAC;IAEpD,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,UAAU,CAAU;IACpB,QAAQ,CAAS;IAE1B,YACE,OAAe,EACf,MAAc,EACd,UAA8B,EAC9B,QAAgB;QAEhB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,kBAAkB,GAAG,MAAM,KAAK,EAAE,IAAK,GAAG,CAAC,MAAoD,CAAC,iBAAiB,CAAC;QACxH,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,+CAA+C,CAChD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAY;QACjB,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAC9B,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC5B,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CACrC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAY;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAY;QACpB,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC;IAChF,CAAC;IAED,QAAQ;QACN,OAAO,iBAAiB,IAAI,CAAC,OAAO,YAAY,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,UAAU,IAAI,QAAQ,cAAc,IAAI,CAAC,QAAQ,GAAG,CAAC;IACvI,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type JsonDict = Record<string, unknown>;
2
+ export type JsonTransactionInput = string | Uint8Array | JsonDict;
3
+ export declare const JSON_TRANSACTION_TYPE_KEY = "type";
4
+ export declare const JSON_TRANSACTION_CHAIN_ID_KEY = "chain_id";
5
+ export interface JsonTransactionClass {
6
+ readonly name: string;
7
+ readonly JSON_TYPE: string;
8
+ readonly prototype: object;
9
+ fromJson(data: JsonTransactionInput): unknown;
10
+ }
11
+ export declare function registerJsonTransactionType(cls: JsonTransactionClass): void;
12
+ export declare function registeredJsonTransactionTypes(): string[];
13
+ export declare function coerceJsonDict(data: JsonTransactionInput): JsonDict;
14
+ export declare function jsonTransactionEnvelope(type: string, chainId: number, fields: JsonDict): JsonDict;
15
+ export declare function parseJsonTransactionEnvelope(data: JsonTransactionInput, expectedType: string): JsonDict;
16
+ export declare function jsonPayloadItem(payload: JsonDict, key: string): unknown;
17
+ export declare function transactionFromJson(base: {
18
+ readonly name: string;
19
+ readonly prototype: object;
20
+ }, rootFromJson: (data: JsonTransactionInput) => unknown, data: JsonTransactionInput): unknown;
21
+ //# sourceMappingURL=transaction_json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction_json.d.ts","sourceRoot":"","sources":["../../transaction_json.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElE,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,6BAA6B,aAAa,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC;CAC/C;AAID,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAS3E;AAED,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAEzD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,QAAQ,CAkBnE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAMjG;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,CAavG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAGvE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,EACrD,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAuBT"}
@@ -0,0 +1,75 @@
1
+ import { ChainError, ChainErrorKinds } from "./errors.js";
2
+ import { pyRepr, pyTypeName } from "./python_repr.js";
3
+ export const JSON_TRANSACTION_TYPE_KEY = 'type';
4
+ export const JSON_TRANSACTION_CHAIN_ID_KEY = 'chain_id';
5
+ const jsonTransactionRegistry = new Map();
6
+ export function registerJsonTransactionType(cls) {
7
+ const registered = jsonTransactionRegistry.get(cls.JSON_TYPE);
8
+ if (registered !== undefined && registered !== cls) {
9
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Duplicate transaction JSON type ${pyRepr(cls.JSON_TYPE)}: already registered by ${registered.name}`);
10
+ }
11
+ jsonTransactionRegistry.set(cls.JSON_TYPE, cls);
12
+ }
13
+ export function registeredJsonTransactionTypes() {
14
+ return [...jsonTransactionRegistry.keys()].sort();
15
+ }
16
+ export function coerceJsonDict(data) {
17
+ let value = data;
18
+ try {
19
+ if (typeof data === 'string') {
20
+ value = JSON.parse(data);
21
+ }
22
+ else if (data instanceof Uint8Array) {
23
+ value = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(data));
24
+ }
25
+ }
26
+ catch (err) {
27
+ throw new ChainError(ChainErrorKinds.InvalidArgument, err.message, {}, err);
28
+ }
29
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
30
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Expected a JSON object (dict) or its serialized form, got ${pyTypeName(value)}`);
31
+ }
32
+ return value;
33
+ }
34
+ export function jsonTransactionEnvelope(type, chainId, fields) {
35
+ return {
36
+ [JSON_TRANSACTION_TYPE_KEY]: type,
37
+ [JSON_TRANSACTION_CHAIN_ID_KEY]: chainId,
38
+ ...fields,
39
+ };
40
+ }
41
+ export function parseJsonTransactionEnvelope(data, expectedType) {
42
+ const payload = coerceJsonDict(data);
43
+ const type = payload[JSON_TRANSACTION_TYPE_KEY];
44
+ if (type !== expectedType) {
45
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Cannot deserialize a ${pyRepr(type)} payload as ${expectedType}`);
46
+ }
47
+ if (!(JSON_TRANSACTION_CHAIN_ID_KEY in payload)) {
48
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `${expectedType} payload is missing a ${pyRepr(JSON_TRANSACTION_CHAIN_ID_KEY)} field`);
49
+ }
50
+ return payload;
51
+ }
52
+ export function jsonPayloadItem(payload, key) {
53
+ if (!(key in payload))
54
+ throw new ChainError(ChainErrorKinds.InvalidArgument, pyRepr(key));
55
+ return payload[key];
56
+ }
57
+ export function transactionFromJson(base, rootFromJson, data) {
58
+ const payload = coerceJsonDict(data);
59
+ const type = payload[JSON_TRANSACTION_TYPE_KEY];
60
+ if (typeof type !== 'string') {
61
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Transaction JSON payload is missing a ${pyRepr(JSON_TRANSACTION_TYPE_KEY)} field: ${pyRepr(payload)}`);
62
+ }
63
+ const target = jsonTransactionRegistry.get(type);
64
+ if (target === undefined) {
65
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Unknown transaction JSON type ${pyRepr(type)}. Known types: ${pyRepr(registeredJsonTransactionTypes())}`);
66
+ }
67
+ if (target !== base && !(target.prototype instanceof base)) {
68
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `${type} is not a ${base.name}, cannot deserialize it as one`);
69
+ }
70
+ if (target.fromJson === rootFromJson) {
71
+ throw new ChainError(ChainErrorKinds.FeatureNotSupported, `${target.name} does not implement from_json()`);
72
+ }
73
+ return target.fromJson(payload);
74
+ }
75
+ //# sourceMappingURL=transaction_json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction_json.js","sourceRoot":"","sources":["../../transaction_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;AASxD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAExE,MAAM,UAAU,2BAA2B,CAAC,GAAyB;IACnE,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,mCAAmC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,UAAU,CAAC,IAAI,EAAE,CACrG,CAAC;IACJ,CAAC;IACD,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,CAAC,GAAG,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAA0B;IACvD,IAAI,KAAK,GAAY,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YACtC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,6DAA6D,UAAU,CAAC,KAAK,CAAC,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,OAAe,EAAE,MAAgB;IACrF,OAAO;QACL,CAAC,yBAAyB,CAAC,EAAE,IAAI;QACjC,CAAC,6BAA6B,CAAC,EAAE,OAAO;QACxC,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAA0B,EAAE,YAAoB;IAC3F,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,wBAAwB,MAAM,CAAC,IAAI,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;IAC3H,CAAC;IACD,IAAI,CAAC,CAAC,6BAA6B,IAAI,OAAO,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,GAAG,YAAY,yBAAyB,MAAM,CAAC,6BAA6B,CAAC,QAAQ,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAiB,EAAE,GAAW;IAC5D,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAA2D,EAC3D,YAAqD,EACrD,IAA0B;IAE1B,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,yCAAyC,MAAM,CAAC,yBAAyB,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,EAAE,CACvG,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,iCAAiC,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,8BAA8B,EAAE,CAAC,EAAE,CAC1G,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,YAAa,IAA8C,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,GAAG,IAAI,aAAa,IAAI,CAAC,IAAI,gCAAgC,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,mBAAmB,EAAE,GAAG,MAAM,CAAC,IAAI,iCAAiC,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { UnsignedTransaction } from './unsigned_transaction.ts';
2
+ export declare abstract class AbstractTransactionPrerequisite {
3
+ abstract get chainId(): number;
4
+ }
5
+ export declare abstract class AbstractHandledPrerequisiteResponse {
6
+ abstract get skipped(): boolean;
7
+ }
8
+ export interface UnsignedTransactionWithPrerequisitesInit<T extends UnsignedTransaction, P extends AbstractTransactionPrerequisite> {
9
+ prerequisites: P[];
10
+ transaction: T;
11
+ }
12
+ export declare class UnsignedTransactionWithPrerequisites<T extends UnsignedTransaction = UnsignedTransaction, P extends AbstractTransactionPrerequisite = AbstractTransactionPrerequisite> {
13
+ readonly prerequisites: P[];
14
+ readonly transaction: T;
15
+ constructor(init: UnsignedTransactionWithPrerequisitesInit<T, P>);
16
+ }
17
+ //# sourceMappingURL=transaction_prerequisite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction_prerequisite.d.ts","sourceRoot":"","sources":["../../transaction_prerequisite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,8BAAsB,+BAA+B;IACnD,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC;CAChC;AAED,8BAAsB,mCAAmC;IACvD,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,wCAAwC,CACvD,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,+BAA+B;IAEzC,aAAa,EAAE,CAAC,EAAE,CAAC;IACnB,WAAW,EAAE,CAAC,CAAC;CAChB;AAED,qBAAa,oCAAoC,CAC/C,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EACnD,CAAC,SAAS,+BAA+B,GAAG,+BAA+B;IAE3E,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBAEZ,IAAI,EAAE,wCAAwC,CAAC,CAAC,EAAE,CAAC,CAAC;CAIjE"}
@@ -0,0 +1,13 @@
1
+ export class AbstractTransactionPrerequisite {
2
+ }
3
+ export class AbstractHandledPrerequisiteResponse {
4
+ }
5
+ export class UnsignedTransactionWithPrerequisites {
6
+ prerequisites;
7
+ transaction;
8
+ constructor(init) {
9
+ this.prerequisites = init.prerequisites;
10
+ this.transaction = init.transaction;
11
+ }
12
+ }
13
+ //# sourceMappingURL=transaction_prerequisite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction_prerequisite.js","sourceRoot":"","sources":["../../transaction_prerequisite.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,+BAA+B;CAEpD;AAED,MAAM,OAAgB,mCAAmC;CAExD;AAUD,MAAM,OAAO,oCAAoC;IAItC,aAAa,CAAM;IACnB,WAAW,CAAI;IAExB,YAAY,IAAoD;QAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { NestedBalanceChanges } from './transaction_status.ts';
2
+ export declare const TransactionSimulationStatusTypes: {
3
+ readonly Success: "Success";
4
+ readonly Failed: "Failed";
5
+ };
6
+ export type TransactionSimulationStatusType = (typeof TransactionSimulationStatusTypes)[keyof typeof TransactionSimulationStatusTypes];
7
+ export interface TransactionSimulationResultInit {
8
+ chainId: number;
9
+ statusType: TransactionSimulationStatusType;
10
+ balanceChanges: NestedBalanceChanges;
11
+ error: Error | null;
12
+ }
13
+ export declare abstract class AbstractTransactionSimulationResult {
14
+ readonly chainId: number;
15
+ readonly statusType: TransactionSimulationStatusType;
16
+ readonly balanceChanges: NestedBalanceChanges;
17
+ readonly error: Error | null;
18
+ protected constructor(init: TransactionSimulationResultInit);
19
+ }
20
+ //# sourceMappingURL=transaction_simulation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction_simulation.d.ts","sourceRoot":"","sources":["../../transaction_simulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,eAAO,MAAM,gCAAgC;;;CAGnC,CAAC;AAEX,MAAM,MAAM,+BAA+B,GACzC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,OAAO,gCAAgC,CAAC,CAAC;AAE3F,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,+BAA+B,CAAC;IAC5C,cAAc,EAAE,oBAAoB,CAAC;IACrC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,8BAAsB,mCAAmC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE7B,SAAS,aAAa,IAAI,EAAE,+BAA+B;CAM5D"}
@@ -0,0 +1,17 @@
1
+ export const TransactionSimulationStatusTypes = {
2
+ Success: 'Success',
3
+ Failed: 'Failed',
4
+ };
5
+ export class AbstractTransactionSimulationResult {
6
+ chainId;
7
+ statusType;
8
+ balanceChanges;
9
+ error;
10
+ constructor(init) {
11
+ this.chainId = init.chainId;
12
+ this.statusType = init.statusType;
13
+ this.balanceChanges = init.balanceChanges;
14
+ this.error = init.error;
15
+ }
16
+ }
17
+ //# sourceMappingURL=transaction_simulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction_simulation.js","sourceRoot":"","sources":["../../transaction_simulation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACR,CAAC;AAYX,MAAM,OAAgB,mCAAmC;IAC9C,OAAO,CAAS;IAChB,UAAU,CAAkC;IAC5C,cAAc,CAAuB;IACrC,KAAK,CAAe;IAE7B,YAAsB,IAAqC;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ export * from './tron_abi.ts';
2
+ export * from './tron_address.ts';
3
+ export * from './tron_assets.ts';
4
+ export * from './tron_asset.ts';
5
+ export * from './tron_canonical_transaction.ts';
6
+ export * from './tron_chains.ts';
7
+ export * from './tron_chain.ts';
8
+ export * from './tron_client.ts';
9
+ export * from './tron_contract.ts';
10
+ export * from './tron_gas_pricing.ts';
11
+ export * from './tron_keys.ts';
12
+ export * from './tron_transaction_builder.ts';
13
+ export * from './tron_transaction_status.ts';
14
+ export * from './tron_transactions.ts';
15
+ export * from './tron_wallet.ts';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../tron/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export * from "./tron_abi.js";
2
+ export * from "./tron_address.js";
3
+ export * from "./tron_assets.js";
4
+ export * from "./tron_asset.js";
5
+ export * from "./tron_canonical_transaction.js";
6
+ export * from "./tron_chains.js";
7
+ export * from "./tron_chain.js";
8
+ export * from "./tron_client.js";
9
+ export * from "./tron_contract.js";
10
+ export * from "./tron_gas_pricing.js";
11
+ export * from "./tron_keys.js";
12
+ export * from "./tron_transaction_builder.js";
13
+ export * from "./tron_transaction_status.js";
14
+ export * from "./tron_transactions.js";
15
+ export * from "./tron_wallet.js";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tron/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function tronAbiEncodeSingle(typeString: string, values: unknown): string;
2
+ export declare function tronAbiDecodeSingle(typeString: string, data: Uint8Array): unknown;
3
+ //# sourceMappingURL=tron_abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron_abi.d.ts","sourceRoot":"","sources":["../../../tron/tron_abi.ts"],"names":[],"mappings":"AAYA,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAO/E;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAGjF"}