@rainlanguage/ui-components 0.0.1-alpha.8 → 0.0.1-alpha.80

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 (132) hide show
  1. package/dist/__fixtures__/orderDetail.d.ts +1 -1
  2. package/dist/__mocks__/MockComponent.svelte +4 -0
  3. package/dist/__mocks__/MockComponent.svelte.d.ts +3 -1
  4. package/dist/__mocks__/mockTransactionStore.d.ts +3 -21
  5. package/dist/__mocks__/mockTransactionStore.js +26 -13
  6. package/dist/__mocks__/settings.d.ts +6 -2
  7. package/dist/__mocks__/settings.js +6 -1
  8. package/dist/__mocks__/stores.d.ts +86 -19
  9. package/dist/__mocks__/stores.js +26 -17
  10. package/dist/components/ButtonVaultLink.svelte +3 -3
  11. package/dist/components/ButtonVaultLink.svelte.d.ts +1 -1
  12. package/dist/components/CheckboxMyItemsOnly.svelte +3 -2
  13. package/dist/components/CheckboxMyItemsOnly.svelte.d.ts +0 -1
  14. package/dist/components/CodeMirrorDotrain.svelte +4 -0
  15. package/dist/components/CodeMirrorDotrain.svelte.d.ts +1 -0
  16. package/dist/components/CodeMirrorRainlang.svelte +2 -2
  17. package/dist/components/CodeMirrorRainlang.svelte.d.ts +1 -1
  18. package/dist/components/Hash.svelte +3 -3
  19. package/dist/components/License.svelte +5 -4
  20. package/dist/components/ListViewOrderbookFilters.svelte +14 -13
  21. package/dist/components/ListViewOrderbookFilters.svelte.d.ts +2 -5
  22. package/dist/components/OrderOrVaultHash.svelte +10 -7
  23. package/dist/components/OrderOrVaultHash.svelte.d.ts +1 -1
  24. package/dist/components/PageHeader.svelte +20 -22
  25. package/dist/components/PageHeader.svelte.d.ts +1 -0
  26. package/dist/components/TanstackAppTable.svelte +2 -3
  27. package/dist/components/TanstackAppTable.svelte.d.ts +1 -1
  28. package/dist/components/Tooltip.svelte +8 -0
  29. package/dist/components/Tooltip.svelte.d.ts +21 -0
  30. package/dist/components/charts/OrderTradesChart.svelte +1 -1
  31. package/dist/components/charts/TanstackLightweightChartLine.svelte +5 -9
  32. package/dist/components/charts/VaultBalanceChart.svelte +1 -1
  33. package/dist/components/charts/VaultBalanceChart.svelte.d.ts +1 -1
  34. package/dist/components/charts/transformAndSortData.d.ts +24 -0
  35. package/dist/components/charts/transformAndSortData.js +111 -0
  36. package/dist/components/checkbox/CheckboxActiveOrders.svelte +11 -0
  37. package/dist/components/checkbox/CheckboxActiveOrders.svelte.d.ts +19 -0
  38. package/dist/components/deployment/ComposedRainlangModal.svelte +7 -5
  39. package/dist/components/deployment/ComposedRainlangModal.svelte.d.ts +1 -4
  40. package/dist/components/deployment/DeploymentSectionHeader.svelte +7 -4
  41. package/dist/components/deployment/DeploymentSteps.svelte +180 -155
  42. package/dist/components/deployment/DeploymentSteps.svelte.d.ts +7 -13
  43. package/dist/components/deployment/DeploymentsSection.svelte +18 -14
  44. package/dist/components/deployment/DepositInput.svelte +31 -14
  45. package/dist/components/deployment/DepositInput.svelte.d.ts +1 -2
  46. package/dist/components/deployment/FieldDefinitionInput.svelte +20 -14
  47. package/dist/components/deployment/FieldDefinitionInput.svelte.d.ts +1 -2
  48. package/dist/components/deployment/SelectToken.svelte +12 -3
  49. package/dist/components/deployment/SelectToken.svelte.d.ts +1 -2
  50. package/dist/components/deployment/StrategyPage.svelte +6 -2
  51. package/dist/components/deployment/TokenIOInput.svelte +15 -5
  52. package/dist/components/deployment/TokenIOInput.svelte.d.ts +1 -2
  53. package/dist/components/deployment/handleDeployment.d.ts +11 -0
  54. package/dist/components/deployment/handleDeployment.js +33 -0
  55. package/dist/components/detail/OrderDetail.svelte +46 -41
  56. package/dist/components/detail/OrderDetail.svelte.d.ts +11 -8
  57. package/dist/components/detail/TanstackOrderQuote.svelte +6 -6
  58. package/dist/components/detail/TanstackOrderQuote.svelte.d.ts +1 -1
  59. package/dist/components/detail/VaultDetail.svelte +29 -40
  60. package/dist/components/detail/VaultDetail.svelte.d.ts +10 -10
  61. package/dist/components/dropdown/DropdownActiveSubgraphs.svelte.d.ts +1 -1
  62. package/dist/components/icon/Refresh.svelte +2 -1
  63. package/dist/components/icon/Refresh.svelte.d.ts +1 -0
  64. package/dist/components/input/InputOrderHash.svelte +1 -1
  65. package/dist/components/input/InputRegistryUrl.svelte +2 -2
  66. package/dist/components/input/InputToken.svelte +2 -2
  67. package/dist/components/input/InputTokenAmount.svelte +1 -1
  68. package/dist/components/tables/OrderAPY.svelte +1 -1
  69. package/dist/components/tables/OrderTradesListTable.svelte +1 -1
  70. package/dist/components/tables/OrderVaultsVolTable.svelte +1 -1
  71. package/dist/components/tables/OrdersListTable.svelte +16 -18
  72. package/dist/components/tables/OrdersListTable.svelte.d.ts +0 -6
  73. package/dist/components/tables/VaultBalanceChangesTable.svelte +3 -3
  74. package/dist/components/tables/VaultsListTable.svelte +43 -52
  75. package/dist/components/tables/VaultsListTable.svelte.d.ts +3 -6
  76. package/dist/components/wallet/WalletConnect.svelte +5 -4
  77. package/dist/components/wallet/WalletConnect.svelte.d.ts +0 -1
  78. package/dist/consts.d.ts +1 -0
  79. package/dist/consts.js +1 -0
  80. package/dist/errors/DeploymentStepsError.d.ts +5 -2
  81. package/dist/errors/DeploymentStepsError.js +4 -1
  82. package/dist/hooks/useGui.d.ts +3 -0
  83. package/dist/hooks/useGui.js +11 -0
  84. package/dist/index.d.ts +12 -6
  85. package/dist/index.js +14 -5
  86. package/dist/providers/GuiProvider.svelte +8 -0
  87. package/dist/providers/GuiProvider.svelte.d.ts +21 -0
  88. package/dist/providers/wallet/WalletProvider.svelte +7 -0
  89. package/dist/providers/wallet/WalletProvider.svelte.d.ts +21 -0
  90. package/dist/providers/wallet/context.d.ts +10 -0
  91. package/dist/providers/wallet/context.js +47 -0
  92. package/dist/providers/wallet/useAccount.d.ts +8 -0
  93. package/dist/providers/wallet/useAccount.js +148 -0
  94. package/dist/queries/queryClient.d.ts +1 -1
  95. package/dist/queries/queryClient.js +3 -3
  96. package/dist/services/awaitTransactionIndexing.d.ts +163 -0
  97. package/dist/services/awaitTransactionIndexing.js +120 -0
  98. package/dist/services/handleShareChoices.d.ts +2 -2
  99. package/dist/services/handleShareChoices.js +7 -2
  100. package/dist/services/historicalOrderCharts.d.ts +1 -1
  101. package/dist/services/index.d.ts +1 -1
  102. package/dist/services/index.js +1 -1
  103. package/dist/services/registry.d.ts +6 -0
  104. package/dist/services/registry.js +156 -0
  105. package/dist/stores/transactionStore.d.ts +7 -10
  106. package/dist/stores/transactionStore.js +35 -61
  107. package/dist/storesGeneric/cachedWritableStore.d.ts +57 -0
  108. package/dist/storesGeneric/cachedWritableStore.js +93 -0
  109. package/dist/types/account.d.ts +3 -0
  110. package/dist/types/account.js +1 -0
  111. package/dist/types/appStores.d.ts +2 -2
  112. package/dist/types/modal.d.ts +1 -1
  113. package/dist/types/strategy.d.ts +1 -1
  114. package/dist/types/transaction.d.ts +3 -3
  115. package/dist/utils/constructHashLink.d.ts +23 -0
  116. package/dist/utils/constructHashLink.js +110 -0
  117. package/dist/utils/vault.d.ts +1 -1
  118. package/package.json +34 -34
  119. package/dist/components/deployment/DepositsSection.svelte +0 -8
  120. package/dist/components/deployment/DepositsSection.svelte.d.ts +0 -20
  121. package/dist/components/deployment/FieldDefinitionsSection.svelte +0 -9
  122. package/dist/components/deployment/FieldDefinitionsSection.svelte.d.ts +0 -20
  123. package/dist/components/deployment/SelectTokensSection.svelte +0 -17
  124. package/dist/components/deployment/SelectTokensSection.svelte.d.ts +0 -21
  125. package/dist/components/deployment/TokenIOSection.svelte +0 -17
  126. package/dist/components/deployment/TokenIOSection.svelte.d.ts +0 -21
  127. package/dist/components/deployment/getDeploymentTransactionArgs.d.ts +0 -17
  128. package/dist/components/deployment/getDeploymentTransactionArgs.js +0 -24
  129. package/dist/components/detail/DepositOrWithdrawButtons.svelte +0 -44
  130. package/dist/components/detail/DepositOrWithdrawButtons.svelte.d.ts +0 -26
  131. package/dist/components/dropdown/DropdownOrderStatus.svelte +0 -31
  132. package/dist/components/dropdown/DropdownOrderStatus.svelte.d.ts +0 -19
