diff --git a/src/components/Availability/AvailabilitiesTable.tsx b/src/components/Availability/AvailabilitiesTable.tsx
index ba7baf0..f00fdb2 100644
--- a/src/components/Availability/AvailabilitiesTable.tsx
+++ b/src/components/Availability/AvailabilitiesTable.tsx
@@ -49,8 +49,11 @@ export function AvailabilitiesTable({ availabilities, space }: Props) {
const onSortByPrice = (state: TabSortState) =>
setSortFn(() => AvailabilityUtils.sortByPrice(state));
- const onSortByCollateral = (state: TabSortState) =>
- setSortFn(() => AvailabilityUtils.sortByCollateral(state));
+ const onSortByRemainingCollateral = (state: TabSortState) =>
+ setSortFn(() => AvailabilityUtils.sortByRemainingCollateral(state));
+
+ const onSortByTotalCollateral = (state: TabSortState) =>
+ setSortFn(() => AvailabilityUtils.sortByTotalCollateral(state));
const headers = [
[""],
@@ -58,7 +61,8 @@ export function AvailabilitiesTable({ availabilities, space }: Props) {
["total size", onSortBySize],
["duration", onSortByDuration],
["min price per byte", onSortByPrice],
- ["remaining collateral", onSortByCollateral],
+ ["remaining collateral", onSortByRemainingCollateral],
+ ["total collateral", onSortByTotalCollateral],
["actions"],
] satisfies [string, ((state: TabSortState) => void)?][];
@@ -90,6 +94,7 @@ export function AvailabilitiesTable({ availabilities, space }: Props) {
| {Times.pretty(a.duration)} | ,
{a.minPricePerBytePerSecond.toString()} | ,
{a.totalRemainingCollateral.toString()} | ,
+ {a.totalCollateral.toString()} | ,
,
]}>
diff --git a/src/components/Availability/AvailabilityEdit.tsx b/src/components/Availability/AvailabilityEdit.tsx
index 397f898..5b7590a 100644
--- a/src/components/Availability/AvailabilityEdit.tsx
+++ b/src/components/Availability/AvailabilityEdit.tsx
@@ -30,7 +30,7 @@ const CONFIRM_STATE = 2;
const defaultAvailabilityData: AvailabilityState = {
totalSize: 0.5,
duration: 1,
- minPricePerBytePerSecond: 0,
+ minPricePerBytePerSecond: 1,
totalCollateral: 0,
totalSizeUnit: "gb",
durationUnit: "days",
diff --git a/src/components/Availability/AvailabilityForm.tsx b/src/components/Availability/AvailabilityForm.tsx
index bfdf399..44406eb 100644
--- a/src/components/Availability/AvailabilityForm.tsx
+++ b/src/components/Availability/AvailabilityForm.tsx
@@ -11,6 +11,7 @@ import NodesIcon from "../../assets/icons/nodes.svg?react";
import InfoIcon from "../../assets/icons/info.svg?react";
import { attributes } from "../../utils/attributes";
import { AvailabilityUtils } from "./availability.utils";
+import { GB } from "../../utils/constants";
export function AvailabilityForm({
dispatch,
@@ -144,12 +145,13 @@ export function AvailabilityForm({
max={available.toFixed(2)}
onChange={onAvailablityChange}
onGroupChange={onTotalSizeUnitChange}
- value={availability.totalSize.toString()}
+ value={availability.totalSize.toFixed(2)}
min={"0"}
group={[
["gb", "GB"],
// ["tb", "TB"],
]}
+ step="0.1"
groupValue={availability.totalSizeUnit}
extra={Use max size}
/>
@@ -208,7 +210,10 @@ export function AvailabilityForm({
label="Total collateral"
min={0}
onChange={onInputChange}
- value={availability.totalCollateral.toString()}
+ value={(
+ availability.totalCollateral ||
+ Math.round(availability.totalSize * GB)
+ ).toString()}
/>
{
const descSorted = items
.slice()
- .sort(AvailabilityUtils.sortByCollateral("desc"));
+ .sort(AvailabilityUtils.sortByRemainingCollateral("desc"));
assert.deepEqual(descSorted, [b, a]);
const ascSorted = items
.slice()
- .sort(AvailabilityUtils.sortByCollateral("asc"));
+ .sort(AvailabilityUtils.sortByRemainingCollateral("asc"));
assert.deepEqual(ascSorted, [a, b]);
});
diff --git a/src/components/Availability/availability.utils.ts b/src/components/Availability/availability.utils.ts
index 88e7d86..c895e12 100644
--- a/src/components/Availability/availability.utils.ts
+++ b/src/components/Availability/availability.utils.ts
@@ -25,12 +25,18 @@ export const AvailabilityUtils = {
state === "desc"
? b.minPricePerBytePerSecond - a.minPricePerBytePerSecond
: a.minPricePerBytePerSecond - b.minPricePerBytePerSecond,
- sortByCollateral:
+ sortByRemainingCollateral:
(state: TabSortState) =>
(a: AvailabilityWithSlots, b: AvailabilityWithSlots) =>
state === "desc"
? b.totalRemainingCollateral - a.totalRemainingCollateral
: a.totalRemainingCollateral - b.totalRemainingCollateral,
+ sortByTotalCollateral:
+ (state: TabSortState) =>
+ (a: AvailabilityWithSlots, b: AvailabilityWithSlots) =>
+ state === "desc"
+ ? b.totalCollateral - a.totalCollateral
+ : a.totalCollateral - b.totalCollateral,
toUnit(bytes: number, unit: "gb" | "tb") {
return bytes / this.unitValue(unit || "gb");
},
diff --git a/src/components/CardNumbers/CardNumbers.tsx b/src/components/CardNumbers/CardNumbers.tsx
index 4b2896e..bf0b5d5 100644
--- a/src/components/CardNumbers/CardNumbers.tsx
+++ b/src/components/CardNumbers/CardNumbers.tsx
@@ -52,6 +52,7 @@ export function CardNumbers({
value={value}
type="number"
isInvalid={!!error}
+ min={0}
onChange={onInternalChange}>
diff --git a/src/components/StorageRequestSetup/StorageRequestCreate.tsx b/src/components/StorageRequestSetup/StorageRequestCreate.tsx
index f2a674b..4c13b1e 100644
--- a/src/components/StorageRequestSetup/StorageRequestCreate.tsx
+++ b/src/components/StorageRequestSetup/StorageRequestCreate.tsx
@@ -27,8 +27,8 @@ const defaultStorageRequest: StorageRequest = {
tolerance: 1,
proofProbability: 1,
nodes: 3,
- reward: 10,
- collateral: 10,
+ reward: 1,
+ collateral: 1,
expiration: 5,
};
diff --git a/src/components/StorageRequestSetup/StorageRequestReview.tsx b/src/components/StorageRequestSetup/StorageRequestReview.tsx
index c04b8c6..a84b86f 100644
--- a/src/components/StorageRequestSetup/StorageRequestReview.tsx
+++ b/src/components/StorageRequestSetup/StorageRequestReview.tsx
@@ -288,7 +288,7 @@ export function StorageRequestReview({
value={storageRequest.collateral.toString()}
onChange={onCollateralChange}
onValidation={isInvalidNumber}
- title="Penality tokens">
+ title="Penality tokens per byte">