@rainlanguage/ui-components 0.0.1-alpha.24 → 0.0.1-alpha.241

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 (299) hide show
  1. package/README.md +14 -6
  2. package/dist/__fixtures__/settings.yaml +123 -0
  3. package/dist/__mocks__/CodeMirrorRainlang.svelte +4 -0
  4. package/dist/__mocks__/CodeMirrorRainlang.svelte.d.ts +18 -0
  5. package/dist/__mocks__/MockCodeMirrorEditor.svelte +17 -0
  6. package/dist/__mocks__/MockCodeMirrorEditor.svelte.d.ts +21 -0
  7. package/dist/__mocks__/MockComponent.js +1 -1
  8. package/dist/__mocks__/MockComponent.svelte +10 -2
  9. package/dist/__mocks__/MockComponent.svelte.d.ts +4 -1
  10. package/dist/__mocks__/mockWeb3Config.d.ts +1 -1
  11. package/dist/__mocks__/mockWeb3Config.js +10 -7
  12. package/dist/__mocks__/queries.js +9 -9
  13. package/dist/__mocks__/stores.d.ts +55 -45
  14. package/dist/__mocks__/stores.js +85 -68
  15. package/dist/app.css +3 -3
  16. package/dist/components/ButtonDarkMode.svelte +7 -1
  17. package/dist/components/ButtonLoading.svelte +1 -1
  18. package/dist/components/ButtonScrub.svelte +22 -0
  19. package/dist/components/ButtonScrub.svelte.d.ts +25 -0
  20. package/dist/components/ButtonVaultLink.svelte +12 -11
  21. package/dist/components/ButtonVaultLink.svelte.d.ts +4 -3
  22. package/dist/components/CheckboxInactiveOrdersVault.svelte +20 -0
  23. package/dist/components/CheckboxInactiveOrdersVault.svelte.d.ts +19 -0
  24. package/dist/components/CheckboxZeroBalanceVault.svelte.d.ts +2 -2
  25. package/dist/components/CodeMirrorDotrain.svelte +4 -0
  26. package/dist/components/CodeMirrorDotrain.svelte.d.ts +1 -0
  27. package/dist/components/CodeMirrorRainlang.svelte +20 -12
  28. package/dist/components/CodeMirrorRainlang.svelte.d.ts +3 -2
  29. package/dist/components/EditableSpan.svelte +3 -14
  30. package/dist/components/EditableSpan.svelte.d.ts +0 -1
  31. package/dist/components/Hash.svelte +6 -5
  32. package/dist/components/License.svelte +5 -4
  33. package/dist/components/ListViewRaindexFilters.svelte +64 -0
  34. package/dist/components/ListViewRaindexFilters.svelte.d.ts +32 -0
  35. package/dist/components/LocalDbStatusBadge.svelte +27 -0
  36. package/dist/components/LocalDbStatusBadge.svelte.d.ts +19 -0
  37. package/dist/components/LocalDbStatusCard.svelte +43 -0
  38. package/dist/components/LocalDbStatusCard.svelte.d.ts +20 -0
  39. package/dist/components/LocalDbStatusModal.svelte +105 -0
  40. package/dist/components/LocalDbStatusModal.svelte.d.ts +21 -0
  41. package/dist/components/OrderOrVaultHash.svelte +12 -12
  42. package/dist/components/OrderOrVaultHash.svelte.d.ts +4 -4
  43. package/dist/components/PageHeader.svelte +1 -1
  44. package/dist/components/Sensitive.svelte +16 -0
  45. package/dist/components/Sensitive.svelte.d.ts +28 -0
  46. package/dist/components/TanstackAppTable.svelte +270 -60
  47. package/dist/components/TanstackAppTable.svelte.d.ts +15 -9
  48. package/dist/components/ToastDetail.svelte +42 -0
  49. package/dist/components/ToastDetail.svelte.d.ts +20 -0
  50. package/dist/components/Tooltip.svelte +8 -0
  51. package/dist/components/Tooltip.svelte.d.ts +21 -0
  52. package/dist/components/VaultBalanceChangeTypeFilter.svelte +23 -0
  53. package/dist/components/VaultBalanceChangeTypeFilter.svelte.d.ts +19 -0
  54. package/dist/components/VaultCard.svelte +18 -0
  55. package/dist/components/VaultCard.svelte.d.ts +19 -0
  56. package/dist/components/charts/LightweightChart.svelte +1 -1
  57. package/dist/components/charts/LightweightChart.svelte.d.ts +5 -5
  58. package/dist/components/charts/OrderTradesChart.svelte +319 -28
  59. package/dist/components/charts/OrderTradesChart.svelte.d.ts +4 -4
  60. package/dist/components/charts/TanstackLightweightChartLine.svelte +5 -9
  61. package/dist/components/charts/VaultBalanceChart.svelte +8 -26
  62. package/dist/components/charts/VaultBalanceChart.svelte.d.ts +1 -7
  63. package/dist/components/charts/transformAndSortData.d.ts +24 -0
  64. package/dist/components/charts/transformAndSortData.js +111 -0
  65. package/dist/components/checkbox/CheckboxActiveOrders.svelte +11 -0
  66. package/dist/components/checkbox/CheckboxActiveOrders.svelte.d.ts +19 -0
  67. package/dist/components/deployment/ButtonSelectOption.svelte +2 -0
  68. package/dist/components/deployment/ButtonSelectOption.svelte.d.ts +1 -0
  69. package/dist/components/deployment/ComposedRainlangModal.svelte +3 -2
  70. package/dist/components/deployment/ComposedRainlangModal.svelte.d.ts +1 -4
  71. package/dist/components/deployment/DeploymentSectionHeader.svelte +7 -4
  72. package/dist/components/deployment/DeploymentSteps.svelte +196 -221
  73. package/dist/components/deployment/DeploymentSteps.svelte.d.ts +6 -12
  74. package/dist/components/deployment/DeploymentTile.svelte +2 -2
  75. package/dist/components/deployment/DeploymentTile.svelte.d.ts +1 -1
  76. package/dist/components/deployment/DeploymentsSection.svelte +15 -22
  77. package/dist/components/deployment/DeploymentsSection.svelte.d.ts +3 -2
  78. package/dist/components/deployment/DepositInput.svelte +10 -11
  79. package/dist/components/deployment/DepositInput.svelte.d.ts +2 -3
  80. package/dist/components/deployment/DisclaimerModal.svelte +6 -7
  81. package/dist/components/deployment/FieldDefinitionInput.svelte +10 -14
  82. package/dist/components/deployment/FieldDefinitionInput.svelte.d.ts +2 -3
  83. package/dist/components/deployment/InvalidOrdersSection.svelte +17 -0
  84. package/dist/components/deployment/InvalidOrdersSection.svelte.d.ts +19 -0
  85. package/dist/components/deployment/{StrategyPage.svelte → OrderPage.svelte} +15 -24
  86. package/dist/components/deployment/OrderPage.svelte.d.ts +21 -0
  87. package/dist/components/deployment/SelectToken.svelte +127 -50
  88. package/dist/components/deployment/SelectToken.svelte.d.ts +5 -4
  89. package/dist/components/deployment/TokenBalance.svelte +19 -0
  90. package/dist/components/deployment/TokenBalance.svelte.d.ts +19 -0
  91. package/dist/components/deployment/TokenIOInput.svelte +27 -17
  92. package/dist/components/deployment/TokenIOInput.svelte.d.ts +3 -3
  93. package/dist/components/deployment/TokenSelectionModal.svelte +148 -0
  94. package/dist/components/deployment/TokenSelectionModal.svelte.d.ts +20 -0
  95. package/dist/components/deployment/{ValidStrategiesSection.svelte → ValidOrdersSection.svelte} +7 -7
  96. package/dist/components/deployment/ValidOrdersSection.svelte.d.ts +19 -0
  97. package/dist/components/deployment/VaultIdInformation.svelte +17 -0
  98. package/dist/components/deployment/VaultIdInformation.svelte.d.ts +21 -0
  99. package/dist/components/detail/OrderDetail.svelte +220 -82
  100. package/dist/components/detail/OrderDetail.svelte.d.ts +21 -15
  101. package/dist/components/detail/TanstackOrderQuote.svelte +114 -46
  102. package/dist/components/detail/TanstackOrderQuote.svelte.d.ts +14 -16
  103. package/dist/components/detail/VaultDetail.svelte +82 -79
  104. package/dist/components/detail/VaultDetail.svelte.d.ts +12 -18
  105. package/dist/components/dropdown/DropdownActiveNetworks.svelte +44 -0
  106. package/dist/components/dropdown/DropdownActiveNetworks.svelte.d.ts +19 -0
  107. package/dist/components/dropdown/DropdownCheckbox.svelte +4 -4
  108. package/dist/components/dropdown/DropdownRaindexesFilter.svelte +172 -0
  109. package/dist/components/dropdown/DropdownRaindexesFilter.svelte.d.ts +25 -0
  110. package/dist/components/dropdown/DropdownTokensFilter.svelte +152 -0
  111. package/dist/components/dropdown/DropdownTokensFilter.svelte.d.ts +28 -0
  112. package/dist/components/icon/Refresh.svelte +4 -2
  113. package/dist/components/icon/Refresh.svelte.d.ts +2 -0
  114. package/dist/components/input/InputOrderHash.svelte +1 -1
  115. package/dist/components/input/InputOrderHash.svelte.d.ts +3 -3
  116. package/dist/components/input/InputOwnerFilter.svelte +48 -0
  117. package/dist/components/input/InputOwnerFilter.svelte.d.ts +19 -0
  118. package/dist/components/input/InputRegistryUrl.svelte +36 -14
  119. package/dist/components/input/InputToken.svelte +2 -2
  120. package/dist/components/input/InputTokenAmount.svelte +30 -20
  121. package/dist/components/input/InputTokenAmount.svelte.d.ts +3 -3
  122. package/dist/components/tables/OrderAPY.svelte +6 -33
  123. package/dist/components/tables/OrderAPY.svelte.d.ts +1 -4
  124. package/dist/components/tables/OrderTradesListTable.svelte +132 -124
  125. package/dist/components/tables/OrderTradesListTable.svelte.d.ts +4 -4
  126. package/dist/components/tables/OrderVaultsVolTable.svelte +17 -22
  127. package/dist/components/tables/OrderVaultsVolTable.svelte.d.ts +2 -2
  128. package/dist/components/tables/OrdersListTable.svelte +206 -115
  129. package/dist/components/tables/OrdersListTable.svelte.d.ts +18 -23
  130. package/dist/components/tables/VaultBalanceChangesTable.svelte +83 -43
  131. package/dist/components/tables/VaultBalanceChangesTable.svelte.d.ts +13 -11
  132. package/dist/components/tables/VaultsListTable.svelte +275 -150
  133. package/dist/components/tables/VaultsListTable.svelte.d.ts +24 -33
  134. package/dist/components/transactions/FixedBottomTransaction.svelte +64 -0
  135. package/dist/components/transactions/FixedBottomTransaction.svelte.d.ts +16 -0
  136. package/dist/components/transactions/TransactionDetail.svelte +31 -0
  137. package/dist/components/transactions/TransactionDetail.svelte.d.ts +20 -0
  138. package/dist/components/transactions/TransactionList.svelte +17 -0
  139. package/dist/components/transactions/TransactionList.svelte.d.ts +16 -0
  140. package/dist/components/transactions/getStatusEmoji.d.ts +2 -0
  141. package/dist/components/transactions/getStatusEmoji.js +20 -0
  142. package/dist/components/wallet/WalletConnect.svelte +5 -4
  143. package/dist/components/wallet/WalletConnect.svelte.d.ts +0 -1
  144. package/dist/consts.d.ts +1 -0
  145. package/dist/consts.js +1 -0
  146. package/dist/errors/DeploymentStepsError.d.ts +11 -5
  147. package/dist/errors/DeploymentStepsError.js +13 -7
  148. package/dist/errors/index.d.ts +1 -1
  149. package/dist/errors/index.js +1 -1
  150. package/dist/hooks/useLocalDb.d.ts +3 -0
  151. package/dist/hooks/useLocalDb.js +10 -0
  152. package/dist/hooks/useRaindexClient.d.ts +3 -0
  153. package/dist/hooks/useRaindexClient.js +11 -0
  154. package/dist/hooks/useRaindexOrderBuilder.d.ts +3 -0
  155. package/dist/hooks/useRaindexOrderBuilder.js +11 -0
  156. package/dist/index.d.ts +122 -91
  157. package/dist/index.js +118 -87
  158. package/dist/models/Transaction.d.ts +75 -0
  159. package/dist/models/Transaction.js +100 -0
  160. package/dist/providers/LocalDbProvider.svelte +8 -0
  161. package/dist/providers/LocalDbProvider.svelte.d.ts +21 -0
  162. package/dist/providers/RaindexClientProvider.svelte +8 -0
  163. package/dist/providers/RaindexClientProvider.svelte.d.ts +21 -0
  164. package/dist/providers/RaindexOrderBuilderProvider.svelte +8 -0
  165. package/dist/providers/RaindexOrderBuilderProvider.svelte.d.ts +21 -0
  166. package/dist/providers/dotrainRegistry/DotrainRegistryProvider.svelte +8 -0
  167. package/dist/providers/dotrainRegistry/DotrainRegistryProvider.svelte.d.ts +24 -0
  168. package/dist/providers/dotrainRegistry/context.d.ts +9 -0
  169. package/dist/providers/dotrainRegistry/context.js +43 -0
  170. package/dist/providers/dotrainRegistry/useDotrainRegistry.d.ts +5 -0
  171. package/dist/providers/dotrainRegistry/useDotrainRegistry.js +35 -0
  172. package/dist/providers/registry/RegistryManager.d.ts +65 -0
  173. package/dist/providers/registry/RegistryManager.js +134 -0
  174. package/dist/providers/registry/RegistryProvider.svelte +6 -0
  175. package/dist/providers/registry/RegistryProvider.svelte.d.ts +21 -0
  176. package/dist/providers/registry/context.d.ts +10 -0
  177. package/dist/providers/registry/context.js +46 -0
  178. package/dist/providers/registry/useRegistry.d.ts +7 -0
  179. package/dist/providers/registry/useRegistry.js +29 -0
  180. package/dist/providers/toasts/ToastProvider.svelte +17 -0
  181. package/dist/providers/toasts/ToastProvider.svelte.d.ts +18 -0
  182. package/dist/providers/toasts/context.d.ts +14 -0
  183. package/dist/providers/toasts/context.js +22 -0
  184. package/dist/providers/toasts/useToasts.d.ts +16 -0
  185. package/dist/providers/toasts/useToasts.js +63 -0
  186. package/dist/providers/transactions/TransactionManager.d.ts +234 -0
  187. package/dist/providers/transactions/TransactionManager.js +509 -0
  188. package/dist/providers/transactions/TransactionProvider.svelte +11 -0
  189. package/dist/providers/transactions/TransactionProvider.svelte.d.ts +24 -0
  190. package/dist/providers/transactions/context.d.ts +19 -0
  191. package/dist/providers/transactions/context.js +28 -0
  192. package/dist/providers/transactions/useTransactions.d.ts +13 -0
  193. package/dist/providers/transactions/useTransactions.js +18 -0
  194. package/dist/providers/wallet/WalletProvider.svelte +7 -0
  195. package/dist/providers/wallet/WalletProvider.svelte.d.ts +21 -0
  196. package/dist/providers/wallet/context.d.ts +10 -0
  197. package/dist/providers/wallet/context.js +47 -0
  198. package/dist/providers/wallet/useAccount.d.ts +8 -0
  199. package/dist/providers/wallet/useAccount.js +148 -0
  200. package/dist/queries/keys.d.ts +1 -0
  201. package/dist/queries/keys.js +10 -9
  202. package/dist/queries/queryClient.d.ts +2 -2
  203. package/dist/queries/queryClient.js +16 -11
  204. package/dist/services/awaitTransactionIndexing.d.ts +107 -0
  205. package/dist/services/awaitTransactionIndexing.js +60 -0
  206. package/dist/services/getExplorerLink.d.ts +1 -1
  207. package/dist/services/getExplorerLink.js +3 -5
  208. package/dist/services/handleShareChoices.d.ts +2 -2
  209. package/dist/services/handleShareChoices.js +6 -5
  210. package/dist/services/historicalOrderCharts.d.ts +3 -3
  211. package/dist/services/historicalOrderCharts.js +364 -371
  212. package/dist/services/index.d.ts +5 -2
  213. package/dist/services/index.js +3 -1
  214. package/dist/services/loadRegistryUrl.d.ts +2 -0
  215. package/dist/services/loadRegistryUrl.js +22 -0
  216. package/dist/services/pairTradesChartData.d.ts +47 -0
  217. package/dist/services/pairTradesChartData.js +194 -0
  218. package/dist/services/registry.d.ts +5 -5
  219. package/dist/services/registry.js +17 -217
  220. package/dist/services/time.d.ts +12 -0
  221. package/dist/services/time.js +88 -6
  222. package/dist/services/validateAmount.d.ts +30 -0
  223. package/dist/services/validateAmount.js +53 -0
  224. package/dist/storesGeneric/cachedWritableStore.d.ts +57 -0
  225. package/dist/storesGeneric/cachedWritableStore.js +93 -0
  226. package/dist/storesGeneric/scrub.d.ts +14 -0
  227. package/dist/storesGeneric/scrub.js +22 -0
  228. package/dist/test/matchers.d.ts +2 -2
  229. package/dist/test/matchers.js +2 -2
  230. package/dist/types/account.d.ts +3 -0
  231. package/dist/types/appStores.d.ts +9 -16
  232. package/dist/types/modal.d.ts +26 -14
  233. package/dist/types/order.d.ts +10 -0
  234. package/dist/types/order.js +1 -0
  235. package/dist/types/toast.d.ts +11 -0
  236. package/dist/types/toast.js +1 -0
  237. package/dist/types/tokenBalance.d.ts +6 -0
  238. package/dist/types/tokenBalance.js +1 -0
  239. package/dist/types/transaction.d.ts +67 -22
  240. package/dist/types/transaction.js +31 -1
  241. package/dist/utils/breadcrumbs.js +2 -2
  242. package/dist/utils/codeMirrorThemes.js +80 -74
  243. package/dist/utils/configHelpers.d.ts +4 -0
  244. package/dist/utils/configHelpers.js +21 -0
  245. package/dist/utils/constructHashLink.d.ts +24 -0
  246. package/dist/utils/constructHashLink.js +117 -0
  247. package/dist/utils/getNetworkName.d.ts +1 -0
  248. package/dist/utils/getNetworkName.js +13 -0
  249. package/dist/utils/hex.js +1 -1
  250. package/dist/utils/lightweightChartsThemes.d.ts +1 -1
  251. package/dist/utils/lightweightChartsThemes.js +11 -11
  252. package/dist/utils/localDbStatus.d.ts +26 -0
  253. package/dist/utils/localDbStatus.js +22 -0
  254. package/dist/utils/number.d.ts +0 -7
  255. package/dist/utils/number.js +5 -30
  256. package/dist/utils/stripTrailingWhitespace.d.ts +16 -0
  257. package/dist/utils/stripTrailingWhitespace.js +22 -0
  258. package/dist/utils/tokens.d.ts +2 -0
  259. package/dist/utils/tokens.js +3 -0
  260. package/dist/utils/vaultBalanceChangeLabels.d.ts +4 -0
  261. package/dist/utils/vaultBalanceChangeLabels.js +18 -0
  262. package/package.json +89 -84
  263. package/dist/__fixtures__/orderDetail.d.ts +0 -99
  264. package/dist/__fixtures__/orderDetail.js +0 -204
  265. package/dist/__fixtures__/settings-12-11-24.json +0 -160
  266. package/dist/__mocks__/mockTransactionStore.d.ts +0 -22
  267. package/dist/__mocks__/mockTransactionStore.js +0 -56
  268. package/dist/__mocks__/settings.d.ts +0 -3
  269. package/dist/__mocks__/settings.js +0 -37
  270. package/dist/components/CheckboxMyItemsOnly.svelte +0 -23
  271. package/dist/components/CheckboxMyItemsOnly.svelte.d.ts +0 -21
  272. package/dist/components/ListViewOrderbookFilters.svelte +0 -58
  273. package/dist/components/ListViewOrderbookFilters.svelte.d.ts +0 -28
  274. package/dist/components/deployment/InvalidStrategiesSection.svelte +0 -19
  275. package/dist/components/deployment/InvalidStrategiesSection.svelte.d.ts +0 -19
  276. package/dist/components/deployment/StrategyPage.svelte.d.ts +0 -19
  277. package/dist/components/deployment/ValidStrategiesSection.svelte.d.ts +0 -19
  278. package/dist/components/deployment/getDeploymentTransactionArgs.d.ts +0 -17
  279. package/dist/components/deployment/getDeploymentTransactionArgs.js +0 -28
  280. package/dist/components/detail/DepositOrWithdrawButtons.svelte +0 -44
  281. package/dist/components/detail/DepositOrWithdrawButtons.svelte.d.ts +0 -26
  282. package/dist/components/dropdown/DropdownActiveSubgraphs.svelte +0 -38
  283. package/dist/components/dropdown/DropdownActiveSubgraphs.svelte.d.ts +0 -21
  284. package/dist/components/dropdown/DropdownOrderListAccounts.svelte +0 -15
  285. package/dist/components/dropdown/DropdownOrderListAccounts.svelte.d.ts +0 -20
  286. package/dist/components/dropdown/DropdownOrderStatus.svelte +0 -31
  287. package/dist/components/dropdown/DropdownOrderStatus.svelte.d.ts +0 -19
  288. package/dist/hooks/useGui.d.ts +0 -3
  289. package/dist/hooks/useGui.js +0 -11
  290. package/dist/providers/GuiProvider.svelte +0 -8
  291. package/dist/providers/GuiProvider.svelte.d.ts +0 -21
  292. package/dist/stores/transactionStore.d.ts +0 -98
  293. package/dist/stores/transactionStore.js +0 -303
  294. package/dist/types/strategy.d.ts +0 -10
  295. package/dist/utils/time.d.ts +0 -12
  296. package/dist/utils/time.js +0 -27
  297. package/dist/utils/vault.d.ts +0 -2
  298. package/dist/utils/vault.js +0 -29
  299. /package/dist/types/{strategy.js → account.js} +0 -0