@@ -1,7 +1,7 @@
1
1
  <script>import { createInfiniteQuery } from "@tanstack/svelte-query";
2
2
  import TanstackAppTable from "../TanstackAppTable.svelte";
3
3
  import { QKEY_ORDER_TRADES_LIST } from "../../queries/keys";
4
- import { getOrderTradesList, getOrderTradesCount } from "@rainlanguage/orderbook/js_api";
4
+ import { getOrderTradesList, getOrderTradesCount } from "@rainlanguage/orderbook";
5
5
  import { DEFAULT_PAGE_SIZE } from "../../queries/constants";
6
6
  import { TableBodyCell, TableHeadCell } from "flowbite-svelte";
7
7
  import { formatTimestampSecondsAsLocal } from "../../utils/time";
@@ -1,7 +1,7 @@
1
1
  <script>import { createInfiniteQuery } from "@tanstack/svelte-query";
2
2
  import TanstackAppTable from "../TanstackAppTable.svelte";
3
3
  import { QKEY_VAULTS_VOL_LIST } from "../../queries/keys";
4
- import { getOrderVaultsVolume } from "@rainlanguage/orderbook/js_api";
4
+ import { getOrderVaultsVolume } from "@rainlanguage/orderbook";
5
5
  import { TableBodyCell, TableHeadCell } from "flowbite-svelte";
