@getomnichain/omnichain 0.5.1 → 0.6.1

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 (300) hide show
  1. package/CHANGELOG.md +123 -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/evm/evm_chain.js +16 -0
  18. package/dist/cjs/evm/evm_chain.js.map +1 -1
  19. package/dist/cjs/index.js +12 -0
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/network_type.js +5 -2
  22. package/dist/cjs/network_type.js.map +1 -1
  23. package/dist/cjs/python_builtins.js +225 -0
  24. package/dist/cjs/python_builtins.js.map +1 -0
  25. package/dist/cjs/python_json.js +120 -0
  26. package/dist/cjs/python_json.js.map +1 -0
  27. package/dist/cjs/python_pydantic.js +50 -0
  28. package/dist/cjs/python_pydantic.js.map +1 -0
  29. package/dist/cjs/python_repr.js +172 -0
  30. package/dist/cjs/python_repr.js.map +1 -0
  31. package/dist/cjs/signed_transaction.js +24 -0
  32. package/dist/cjs/signed_transaction.js.map +1 -0
  33. package/dist/cjs/stellar/index.js +26 -0
  34. package/dist/cjs/stellar/index.js.map +1 -0
  35. package/dist/cjs/stellar/stellar_address.js +25 -0
  36. package/dist/cjs/stellar/stellar_address.js.map +1 -0
  37. package/dist/cjs/stellar/stellar_asset.js +155 -0
  38. package/dist/cjs/stellar/stellar_asset.js.map +1 -0
  39. package/dist/cjs/stellar/stellar_assets.js +26 -0
  40. package/dist/cjs/stellar/stellar_assets.js.map +1 -0
  41. package/dist/cjs/stellar/stellar_chain.js +1334 -0
  42. package/dist/cjs/stellar/stellar_chain.js.map +1 -0
  43. package/dist/cjs/stellar/stellar_chains.js +28 -0
  44. package/dist/cjs/stellar/stellar_chains.js.map +1 -0
  45. package/dist/cjs/stellar/stellar_gas_pricing.js +22 -0
  46. package/dist/cjs/stellar/stellar_gas_pricing.js.map +1 -0
  47. package/dist/cjs/stellar/stellar_strkey.js +71 -0
  48. package/dist/cjs/stellar/stellar_strkey.js.map +1 -0
  49. package/dist/cjs/stellar/stellar_transaction_status.js +72 -0
  50. package/dist/cjs/stellar/stellar_transaction_status.js.map +1 -0
  51. package/dist/cjs/stellar/stellar_transactions.js +475 -0
  52. package/dist/cjs/stellar/stellar_transactions.js.map +1 -0
  53. package/dist/cjs/stellar/stellar_wallet.js +195 -0
  54. package/dist/cjs/stellar/stellar_wallet.js.map +1 -0
  55. package/dist/cjs/token.js +3 -1
  56. package/dist/cjs/token.js.map +1 -1
  57. package/dist/cjs/transaction_json.js +85 -0
  58. package/dist/cjs/transaction_json.js.map +1 -0
  59. package/dist/cjs/transaction_prerequisite.js +19 -0
  60. package/dist/cjs/transaction_prerequisite.js.map +1 -0
  61. package/dist/cjs/transaction_simulation.js +21 -0
  62. package/dist/cjs/transaction_simulation.js.map +1 -0
  63. package/dist/cjs/tron/index.js +32 -0
  64. package/dist/cjs/tron/index.js.map +1 -0
  65. package/dist/cjs/tron/tron_abi.js +287 -0
  66. package/dist/cjs/tron/tron_abi.js.map +1 -0
  67. package/dist/cjs/tron/tron_address.js +38 -0
  68. package/dist/cjs/tron/tron_address.js.map +1 -0
  69. package/dist/cjs/tron/tron_asset.js +56 -0
  70. package/dist/cjs/tron/tron_asset.js.map +1 -0
  71. package/dist/cjs/tron/tron_assets.js +17 -0
  72. package/dist/cjs/tron/tron_assets.js.map +1 -0
  73. package/dist/cjs/tron/tron_base58.js +95 -0
  74. package/dist/cjs/tron/tron_base58.js.map +1 -0
  75. package/dist/cjs/tron/tron_canonical_transaction.js +268 -0
  76. package/dist/cjs/tron/tron_canonical_transaction.js.map +1 -0
  77. package/dist/cjs/tron/tron_chain.js +809 -0
  78. package/dist/cjs/tron/tron_chain.js.map +1 -0
  79. package/dist/cjs/tron/tron_chains.js +19 -0
  80. package/dist/cjs/tron/tron_chains.js.map +1 -0
  81. package/dist/cjs/tron/tron_client.js +327 -0
  82. package/dist/cjs/tron/tron_client.js.map +1 -0
  83. package/dist/cjs/tron/tron_contract.js +195 -0
  84. package/dist/cjs/tron/tron_contract.js.map +1 -0
  85. package/dist/cjs/tron/tron_gas_pricing.js +21 -0
  86. package/dist/cjs/tron/tron_gas_pricing.js.map +1 -0
  87. package/dist/cjs/tron/tron_keys.js +251 -0
  88. package/dist/cjs/tron/tron_keys.js.map +1 -0
  89. package/dist/cjs/tron/tron_transaction_builder.js +196 -0
  90. package/dist/cjs/tron/tron_transaction_builder.js.map +1 -0
  91. package/dist/cjs/tron/tron_transaction_status.js +118 -0
  92. package/dist/cjs/tron/tron_transaction_status.js.map +1 -0
  93. package/dist/cjs/tron/tron_transactions.js +192 -0
  94. package/dist/cjs/tron/tron_transactions.js.map +1 -0
  95. package/dist/cjs/tron/tron_wallet.js +152 -0
  96. package/dist/cjs/tron/tron_wallet.js.map +1 -0
  97. package/dist/cjs/unsigned_transaction.js +12 -0
  98. package/dist/cjs/unsigned_transaction.js.map +1 -1
  99. package/dist/cjs/wallet.base.js +29 -0
  100. package/dist/cjs/wallet.base.js.map +1 -0
  101. package/dist/esm/address.factory.d.ts.map +1 -1
  102. package/dist/esm/address.factory.js +7 -4
  103. package/dist/esm/address.factory.js.map +1 -1
  104. package/dist/esm/asset_balance.d.ts +5 -0
  105. package/dist/esm/asset_balance.d.ts.map +1 -0
  106. package/dist/esm/asset_balance.js +3 -0
  107. package/dist/esm/asset_balance.js.map +1 -0
  108. package/dist/esm/asset_map.d.ts +12 -0
  109. package/dist/esm/asset_map.d.ts.map +1 -0
  110. package/dist/esm/asset_map.js +40 -0
  111. package/dist/esm/asset_map.js.map +1 -0
  112. package/dist/esm/asset_registry.d.ts +6 -0
  113. package/dist/esm/asset_registry.d.ts.map +1 -0
  114. package/dist/esm/asset_registry.js +15 -0
  115. package/dist/esm/asset_registry.js.map +1 -0
  116. package/dist/esm/bip39.d.ts +4 -0
  117. package/dist/esm/bip39.d.ts.map +1 -0
  118. package/dist/esm/bip39.js +83 -0
  119. package/dist/esm/bip39.js.map +1 -0
  120. package/dist/esm/bytes_from_hex.d.ts +2 -0
  121. package/dist/esm/bytes_from_hex.d.ts.map +1 -0
  122. package/dist/esm/bytes_from_hex.js +31 -0
  123. package/dist/esm/bytes_from_hex.js.map +1 -0
  124. package/dist/esm/chain_type.d.ts +29 -0
  125. package/dist/esm/chain_type.d.ts.map +1 -0
  126. package/dist/esm/chain_type.js +32 -0
  127. package/dist/esm/chain_type.js.map +1 -0
  128. package/dist/esm/evm/evm_chain.d.ts +1 -0
  129. package/dist/esm/evm/evm_chain.d.ts.map +1 -1
  130. package/dist/esm/evm/evm_chain.js +17 -1
  131. package/dist/esm/evm/evm_chain.js.map +1 -1
  132. package/dist/esm/index.d.ts +12 -0
  133. package/dist/esm/index.d.ts.map +1 -1
  134. package/dist/esm/index.js +12 -0
  135. package/dist/esm/index.js.map +1 -1
  136. package/dist/esm/network_type.d.ts +3 -2
  137. package/dist/esm/network_type.d.ts.map +1 -1
  138. package/dist/esm/network_type.js +6 -3
  139. package/dist/esm/network_type.js.map +1 -1
  140. package/dist/esm/python_builtins.d.ts +13 -0
  141. package/dist/esm/python_builtins.d.ts.map +1 -0
  142. package/dist/esm/python_builtins.js +212 -0
  143. package/dist/esm/python_builtins.js.map +1 -0
  144. package/dist/esm/python_json.d.ts +9 -0
  145. package/dist/esm/python_json.d.ts.map +1 -0
  146. package/dist/esm/python_json.js +117 -0
  147. package/dist/esm/python_json.js.map +1 -0
  148. package/dist/esm/python_pydantic.d.ts +11 -0
  149. package/dist/esm/python_pydantic.d.ts.map +1 -0
  150. package/dist/esm/python_pydantic.js +39 -0
  151. package/dist/esm/python_pydantic.js.map +1 -0
  152. package/dist/esm/python_repr.d.ts +17 -0
  153. package/dist/esm/python_repr.d.ts.map +1 -0
  154. package/dist/esm/python_repr.js +160 -0
  155. package/dist/esm/python_repr.js.map +1 -0
  156. package/dist/esm/signed_transaction.d.ts +17 -0
  157. package/dist/esm/signed_transaction.d.ts.map +1 -0
  158. package/dist/esm/signed_transaction.js +19 -0
  159. package/dist/esm/signed_transaction.js.map +1 -0
  160. package/dist/esm/stellar/index.d.ts +10 -0
  161. package/dist/esm/stellar/index.d.ts.map +1 -0
  162. package/dist/esm/stellar/index.js +10 -0
  163. package/dist/esm/stellar/index.js.map +1 -0
  164. package/dist/esm/stellar/stellar_address.d.ts +8 -0
  165. package/dist/esm/stellar/stellar_address.d.ts.map +1 -0
  166. package/dist/esm/stellar/stellar_address.js +21 -0
  167. package/dist/esm/stellar/stellar_address.js.map +1 -0
  168. package/dist/esm/stellar/stellar_asset.d.ts +52 -0
  169. package/dist/esm/stellar/stellar_asset.d.ts.map +1 -0
  170. package/dist/esm/stellar/stellar_asset.js +147 -0
  171. package/dist/esm/stellar/stellar_asset.js.map +1 -0
  172. package/dist/esm/stellar/stellar_assets.d.ts +11 -0
  173. package/dist/esm/stellar/stellar_assets.d.ts.map +1 -0
  174. package/dist/esm/stellar/stellar_assets.js +23 -0
  175. package/dist/esm/stellar/stellar_assets.js.map +1 -0
  176. package/dist/esm/stellar/stellar_chain.d.ts +173 -0
  177. package/dist/esm/stellar/stellar_chain.d.ts.map +1 -0
  178. package/dist/esm/stellar/stellar_chain.js +1325 -0
  179. package/dist/esm/stellar/stellar_chain.js.map +1 -0
  180. package/dist/esm/stellar/stellar_chains.d.ts +5 -0
  181. package/dist/esm/stellar/stellar_chains.d.ts.map +1 -0
  182. package/dist/esm/stellar/stellar_chains.js +25 -0
  183. package/dist/esm/stellar/stellar_chains.js.map +1 -0
  184. package/dist/esm/stellar/stellar_gas_pricing.d.ts +13 -0
  185. package/dist/esm/stellar/stellar_gas_pricing.d.ts.map +1 -0
  186. package/dist/esm/stellar/stellar_gas_pricing.js +18 -0
  187. package/dist/esm/stellar/stellar_gas_pricing.js.map +1 -0
  188. package/dist/esm/stellar/stellar_strkey.d.ts +3 -0
  189. package/dist/esm/stellar/stellar_strkey.d.ts.map +1 -0
  190. package/dist/esm/stellar/stellar_strkey.js +67 -0
  191. package/dist/esm/stellar/stellar_strkey.js.map +1 -0
  192. package/dist/esm/stellar/stellar_transaction_status.d.ts +39 -0
  193. package/dist/esm/stellar/stellar_transaction_status.d.ts.map +1 -0
  194. package/dist/esm/stellar/stellar_transaction_status.js +68 -0
  195. package/dist/esm/stellar/stellar_transaction_status.js.map +1 -0
  196. package/dist/esm/stellar/stellar_transactions.d.ts +166 -0
  197. package/dist/esm/stellar/stellar_transactions.d.ts.map +1 -0
  198. package/dist/esm/stellar/stellar_transactions.js +451 -0
  199. package/dist/esm/stellar/stellar_transactions.js.map +1 -0
  200. package/dist/esm/stellar/stellar_wallet.d.ts +43 -0
  201. package/dist/esm/stellar/stellar_wallet.d.ts.map +1 -0
  202. package/dist/esm/stellar/stellar_wallet.js +190 -0
  203. package/dist/esm/stellar/stellar_wallet.js.map +1 -0
  204. package/dist/esm/token.d.ts +1 -0
  205. package/dist/esm/token.d.ts.map +1 -1
  206. package/dist/esm/token.js +3 -1
  207. package/dist/esm/token.js.map +1 -1
  208. package/dist/esm/transaction_json.d.ts +21 -0
  209. package/dist/esm/transaction_json.d.ts.map +1 -0
  210. package/dist/esm/transaction_json.js +75 -0
  211. package/dist/esm/transaction_json.js.map +1 -0
  212. package/dist/esm/transaction_prerequisite.d.ts +17 -0
  213. package/dist/esm/transaction_prerequisite.d.ts.map +1 -0
  214. package/dist/esm/transaction_prerequisite.js +13 -0
  215. package/dist/esm/transaction_prerequisite.js.map +1 -0
  216. package/dist/esm/transaction_simulation.d.ts +20 -0
  217. package/dist/esm/transaction_simulation.d.ts.map +1 -0
  218. package/dist/esm/transaction_simulation.js +17 -0
  219. package/dist/esm/transaction_simulation.js.map +1 -0
  220. package/dist/esm/tron/index.d.ts +16 -0
  221. package/dist/esm/tron/index.d.ts.map +1 -0
  222. package/dist/esm/tron/index.js +16 -0
  223. package/dist/esm/tron/index.js.map +1 -0
  224. package/dist/esm/tron/tron_abi.d.ts +3 -0
  225. package/dist/esm/tron/tron_abi.d.ts.map +1 -0
  226. package/dist/esm/tron/tron_abi.js +283 -0
  227. package/dist/esm/tron/tron_abi.js.map +1 -0
  228. package/dist/esm/tron/tron_address.d.ts +10 -0
  229. package/dist/esm/tron/tron_address.d.ts.map +1 -0
  230. package/dist/esm/tron/tron_address.js +34 -0
  231. package/dist/esm/tron/tron_address.js.map +1 -0
  232. package/dist/esm/tron/tron_asset.d.ts +19 -0
  233. package/dist/esm/tron/tron_asset.d.ts.map +1 -0
  234. package/dist/esm/tron/tron_asset.js +51 -0
  235. package/dist/esm/tron/tron_asset.js.map +1 -0
  236. package/dist/esm/tron/tron_assets.d.ts +10 -0
  237. package/dist/esm/tron/tron_assets.d.ts.map +1 -0
  238. package/dist/esm/tron/tron_assets.js +14 -0
  239. package/dist/esm/tron/tron_assets.js.map +1 -0
  240. package/dist/esm/tron/tron_base58.d.ts +7 -0
  241. package/dist/esm/tron/tron_base58.d.ts.map +1 -0
  242. package/dist/esm/tron/tron_base58.js +84 -0
  243. package/dist/esm/tron/tron_base58.js.map +1 -0
  244. package/dist/esm/tron/tron_canonical_transaction.d.ts +164 -0
  245. package/dist/esm/tron/tron_canonical_transaction.d.ts.map +1 -0
  246. package/dist/esm/tron/tron_canonical_transaction.js +262 -0
  247. package/dist/esm/tron/tron_canonical_transaction.js.map +1 -0
  248. package/dist/esm/tron/tron_chain.d.ts +136 -0
  249. package/dist/esm/tron/tron_chain.d.ts.map +1 -0
  250. package/dist/esm/tron/tron_chain.js +801 -0
  251. package/dist/esm/tron/tron_chain.js.map +1 -0
  252. package/dist/esm/tron/tron_chains.d.ts +5 -0
  253. package/dist/esm/tron/tron_chains.d.ts.map +1 -0
  254. package/dist/esm/tron/tron_chains.js +16 -0
  255. package/dist/esm/tron/tron_chains.js.map +1 -0
  256. package/dist/esm/tron/tron_client.d.ts +56 -0
  257. package/dist/esm/tron/tron_client.d.ts.map +1 -0
  258. package/dist/esm/tron/tron_client.js +319 -0
  259. package/dist/esm/tron/tron_client.js.map +1 -0
  260. package/dist/esm/tron/tron_contract.d.ts +69 -0
  261. package/dist/esm/tron/tron_contract.d.ts.map +1 -0
  262. package/dist/esm/tron/tron_contract.js +190 -0
  263. package/dist/esm/tron/tron_contract.js.map +1 -0
  264. package/dist/esm/tron/tron_gas_pricing.d.ts +12 -0
  265. package/dist/esm/tron/tron_gas_pricing.d.ts.map +1 -0
  266. package/dist/esm/tron/tron_gas_pricing.js +17 -0
  267. package/dist/esm/tron/tron_gas_pricing.js.map +1 -0
  268. package/dist/esm/tron/tron_keys.d.ts +61 -0
  269. package/dist/esm/tron/tron_keys.d.ts.map +1 -0
  270. package/dist/esm/tron/tron_keys.js +228 -0
  271. package/dist/esm/tron/tron_keys.js.map +1 -0
  272. package/dist/esm/tron/tron_transaction_builder.d.ts +56 -0
  273. package/dist/esm/tron/tron_transaction_builder.d.ts.map +1 -0
  274. package/dist/esm/tron/tron_transaction_builder.js +188 -0
  275. package/dist/esm/tron/tron_transaction_builder.js.map +1 -0
  276. package/dist/esm/tron/tron_transaction_status.d.ts +54 -0
  277. package/dist/esm/tron/tron_transaction_status.d.ts.map +1 -0
  278. package/dist/esm/tron/tron_transaction_status.js +113 -0
  279. package/dist/esm/tron/tron_transaction_status.js.map +1 -0
  280. package/dist/esm/tron/tron_transactions.d.ts +96 -0
  281. package/dist/esm/tron/tron_transactions.d.ts.map +1 -0
  282. package/dist/esm/tron/tron_transactions.js +181 -0
  283. package/dist/esm/tron/tron_transactions.js.map +1 -0
  284. package/dist/esm/tron/tron_wallet.d.ts +43 -0
  285. package/dist/esm/tron/tron_wallet.d.ts.map +1 -0
  286. package/dist/esm/tron/tron_wallet.js +148 -0
  287. package/dist/esm/tron/tron_wallet.js.map +1 -0
  288. package/dist/esm/unsigned_transaction.d.ts +5 -0
  289. package/dist/esm/unsigned_transaction.d.ts.map +1 -1
  290. package/dist/esm/unsigned_transaction.js +12 -0
  291. package/dist/esm/unsigned_transaction.js.map +1 -1
  292. package/dist/esm/wallet.base.d.ts +32 -0
  293. package/dist/esm/wallet.base.d.ts.map +1 -0
  294. package/dist/esm/wallet.base.js +23 -0
  295. package/dist/esm/wallet.base.js.map +1 -0
  296. package/docs/CONNECTIONS.md +1 -0
  297. package/docs/README.md +16 -7
  298. package/docs/stellar.md +113 -0
  299. package/docs/tron.md +103 -0
  300. package/package.json +14 -2