@@ -5,52 +5,88 @@ import OrderTradesListTable from "../tables/OrderTradesListTable.svelte";
5
5
  import TanstackOrderQuote from "./TanstackOrderQuote.svelte";
6
6
  import TanstackPageContentDetail from "./TanstackPageContentDetail.svelte";
7
7
  import CardProperty from "../CardProperty.svelte";
8
- import { formatTimestampSecondsAsLocal } from "../../utils/time";
8
+ import { formatTimestampSecondsAsLocal } from "../../services/time";
9
9
  import ButtonVaultLink from "../ButtonVaultLink.svelte";
10
10
  import OrderVaultsVolTable from "../tables/OrderVaultsVolTable.svelte";
11
11
  import { QKEY_ORDER } from "../../queries/keys";
12
12
  import CodeMirrorRainlang from "../CodeMirrorRainlang.svelte";
13
- import { getOrderByHash } from "@rainlanguage/orderbook/js_api";
14
13
  import { createQuery, useQueryClient } from "@tanstack/svelte-query";
15
14
  import { Button, TabItem, Tabs, Tooltip } from "flowbite-svelte";
16
15
  import { onDestroy } from "svelte";
17
- import OrderApy from "../tables/OrderAPY.svelte";
18
- import { page } from "$app/stores";
19
- import DepositOrWithdrawButtons from "./DepositOrWithdrawButtons.svelte";
20
16
  import Refresh from "../icon/Refresh.svelte";