6
6
  import Hash, { HashType } from "../Hash.svelte";
7
7
  import { formatUnits } from "viem";
@@ -1,8 +1,9 @@
1
1
  <script generics="T">import { goto } from "$app/navigation";
2
2
  import { DotsVerticalOutline } from "flowbite-svelte-icons";
3
- import {} from "@rainlanguage/orderbook/js_api";
4
3
  import { createInfiniteQuery } from "@tanstack/svelte-query";
5
- import { getOrders } from "@rainlanguage/orderbook/js_api";
4
+ import {
5
+ getOrders
6
+ } from "@rainlanguage/orderbook";
6
7
  import TanstackAppTable from "../TanstackAppTable.svelte";
7
8
  import { formatTimestampSecondsAsLocal } from "../../utils/time";
8
9
  import ListViewOrderbookFilters from "../ListViewOrderbookFilters.svelte";
@@ -17,8 +18,8 @@ import {
17
18
  TableBodyCell,
18
19
  TableHeadCell
19
20
  } from "flowbite-svelte";
20
- export const walletAddressMatchesOrBlank = void 0;
21
- export const handleOrderRemoveModal = void 0;
21
+ import { useAccount } from "../../providers/wallet/useAccount";
22
+ export let handleOrderRemoveModal = void 0;
22
23
  export let activeSubgraphs;
23
24
  export let settings;
24
25
  export let accounts;
@@ -27,17 +28,16 @@ export let activeOrderStatus;
27
28
  export let orderHash;
28
29
  export let hideZeroBalanceVaults;
29
30
  export let showMyItemsOnly;
30
- export let currentRoute;
31
- export let signerAddress;
32
31
  export let activeNetworkRef;
33
32
  export let activeOrderbookRef;
33
+ const { matchesAccount, account } = useAccount();
34
34
  $: multiSubgraphArgs = Object.entries(
35
35
  Object.keys($activeSubgraphs ?? {}).length ? $activeSubgraphs : $settings?.subgraphs ?? {}
36
36
  ).map(([name, url]) => ({
37
37
  name,
38
38
  url
39
39
  }));
