@rainlanguage/ui-components 0.0.1-alpha.13 → 0.0.1-alpha.131
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.
- package/dist/__fixtures__/orderDetail.d.ts +1 -1
- package/dist/__fixtures__/settings.yaml +183 -0
- package/dist/__mocks__/MockComponent.svelte +4 -0
- package/dist/__mocks__/MockComponent.svelte.d.ts +3 -1
- package/dist/__mocks__/settings.d.ts +7 -3
- package/dist/__mocks__/settings.js +68 -33
- package/dist/__mocks__/stores.d.ts +94 -27
- package/dist/__mocks__/stores.js +45 -22
- package/dist/components/ButtonLoading.svelte +1 -1
- package/dist/components/ButtonVaultLink.svelte +3 -3
- package/dist/components/ButtonVaultLink.svelte.d.ts +1 -1
- package/dist/components/CheckboxMyItemsOnly.svelte +3 -2
- package/dist/components/CheckboxMyItemsOnly.svelte.d.ts +2 -3
- package/dist/components/CheckboxZeroBalanceVault.svelte.d.ts +2 -2
- package/dist/components/CodeMirrorDotrain.svelte +4 -0
- package/dist/components/CodeMirrorDotrain.svelte.d.ts +1 -0
- package/dist/components/CodeMirrorRainlang.svelte +11 -3
- package/dist/components/CodeMirrorRainlang.svelte.d.ts +1 -1
- package/dist/components/EditableSpan.svelte +3 -14
- package/dist/components/EditableSpan.svelte.d.ts +0 -1
- package/dist/components/Hash.svelte +3 -3
- package/dist/components/License.svelte +5 -4
- package/dist/components/ListViewOrderbookFilters.svelte +16 -15
- package/dist/components/ListViewOrderbookFilters.svelte.d.ts +9 -13
- package/dist/components/OrderOrVaultHash.svelte +10 -7
- package/dist/components/OrderOrVaultHash.svelte.d.ts +1 -1
- package/dist/components/PageHeader.svelte +1 -1
- package/dist/components/TanstackAppTable.svelte +2 -3
- package/dist/components/TanstackAppTable.svelte.d.ts +1 -1
- package/dist/components/ToastDetail.svelte +42 -0
- package/dist/components/ToastDetail.svelte.d.ts +20 -0
- package/dist/components/Tooltip.svelte +8 -0
- package/dist/components/Tooltip.svelte.d.ts +21 -0
- package/dist/components/charts/OrderTradesChart.svelte +3 -2
- package/dist/components/charts/TanstackLightweightChartLine.svelte +5 -9
- package/dist/components/charts/VaultBalanceChart.svelte +6 -6
- package/dist/components/charts/VaultBalanceChart.svelte.d.ts +1 -1
- package/dist/components/charts/transformAndSortData.d.ts +24 -0
- package/dist/components/charts/transformAndSortData.js +111 -0
- package/dist/components/checkbox/CheckboxActiveOrders.svelte +11 -0
- package/dist/components/checkbox/CheckboxActiveOrders.svelte.d.ts +19 -0
- package/dist/components/deployment/ButtonSelectOption.svelte +2 -0
- package/dist/components/deployment/ButtonSelectOption.svelte.d.ts +1 -0
- package/dist/components/deployment/ComposedRainlangModal.svelte +7 -5
- package/dist/components/deployment/ComposedRainlangModal.svelte.d.ts +1 -4
- package/dist/components/deployment/DeploymentSectionHeader.svelte +7 -4
- package/dist/components/deployment/DeploymentSteps.svelte +169 -185
- package/dist/components/deployment/DeploymentSteps.svelte.d.ts +7 -13
- package/dist/components/deployment/DeploymentsSection.svelte +18 -14
- package/dist/components/deployment/DepositInput.svelte +32 -14
- package/dist/components/deployment/DepositInput.svelte.d.ts +1 -2
- package/dist/components/deployment/DisclaimerModal.svelte +1 -0
- package/dist/components/deployment/FieldDefinitionInput.svelte +22 -14
- package/dist/components/deployment/FieldDefinitionInput.svelte.d.ts +1 -2
- package/dist/components/deployment/SelectToken.svelte +16 -4
- package/dist/components/deployment/SelectToken.svelte.d.ts +1 -2
- package/dist/components/deployment/StrategyPage.svelte +6 -2
- package/dist/components/deployment/TokenIOInput.svelte +16 -5
- package/dist/components/deployment/TokenIOInput.svelte.d.ts +1 -2
- package/dist/components/detail/OrderDetail.svelte +60 -44
- package/dist/components/detail/OrderDetail.svelte.d.ts +11 -8
- package/dist/components/detail/TanstackOrderQuote.svelte +17 -7
- package/dist/components/detail/TanstackOrderQuote.svelte.d.ts +1 -1
- package/dist/components/detail/VaultDetail.svelte +43 -43
- package/dist/components/detail/VaultDetail.svelte.d.ts +11 -11
- package/dist/components/dropdown/DropdownActiveSubgraphs.svelte +2 -2
- package/dist/components/dropdown/DropdownActiveSubgraphs.svelte.d.ts +4 -4
- package/dist/components/dropdown/DropdownOrderListAccounts.svelte +2 -1
- package/dist/components/dropdown/DropdownOrderListAccounts.svelte.d.ts +3 -3
- package/dist/components/icon/Refresh.svelte +2 -1
- package/dist/components/icon/Refresh.svelte.d.ts +1 -0
- package/dist/components/input/InputOrderHash.svelte +1 -1
- package/dist/components/input/InputOrderHash.svelte.d.ts +2 -2
- package/dist/components/input/InputRegistryUrl.svelte +36 -14
- package/dist/components/input/InputToken.svelte +2 -2
- package/dist/components/input/InputTokenAmount.svelte +1 -1
- package/dist/components/tables/OrderAPY.svelte +4 -9
- package/dist/components/tables/OrderTradesListTable.svelte +7 -3
- package/dist/components/tables/OrderVaultsVolTable.svelte +11 -2
- package/dist/components/tables/OrdersListTable.svelte +27 -31
- package/dist/components/tables/OrdersListTable.svelte.d.ts +2 -8
- package/dist/components/tables/VaultBalanceChangesTable.svelte +8 -6
- package/dist/components/tables/VaultsListTable.svelte +53 -67
- package/dist/components/tables/VaultsListTable.svelte.d.ts +12 -20
- package/dist/components/transactions/FixedBottomTransaction.svelte +63 -0
- package/dist/components/transactions/FixedBottomTransaction.svelte.d.ts +16 -0
- package/dist/components/transactions/TransactionDetail.svelte +31 -0
- package/dist/components/transactions/TransactionDetail.svelte.d.ts +20 -0
- package/dist/components/transactions/TransactionList.svelte +17 -0
- package/dist/components/transactions/TransactionList.svelte.d.ts +16 -0
- package/dist/components/transactions/getStatusEmoji.d.ts +2 -0
- package/dist/components/transactions/getStatusEmoji.js +20 -0
- package/dist/components/wallet/WalletConnect.svelte +5 -4
- package/dist/components/wallet/WalletConnect.svelte.d.ts +0 -1
- package/dist/consts.d.ts +1 -0
- package/dist/consts.js +1 -0
- package/dist/errors/DeploymentStepsError.d.ts +6 -2
- package/dist/errors/DeploymentStepsError.js +5 -1
- package/dist/hooks/useGui.d.ts +3 -0
- package/dist/hooks/useGui.js +11 -0
- package/dist/index.d.ts +27 -11
- package/dist/index.js +28 -8
- package/dist/models/Transaction.d.ts +80 -0
- package/dist/models/Transaction.js +134 -0
- package/dist/providers/GuiProvider.svelte +8 -0
- package/dist/providers/GuiProvider.svelte.d.ts +21 -0
- package/dist/providers/registry/RegistryManager.d.ts +65 -0
- package/dist/providers/registry/RegistryManager.js +133 -0
- package/dist/providers/registry/RegistryProvider.svelte +6 -0
- package/dist/providers/registry/RegistryProvider.svelte.d.ts +21 -0
- package/dist/providers/registry/context.d.ts +10 -0
- package/dist/providers/registry/context.js +46 -0
- package/dist/providers/registry/useRegistry.d.ts +7 -0
- package/dist/providers/registry/useRegistry.js +29 -0
- package/dist/providers/toasts/ToastProvider.svelte +17 -0
- package/dist/providers/toasts/ToastProvider.svelte.d.ts +18 -0
- package/dist/providers/toasts/context.d.ts +14 -0
- package/dist/providers/toasts/context.js +22 -0
- package/dist/providers/toasts/useToasts.d.ts +16 -0
- package/dist/providers/toasts/useToasts.js +63 -0
- package/dist/providers/transactions/TransactionManager.d.ts +183 -0
- package/dist/providers/transactions/TransactionManager.js +353 -0
- package/dist/providers/transactions/TransactionProvider.svelte +11 -0
- package/dist/providers/transactions/TransactionProvider.svelte.d.ts +24 -0
- package/dist/providers/transactions/context.d.ts +19 -0
- package/dist/providers/transactions/context.js +28 -0
- package/dist/providers/transactions/useTransactions.d.ts +13 -0
- package/dist/providers/transactions/useTransactions.js +18 -0
- package/dist/providers/wallet/WalletProvider.svelte +7 -0
- package/dist/providers/wallet/WalletProvider.svelte.d.ts +21 -0
- package/dist/providers/wallet/context.d.ts +10 -0
- package/dist/providers/wallet/context.js +47 -0
- package/dist/providers/wallet/useAccount.d.ts +8 -0
- package/dist/providers/wallet/useAccount.js +148 -0
- package/dist/queries/queryClient.d.ts +1 -1
- package/dist/queries/queryClient.js +11 -6
- package/dist/services/awaitTransactionIndexing.d.ts +100 -0
- package/dist/services/awaitTransactionIndexing.js +57 -0
- package/dist/services/handleShareChoices.d.ts +2 -2
- package/dist/services/handleShareChoices.js +7 -2
- package/dist/services/historicalOrderCharts.d.ts +1 -1
- package/dist/services/historicalOrderCharts.js +1 -1
- package/dist/services/index.d.ts +2 -1
- package/dist/services/index.js +2 -1
- package/dist/services/loadRegistryUrl.d.ts +2 -0
- package/dist/services/loadRegistryUrl.js +19 -0
- package/dist/services/registry.d.ts +6 -0
- package/dist/services/registry.js +33 -77
- package/dist/services/time.d.ts +12 -0
- package/dist/services/time.js +88 -6
- package/dist/storesGeneric/cachedWritableStore.d.ts +57 -0
- package/dist/storesGeneric/cachedWritableStore.js +93 -0
- package/dist/types/account.d.ts +3 -0
- package/dist/types/account.js +1 -0
- package/dist/types/appStores.d.ts +10 -9
- package/dist/types/modal.d.ts +24 -12
- package/dist/types/strategy.d.ts +1 -1
- package/dist/types/toast.d.ts +11 -0
- package/dist/types/toast.js +1 -0
- package/dist/types/transaction.d.ts +54 -15
- package/dist/types/transaction.js +29 -1
- package/dist/utils/configHelpers.d.ts +8 -0
- package/dist/utils/configHelpers.js +38 -0
- package/dist/utils/constructHashLink.d.ts +23 -0
- package/dist/utils/constructHashLink.js +110 -0
- package/dist/utils/vault.d.ts +1 -1
- package/package.json +34 -34
- package/dist/__fixtures__/settings-12-11-24.json +0 -160
- package/dist/__mocks__/mockTransactionStore.d.ts +0 -22
- package/dist/__mocks__/mockTransactionStore.js +0 -56
- package/dist/components/deployment/DepositsSection.svelte +0 -8
- package/dist/components/deployment/DepositsSection.svelte.d.ts +0 -20
- package/dist/components/deployment/FieldDefinitionsSection.svelte +0 -9
- package/dist/components/deployment/FieldDefinitionsSection.svelte.d.ts +0 -20
- package/dist/components/deployment/SelectTokensSection.svelte +0 -17
- package/dist/components/deployment/SelectTokensSection.svelte.d.ts +0 -21
- package/dist/components/deployment/TokenIOSection.svelte +0 -17
- package/dist/components/deployment/TokenIOSection.svelte.d.ts +0 -21
- package/dist/components/deployment/getDeploymentTransactionArgs.d.ts +0 -17
- package/dist/components/deployment/getDeploymentTransactionArgs.js +0 -24
- package/dist/components/detail/DepositOrWithdrawButtons.svelte +0 -44
- package/dist/components/detail/DepositOrWithdrawButtons.svelte.d.ts +0 -26
- package/dist/components/dropdown/DropdownOrderStatus.svelte +0 -31
- package/dist/components/dropdown/DropdownOrderStatus.svelte.d.ts +0 -19
- package/dist/stores/transactionStore.d.ts +0 -98
- package/dist/stores/transactionStore.js +0 -303
- package/dist/utils/time.d.ts +0 -12
- package/dist/utils/time.js +0 -27
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<script generics="T">import {
|
|
1
|
+
<script generics="T">import { useToasts } from "../../providers/toasts/useToasts";
|
|
2
|
+
import { invalidateTanstackQueries } from "../../queries/queryClient";
|
|
2
3
|
import Refresh from "../icon/Refresh.svelte";
|
|
3
4
|
import EditableSpan from "../EditableSpan.svelte";
|
|
4
|
-
import { getOrderQuote } from "@rainlanguage/orderbook
|
|
5
|
+
import { getOrderQuote } from "@rainlanguage/orderbook";
|
|
5
6
|
import { QKEY_ORDER_QUOTE } from "../../queries/keys";
|
|
6
7
|
import { formatUnits, hexToNumber, isHex } from "viem";
|
|
7
8
|
import { createQuery, useQueryClient } from "@tanstack/svelte-query";
|
|
@@ -11,10 +12,10 @@ import {
|
|
|
11
12
|
TableBodyCell,
|
|
12
13
|
TableBodyRow,
|
|
13
14
|
TableHead,
|
|
14
|
-
TableHeadCell
|
|
15
|
-
Tooltip
|
|
15
|
+
TableHeadCell
|
|
16
16
|
} from "flowbite-svelte";
|
|
17
17
|
import { BugOutline, PauseSolid, PlaySolid } from "flowbite-svelte-icons";
|
|
18
|
+
import Tooltip from "../Tooltip.svelte";
|
|
18
19
|
export let id;
|
|
19
20
|
export let order;
|
|
20
21
|
export let rpcUrl;
|
|
@@ -22,12 +23,21 @@ export let orderbookAddress;
|
|
|
22
23
|
export let handleQuoteDebugModal = void 0;
|
|
23
24
|
let enabled = true;
|
|
24
25
|
const queryClient = useQueryClient();
|
|
26
|
+
const { errToast } = useToasts();
|
|
25
27
|
const refreshQuotes = async () => {
|
|
26
|
-
|
|
28
|
+
try {
|
|
29
|
+
await invalidateTanstackQueries(queryClient, [id, QKEY_ORDER_QUOTE + id]);
|
|
30
|
+
} catch {
|
|
31
|
+
errToast("Failed to refresh");
|
|
32
|
+
}
|
|
27
33
|
};
|
|
28
34
|
$: orderQuoteQuery = createQuery({
|
|
29
35
|
queryKey: [id, QKEY_ORDER_QUOTE + id],
|
|
30
|
-
queryFn: () =>
|
|
36
|
+
queryFn: async () => {
|
|
37
|
+
const result = await getOrderQuote([order], rpcUrl);
|
|
38
|
+
if (result.error) throw new Error(result.error.msg);
|
|
39
|
+
return result.value;
|
|
40
|
+
},
|
|
31
41
|
enabled: !!id && enabled
|
|
32
42
|
});
|
|
33
43
|
let blockNumber;
|
|
@@ -36,7 +46,7 @@ $: orderModalArg = order;
|
|
|
36
46
|
|
|
37
47
|
<div class="mt-4">
|
|
38
48
|
<div class="mb-4 flex items-center justify-between">
|
|
39
|
-
<h2 class="text-lg font-semibold">Order
|
|
49
|
+
<h2 class="text-lg font-semibold">Order quotes</h2>
|
|
40
50
|
<div class="flex items-center gap-x-1">
|
|
41
51
|
{#if $orderQuoteQuery.data && $orderQuoteQuery.data.length > 0 && isHex($orderQuoteQuery.data[0].blockNumber)}
|
|
42
52
|
<EditableSpan
|
|
@@ -1,41 +1,40 @@
|
|
|
1
|
-
<script>import {
|
|
2
|
-
import { bigintStringToHex } from "../../utils/hex";
|
|
1
|
+
<script>import { bigintStringToHex } from "../../utils/hex";
|
|
3
2
|
import Hash, { HashType } from "../Hash.svelte";
|
|
4
3
|
import VaultBalanceChangesTable from "../tables/VaultBalanceChangesTable.svelte";
|
|
5
4
|
import VaultBalanceChart from "../charts/VaultBalanceChart.svelte";
|
|
6
5
|
import TanstackPageContentDetail from "./TanstackPageContentDetail.svelte";
|
|
7
6
|
import CardProperty from "../CardProperty.svelte";
|
|
8
7
|
import { QKEY_VAULT } from "../../queries/keys";
|
|
9
|
-
import { getVault } from "@rainlanguage/orderbook
|
|
8
|
+
import { getVault } from "@rainlanguage/orderbook";
|
|
10
9
|
import { formatUnits } from "viem";
|
|
11
10
|
import { createQuery } from "@tanstack/svelte-query";
|
|
12
11
|
import { onDestroy } from "svelte";
|
|
13
12
|
import { useQueryClient } from "@tanstack/svelte-query";
|
|
14
|
-
import { ArrowDownOutline, ArrowUpOutline } from "flowbite-svelte-icons";
|
|
15
13
|
import OrderOrVaultHash from "../OrderOrVaultHash.svelte";
|
|
16
|
-
import DepositOrWithdrawButtons from "./DepositOrWithdrawButtons.svelte";
|
|
17
14
|
import Refresh from "../icon/Refresh.svelte";
|
|
18
|
-
import {
|
|
19
|
-
|
|
15
|
+
import { invalidateTanstackQueries } from "../../queries/queryClient";
|
|
16
|
+
import { useAccount } from "../../providers/wallet/useAccount";
|
|
17
|
+
import { Button } from "flowbite-svelte";
|
|
18
|
+
import { ArrowDownToBracketOutline, ArrowUpFromBracketOutline } from "flowbite-svelte-icons";
|
|
19
|
+
import { useToasts } from "../../providers/toasts/useToasts";
|
|
20
20
|
export let id;
|
|
21
21
|
export let network;
|
|
22
|
-
export let walletAddressMatchesOrBlank = void 0;
|
|
23
|
-
export let handleDepositModal = void 0;
|
|
24
|
-
export let handleWithdrawModal = void 0;
|
|
25
22
|
export let lightweightChartsTheme = void 0;
|
|
26
23
|
export let activeNetworkRef;
|
|
27
24
|
export let activeOrderbookRef;
|
|
28
25
|
export let settings;
|
|
29
|
-
export let
|
|
30
|
-
export let
|
|
31
|
-
const subgraphUrl = $settings
|
|
32
|
-
const chainId = $settings?.networks?.[network]?.["chain-id"] || 0;
|
|
33
|
-
const rpcUrl = $settings?.networks?.[network]?.["rpc"] || "";
|
|
26
|
+
export let onDeposit;
|
|
27
|
+
export let onWithdraw;
|
|
28
|
+
const subgraphUrl = $settings.orderbook.subgraphs[network].url || "";
|
|
34
29
|
const queryClient = useQueryClient();
|
|
30
|
+
const { matchesAccount } = useAccount();
|
|
31
|
+
const { errToast } = useToasts();
|
|
35
32
|
$: vaultDetailQuery = createQuery({
|
|
36
33
|
queryKey: [id, QKEY_VAULT + id],
|
|
37
|
-
queryFn: () => {
|
|
38
|
-
|
|
34
|
+
queryFn: async () => {
|
|
35
|
+
const result = await getVault(subgraphUrl || "", id);
|
|
36
|
+
if (result.error) throw new Error(result.error.msg);
|
|
37
|
+
return result.value;
|
|
39
38
|
},
|
|
40
39
|
enabled: !!subgraphUrl
|
|
41
40
|
});
|
|
@@ -44,15 +43,18 @@ const updateActiveNetworkAndOrderbook = (subgraphName) => {
|
|
|
44
43
|
activeOrderbookRef.set(subgraphName);
|
|
45
44
|
};
|
|
46
45
|
const interval = setInterval(async () => {
|
|
47
|
-
|
|
48
|
-
queryKey: [id],
|
|
49
|
-
refetchType: "active",
|
|
50
|
-
exact: false
|
|
51
|
-
});
|
|
46
|
+
invalidateTanstackQueries(queryClient, [id, QKEY_VAULT + id]);
|
|
52
47
|
}, 5e3);
|
|
53
48
|
onDestroy(() => {
|
|
54
49
|
clearInterval(interval);
|
|
55
50
|
});
|
|
51
|
+
const handleRefresh = async () => {
|
|
52
|
+
try {
|
|
53
|
+
await invalidateTanstackQueries(queryClient, [id, QKEY_VAULT + id]);
|
|
54
|
+
} catch {
|
|
55
|
+
errToast("Failed to refresh");
|
|
56
|
+
}
|
|
57
|
+
};
|
|
56
58
|
</script>
|
|
57
59
|
|
|
58
60
|
<TanstackPageContentDetail query={vaultDetailQuery} emptyMessage="Vault not found">
|
|
@@ -64,32 +66,30 @@ onDestroy(() => {
|
|
|
64
66
|
{data.token.name}
|
|
65
67
|
</div>
|
|
66
68
|
<div class="flex items-center gap-2">
|
|
67
|
-
{#if
|
|
68
|
-
<DepositOrWithdrawButtons
|
|
69
|
-
vault={data}
|
|
70
|
-
{chainId}
|
|
71
|
-
{rpcUrl}
|
|
72
|
-
query={vaultDetailQuery}
|
|
73
|
-
{handleDepositOrWithdrawModal}
|
|
74
|
-
{subgraphUrl}
|
|
75
|
-
/>
|
|
76
|
-
{:else if handleDepositModal && handleWithdrawModal && $walletAddressMatchesOrBlank?.(data.owner)}
|
|
69
|
+
{#if matchesAccount(data.owner)}
|
|
77
70
|
<Button
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
71
|
+
color="light"
|
|
72
|
+
size="xs"
|
|
73
|
+
data-testid="deposit-button"
|
|
74
|
+
aria-label="Deposit to vault"
|
|
75
|
+
on:click={() => onDeposit(data)}
|
|
82
76
|
>
|
|
77
|
+
<ArrowDownToBracketOutline size="xs" />
|
|
78
|
+
</Button>
|
|
83
79
|
<Button
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
color="light"
|
|
81
|
+
size="xs"
|
|
82
|
+
data-testid="withdraw-button"
|
|
83
|
+
aria-label="Withdraw from vault"
|
|
84
|
+
on:click={() => onWithdraw(data)}
|
|
88
85
|
>
|
|
86
|
+
<ArrowUpFromBracketOutline size="xs" />
|
|
87
|
+
</Button>
|
|
89
88
|
{/if}
|
|
90
89
|
|
|
91
90
|
<Refresh
|
|
92
|
-
|
|
91
|
+
testId="top-refresh"
|
|
92
|
+
on:click={handleRefresh}
|
|
93
93
|
spin={$vaultDetailQuery.isLoading || $vaultDetailQuery.isFetching}
|
|
94
94
|
/>
|
|
95
95
|
</div>
|
|
@@ -108,7 +108,7 @@ onDestroy(() => {
|
|
|
108
108
|
</CardProperty>
|
|
109
109
|
|
|
110
110
|
<CardProperty data-testid="vaultDetailOwnerAddress">
|
|
111
|
-
<svelte:fragment slot="key">Owner
|
|
111
|
+
<svelte:fragment slot="key">Owner address</svelte:fragment>
|
|
112
112
|
<svelte:fragment slot="value">
|
|
113
113
|
<Hash type={HashType.Wallet} value={data.owner} />
|
|
114
114
|
</svelte:fragment>
|
|
@@ -152,7 +152,7 @@ onDestroy(() => {
|
|
|
152
152
|
<CardProperty>
|
|
153
153
|
<svelte:fragment slot="key">Orders as output</svelte:fragment>
|
|
154
154
|
<svelte:fragment slot="value">
|
|
155
|
-
<p data-testid="
|
|
155
|
+
<p data-testid="vaultDetailOrdersAsOutput" class="flex flex-wrap justify-start">
|
|
156
156
|
{#if data.ordersAsOutput && data.ordersAsOutput.length > 0}
|
|
157
157
|
{#each data.ordersAsOutput as order}
|
|
158
158
|
<OrderOrVaultHash
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type SgVault } from '@rainlanguage/orderbook';
|
|
2
3
|
import type { ChartTheme } from '../../utils/lightweightChartsThemes';
|
|
3
|
-
import type { Readable
|
|
4
|
-
import type { SgVault } from '@rainlanguage/orderbook/js_api';
|
|
4
|
+
import type { Readable } from 'svelte/store';
|
|
5
5
|
import type { AppStoresInterface } from '../../types/appStores';
|
|
6
|
-
import type { Config } from 'wagmi';
|
|
7
|
-
import type { DepositOrWithdrawModalProps } from '../../types/modal';
|
|
8
6
|
declare const __propDef: {
|
|
9
7
|
props: {
|
|
10
|
-
handleDepositOrWithdrawModal?: ((args: DepositOrWithdrawModalProps) => void) | undefined;
|
|
11
8
|
id: string;
|
|
12
9
|
network: string;
|
|
13
|
-
walletAddressMatchesOrBlank?: Readable<(otherAddress: string) => boolean> | undefined;
|
|
14
|
-
handleDepositModal?: ((vault: SgVault, onDeposit: () => void) => void) | undefined;
|
|
15
|
-
handleWithdrawModal?: ((vault: SgVault, onWithdraw: () => void) => void) | undefined;
|
|
16
10
|
lightweightChartsTheme?: Readable<ChartTheme> | undefined;
|
|
17
11
|
activeNetworkRef: AppStoresInterface["activeNetworkRef"];
|
|
18
12
|
activeOrderbookRef: AppStoresInterface["activeOrderbookRef"];
|
|
19
|
-
settings:
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
settings: AppStoresInterface["settings"];
|
|
14
|
+
/**
|
|
15
|
+
* Required callback function when deposit action is triggered for a vault
|
|
16
|
+
* @param vault The vault to deposit into
|
|
17
|
+
*/ onDeposit: (vault: SgVault) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Required callback function when withdraw action is triggered for a vault
|
|
20
|
+
* @param vault The vault to withdraw from
|
|
21
|
+
*/ onWithdraw: (vault: SgVault) => void;
|
|
22
22
|
};
|
|
23
23
|
events: {
|
|
24
24
|
[evt: string]: CustomEvent<any>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script>import DropdownCheckbox from "./DropdownCheckbox.svelte";
|
|
2
2
|
export let settings;
|
|
3
3
|
export let activeSubgraphs;
|
|
4
|
-
$: dropdownOptions = Object.keys(settings
|
|
4
|
+
$: dropdownOptions = Object.keys(settings.orderbook.subgraphs ?? {}).reduce(
|
|
5
5
|
(acc, key) => ({
|
|
6
6
|
...acc,
|
|
7
7
|
[key]: key
|
|
@@ -12,7 +12,7 @@ function handleStatusChange(event) {
|
|
|
12
12
|
let items = Object.keys(event.detail);
|
|
13
13
|
activeSubgraphs.set(
|
|
14
14
|
Object.values(items).reduce(
|
|
15
|
-
(acc, key) => ({ ...acc, [key]: (settings
|
|
15
|
+
(acc, key) => ({ ...acc, [key]: (settings.orderbook.subgraphs ?? {})[key] }),
|
|
16
16
|
{}
|
|
17
17
|
)
|
|
18
18
|
);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { NewConfig } from '@rainlanguage/orderbook';
|
|
3
|
+
import type { AppStoresInterface } from '../../types/appStores';
|
|
4
4
|
declare const __propDef: {
|
|
5
5
|
props: {
|
|
6
|
-
settings:
|
|
7
|
-
activeSubgraphs:
|
|
6
|
+
settings: NewConfig;
|
|
7
|
+
activeSubgraphs: AppStoresInterface["activeSubgraphs"];
|
|
8
8
|
};
|
|
9
9
|
events: {
|
|
10
10
|
[evt: string]: CustomEvent<any>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script>import DropdownCheckbox from "./DropdownCheckbox.svelte";
|
|
2
|
+
import { getAccountsAsOptions } from "../../utils/configHelpers";
|
|
2
3
|
export let accounts;
|
|
3
4
|
export let activeAccountsItems;
|
|
4
|
-
$: options = $accounts;
|
|
5
|
+
$: options = getAccountsAsOptions($accounts);
|
|
5
6
|
</script>
|
|
6
7
|
|
|
7
8
|
<div data-testid="accounts-dropdown">
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AppStoresInterface } from '../../types/appStores';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
accounts:
|
|
6
|
-
activeAccountsItems:
|
|
5
|
+
accounts: AppStoresInterface["accounts"];
|
|
6
|
+
activeAccountsItems: AppStoresInterface["activeAccountsItems"];
|
|
7
7
|
};
|
|
8
8
|
events: {
|
|
9
9
|
[evt: string]: CustomEvent<any>;
|
|
@@ -12,10 +12,11 @@ export let size = ctx.size || "md";
|
|
|
12
12
|
export let role = ctx.role || "img";
|
|
13
13
|
export let ariaLabel = "refresh";
|
|
14
14
|
export let spin = false;
|
|
15
|
+
export let testId = "refresh-button";
|
|
15
16
|
</script>
|
|
16
17
|
|
|
17
18
|
<svg
|
|
18
|
-
data-testid=
|
|
19
|
+
data-testid={testId}
|
|
19
20
|
xmlns="http://www.w3.org/2000/svg"
|
|
20
21
|
fill="none"
|
|
21
22
|
{...$$restProps}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AppStoresInterface } from '../../types/appStores';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
orderHash:
|
|
5
|
+
orderHash: AppStoresInterface["orderHash"];
|
|
6
6
|
value?: string;
|
|
7
7
|
};
|
|
8
8
|
events: {
|
|
@@ -1,18 +1,40 @@
|
|
|
1
1
|
<script>import { Button, Input } from "flowbite-svelte";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { useRegistry } from "../../providers/registry/useRegistry";
|
|
3
|
+
import { loadRegistryUrl } from "../../services/loadRegistryUrl";
|
|
4
|
+
const registry = useRegistry();
|
|
5
|
+
let newRegistryUrl = registry.getCurrentRegistry();
|
|
6
|
+
let error = null;
|
|
7
|
+
let loading = false;
|
|
8
|
+
async function handleClick() {
|
|
9
|
+
loading = true;
|
|
10
|
+
error = null;
|
|
11
|
+
try {
|
|
12
|
+
if (!registry) {
|
|
13
|
+
throw new Error("Registry manager not yet available.");
|
|
14
|
+
}
|
|
15
|
+
await loadRegistryUrl(newRegistryUrl, registry);
|
|
16
|
+
} catch (err) {
|
|
17
|
+
error = err instanceof Error ? err.message : "Unknown error";
|
|
18
|
+
}
|
|
19
|
+
loading = false;
|
|
20
|
+
}
|
|
8
21
|
</script>
|
|
9
22
|
|
|
10
|
-
<div class="
|
|
11
|
-
<
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
23
|
+
<div class="flex w-full flex-col items-end gap-2">
|
|
24
|
+
<div class="flex w-full items-start gap-4" data-testid="registry-input">
|
|
25
|
+
<Input
|
|
26
|
+
id="strategy-url"
|
|
27
|
+
type="url"
|
|
28
|
+
placeholder="Enter URL to raw strategy registry file"
|
|
29
|
+
bind:value={newRegistryUrl}
|
|
30
|
+
/>
|
|
31
|
+
<Button class="w-36 text-nowrap" on:click={handleClick} disabled={loading}>
|
|
32
|
+
{loading ? 'Loading registry...' : 'Load registry URL'}
|
|
33
|
+
</Button>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="h-4">
|
|
36
|
+
{#if error}
|
|
37
|
+
<p data-testid="registry-error" class="text-red-500">{error}</p>
|
|
38
|
+
{/if}
|
|
39
|
+
</div>
|
|
18
40
|
</div>
|
|
@@ -35,10 +35,10 @@ function decimalsComplete({ detail }) {
|
|
|
35
35
|
</div>
|
|
36
36
|
|
|
37
37
|
{#if !isAddressValid && address.length > 0}
|
|
38
|
-
<Helper class="mt-2 text-sm" color="red">Invalid
|
|
38
|
+
<Helper class="mt-2 text-sm" color="red">Invalid address</Helper>
|
|
39
39
|
{/if}
|
|
40
40
|
|
|
41
|
-
<Helper class="mt-2 text-sm">Token
|
|
41
|
+
<Helper class="mt-2 text-sm">Token address</Helper>
|
|
42
42
|
</div>
|
|
43
43
|
<div class="w-32 grow-0 break-all" data-testid="token-decimals-input">
|
|
44
44
|
<input
|
|
@@ -39,7 +39,7 @@ function fillMaxValue() {
|
|
|
39
39
|
/>
|
|
40
40
|
|
|
41
41
|
{#if maxValue}
|
|
42
|
-
<div class="absolute right-
|
|
42
|
+
<div class="absolute right-2 flex h-10 flex-col justify-center">
|
|
43
43
|
<Button color="blue" class="px-2 py-1" size="xs" pill on:click={fillMaxValue}>MAX</Button>
|
|
44
44
|
</div>
|
|
45
45
|
{/if}
|
|
@@ -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_APY } from "../../queries/keys";
|
|
4
|
-
import { getOrderPerformance } from "@rainlanguage/orderbook
|
|
4
|
+
import { getOrderPerformance } from "@rainlanguage/orderbook";
|
|
5
5
|
import { TableBodyCell, TableHeadCell } from "flowbite-svelte";
|
|
6
6
|
import ApyTimeFilters from "../charts/APYTimeFilters.svelte";
|
|
7
7
|
import { bigintStringToPercentage } from "../../utils/number";
|
|
@@ -14,14 +14,9 @@ $: queryEndTime = endTimestamp ? BigInt(endTimestamp) : void 0;
|
|
|
14
14
|
$: orderPerformance = createInfiniteQuery({
|
|
15
15
|
queryKey: [id, QKEY_ORDER_APY + id],
|
|
16
16
|
queryFn: async () => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
id,
|
|
21
|
-
queryStartTime,
|
|
22
|
-
queryEndTime
|
|
23
|
-
)
|
|
24
|
-
];
|
|
17
|
+
const result = await getOrderPerformance(subgraphUrl || "", id, queryStartTime, queryEndTime);
|
|
18
|
+
if (result.error) throw new Error(result.error.msg);
|
|
19
|
+
return [result.value];
|
|
25
20
|
},
|
|
26
21
|
initialPageParam: 0,
|
|
27
22
|
getNextPageParam: () => void 0,
|
|
@@ -1,10 +1,10 @@
|
|
|
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
|
|
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
|
-
import { formatTimestampSecondsAsLocal } from "../../
|
|
7
|
+
import { formatTimestampSecondsAsLocal } from "../../services/time";
|
|
8
8
|
import Hash, { HashType } from "../Hash.svelte";
|
|
9
9
|
import { formatUnits } from "viem";
|
|
10
10
|
import { BugOutline } from "flowbite-svelte-icons";
|
|
@@ -20,7 +20,7 @@ $: orderTradesQuery = createInfiniteQuery({
|
|
|
20
20
|
queryKey: [id, QKEY_ORDER_TRADES_LIST + id],
|
|
21
21
|
queryFn: async ({ pageParam }) => {
|
|
22
22
|
tradesCount = void 0;
|
|
23
|
-
const [
|
|
23
|
+
const [countResult, tradesResult] = await Promise.all([
|
|
24
24
|
getOrderTradesCount(
|
|
25
25
|
subgraphUrl || "",
|
|
26
26
|
id,
|
|
@@ -35,6 +35,10 @@ $: orderTradesQuery = createInfiniteQuery({
|
|
|
35
35
|
endTimestamp ? BigInt(endTimestamp) : void 0
|
|
36
36
|
)
|
|
37
37
|
]);
|
|
38
|
+
if (countResult.error) throw new Error(countResult.error.msg);
|
|
39
|
+
if (tradesResult.error) throw new Error(tradesResult.error.msg);
|
|
40
|
+
const count = countResult.value;
|
|
41
|
+
const trades = tradesResult.value;
|
|
38
42
|
if (typeof count === "number") {
|
|
39
43
|
tradesCount = count;
|
|
40
44
|
}
|
|
@@ -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
|
|
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";
|
|
@@ -15,7 +15,16 @@ $: queryStartTime = startTimestamp ? BigInt(startTimestamp) : void 0;
|
|
|
15
15
|
$: queryEndTime = endTimestamp ? BigInt(endTimestamp) : void 0;
|
|
16
16
|
$: vaultsVol = createInfiniteQuery({
|
|
17
17
|
queryKey: [id, QKEY_VAULTS_VOL_LIST + id],
|
|
18
|
-
queryFn: () =>
|
|
18
|
+
queryFn: async () => {
|
|
19
|
+
const result = await getOrderVaultsVolume(
|
|
20
|
+
subgraphUrl || "",
|
|
21
|
+
id,
|
|
22
|
+
queryStartTime,
|
|
23
|
+
queryEndTime
|
|
24
|
+
);
|
|
25
|
+
if (result.error) throw new Error(result.error.msg);
|
|
26
|
+
return result.value;
|
|
27
|
+
},
|
|
19
28
|
initialPageParam: 0,
|
|
20
29
|
getNextPageParam: () => void 0,
|
|
21
30
|
enabled: !!subgraphUrl
|