21
- import { invalidateIdQuery } from "../../queries/queryClient";
22
- import { InfoCircleOutline } from "flowbite-svelte-icons";
23
- export let handleDepositOrWithdrawModal = void 0;
24
- export let handleOrderRemoveModal = void 0;
17
+ import { invalidateTanstackQueries } from "../../queries/queryClient";
18
+ import {
19
+ ArrowDownToBracketOutline,
20
+ ArrowUpFromBracketOutline,
21
+ InfoCircleOutline,
22
+ WalletOutline
23
+ } from "flowbite-svelte-icons";
24
+ import { getExplorerLink } from "../../services/getExplorerLink";
25
+ import { useAccount } from "../../providers/wallet/useAccount";
26
+ import {
27
+ RaindexClient,
28
+ RaindexOrder,
29
+ RaindexVault,
30
+ RaindexVaultsList
31
+ } from "@rainlanguage/raindex";
32
+ import { useToasts } from "../../providers/toasts/useToasts";
33
+ import { useRaindexClient } from "../../hooks/useRaindexClient";
25
34
  export let handleQuoteDebugModal = void 0;
26
- export const handleDebugTradeModal = void 0;
27
- export let colorTheme;
35
+ export let handleDebugTradeModal = void 0;
28
36
  export let codeMirrorTheme;