@@ -0,0 +1,451 @@
1
+ import { Account, Memo, MemoHash, MemoID, MemoNone, MemoReturn, MemoText, MuxedAccount, StrKey, Transaction, TransactionBuilder, xdr, } from '@stellar/stellar-sdk';
2
+ import { Decimal } from 'decimal.js';
3
+ import { ChainError, ChainErrorKinds, sanitizeCause } from "../errors.js";
4
+ import { pyEncodeUtf8, pyIntOf, pyItem } from "../python_builtins.js";
5
+ import { isPydanticAbsent, isPydanticDict, isPydanticLaxInt, isPydanticOptionalStr, isPydanticOptionalStrList, pydanticLaxIntValue, } from "../python_pydantic.js";
6
+ import { pyBalanceChangesRepr, pyBytesRepr, pyRepr, pyStr } from "../python_repr.js";
7
+ import { NetworkType } from "../network_type.js";
8
+ import { AbstractBroadcastTransactionResponse, AbstractSignedTransaction } from "../signed_transaction.js";
9
+ import { jsonTransactionEnvelope, parseJsonTransactionEnvelope, jsonPayloadItem, registerJsonTransactionType, } from "../transaction_json.js";
10
+ import { AbstractHandledPrerequisiteResponse, AbstractTransactionPrerequisite } from "../transaction_prerequisite.js";
11
+ import { AbstractTransactionSimulationResult, } from "../transaction_simulation.js";
12
+ import { UnsignedTransaction } from "../unsigned_transaction.js";
13
+ export function isInvokeHostFunctionOperation(operation) {
14
+ return operation.body().switch().name === 'invokeHostFunction';
15
+ }
16
+ export function pyMemoStr(memo) {
17
+ const valueBytes = () => (typeof memo.value === 'string' ? Buffer.from(memo.value, 'utf8') : memo.value);
18
+ switch (memo.type) {
19
+ case MemoText:
20
+ return `<TextMemo [memo=${pyBytesRepr(valueBytes())}]>`;
21
+ case MemoID:
22
+ return `<IdMemo [memo=${String(memo.value)}]>`;
23
+ case MemoHash:
24
+ return `<HashMemo [memo=${pyBytesRepr(valueBytes())}]>`;
25
+ case MemoReturn:
26
+ return `<ReturnHashMemo [memo=${pyBytesRepr(valueBytes())}]>`;
27
+ default:
28
+ return '<NoneMemo>';
29
+ }
30
+ }
31
+ const STELLAR_TEXT_MEMO_MAX_BYTES = 28;
32
+ export function stellarTextMemo(text) {
33
+ const length = pyEncodeUtf8(text).length;
34
+ if (length > STELLAR_TEXT_MEMO_MAX_BYTES) {
35
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Text should be <= ${STELLAR_TEXT_MEMO_MAX_BYTES} bytes (ascii encoded), got ${length} bytes.`);
36
+ }
37
+ return Memo.text(text);
38
+ }
39
+ export class SorobanRpcErrorResponse extends ChainError {
40
+ code;
41
+ data;
42
+ constructor(code, message, data, chainId) {
43
+ super(ChainErrorKinds.RpcError, message === undefined || message === null ? 'None' : String(message), { chainId });
44
+ this.name = 'SorobanRpcErrorResponse';
45
+ this.code = code;
46
+ this.data = data;
47
+ }
48
+ }
49
+ function jsonRpcError(value) {
50
+ return value !== null && typeof value === 'object' && !Array.isArray(value) && 'message' in value
51
+ ? value
52
+ : null;
53
+ }
54
+ export function sorobanRpcError(err, chainId, rpcUrl) {
55
+ if (err instanceof ChainError)
56
+ return err;
57
+ const bodyError = jsonRpcError(err?.response?.data?.error);
58
+ const rpcError = err instanceof Error ? bodyError : jsonRpcError(err);
59
+ if (rpcError !== null)
60
+ return new SorobanRpcErrorResponse(rpcError.code, rpcError.message, rpcError.data, chainId);
61
+ if (err instanceof Error)
62
+ return new ChainError(ChainErrorKinds.RpcError, err.message, { chainId }, sanitizeCause(err, rpcUrl));
63
+ return new ChainError(ChainErrorKinds.RpcError, String(err), { chainId });
64
+ }
65
+ const SOROBAN_OPERATION_TYPES = new Set(['invokeHostFunction', 'extendFootprintTtl', 'restoreFootprint']);
66
+ function simulationResultsRepr(results) {
67
+ if (results === null)
68
+ return 'None';
69
+ const items = results.map((r) => `SimulateHostFunctionResult(auth=${r.auth === undefined || r.auth === null ? 'None' : pyRepr(r.auth)}, xdr=${pyRepr(r.xdr)})`);
70
+ return `[${items.join(', ')}]`;
71
+ }
72
+ function isSimulateHostFunctionResult(value) {
73
+ return isPydanticDict(value) && typeof value.xdr === 'string' && isPydanticOptionalStrList(value.auth);
74
+ }
75
+ function isRestorePreamble(value) {
76
+ return isPydanticDict(value) && typeof value.transactionData === 'string' && isPydanticLaxInt(value.minResourceFee);
77
+ }
78
+ function isLedgerEntryChange(value) {
79
+ return (isPydanticDict(value) &&
80
+ typeof value.type === 'string' &&
81
+ typeof value.key === 'string' &&
82
+ isPydanticOptionalStr(value.before) &&
83
+ isPydanticOptionalStr(value.after));
84
+ }
85
+ export function validateSimulateTransactionResponse(result, chainId) {
86
+ const valid = isPydanticDict(result) &&
87
+ isPydanticOptionalStr(result.error) &&
88
+ isPydanticOptionalStr(result.transactionData) &&
89
+ (isPydanticAbsent(result.minResourceFee) || isPydanticLaxInt(result.minResourceFee)) &&
90
+ isPydanticOptionalStrList(result.events) &&
91
+ (isPydanticAbsent(result.results) || (Array.isArray(result.results) && result.results.every(isSimulateHostFunctionResult))) &&
92
+ (isPydanticAbsent(result.restorePreamble) || isRestorePreamble(result.restorePreamble)) &&
93
+ (isPydanticAbsent(result.stateChanges) || (Array.isArray(result.stateChanges) && result.stateChanges.every(isLedgerEntryChange))) &&
94
+ isPydanticLaxInt(result.latestLedger);
95
+ if (!valid) {
96
+ throw new ChainError(ChainErrorKinds.RpcError, 'Soroban simulateTransaction result does not match the SimulateTransactionResponse model', { chainId });
97
+ }
98
+ const fields = result;
99
+ return {
100
+ error: (fields.error ?? null),
101
+ transactionData: (fields.transactionData ?? null),
102
+ minResourceFee: isPydanticAbsent(fields.minResourceFee) ? null : pydanticLaxIntValue(fields.minResourceFee),
103
+ events: (fields.events ?? null),
104
+ results: (fields.results ?? null),
105
+ };
106
+ }
107
+ export async function simulateSorobanTransaction(tx, chain) {
108
+ let result;
109
+ try {
110
+ result = await chain._sorobanRpc('simulateTransaction', { transaction: tx.toXDR(), resourceConfig: null, authMode: null });
111
+ }
112
+ catch (err) {
113
+ throw sorobanRpcError(err, chain.chainId, chain.sorobanRpcUrl);
114
+ }
115
+ return validateSimulateTransactionResponse(result, chain.chainId);
116
+ }
117
+ export async function prepareSorobanTransaction(tx, chain) {
118
+ const simulation = await simulateSorobanTransaction(tx, chain);
119
+ if (simulation.error) {
120
+ throw new ChainError(ChainErrorKinds.SimulationFailed, 'Simulation transaction failed, the response contains error information.', { chainId: chain.chainId });
121
+ }
122
+ return assembleSorobanTransaction(tx, simulation, chain.chainId);
123
+ }
124
+ export function assembleSorobanTransaction(tx, simulation, chainId) {
125
+ const envelope = tx.toEnvelope();
126
+ const transaction = envelope.v1().tx();
127
+ const operations = transaction.operations();
128
+ if (operations.length !== 1 || !SOROBAN_OPERATION_TYPES.has(operations[0].body().switch().name)) {
129
+ throw new ChainError(ChainErrorKinds.InvalidArgument, 'Unsupported transaction: must contain exactly one operation of type RestoreFootprint, InvokeHostFunction or ExtendFootprintTTL', { chainId });
130
+ }
131
+ if (simulation.transactionData === null) {
132
+ throw new ChainError(ChainErrorKinds.RpcError, '', { chainId });
133
+ }
134
+ const sorobanData = xdr.SorobanTransactionData.fromXDR(simulation.transactionData, 'base64');
135
+ let fee = BigInt(transaction.fee());
136
+ if (transaction.ext().switch() === 1) {
137
+ fee -= transaction.ext().sorobanData().resourceFee().toBigInt();
138
+ }
139
+ if (simulation.minResourceFee === null) {
140
+ throw new ChainError(ChainErrorKinds.RpcError, '', { chainId });
141
+ }
142
+ fee += simulation.minResourceFee;
143
+ transaction.fee(Number(fee));
144
+ transaction.ext(new xdr.TransactionExt(1, sorobanData));
145
+ const operation = operations[0].body();
146
+ if (operation.switch().name === 'invokeHostFunction') {
147
+ const results = simulation.results;
148
+ if (!results || results.length !== 1) {
149
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Simulation results invalid: ${simulationResultsRepr(results)}`, { chainId });
150
+ }
151
+ const invoke = operation.invokeHostFunctionOp();
152
+ const auth = results[0].auth ?? [];
153
+ if (invoke.auth().length === 0 && auth.length > 0) {
154
+ invoke.auth(auth.map((entry) => xdr.SorobanAuthorizationEntry.fromXDR(entry, 'base64')));
155
+ }
156
+ }
157
+ envelope.v1().signatures([]);
158
+ return new Transaction(envelope, tx.networkPassphrase);
159
+ }
160
+ const STELLAR_AMOUNT_UPPER_LIMIT = '922337203685.4775807';
161
+ const STELLAR_AMOUNT_MAX_DECIMALS = 7;
162
+ export function stellarOperationAmount(value, argumentName, opts = {}) {
163
+ const amount = new Decimal(value.toString());
164
+ const text = amount.toFixed();
165
+ if (amount.decimalPlaces() > STELLAR_AMOUNT_MAX_DECIMALS) {
166
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Value of argument "${argumentName}" must have at most ${STELLAR_AMOUNT_MAX_DECIMALS} digits after the decimal: ${text}`);
167
+ }
168
+ if (amount.lt(0) || amount.gt(STELLAR_AMOUNT_UPPER_LIMIT)) {
169
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Value of argument "${argumentName}" must represent a positive number and the max valid value is ${STELLAR_AMOUNT_UPPER_LIMIT}: ${text}`);
170
+ }
171
+ if (amount.isZero() && opts.allowZero !== true) {
172
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Value of argument "${argumentName}" must be greater than zero: the Stellar network rejects a zero ${argumentName}`);
173
+ }
174
+ return text;
175
+ }
176
+ export function toClassicStellarAccountId(address) {
177
+ if (StrKey.isValidEd25519PublicKey(address))
178
+ return address;
179
+ try {
180
+ return StrKey.encodeEd25519PublicKey(StrKey.decodeMed25519PublicKey(address).subarray(0, 32));
181
+ }
182
+ catch (err) {
183
+ throw new ChainError(ChainErrorKinds.InvalidAddress, `This is not a valid account: ${address}`, { address }, err);
184
+ }
185
+ }
186
+ export class StellarChangeTrustLineTransactionPrerequisite extends AbstractTransactionPrerequisite {
187
+ _chainId;
188
+ code;
189
+ issuer;
190
+ limit;
191
+ walletAddress;
192
+ constructor(init) {
193
+ super();
194
+ this._chainId = init.chainId;
195
+ this.code = init.code;
196
+ this.issuer = init.issuer;
197
+ this.limit = init.limit;
198
+ this.walletAddress = init.walletAddress;
199
+ }
200
+ get chainId() {
201
+ return this._chainId;
202
+ }
203
+ toString() {
204
+ return `StellarChangeTrustPrerequisite[code:${this.code}, issuer:${this.issuer}, limit:${this.limit.toString()}, wallet:${this.walletAddress}]`;
205
+ }
206
+ }
207
+ export class StellarChangeTrustPrerequisiteResponse extends AbstractHandledPrerequisiteResponse {
208
+ _skipped;
209
+ txHash;
210
+ constructor(init) {
211
+ super();
212
+ this._skipped = init.skipped;
213
+ this.txHash = init.txHash;
214
+ }
215
+ get skipped() {
216
+ return this._skipped;
217
+ }
218
+ toString() {
219
+ return `StellarChangeTrustPrerequisiteResponse[skipped=${pyStr(this.skipped)}, tx_hash=${pyStr(this.txHash)}]`;
220
+ }
221
+ }
222
+ export class StellarUnsignedTransaction extends UnsignedTransaction {
223
+ static JSON_TYPE = 'StellarUnsignedTransaction';
224
+ sourceAccountId;
225
+ baseFee;
226
+ operations;
227
+ memo;
228
+ constructor(init) {
229
+ super(init.chainId, NetworkType.STELLAR);
230
+ this.sourceAccountId = init.sourceAccountId;
231
+ this.baseFee = init.baseFee ?? null;
232
+ this.operations = init.operations;
233
+ this.memo = init.memo ?? null;
234
+ }
235
+ async buildTransactionEnvelope(chain) {
236
+ if (chain.chainId !== this.chainId) {
237
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `StellarUnsignedTransaction for chain ${this.chainId} cannot be built on chain ${chain.chainId}`, { chainId: this.chainId });
238
+ }
239
+ const sourceAccount = await loadStellarAccount(chain, this.sourceAccountId);
240
+ let baseFee = this.baseFee;
241
+ if (baseFee === null) {
242
+ baseFee = await chain.getBaseFee();
243
+ }
244
+ const hasInvokeHostOp = this.operations.some(isInvokeHostFunctionOperation);
245
+ if (hasInvokeHostOp) {
246
+ if (this.operations.length !== 1) {
247
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `InvokeHostFunction operation must have exactly 1 operation, got ${this.operations.length}`, { chainId: this.chainId });
248
+ }
249
+ if (this.memo !== null && this.memo.type !== MemoNone) {
250
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Soroban Transactions (Operation InvokeHostFunction) does not support memo, received ${pyMemoStr(this.memo)}`, { chainId: this.chainId });
251
+ }
252
+ }
253
+ const builder = new TransactionBuilder(sourceAccount, {
254
+ fee: String(baseFee),
255
+ networkPassphrase: chain.networkPassphrase,
256
+ });
257
+ for (const operation of this.operations) {
258
+ builder.addOperation(operation);
259
+ }
260
+ if (this.memo !== null) {
261
+ builder.addMemo(this.memo);
262
+ }
263
+ builder.setTimeout(300);
264
+ let tx = builder.build();
265
+ if (hasInvokeHostOp) {
266
+ tx = await prepareSorobanTransaction(tx, chain);
267
+ }
268
+ return tx;
269
+ }
270
+ static validateEnvelope(envelope) {
271
+ const operations = envelope.operations;
272
+ const hasSorobanInvokeOp = operations.filter((op) => op.type === 'invokeHostFunction').length > 0;
273
+ if (hasSorobanInvokeOp && operations.length !== 1) {
274
+ throw new ChainError(ChainErrorKinds.InvalidArgument, 'Stellar envelop must have 1 operation (InvokeHostFunction) when calling soroban contracts');
275
+ }
276
+ }
277
+ static fromXdr(chain, envelopeXdr) {
278
+ const envelope = parseSignedStellarEnvelope(envelopeXdr, chain.networkPassphrase);
279
+ StellarUnsignedTransaction.validateEnvelope(envelope);
280
+ return new StellarUnsignedTransaction({
281
+ chainId: chain.chainId,
282
+ sourceAccountId: toClassicStellarAccountId(envelope.source),
283
+ operations: rawEnvelopeOperations(envelope),
284
+ memo: envelope.memo,
285
+ });
286
+ }
287
+ get isSorobanInvokeContractTransaction() {
288
+ return this.operations.length === 1 && isInvokeHostFunctionOperation(this.operations[0]);
289
+ }
290
+ toJson() {
291
+ return jsonTransactionEnvelope(StellarUnsignedTransaction.JSON_TYPE, this.chainId, {
292
+ source_account_id: this.sourceAccountId,
293
+ base_fee: this.baseFee,
294
+ operations: this.operations.map((op) => op.toXDR('base64')),
295
+ memo: this.memo === null ? null : this.memo.toXDRObject().toXDR('base64'),
296
+ });
297
+ }
298
+ static fromJson(data) {
299
+ const payload = parseJsonTransactionEnvelope(data, StellarUnsignedTransaction.JSON_TYPE);
300
+ const memoXdr = payload.memo;
301
+ return new StellarUnsignedTransaction({
302
+ chainId: jsonPayloadItem(payload, 'chain_id'),
303
+ sourceAccountId: jsonPayloadItem(payload, 'source_account_id'),
304
+ baseFee: payload.base_fee ?? null,
305
+ operations: jsonPayloadItem(payload, 'operations').map((op) => xdr.Operation.fromXDR(op, 'base64')),
306
+ memo: memoXdr === null || memoXdr === undefined ? null : Memo.fromXDRObject(xdr.Memo.fromXDR(memoXdr, 'base64')),
307
+ });
308
+ }
309
+ toString() {
310
+ return `StellarUnsignedTransaction[source_account_id:${this.sourceAccountId}, operations:${this.operations.length}, base_fee:${pyStr(this.baseFee)}, memo:${this.memo === null ? 'None' : pyMemoStr(this.memo)}]`;
311
+ }
312
+ }
313
+ function rawEnvelopeOperations(envelope) {
314
+ const raw = envelope.toEnvelope();
315
+ const inner = raw.switch().name === 'envelopeTypeTxV0' ? raw.v0().tx() : raw.v1().tx();
316
+ return [...inner.operations()];
317
+ }
318
+ export async function loadStellarAccount(chain, accountId) {
319
+ const classicAccountId = toClassicStellarAccountId(accountId);
320
+ const record = (await chain.asyncHorizonServer.accounts().accountId(classicAccountId).call());
321
+ const sequence = pyIntOf(pyItem(record, 'sequence')).toString();
322
+ return StrKey.isValidMed25519PublicKey(accountId) ? MuxedAccount.fromAddress(accountId, sequence) : new Account(classicAccountId, sequence);
323
+ }
324
+ export class StellarSignedTransaction extends AbstractSignedTransaction {
325
+ static JSON_TYPE = 'StellarSignedTransaction';
326
+ _chainId;
327
+ signedXdr;
328
+ networkPassphrase;
329
+ constructor(init) {
330
+ super();
331
+ this._chainId = init.chainId;
332
+ this.signedXdr = init.signedXdr;
333
+ this.networkPassphrase = init.networkPassphrase;
334
+ }
335
+ get chainId() {
336
+ return this._chainId;
337
+ }
338
+ get txHash() {
339
+ return parseSignedStellarEnvelope(this.signedXdr, this.networkPassphrase).hash().toString('hex');
340
+ }
341
+ toJson() {
342
+ return jsonTransactionEnvelope(StellarSignedTransaction.JSON_TYPE, this.chainId, {
343
+ signed_xdr: this.signedXdr,
344
+ network_passphrase: this.networkPassphrase,
345
+ });
346
+ }
347
+ static fromJson(data) {
348
+ const payload = parseJsonTransactionEnvelope(data, StellarSignedTransaction.JSON_TYPE);
349
+ return new StellarSignedTransaction({
350
+ chainId: jsonPayloadItem(payload, 'chain_id'),
351
+ signedXdr: jsonPayloadItem(payload, 'signed_xdr'),
352
+ networkPassphrase: jsonPayloadItem(payload, 'network_passphrase'),
353
+ });
354
+ }
355
+ }
356
+ registerJsonTransactionType(StellarUnsignedTransaction);
357
+ registerJsonTransactionType(StellarSignedTransaction);
358
+ export class StellarBroadcastTransactionResponse extends AbstractBroadcastTransactionResponse {
359
+ _chain;
360
+ _txHash;
361
+ _broadcastError;
362
+ constructor(init) {
363
+ super();
364
+ if (init.chain.networkType !== NetworkType.STELLAR) {
365
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Unsupported chain ${String(init.chain)}, expected StellarChain.`);
366
+ }
367
+ this._chain = init.chain;
368
+ this._txHash = init.txHash;
369
+ this._broadcastError = init.broadcastError ?? null;
370
+ }
371
+ get chain() {
372
+ return this._chain;
373
+ }
374
+ get txHash() {
375
+ return this._txHash;
376
+ }
377
+ get broadcastError() {
378
+ return this._broadcastError;
379
+ }
380
+ toString() {
381
+ return `StellarBroadcastTransactionResponse[tx_hash:${this.txHash}, broadcast_error:${pyStr(this.broadcastError)}]`;
382
+ }
383
+ }
384
+ export class StellarTransactionFees {
385
+ feeStroops;
386
+ feePayer;
387
+ constructor(init) {
388
+ this.feeStroops = init.feeStroops;
389
+ this.feePayer = init.feePayer;
390
+ }
391
+ toString() {
392
+ return `StellarTransactionFees[stroops:${this.feeStroops}, payer:${this.feePayer}]`;
393
+ }
394
+ }
395
+ export class StellarTransactionSimulationResult extends AbstractTransactionSimulationResult {
396
+ fees;
397
+ transactionType;
398
+ memo;
399
+ constructor(init) {
400
+ super(init);
401
+ this.fees = init.fees ?? null;
402
+ this.transactionType = init.transactionType ?? null;
403
+ this.memo = init.memo ?? null;
404
+ }
405
+ toString() {
406
+ return (`StellarTransactionSimulationResult[chain_id:${this.chainId},status:${this.statusType},` +
407
+ `balance_changes:${pyBalanceChangesRepr(this.balanceChanges)},error:${pyStr(this.error)},fees:${pyStr(this.fees)},` +
408
+ `transaction_type:${pyStr(this.transactionType)},memo:${this.memo === null ? 'None' : pyMemoStr(this.memo)},]`);
409
+ }
410
+ }
411
+ export function parseStellarExpertTransactionInfo(value) {
412
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
413
+ throw new ChainError(ChainErrorKinds.TransactionDecodeFailed, 'Stellar Expert transaction info must be an object');
414
+ }
415
+ const obj = value;
416
+ const str = (key) => {
417
+ const v = obj[key];
418
+ if (typeof v === 'string')
419
+ return v;
420
+ if (typeof v === 'number' && Number.isFinite(v))
421
+ return String(v);
422
+ throw new ChainError(ChainErrorKinds.TransactionDecodeFailed, `Stellar Expert transaction info field ${key} must be a string`);
423
+ };
424
+ const int = (key) => {
425
+ const v = obj[key];
426
+ if (typeof v === 'number' && Number.isInteger(v))
427
+ return v;
428
+ if (typeof v === 'string' && /^\s*[-+]?\d+\s*$/.test(v))
429
+ return Number.parseInt(v, 10);
430
+ throw new ChainError(ChainErrorKinds.TransactionDecodeFailed, `Stellar Expert transaction info field ${key} must be an integer`);
431
+ };
432
+ return {
433
+ id: str('id'),
434
+ hash: str('hash'),
435
+ ledger: int('ledger'),
436
+ ts: int('ts'),
437
+ protocol: int('protocol'),
438
+ body: str('body'),
439
+ meta: str('meta'),
440
+ result: str('result'),
441
+ };
442
+ }
443
+ export function parseSignedStellarEnvelope(signedXdr, networkPassphrase) {
444
+ const envelope = xdr.TransactionEnvelope.fromXDR(signedXdr, 'base64');
445
+ const envelopeType = envelope.switch();
446
+ if (envelopeType !== xdr.EnvelopeType.envelopeTypeTxV0() && envelopeType !== xdr.EnvelopeType.envelopeTypeTx()) {
447
+ throw new ChainError(ChainErrorKinds.InvalidArgument, `Unexpected EnvelopeType: ${envelopeType.value}.`);
448
+ }
449
+ return new Transaction(envelope, networkPassphrase);
450
+ }
451
+ //# sourceMappingURL=stellar_transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellar_transactions.js","sourceRoot":"","sources":["../../../stellar/stellar_transactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { Decimal } from 'decimal.js';
2
+ import type { Chain } from '../chain.base.ts';
3
+ import { ChainType, WalletFamily } from '../chain_type.ts';
4
+ import { AbstractTransactionPrerequisite } from '../transaction_prerequisite.ts';
5
+ import { UnsignedTransaction } from '../unsigned_transaction.ts';
6
+ import { AbstractBip32StyleSingleAccountWallet, AbstractSignedMessage } from '../wallet.base.ts';
7
+ import { StellarChain, StellarSignedMessage } from './stellar_chain.ts';
8
+ import { StellarBroadcastTransactionResponse, StellarChangeTrustPrerequisiteResponse, StellarSignedTransaction } from './stellar_transactions.ts';
9
+ export interface StellarDerivationPathArgs {
10
+ purpose?: number;
11
+ coinType?: number;
12
+ account?: number;
13
+ change?: number;
14
+ index?: number;
15
+ }
16
+ export declare function deriveSep5Ed25519Seed(bip39Seed: Uint8Array, index: number): Buffer;
17
+ export declare class StellarWallet extends AbstractBip32StyleSingleAccountWallet {
18
+ #private;
19
+ private readonly _address;
20
+ constructor(secretSeed: string);
21
+ get secretSeed(): string;
22
+ static chainType(): ChainType;
23
+ static walletFamily(): WalletFamily;
24
+ chainType(): ChainType;
25
+ walletFamily(): WalletFamily;
26
+ get address(): string;
27
+ get publicKey(): string;
28
+ static fromSecret(secretSeed: string): StellarWallet;
29
+ static fromMnemonic(mnemonicStr: string, opts?: {
30
+ derivationPath?: string;
31
+ passphrase?: string | null;
32
+ }): StellarWallet;
33
+ static derivationPath(args?: StellarDerivationPathArgs): string;
34
+ static _indexFromDerivationPath(derivationPath: string): number;
35
+ ensureMinimumTrustLine(chain: StellarChain, code: string, issuer: string, limit: Decimal): Promise<StellarBroadcastTransactionResponse | null>;
36
+ closeTrustLine(chain: StellarChain, code: string, issuer: string): Promise<StellarBroadcastTransactionResponse | null>;
37
+ handleTransactionPrerequisite(prerequisite: AbstractTransactionPrerequisite, chain: Chain): Promise<StellarChangeTrustPrerequisiteResponse>;
38
+ signTransaction(transaction: UnsignedTransaction, chain: Chain): Promise<StellarSignedTransaction>;
39
+ requestTestnetFaucetStroops(): Promise<unknown>;
40
+ signMessage(message: string): StellarSignedMessage;
41
+ verifySignature(message: string, signedMessage: AbstractSignedMessage): boolean;
42
+ }
43
+ //# sourceMappingURL=stellar_wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellar_wallet.d.ts","sourceRoot":"","sources":["../../../stellar/stellar_wallet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qCAAqC,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAsB,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACL,mCAAmC,EAEnC,sCAAsC,EACtC,wBAAwB,EAGzB,MAAM,2BAA2B,CAAC;AAMnC,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYlF;AAED,qBAAa,aAAc,SAAQ,qCAAqC;;IAGtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,UAAU,EAAE,MAAM;IAU9B,IAAI,UAAU,IAAI,MAAM,CAEvB;IAMD,MAAM,CAAC,SAAS,IAAI,SAAS;IAI7B,MAAM,CAAC,YAAY,IAAI,YAAY;IAInC,SAAS,IAAI,SAAS;IAItB,YAAY,IAAI,YAAY;IAI5B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAIpD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GAAG,aAAa;IAQ3H,MAAM,CAAC,cAAc,CAAC,IAAI,GAAE,yBAA8B,GAAG,MAAM;IAuBnE,MAAM,CAAC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAWzD,sBAAsB,CAC1B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAAC;IAmBhD,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAAC;IAoBtH,6BAA6B,CACjC,YAAY,EAAE,+BAA+B,EAC7C,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,sCAAsC,CAAC;IA4C5C,eAAe,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAiBlG,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQrD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IAIlD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,qBAAqB,GAAG,OAAO;CAGhF"}