40
- $: owners = $activeAccountsItems && Object.values($activeAccountsItems).length > 0 ? Object.values($activeAccountsItems) : $showMyItemsOnly && $signerAddress ? [$signerAddress] : [];
40
+ $: owners = $activeAccountsItems && Object.values($activeAccountsItems).length > 0 ? Object.values($activeAccountsItems) : $showMyItemsOnly && $account ? [$account] : [];
41
41
  $: query = createInfiniteQuery({
42
42
  queryKey: [
43
43
  QKEY_ORDERS,
@@ -53,7 +53,7 @@ $: query = createInfiniteQuery({
53
53
  multiSubgraphArgs,
54
54
  {
55
55
  owners,
56
- active: $activeOrderStatus,
56
+ active: !$activeOrderStatus ? void 0 : true,
57
57
  orderHash: $orderHash || void 0
58
58
  },
59
59
  { page: pageParam + 1, pageSize: DEFAULT_PAGE_SIZE }
@@ -67,8 +67,6 @@ $: query = createInfiniteQuery({
67
67
  enabled: true
68
68
  });
69
69
  const AppTable = TanstackAppTable;
70
- $: isVaultsPage = currentRoute.startsWith("/vaults");
71
- $: isOrdersPage = currentRoute.startsWith("/orders");
72
70
  </script>
73
71
 
74
72
  <ListViewOrderbookFilters
@@ -80,14 +78,11 @@ $: isOrdersPage = currentRoute.startsWith("/orders");
80
78
  {activeOrderStatus}
81
79
  {orderHash}
82
80
  {hideZeroBalanceVaults}
83
- {isVaultsPage}
84
- {isOrdersPage}
85
- {signerAddress}
86
81
  />
87
82
 
88
83
  <AppTable
89
84
  {query}
90
- queryKey={undefined}
85
+ queryKey={QKEY_ORDERS}
91
86
  emptyMessage="No Orders Found"
92
87
  on:clickRow={(e) => {
93
88
  activeNetworkRef.set(e.detail.item.subgraphName);
@@ -96,7 +91,10 @@ $: isOrdersPage = currentRoute.startsWith("/orders");
96
91
  }}
97
92
  >
98
93
  <svelte:fragment slot="title">
99
- <slot name="filters" />
94
+ <div class="mt-2 flex w-full justify-between">
95
+ <div class="text-3xl font-medium dark:text-white" data-testid="title">Orders</div>
96
+ <slot name="filters" />
97
+ </div>
100
98
  </svelte:fragment>
101
99
 
102
100
  <svelte:fragment slot="head">
@@ -147,10 +145,10 @@ $: isOrdersPage = currentRoute.startsWith("/orders");
147
145
  <TableBodyCell data-testid="orderListRowTrades" tdClass="break-word p-2"
148
146
  >{item.order.trades.length > 99 ? '>99' : item.order.trades.length}</TableBodyCell
149
147
  >
150
- {#if walletAddressMatchesOrBlank && handleOrderRemoveModal}
148
+ {#if matchesAccount(item.order.owner) && handleOrderRemoveModal}
151
149
  <div data-testid="wallet-actions">
152
150
  <TableBodyCell tdClass="px-0 text-right">
153
- {#if $walletAddressMatchesOrBlank(item.order.owner) && item.order.active}
151
+ {#if item.order.active}
154
152
  <Button
155
153
  color="alternative"
156
154
  outline={false}
@@ -165,7 +163,7 @@ $: isOrdersPage = currentRoute.startsWith("/orders");
165
163
  </Button>
166
164
  {/if}
167
165
  </TableBodyCell>
168
- {#if $walletAddressMatchesOrBlank(item.order.owner) && item.order.active}
166
+ {#if item.order.active}
169
167
  <Dropdown placement="bottom-end" triggeredBy={`#order-menu-${item.order.id}`}>
170
168
  <DropdownItem
171
169
  on:click={(e) => {
@@ -1,9 +1,7 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  import type { AppStoresInterface } from '../../types/appStores';
3
- import type { Writable } from 'svelte/store';
4
3
  declare class __sveltets_Render<T> {
5
4
  props(): {
6
- walletAddressMatchesOrBlank?: any;
7
5
  handleOrderRemoveModal?: any;
8
6
  activeSubgraphs: AppStoresInterface["activeSubgraphs"];
9
7
  settings: AppStoresInterface["settings"];
@@ -13,8 +11,6 @@ declare class __sveltets_Render<T> {
13
11
  orderHash: AppStoresInterface["orderHash"];
14
12
  hideZeroBalanceVaults: AppStoresInterface["hideZeroBalanceVaults"];
15
13
  showMyItemsOnly: AppStoresInterface["showMyItemsOnly"];
16
- currentRoute: string;
17
- signerAddress: Writable<string | null> | undefined;
18
14
  activeNetworkRef: AppStoresInterface["activeNetworkRef"];
19
15
  activeOrderbookRef: AppStoresInterface["activeOrderbookRef"];
20
16
  };
@@ -29,7 +25,5 @@ export type OrdersListTableProps<T> = ReturnType<__sveltets_Render<T>['props']>;
29
25
  export type OrdersListTableEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
30
26
  export type OrdersListTableSlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
31
27
  export default class OrdersListTable<T> extends SvelteComponent<OrdersListTableProps<T>, OrdersListTableEvents<T>, OrdersListTableSlots<T>> {
32
- get walletAddressMatchesOrBlank(): any;
33
- get handleOrderRemoveModal(): any;
34
28
  }
35
29
  export {};
@@ -3,7 +3,7 @@ import { formatUnits } from "viem";
3
3
  import { createInfiniteQuery } from "@tanstack/svelte-query";
4
4
  import {
5
5
  getVaultBalanceChanges
6
- } from "@rainlanguage/orderbook/js_api";
6
+ } from "@rainlanguage/orderbook";
7
7
  import { formatTimestampSecondsAsLocal } from "../../utils/time";
8
8
  import Hash, { HashType } from "../Hash.svelte";
9
9
  import { QKEY_VAULT_CHANGES } from "../../queries/keys";
@@ -30,12 +30,12 @@ const AppTable = TanstackAppTable;
30
30
 
31
31
  <AppTable
32
32
  query={balanceChangesQuery}
33
- queryKey={undefined}
33
+ queryKey={id}
34
34
  emptyMessage="No deposits or withdrawals found"
35
35
  rowHoverable={false}
36
36
  >
37
37
  <svelte:fragment slot="title">
38
- <Heading tag="h5" class="mb-4 mt-6 font-normal">Vault Balance Changes</Heading>
38
+ <Heading tag="h5" class="mb-4 mt-6 font-normal">Vault balance changes</Heading>
39
39
  </svelte:fragment>
40
40
  <svelte:fragment slot="head">
41
41
  <TableHeadCell padding="p-4">Date</TableHeadCell>
@@ -9,13 +9,14 @@ import Hash, { HashType } from "../Hash.svelte";
9
9
  import { DEFAULT_PAGE_SIZE, DEFAULT_REFRESH_INTERVAL } from "../../queries/constants";
10
10
  import { vaultBalanceDisplay } from "../../utils/vault";
11
11
  import { bigintStringToHex } from "../../utils/hex";
12
- import {} from "@rainlanguage/orderbook/js_api";
13
- import {} from "@rainlanguage/orderbook/js_api";
12
+ import {} from "@rainlanguage/orderbook";
13
+ import {} from "@rainlanguage/orderbook";
14
14
  import { QKEY_VAULTS } from "../../queries/keys";
15
15
  import {
16
16
  getVaults
17
- } from "@rainlanguage/orderbook/js_api";
17
+ } from "@rainlanguage/orderbook";
18
18
  import {} from "svelte/store";
19
+ import { useAccount } from "../../providers/wallet/useAccount";
19
20
  export let activeOrderbook;
20
21
  export let subgraphUrl;
21
22
  export let accounts;
@@ -28,20 +29,18 @@ export let hideZeroBalanceVaults;
28
29
  export let activeNetworkRef;
29
30
  export let activeOrderbookRef;
30
31
  export let activeAccounts;
31
- export let walletAddressMatchesOrBlank;
32
32
  export let handleDepositGenericModal = void 0;
33
33
  export let handleDepositModal = void 0;
34
34
  export let handleWithdrawModal = void 0;
35
- export let currentRoute;
36
35
  export let showMyItemsOnly;
37
- export let signerAddress;
36
+ const { account, matchesAccount } = useAccount();
38
37
  $: multiSubgraphArgs = Object.entries(
39
38
  Object.keys($activeSubgraphs ?? {}).length ? $activeSubgraphs : $settings?.subgraphs ?? {}
40
39
  ).map(([name, url]) => ({
41
40
  name,
42
41
  url
43
42
  }));
44
- $: owners = $activeAccountsItems && Object.values($activeAccountsItems).length > 0 ? Object.values($activeAccountsItems) : $showMyItemsOnly && $signerAddress ? [$signerAddress] : [];
43
+ $: owners = $activeAccountsItems && Object.values($activeAccountsItems).length > 0 ? Object.values($activeAccountsItems) : $showMyItemsOnly && $account ? [$account] : [];
45
44
  $: query = createInfiniteQuery({
46
45
  queryKey: [
47
46
  QKEY_VAULTS,
@@ -73,8 +72,6 @@ const updateActiveNetworkAndOrderbook = (subgraphName) => {
73
72
  activeNetworkRef.set(subgraphName);
74
73
  activeOrderbookRef.set(subgraphName);
75
74
  };
76
- $: isVaultsPage = currentRoute.startsWith("/vaults");
77
- $: isOrdersPage = currentRoute.startsWith("/orders");
78
75
  const AppTable = TanstackAppTable;
79
76
  </script>
80
77
 
@@ -88,13 +85,10 @@ const AppTable = TanstackAppTable;
88
85
  {activeOrderStatus}
89
86
  {orderHash}
90
87
  {hideZeroBalanceVaults}
91
- {isVaultsPage}
92
- {isOrdersPage}
93
- {signerAddress}
94
88
  />
95
89
  <AppTable
96
90
  {query}
97
- queryKey={undefined}
91
+ queryKey={QKEY_VAULTS}
98
92
  emptyMessage="No Vaults Found"
99
93
  on:clickRow={(e) => {
100
94
  updateActiveNetworkAndOrderbook(e.detail.item.subgraphName);
@@ -182,47 +176,44 @@ const AppTable = TanstackAppTable;
182
176
  </div>
183
177
  {/if}
184
178
  </TableBodyCell>
185
- {#if handleDepositModal && handleWithdrawModal && $walletAddressMatchesOrBlank(item.vault.owner)}
179
+ {#if handleDepositModal && handleWithdrawModal && matchesAccount(item.vault.owner)}
186
180
  <TableBodyCell tdClass="px-0 text-right">
187
- {#if $walletAddressMatchesOrBlank(item.vault.owner)}
188
- <Button
189
- color="alternative"
190
- outline={false}
191
- data-testid="vault-menu"
192
- id={`vault-menu-${item.vault.id}`}
193
- class="mr-2 border-none px-2"
194
- on:click={(e) => {
195
- e.stopPropagation();
196
- }}
197
- >
198
- <DotsVerticalOutline class="dark:text-white" />
199
- </Button>
200
- {/if}
201
- </TableBodyCell>
202
- {#if $walletAddressMatchesOrBlank(item.vault.owner)}
203
- <Dropdown
204
- data-testid="dropdown"
205
- placement="bottom-end"
206
- triggeredBy={`#vault-menu-${item.vault.id}`}
181
+ <Button
182
+ color="alternative"
183
+ outline={false}
184
+ data-testid="vault-menu"
185
+ id={`vault-menu-${item.vault.id}`}
186
+ class="mr-2 border-none px-2"
187
+ on:click={(e) => {
188
+ e.stopPropagation();
189
+ }}
207
190
  >
208
- <DropdownItem
209
- data-testid="deposit-button"
210
- on:click={(e) => {
211
- e.stopPropagation();
212
- handleDepositModal(item.vault, $query.refetch);
213
- }}
214
- >Deposit
215
- </DropdownItem>
216
- <DropdownItem
217
- data-testid="withdraw-button"
218
- on:click={(e) => {
219
- e.stopPropagation();
220
- handleWithdrawModal(item.vault, $query.refetch);
221
- }}
222
- >Withdraw
223
- </DropdownItem>
224
- </Dropdown>
225
- {/if}
191
+ <DotsVerticalOutline class="dark:text-white" />
192
+ </Button>
193
+ </TableBodyCell>
194
+
195
+ <Dropdown
196
+ data-testid="dropdown"
197
+ placement="bottom-end"
198
+ triggeredBy={`#vault-menu-${item.vault.id}`}
199
+ >
200
+ <DropdownItem
201
+ data-testid="deposit-button"
202
+ on:click={(e) => {
203
+ e.stopPropagation();
204
+ handleDepositModal(item.vault, $query.refetch);
205
+ }}
206
+ >Deposit
207
+ </DropdownItem>
208
+ <DropdownItem
209
+ data-testid="withdraw-button"
210
+ on:click={(e) => {
211
+ e.stopPropagation();
212
+ handleWithdrawModal(item.vault, $query.refetch);
213
+ }}
214
+ >Withdraw
215
+ </DropdownItem>
216
+ </Dropdown>
226
217
  {/if}
227
218
  </svelte:fragment>
228
219
  </AppTable>
@@ -1,6 +1,6 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import { type ConfigSource, type OrderbookConfigSource } from '@rainlanguage/orderbook/js_api';
3
- import { type SgVault } from '@rainlanguage/orderbook/js_api';
2
+ import { type ConfigSource, type OrderbookConfigSource } from '@rainlanguage/orderbook';
3
+ import { type SgVault } from '@rainlanguage/orderbook';
4
4
  import { type Writable, type Readable } from 'svelte/store';
5
5
  import type { AppStoresInterface } from '../../types/appStores.ts';
6
6
  declare class __sveltets_Render<T> {
@@ -12,20 +12,17 @@ declare class __sveltets_Render<T> {
12
12
  orderHash: Writable<string>;
13
13
  activeSubgraphs: Writable<Record<string, string>>;
14
14
  settings: Writable<ConfigSource | undefined>;
15
- activeOrderStatus: Writable<boolean | undefined>;
15
+ activeOrderStatus: Writable<boolean>;
16
16
  hideZeroBalanceVaults: Writable<boolean>;
17
17
  activeNetworkRef: Writable<string | undefined>;
18
18
  activeOrderbookRef: Writable<string | undefined>;
19
19
  activeAccounts: Readable<{
20
20
  [k: string]: string;
21
21
  }>;
22
- walletAddressMatchesOrBlank: Readable<(otherAddress: string) => boolean>;
23
22
  handleDepositGenericModal?: (() => void) | undefined;
24
23
  handleDepositModal?: ((vault: SgVault, refetch: () => void) => void) | undefined;
25
24
  handleWithdrawModal?: ((vault: SgVault, refetch: () => void) => void) | undefined;
26
- currentRoute: string;
27
25
  showMyItemsOnly: AppStoresInterface["showMyItemsOnly"];
28
- signerAddress: Writable<string | null> | undefined;
29
26
  };
30
27
  events(): {} & {
31
28
  [evt: string]: CustomEvent<any>;
@@ -2,10 +2,11 @@
2
2
  import { CheckCircleOutline } from "flowbite-svelte-icons";
3
3
  import { twMerge } from "tailwind-merge";
4
4
  import truncateEthAddress from "truncate-eth-address";
5
+ import { useAccount } from "../../providers/wallet/useAccount";
5
6
  export let appKitModal;
6
7
  export let connected;
7
- export let signerAddress;
8
8
  export let classes = "";
9
+ const { account } = useAccount();
9
10
  function handleClick() {
10
11
  $appKitModal.open();
11
12
  }
@@ -18,11 +19,11 @@ function handleClick() {
18
19
  class={twMerge('flex border border-gray-700 px-2 md:px-4 dark:border-gray-200', classes)}
19
20
  color={$connected ? 'alternative' : 'primary'}
20
21
  >
21
- {#if $connected && $signerAddress}
22
+ {#if $connected && $account}
22
23
  <span class="flex flex-row items-center gap-2 text-sm"
23
- ><CheckCircleOutline color="green" size="sm" />{truncateEthAddress($signerAddress)}</span
24
+ ><CheckCircleOutline color="green" size="sm" />{truncateEthAddress($account)}</span
24
25
  >
25
26
  {:else}
26
- <span>Connect Wallet</span>
27
+ <span>Connect</span>
27
28
  {/if}
28
29
  </Button>
@@ -5,7 +5,6 @@ declare const __propDef: {
5
5
  props: {
6
6
  appKitModal: Writable<AppKit>;
7
7
  connected: Writable<boolean>;
8
- signerAddress: Writable<string | null>;
9
8
  classes?: string;
10
9
  };
11
10
  events: {
@@ -0,0 +1 @@
1
+ export declare const LICENSE_URL = "https://raw.githubusercontent.com/rainlanguage/decentralicense/refs/heads/master/README.md";
package/dist/consts.js ADDED
@@ -0,0 +1 @@
1
+ export const LICENSE_URL = 'https://raw.githubusercontent.com/rainlanguage/decentralicense/refs/heads/master/README.md';
@@ -1,5 +1,6 @@
1
1
  export declare enum DeploymentStepsErrorCode {
2
- NO_GUI = "Error loading GUI",
2
+ NO_GUI_PROVIDER = "No GUI provider found.",
3
+ NO_GUI = "Error loading GUI.",
3
4
  NO_STRATEGY = "No valid strategy exists at this URL",
4
5
  NO_SELECT_TOKENS = "Error loading tokens",
5
6
  NO_TOKEN_INFO = "Error loading token information",
@@ -9,8 +10,10 @@ export declare enum DeploymentStepsErrorCode {
9
10
  NO_TOKEN_OUTPUTS = "Error loading token outputs",
10
11
  NO_GUI_DETAILS = "Error getting GUI details",
11
12
  NO_CHAIN = "Unsupported chain ID",
13
+ NO_NETWORK_KEY = "No network key found",
12
14
  SERIALIZE_ERROR = "Error serializing state",
13
- ADD_ORDER_FAILED = "Failed to add order"
15
+ ADD_ORDER_FAILED = "Failed to add order",
16
+ NO_WALLET = "No account address found"
14
17
  }
15
18
  export declare class DeploymentStepsError extends Error {
16
19
  code: DeploymentStepsErrorCode;
@@ -1,7 +1,8 @@
1
1
  import { writable } from 'svelte/store';
2
2
  export var DeploymentStepsErrorCode;
3
3
  (function (DeploymentStepsErrorCode) {
4
- DeploymentStepsErrorCode["NO_GUI"] = "Error loading GUI";
4
+ DeploymentStepsErrorCode["NO_GUI_PROVIDER"] = "No GUI provider found.";
5
+ DeploymentStepsErrorCode["NO_GUI"] = "Error loading GUI.";
5
6
  DeploymentStepsErrorCode["NO_STRATEGY"] = "No valid strategy exists at this URL";
6
7
  DeploymentStepsErrorCode["NO_SELECT_TOKENS"] = "Error loading tokens";
7
8
  DeploymentStepsErrorCode["NO_TOKEN_INFO"] = "Error loading token information";
@@ -11,8 +12,10 @@ export var DeploymentStepsErrorCode;
11
12
  DeploymentStepsErrorCode["NO_TOKEN_OUTPUTS"] = "Error loading token outputs";
12
13
  DeploymentStepsErrorCode["NO_GUI_DETAILS"] = "Error getting GUI details";
13
14
  DeploymentStepsErrorCode["NO_CHAIN"] = "Unsupported chain ID";
15
+ DeploymentStepsErrorCode["NO_NETWORK_KEY"] = "No network key found";
14
16
  DeploymentStepsErrorCode["SERIALIZE_ERROR"] = "Error serializing state";
15
17
  DeploymentStepsErrorCode["ADD_ORDER_FAILED"] = "Failed to add order";
18
+ DeploymentStepsErrorCode["NO_WALLET"] = "No account address found";
16
19
  })(DeploymentStepsErrorCode || (DeploymentStepsErrorCode = {}));
17
20
  export class DeploymentStepsError extends Error {
18
21
  code;
@@ -0,0 +1,3 @@
1
+ import { DotrainOrderGui } from '@rainlanguage/orderbook';
2
+ export declare const GUI_CONTEXT_KEY = "gui-context";
3
+ export declare function useGui(): DotrainOrderGui;
@@ -0,0 +1,11 @@
1
+ import { getContext } from 'svelte';
2
+ import { DotrainOrderGui } from '@rainlanguage/orderbook';
3
+ import { DeploymentStepsError, DeploymentStepsErrorCode } from '../errors/DeploymentStepsError';
4
+ export const GUI_CONTEXT_KEY = 'gui-context';
5
+ export function useGui() {
6
+ const gui = getContext(GUI_CONTEXT_KEY);
7
+ if (!gui) {
8
+ DeploymentStepsError.catch(null, DeploymentStepsErrorCode.NO_GUI_PROVIDER);
9
+ }
10
+ return gui;
11
+ }
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { default as DropdownCheckbox } from './components/dropdown/DropdownCheck
6
6
  export { default as DropdownOrderListAccounts } from './components/dropdown/DropdownOrderListAccounts.svelte';
7
7
  export { default as DropdownRadio } from './components/dropdown/DropdownRadio.svelte';
8
8
  export { default as Refresh } from './components/icon/Refresh.svelte';
9
- export { default as DropdownOrderStatus } from './components/dropdown/DropdownOrderStatus.svelte';
9
+ export { default as CheckboxActiveOrders } from './components/checkbox/CheckboxActiveOrders.svelte';
10
10
  export { default as InputOrderHash } from './components/input/InputOrderHash.svelte';
11
11
  export { default as CheckboxZeroBalanceVault } from './components/CheckboxZeroBalanceVault.svelte';
12
12
  export { default as ListViewOrderbookFilters } from './components/ListViewOrderbookFilters.svelte';
@@ -65,7 +65,7 @@ export { default as InvalidStrategiesSection } from './components/deployment/Inv
65
65
  export { default as ValidStrategiesSection } from './components/deployment/ValidStrategiesSection.svelte';
66
66
  export { default as InputRegistryUrl } from './components/input/InputRegistryUrl.svelte';
67
67
  export type { AppStoresInterface } from './types/appStores.ts';
68
- export type { ConfigSource, OrderbookConfigSource, OrderbookCfgRef } from '@rainlanguage/orderbook/js_api';
68
+ export type { ConfigSource, OrderbookConfigSource, OrderbookCfgRef } from '@rainlanguage/orderbook';
69
69
  export { TransactionStatus, TransactionErrorMessage, type TransactionState, type ExtendedApprovalCalldata } from './stores/transactionStore';
70
70
  export type { DeploymentArgs, DepositOrWithdrawArgs, OrderRemoveArgs } from './types/transaction';
71
71
  export type { DepositOrWithdrawModalProps, OrderRemoveModalProps, QuoteDebugModalHandler, DebugTradeModalHandler, DeployModalProps, DisclaimerModalProps } from './types/modal';
@@ -74,16 +74,22 @@ export { createResolvableQuery, createResolvableInfiniteQuery } from './__mocks_
74
74
  export { formatTimestampSecondsAsLocal, timestampSecondsToUTCTimestamp, promiseTimeout } from './utils/time';
75
75
  export { bigintStringToHex, HEX_INPUT_REGEX } from './utils/hex';
76
76
  export { vaultBalanceDisplay } from './utils/vault';
77
- export { prepareHistoricalOrderChartData } from './services/historicalOrderCharts';
78
77
  export { bigintToFloat } from './utils/number';
79
78
  export { getExplorerLink } from './services/getExplorerLink';
79
+ export { invalidateTanstackQueries } from './queries/queryClient';
80
80
  export { DEFAULT_PAGE_SIZE, DEFAULT_REFRESH_INTERVAL } from './queries/constants';
81
81
  export { QKEY_VAULTS, QKEY_VAULT, QKEY_VAULT_CHANGES, QKEY_ORDERS, QKEY_ORDER, QKEY_ORDER_TRADES_LIST, QKEY_ORDER_QUOTE, QKEY_VAULTS_VOL_LIST, QKEY_ORDER_APY } from './queries/keys';
82
82
  export { darkChartTheme, lightChartTheme } from './utils/lightweightChartsThemes';
83
83
  export { lightCodeMirrorTheme, darkCodeMirrorTheme } from './utils/codeMirrorThemes';
84
- export { mockConfigSource } from './__mocks__/settings';
85
- export { mockSettingsStore } from './__mocks__/settings';
86
84
  export { default as transactionStore } from './stores/transactionStore';
87
- export { mockTransactionStore } from './__mocks__/mockTransactionStore';
85
+ export { cachedWritableStore, cachedWritableIntOptional, cachedWritableStringOptional, cachedWritableString } from './storesGeneric/cachedWritableStore';
88
86
  export { default as logoLight } from './assets/logo-light.svg';
89
87
  export { default as logoDark } from './assets/logo-dark.svg';
88
+ export { default as GuiProvider } from './providers/GuiProvider.svelte';
89
+ export { default as WalletProvider } from './providers/wallet/WalletProvider.svelte';
90
+ export { useGui } from './hooks/useGui';
91
+ export { useAccount } from './providers/wallet/useAccount';
92
+ export { mockPageStore } from './__mocks__/stores';
93
+ export { mockConfigSource } from './__mocks__/settings';
94
+ export { mockSettingsStore } from './__mocks__/settings';
95
+ export { mockTransactionStore } from './__mocks__/mockTransactionStore';
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ export { default as DropdownCheckbox } from './components/dropdown/DropdownCheck
7
7
  export { default as DropdownOrderListAccounts } from './components/dropdown/DropdownOrderListAccounts.svelte';
8
8
  export { default as DropdownRadio } from './components/dropdown/DropdownRadio.svelte';
9
9
  export { default as Refresh } from './components/icon/Refresh.svelte';
10
- export { default as DropdownOrderStatus } from './components/dropdown/DropdownOrderStatus.svelte';
10
+ export { default as CheckboxActiveOrders } from './components/checkbox/CheckboxActiveOrders.svelte';
11
11
  export { default as InputOrderHash } from './components/input/InputOrderHash.svelte';
12
12
  export { default as CheckboxZeroBalanceVault } from './components/CheckboxZeroBalanceVault.svelte';
13
13
  export { default as ListViewOrderbookFilters } from './components/ListViewOrderbookFilters.svelte';
@@ -71,19 +71,28 @@ export { createResolvableQuery, createResolvableInfiniteQuery } from './__mocks_
71
71
  export { formatTimestampSecondsAsLocal, timestampSecondsToUTCTimestamp, promiseTimeout } from './utils/time';
72
72
  export { bigintStringToHex, HEX_INPUT_REGEX } from './utils/hex';
73
73
  export { vaultBalanceDisplay } from './utils/vault';
74
- export { prepareHistoricalOrderChartData } from './services/historicalOrderCharts';
75
74
  export { bigintToFloat } from './utils/number';
76
75
  export { getExplorerLink } from './services/getExplorerLink';
76
+ export { invalidateTanstackQueries } from './queries/queryClient';
77
77
  // Constants
78
78
  export { DEFAULT_PAGE_SIZE, DEFAULT_REFRESH_INTERVAL } from './queries/constants';
79
79
  export { QKEY_VAULTS, QKEY_VAULT, QKEY_VAULT_CHANGES, QKEY_ORDERS, QKEY_ORDER, QKEY_ORDER_TRADES_LIST, QKEY_ORDER_QUOTE, QKEY_VAULTS_VOL_LIST, QKEY_ORDER_APY } from './queries/keys';
80
80
  export { darkChartTheme, lightChartTheme } from './utils/lightweightChartsThemes';
81
81
  export { lightCodeMirrorTheme, darkCodeMirrorTheme } from './utils/codeMirrorThemes';
82
82
  // Stores
83
- export { mockConfigSource } from './__mocks__/settings';
84
- export { mockSettingsStore } from './__mocks__/settings';
85
83
  export { default as transactionStore } from './stores/transactionStore';
86
- export { mockTransactionStore } from './__mocks__/mockTransactionStore';
84
+ export { cachedWritableStore, cachedWritableIntOptional, cachedWritableStringOptional, cachedWritableString } from './storesGeneric/cachedWritableStore';
87
85
  // Assets
88
86
  export { default as logoLight } from './assets/logo-light.svg';
89
87
  export { default as logoDark } from './assets/logo-dark.svg';
88
+ // Providers
89
+ export { default as GuiProvider } from './providers/GuiProvider.svelte';
90
+ export { default as WalletProvider } from './providers/wallet/WalletProvider.svelte';
91
+ // Hooks
92
+ export { useGui } from './hooks/useGui';
93
+ export { useAccount } from './providers/wallet/useAccount';
94
+ // Mocks
95
+ export { mockPageStore } from './__mocks__/stores';
96
+ export { mockConfigSource } from './__mocks__/settings';
97
+ export { mockSettingsStore } from './__mocks__/settings';
98
+ export { mockTransactionStore } from './__mocks__/mockTransactionStore';
@@ -0,0 +1,8 @@
1
+ <script>import { setContext } from "svelte";
2
+ import { DotrainOrderGui } from "@rainlanguage/orderbook";
3
+ import { GUI_CONTEXT_KEY } from "../hooks/useGui";
4
+ export let gui;
5
+ setContext(GUI_CONTEXT_KEY, gui);
6
+ </script>
7
+
8
+ <slot />
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { DotrainOrderGui } from '@rainlanguage/orderbook';
3
+ declare const __propDef: {
4
+ props: {
5
+ gui: DotrainOrderGui;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {
11
+ default: {};
12
+ };
13
+ exports?: {} | undefined;
14
+ bindings?: string | undefined;
15
+ };
16
+ export type GuiProviderProps = typeof __propDef.props;
17
+ export type GuiProviderEvents = typeof __propDef.events;
18
+ export type GuiProviderSlots = typeof __propDef.slots;
19
+ export default class GuiProvider extends SvelteComponent<GuiProviderProps, GuiProviderEvents, GuiProviderSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,7 @@
1
+ <script>import { readable } from "svelte/store";
2
+ import { setAccountContext } from "./context";
3
+ export let account = readable(null);
4
+ setAccountContext(account);
5
+ </script>
6
+
7
+ <slot />
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { Account } from '../../types/account';
3
+ declare const __propDef: {
4
+ props: {
5
+ account?: Account;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {
11
+ default: {};
12
+ };
13
+ exports?: {} | undefined;
14
+ bindings?: string | undefined;
15
+ };
16
+ export type WalletProviderProps = typeof __propDef.props;
17
+ export type WalletProviderEvents = typeof __propDef.events;
18
+ export type WalletProviderSlots = typeof __propDef.slots;
19
+ export default class WalletProvider extends SvelteComponent<WalletProviderProps, WalletProviderEvents, WalletProviderSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { Account } from '../../types/account';
2
+ export declare const ACCOUNT_KEY = "account_key";
3
+ /**
4
+ * Retrieves the account store directly from Svelte's context
5
+ */
6
+ export declare const getAccountContext: () => Account;
7
+ /**
8
+ * Sets the account store in Svelte's context
9
+ */
10
+ export declare const setAccountContext: (account: Account) => void;