diff --git a/frontend/src/lib/components/forms/createMarket.svelte b/frontend/src/lib/components/forms/createMarket.svelte index cee9bc61..0d23a5d1 100644 --- a/frontend/src/lib/components/forms/createMarket.svelte +++ b/frontend/src/lib/components/forms/createMarket.svelte @@ -7,13 +7,17 @@ import { Input } from '$lib/components/ui/input'; import { Textarea } from '$lib/components/ui/textarea'; import { Checkbox } from '$lib/components/ui/checkbox'; - import { roundToTenth } from '$lib/components/marketDataUtils'; + import { roundToTenth, roundToHundredth } from '$lib/components/marketDataUtils'; import { websocket_api } from 'schema-js'; import { protoSuperForm } from './protoSuperForm'; import type { Snippet } from 'svelte'; import X from '@lucide/svelte/icons/x'; import Plus from '@lucide/svelte/icons/plus'; + const isSudo = $derived(serverState.isAdmin && serverState.sudoEnabled); + const settlementStep = $derived(isSudo ? '0.01' : '0.1'); + const roundSettlement = $derived(isSudo ? roundToHundredth : roundToTenth); + interface Props { children: Snippet; onclick?: () => void; @@ -221,10 +225,10 @@ {...props} type="number" max="1000000000000" - step="0.1" + step={settlementStep} bind:value={$formData.minSettlement} onblur={() => { - $formData.minSettlement = roundToTenth( + $formData.minSettlement = roundSettlement( $formData.minSettlement as unknown as number ); }} @@ -241,10 +245,10 @@ {...props} type="number" max="1000000000000" - step="0.1" + step={settlementStep} bind:value={$formData.maxSettlement} onblur={() => { - $formData.maxSettlement = roundToTenth( + $formData.maxSettlement = roundSettlement( $formData.maxSettlement as unknown as number ); }} diff --git a/frontend/src/lib/components/forms/makeTransfer.svelte b/frontend/src/lib/components/forms/makeTransfer.svelte index 230955a4..902281a1 100644 --- a/frontend/src/lib/components/forms/makeTransfer.svelte +++ b/frontend/src/lib/components/forms/makeTransfer.svelte @@ -9,7 +9,7 @@ import { Input } from '$lib/components/ui/input'; import * as Popover from '$lib/components/ui/popover'; import * as Tooltip from '$lib/components/ui/tooltip'; - import { roundToTenth } from '$lib/components/marketDataUtils'; + import { roundToTenth, roundToTenThousandth } from '$lib/components/marketDataUtils'; import { cn, formatNumber } from '$lib/utils'; import ChevronsUpDown from '@lucide/svelte/icons/chevrons-up-down'; import { websocket_api } from 'schema-js'; @@ -17,6 +17,10 @@ import type { Snippet } from 'svelte'; import { protoSuperForm } from './protoSuperForm'; + const isSudo = $derived(serverState.isAdmin && serverState.sudoEnabled); + const transferStep = $derived(isSudo ? '0.0001' : '0.1'); + const roundTransfer = $derived(isSudo ? roundToTenThousandth : roundToTenth); + interface Props { children?: Snippet; onclick?: () => void; @@ -379,13 +383,13 @@ { - $formData.amount = roundToTenth($formData.amount as unknown as number); + $formData.amount = roundTransfer($formData.amount as unknown as number); }} /> {#if selectedCount > 1} @@ -394,7 +398,7 @@

Total: 📎 {formatNumber(roundToTenth(totalAmount))}📎 {formatNumber(roundTransfer(totalAmount))}

{#if exceedsBalance} @@ -438,7 +442,7 @@
  • {dest.name}
  • {/each} - Total: 📎 {formatNumber(roundToTenth(confirmAmount * confirmDestinations.length))} + Total: 📎 {formatNumber(roundTransfer(confirmAmount * confirmDestinations.length))} {/if} diff --git a/frontend/src/lib/components/forms/settleMarket.svelte b/frontend/src/lib/components/forms/settleMarket.svelte index 974f798a..ef95ee84 100644 --- a/frontend/src/lib/components/forms/settleMarket.svelte +++ b/frontend/src/lib/components/forms/settleMarket.svelte @@ -1,18 +1,22 @@