29
37
  export let lightweightChartsTheme;
30
- export let orderbookAddress;
38
+ export let raindexAddress;
31
39
  export let orderHash;
32
- export let rpcUrl;
33
- export let subgraphUrl;
34
40
  export let chainId;
35
- export let wagmiConfig = void 0;
36
- export let signerAddress = void 0;
41
+ export let rpcs = void 0;
42
+ export let onRemove;
43
+ export let onDeposit;
44
+ export let onWithdraw;
45
+ export let onWithdrawAll = void 0;
46
+ export let onTakeOrder = void 0;
37
47
  let codeMirrorDisabled = true;
38
48
  let codeMirrorStyles = {};
39
49
  const queryClient = useQueryClient();
50
+ const { matchesAccount } = useAccount();
51
+ const { errToast } = useToasts();
52
+ const raindexClient = useRaindexClient();
40
53
  $: orderDetailQuery = createQuery({
41
- queryKey: [orderHash, QKEY_ORDER + orderHash],
42
- queryFn: () => {
43
- return getOrderByHash(subgraphUrl, orderHash);
44
- },
45
- enabled: !!subgraphUrl
54
+ queryKey: [QKEY_ORDER, orderHash],
55
+ queryFn: async () => {
56
+ const result = await raindexClient.getOrderByHash(chainId, raindexAddress, orderHash);
57
+ if (result.error) throw new Error(result.error.readableMsg);
58
+ return result.value;
59
+ }
46
60
  });
47
61
  const interval = setInterval(async () => {
48
- await invalidateIdQuery(queryClient, orderHash);
62
+ await invalidateTanstackQueries(queryClient, [orderHash]);
49
63
  }, 1e4);
50
64
  onDestroy(() => {
51
65
  clearInterval(interval);
52
66
  });
53
- $: subgraphName = $page.url.pathname.split("/")[2]?.split("-")[0];
67
+ const handleRefresh = async () => {
68
+ try {
69
+ await invalidateTanstackQueries(queryClient, [orderHash]);
70
+ } catch {
71
+ errToast("Failed to refresh");
72
+ }
73
+ };
74
+ const vaultTypesMap = [
75
+ { key: "Output vaults", type: "output", getter: "outputsList" },
76
+ { key: "Input vaults", type: "input", getter: "inputsList" },
77
+ {
78
+ key: "Input & output vaults",
79
+ type: "inputOutput",
80
+ getter: "inputsOutputsList"
81
+ }
82
+ ];
83
+ const formatBuilderState = (builderState) => {
84
+ try {
85
+ return JSON.stringify(JSON.parse(builderState), null, 2);
86
+ } catch {
87
+ return "Invalid builder state";
88
+ }
89
+ };
54
90
  </script>
55
91
 
56
92
  <TanstackPageContentDetail query={orderDetailQuery} emptyMessage="Order not found">
@@ -61,35 +97,32 @@ $: subgraphName = $page.url.pathname.split("/")[2]?.split("-")[0];
61
97
  <div class="flex items-center gap-x-2">
62
98
  <div class="flex gap-x-2">
63
99
  <span class="font-light">Order</span>
64
- <Hash shorten value={data.order.orderHash} />
100
+ <Hash shorten value={data.orderHash} />
65
101
  </div>
66
-
67
- <BadgeActive active={data.order.active} large />
102
+ <BadgeActive active={data.active} large />
68
103
  </div>
69
104
 
70
105
  <div class="flex items-center gap-2">
71
- {#if data && $signerAddress === data.order.owner && data.order.active && handleOrderRemoveModal && $wagmiConfig && chainId && orderbookAddress}
106
+ {#if matchesAccount(data.owner) && data.active}
72
107
  <Button
108
+ on:click={() => onRemove(raindexClient, data)}
73
109
  data-testid="remove-button"
74
- color="dark"
75
- on:click={() =>
76
- handleOrderRemoveModal({
77
- open: true,
78
- args: {
79
- order: data.order,
80
- onRemove: $orderDetailQuery.refetch,
81
- chainId,
82
- orderbookAddress,
83
- subgraphUrl
84
- }
85
- })}
86
- disabled={!handleOrderRemoveModal}
110
+ aria-label="Remove order">Remove</Button
87
111
  >
88
- Remove
89
- </Button>
90
112
  {/if}
113
+ {#if data.active && onTakeOrder}
114
+ <Button
115
+ on:click={() => onTakeOrder(raindexClient, data)}
116
+ data-testid="take-order-button"
117
+ aria-label="Take order">Take Order</Button
118
+ >
119
+ {/if}
120
+
91
121
  <Refresh
92
- on:click={async () => await invalidateIdQuery(queryClient, orderHash)}
122
+ testId="top-refresh"
123
+ title="Refresh order"
124
+ ariaLabel="Refresh order"
125
+ on:click={handleRefresh}
93
126
  spin={$orderDetailQuery.isLoading || $orderDetailQuery.isFetching}
94
127
  />
95
128
  </div>
@@ -98,52 +131,125 @@ $: subgraphName = $page.url.pathname.split("/")[2]?.split("-")[0];
98
131
  <svelte:fragment slot="card" let:data>
99
132
  <div class="flex flex-col gap-y-6">
100
133
  <CardProperty>
101
- <svelte:fragment slot="key">Orderbook</svelte:fragment>
134
+ <svelte:fragment slot="key">Raindex</svelte:fragment>
102
135
  <svelte:fragment slot="value">
103
- <Hash type={HashType.Identifier} shorten={false} value={data.order.orderbook.id} />
136
+ <Hash type={HashType.Identifier} shorten={false} value={data.raindex} />
104
137
  </svelte:fragment>
105
138
  </CardProperty>
106
139
 
107
140
  <CardProperty>
108
141
  <svelte:fragment slot="key">Owner</svelte:fragment>
109
142
  <svelte:fragment slot="value">
110
- <Hash type={HashType.Wallet} shorten={false} value={data.order.owner} />
143
+ {@const explorerLink = getExplorerLink(data.owner, chainId, 'address')}
144
+ {#if explorerLink}
145
+ <a
146
+ href={explorerLink}
147
+ target="_blank"
148
+ rel="noopener noreferrer"
149
+ class="flex items-center justify-start space-x-2 text-left text-blue-500 hover:underline"
150
+ >
151
+ <WalletOutline size="sm" />
152
+ <span>{data.owner}</span>
153
+ </a>
154
+ {:else}
155
+ <Hash type={HashType.Wallet} shorten={false} value={data.owner} />
156
+ {/if}
111
157
  </svelte:fragment>
112
158
  </CardProperty>
113
159
 
114
160
  <CardProperty>
115
161
  <svelte:fragment slot="key">Created</svelte:fragment>
116
162
  <svelte:fragment slot="value">
117
- {formatTimestampSecondsAsLocal(BigInt(data.order.timestampAdded))}
163
+ {formatTimestampSecondsAsLocal(data.timestampAdded)}
118
164
  </svelte:fragment>
119
165
  </CardProperty>
120
166
 
121
- {#each [{ key: 'Input vaults', type: 'inputs' }, { key: 'Output vaults', type: 'outputs' }, { key: 'Input & output vaults', type: 'inputs_outputs' }] as { key, type }}
122
- {#if data.vaults.get(type)?.length !== 0}
167
+ {#if data.oracleUrl}
168
+ <CardProperty>
169
+ <svelte:fragment slot="key">
170
+ <div class="flex items-center gap-x-2">
171
+ Oracle
172
+ <InfoCircleOutline class="h-4 w-4" /><Tooltip
173
+ >This order uses a signed context oracle for external data (e.g. price feeds).
174
+ Quotes include oracle data automatically.</Tooltip
175
+ >
176
+ </div>
177
+ </svelte:fragment>
178
+ <svelte:fragment slot="value">
179
+ {#if data.oracleUrl.startsWith('https://') || data.oracleUrl.startsWith('http://')}
180
+ <a
181
+ href={data.oracleUrl}
182
+ target="_blank"
183
+ rel="noopener noreferrer"
184
+ class="break-all text-blue-500 hover:underline"
185
+ >
186
+ {data.oracleUrl}
187
+ </a>
188
+ {:else}
189
+ <span class="break-all text-gray-500">{data.oracleUrl}</span>
190
+ {/if}
191
+ </svelte:fragment>
192
+ </CardProperty>
193
+ {/if}
194
+
195
+ {#each vaultTypesMap as { key, type, getter }}
196
+ {@const filteredVaults = data.vaultsList.items.filter((vault) => vault.vaultType === type)}
197
+ {@const vaultsListByType = data[getter]}
198
+ {#if filteredVaults.length !== 0}
123
199
  <CardProperty>
124
- <svelte:fragment slot="key"
125
- ><div class="flex items-center gap-x-2">
126
- {key}
127
- {#if type === 'inputs_outputs'}
128
- <InfoCircleOutline class="h-4 w-4" /><Tooltip
129
- >{'These vaults can be an input or an output for this order'}</Tooltip
130
- >{/if}
131
- </div></svelte:fragment
132
- >
200
+ <svelte:fragment slot="key">
201
+ <div class="flex items-center justify-between">
202
+ <div class="flex items-center gap-x-2">
203
+ {key}
204
+ {#if type === 'inputOutput'}
205
+ <InfoCircleOutline class="h-4 w-4" /><Tooltip
206
+ >{'These vaults can be an input or an output for this order'}</Tooltip
207
+ >{/if}
208
+ </div>
209
+ {#if onWithdrawAll}
210
+ <Button
211
+ color="light"
212
+ size="xs"
213
+ on:click={() =>
214
+ vaultsListByType && onWithdrawAll(raindexClient, vaultsListByType)}
215
+ disabled={!vaultsListByType ||
216
+ vaultsListByType.getWithdrawableVaults()?.value?.length === 0}
217
+ data-testid="withdraw-all-button"
218
+ >
219
+ <ArrowUpFromBracketOutline size="xs" class="mr-2" />
220
+ Withdraw all
221
+ </Button>
222
+ {/if}
223
+ </div>
224
+ </svelte:fragment>
133
225
  <svelte:fragment slot="value">
134
226
  <div class="mt-2 space-y-2">
135
- {#each data.vaults.get(type) || [] as vault}
136
- <ButtonVaultLink tokenVault={vault} {subgraphName}>
227
+ {#each filteredVaults as vault}
228
+ <ButtonVaultLink tokenVault={vault} {chainId} {raindexAddress}>
137
229
  <svelte:fragment slot="buttons">
138
- {#if handleDepositOrWithdrawModal && $signerAddress === vault.owner && chainId}
139
- <DepositOrWithdrawButtons
140
- {vault}
141
- {chainId}
142
- {rpcUrl}
143
- query={orderDetailQuery}
144
- {handleDepositOrWithdrawModal}
145
- {subgraphUrl}
146
- />
230
+ {#if matchesAccount(vault.owner)}
231
+ <div class="flex gap-1">
232
+ <Button
233
+ color="light"
234
+ size="xs"
235
+ data-testid="deposit-button"
236
+ title="Deposit into vault"
237
+ aria-label="Deposit into vault"
238
+ on:click={() => onDeposit(raindexClient, vault)}
239
+ >
240
+ <ArrowDownToBracketOutline size="xs" />
241
+ </Button>
242
+ <Button
243
+ color="light"
244
+ size="xs"
245
+ data-testid="withdraw-button"
246
+ title="Withdraw from vault"
247
+ aria-label="Withdraw from vault"
248
+ on:click={() => onWithdraw(raindexClient, vault)}
249
+ >
250
+ <ArrowUpFromBracketOutline size="xs" />
251
+ </Button>
252
+ </div>
147
253
  {/if}
148
254
  </svelte:fragment>
149
255
  </ButtonVaultLink>
@@ -153,42 +259,74 @@ $: subgraphName = $page.url.pathname.split("/")[2]?.split("-")[0];
153
259
  </CardProperty>
154
260
  {/if}
155
261
  {/each}
262
+ {#if onWithdrawAll}
263
+ <Button
264
+ size="xs"
265
+ on:click={() =>
266
+ $orderDetailQuery.data?.vaultsList &&
267
+ onWithdrawAll(raindexClient, $orderDetailQuery.data.vaultsList)}
268
+ disabled={!$orderDetailQuery.data?.vaultsList ||
269
+ $orderDetailQuery.data?.vaultsList?.getWithdrawableVaults()?.value?.length === 0}
270
+ data-testid="withdraw-all-button"
271
+ >
272
+ <ArrowUpFromBracketOutline size="xs" class="mr-2" />
273
+ Withdraw all vaults
274
+ </Button>
275
+ {/if}
156
276
  </div>
157
277
  </svelte:fragment>
158
278
  <svelte:fragment slot="chart" let:data>
159
- <OrderTradesChart id={data.order.id} {subgraphUrl} {lightweightChartsTheme} {colorTheme} />
279
+ <OrderTradesChart order={data} {lightweightChartsTheme} />
160
280
  </svelte:fragment>
161
281
  <svelte:fragment slot="below" let:data>
162
- <TanstackOrderQuote
163
- id={data.order.id}
164
- order={data.order}
165
- {rpcUrl}
166
- {orderbookAddress}
167
- {handleQuoteDebugModal}
168
- />
282
+ <TanstackOrderQuote order={data} {handleQuoteDebugModal} />
169
283
  <Tabs
170
284
  style="underline"
171
285
  contentClass="mt-4"
172
286
  defaultClass="flex flex-wrap space-x-2 rtl:space-x-reverse mt-4 list-none"
173
287
  >
174
- <TabItem title="Rainlang source">
288
+ {#if data.dotrainSource}
289
+ <TabItem title="Dotrain">
290
+ <div class="mb-8 overflow-hidden rounded-lg border dark:border-none">
291
+ <CodeMirrorRainlang
292
+ rainlangText={data.dotrainSource}
293
+ codeMirrorTheme={$codeMirrorTheme}
294
+ {codeMirrorDisabled}
295
+ {codeMirrorStyles}
296
+ ></CodeMirrorRainlang>
297
+ </div>
298
+ </TabItem>
299
+ {/if}
300
+ <TabItem title="On-chain Rainlang">
175
301
  <div class="mb-8 overflow-hidden rounded-lg border dark:border-none">
176
302
  <CodeMirrorRainlang
177
- order={data.order}
303
+ rainlangText={data.rainlang}
178
304
  codeMirrorTheme={$codeMirrorTheme}
179
305
  {codeMirrorDisabled}
180
306
  {codeMirrorStyles}
181
307
  ></CodeMirrorRainlang>
182
308
  </div>
183
309
  </TabItem>
310
+ {#if data.orderBuilderState}
311
+ <TabItem title="Builder State">
312
+ <div class="mb-4">
313
+ <div class="overflow-auto rounded-lg border bg-gray-50 p-4 dark:bg-gray-800">
314
+ <pre class="text-sm" data-testid="builder-state-json">
315
+ {formatBuilderState(data.orderBuilderState)}
316
+ </pre>
317
+ </div>
318
+ </div>
319
+ </TabItem>
320
+ {/if}
184
321
  <TabItem open title="Trades">
185
- <OrderTradesListTable id={data.order.id} {subgraphUrl} />
322
+ <OrderTradesListTable order={data} {handleDebugTradeModal} {rpcs} />
186
323
  </TabItem>
187
324
  <TabItem title="Volume">
188
- <OrderVaultsVolTable id={data.order.id} {subgraphUrl} />
325
+ <OrderVaultsVolTable order={data} />
189
326
  </TabItem>
190
327
  <TabItem title="APY">
191
- <OrderApy id={data.order.id} {subgraphUrl} />
328
+ <div>TODO: Issue #1989</div>
329
+ <!-- <OrderApy order={data} /> -->
192
330
  </TabItem>
193
331
  </Tabs>
194
332
  </svelte:fragment>
@@ -1,24 +1,31 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { Writable } from 'svelte/store';
3
- import type { Config } from 'wagmi';
4
- import type { Hex } from 'viem';
5
- import type { DepositOrWithdrawModalProps, OrderRemoveModalProps, QuoteDebugModalHandler, DebugTradeModalHandler } from '../../types/modal';
2
+ import type { DebugTradeModalHandler, QuoteDebugModalHandler } from '../../types/modal';
3
+ import { RaindexClient, RaindexOrder, RaindexVault, RaindexVaultsList, type Address, type Hex } from '@rainlanguage/raindex';
6
4
  declare const __propDef: {
7
5
  props: {
8
- handleDepositOrWithdrawModal?: ((props: DepositOrWithdrawModalProps) => void) | undefined;
9
- handleOrderRemoveModal?: ((props: OrderRemoveModalProps) => void) | undefined;
10
6
  handleQuoteDebugModal?: QuoteDebugModalHandler | undefined;
11
7
  handleDebugTradeModal?: DebugTradeModalHandler | undefined;
12
- colorTheme: any;
13
8
  codeMirrorTheme: any;
14
9
  lightweightChartsTheme: any;
15
- orderbookAddress: Hex;
16
- orderHash: string;
17
- rpcUrl: string;
18
- subgraphUrl: string;
19
- chainId: number | undefined;
20
- wagmiConfig?: Writable<Config> | undefined;
21
- signerAddress?: Writable<string | null> | undefined;
10
+ raindexAddress: Address;
11
+ orderHash: Hex;
12
+ chainId: number;
13
+ rpcs?: string[] | undefined;
14
+ /** Callback function when remove action is triggered for an order
15
+ * @param order The order to remove
16
+ */ onRemove: (raindexClient: RaindexClient, order: RaindexOrder) => void;
17
+ /** Callback function when deposit action is triggered for a vault
18
+ * @param vault The vault to deposit into
19
+ */ onDeposit: (raindexClient: RaindexClient, vault: RaindexVault) => void;
20
+ /** Callback function when withdraw action is triggered for a vault
21
+ * @param vault The vault to withdraw from
22
+ */ onWithdraw: (raindexClient: RaindexClient, vault: RaindexVault) => void;
23
+ /** Callback function when withdraw all action is triggered for a vault
24
+ * @param vaultsList The VaultsList struct containing the vaults to withdraw from
25
+ */ onWithdrawAll?: ((raindexClient: RaindexClient, vaultsList: RaindexVaultsList) => void) | undefined;
26
+ /** Callback function when take order action is triggered
27
+ * @param order The order to take
28
+ */ onTakeOrder?: ((raindexClient: RaindexClient, order: RaindexOrder) => void) | undefined;
22
29
  };
23
30
  events: {
24
31
  [evt: string]: CustomEvent<any>;
@@ -31,6 +38,5 @@ export type OrderDetailProps = typeof __propDef.props;
31
38
  export type OrderDetailEvents = typeof __propDef.events;
32
39
  export type OrderDetailSlots = typeof __propDef.slots;
33
40
  export default class OrderDetail extends SvelteComponent<OrderDetailProps, OrderDetailEvents, OrderDetailSlots> {
34
- get handleDebugTradeModal(): DebugTradeModalHandler;
35
41
  }
36
42
  export {};