diff --git a/package-lock.json b/package-lock.json
index daa3c85..7312694 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,7 +10,7 @@
"license": "MIT",
"dependencies": {
"@codex-storage/marketplace-ui-components": "^0.0.51",
- "@codex-storage/sdk-js": "^0.0.17",
+ "@codex-storage/sdk-js": "^0.0.18",
"@sentry/browser": "^8.32.0",
"@sentry/react": "^8.31.0",
"@tanstack/react-query": "^5.51.15",
@@ -433,9 +433,9 @@
}
},
"node_modules/@codex-storage/sdk-js": {
- "version": "0.0.17",
- "resolved": "https://registry.npmjs.org/@codex-storage/sdk-js/-/sdk-js-0.0.17.tgz",
- "integrity": "sha512-rd9c1TkLJMPSjxg9IFoDmK44DaEOU0nGHK9YVGy9Sdnw4oiWTv5wl2N1U8UMkQT+aWBKmwy/VHLdocTqwazdpA==",
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@codex-storage/sdk-js/-/sdk-js-0.0.18.tgz",
+ "integrity": "sha512-FbQFRJgSuol6P00Wk76XShSGDIlQpTEr4Zgt3Ze1uRxC8gVpVRiHME2Z5/EOq7Fm25So9aCSD7MSKDULanHDpQ==",
"license": "MIT",
"dependencies": {
"valibot": "^0.32.0"
diff --git a/package.json b/package.json
index 9f71a86..22aa159 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
],
"dependencies": {
"@codex-storage/marketplace-ui-components": "^0.0.51",
- "@codex-storage/sdk-js": "^0.0.17",
+ "@codex-storage/sdk-js": "^0.0.18",
"@sentry/browser": "^8.32.0",
"@sentry/react": "^8.31.0",
"@tanstack/react-query": "^5.51.15",
diff --git a/src/components/Purchase/PurchasesTable.tsx b/src/components/Purchase/PurchasesTable.tsx
index c776850..120349c 100644
--- a/src/components/Purchase/PurchasesTable.tsx
+++ b/src/components/Purchase/PurchasesTable.tsx
@@ -90,9 +90,9 @@ export function PurchasesTable() {
const rows = sorted.map((p, index) => {
const r = p.request;
const ask = p.request.ask;
- const duration = parseInt(p.request.ask.duration, 10);
- const pf = parseInt(p.request.ask.proofProbability, 10);
-
+ const duration = parseInt(ask.duration, 10);
+ const pf = parseInt(ask.proofProbability, 10);
+ const reward = PurchaseUtils.calculatePrice(p.request);
return (
,
{Times.pretty(duration)} | ,
{ask.slots.toString()} | ,
- {ask.reward + " CDX"} | ,
+ {reward + " CDX"} | ,
{pf.toString()} | ,
,
]}>
diff --git a/src/components/Purchase/purchase.utils.ts b/src/components/Purchase/purchase.utils.ts
index 3005d8b..6ee7977 100644
--- a/src/components/Purchase/purchase.utils.ts
+++ b/src/components/Purchase/purchase.utils.ts
@@ -1,42 +1,43 @@
-import { TabSortState } from "@codex-storage/marketplace-ui-components"
-import { CodexPurchase } from "@codex-storage/sdk-js"
+import { TabSortState } from "@codex-storage/marketplace-ui-components";
+import { CodexPurchase, CodexStorageRequest } from "@codex-storage/sdk-js";
export const PurchaseUtils = {
- sortById: (state: TabSortState) =>
- (a: CodexPurchase, b: CodexPurchase) => {
-
- return state === "desc"
- ? b.requestId
- .toLocaleLowerCase()
- .localeCompare(a.requestId.toLocaleLowerCase())
- : a.requestId
- .toLocaleLowerCase()
- .localeCompare(b.requestId.toLocaleLowerCase())
- },
- sortByState: (state: TabSortState) =>
- (a: CodexPurchase, b: CodexPurchase) => state === "desc"
- ? b.state
- .toLocaleLowerCase()
- .localeCompare(a.state.toLocaleLowerCase())
- : a.state
- .toLocaleLowerCase()
- .localeCompare(b.state.toLocaleLowerCase())
- ,
- sortByDuration: (state: TabSortState) =>
- (a: CodexPurchase, b: CodexPurchase) => state === "desc"
- ? Number(b.request.ask.duration) - Number(a.request.ask.duration)
- : Number(a.request.ask.duration) - Number(b.request.ask.duration)
- ,
- sortByReward: (state: TabSortState) =>
- (a: CodexPurchase, b: CodexPurchase) => state === "desc"
- ? Number(b.request.ask.reward) - Number(a.request.ask.reward)
- : Number(a.request.ask.reward) - Number(b.request.ask.reward)
- ,
- sortByUploadedAt: (state: TabSortState, table: Record) =>
- (a: CodexPurchase, b: CodexPurchase) => {
- return state === "desc"
- ? (table[b.requestId] || 0) - (table[a.requestId] || 0)
- : (table[a.requestId] || 0) - (table[b.requestId] || 0)
- }
- ,
-}
\ No newline at end of file
+ sortById: (state: TabSortState) => (a: CodexPurchase, b: CodexPurchase) => {
+ return state === "desc"
+ ? b.requestId
+ .toLocaleLowerCase()
+ .localeCompare(a.requestId.toLocaleLowerCase())
+ : a.requestId
+ .toLocaleLowerCase()
+ .localeCompare(b.requestId.toLocaleLowerCase());
+ },
+ sortByState: (state: TabSortState) => (a: CodexPurchase, b: CodexPurchase) =>
+ state === "desc"
+ ? b.state.toLocaleLowerCase().localeCompare(a.state.toLocaleLowerCase())
+ : a.state.toLocaleLowerCase().localeCompare(b.state.toLocaleLowerCase()),
+ sortByDuration:
+ (state: TabSortState) => (a: CodexPurchase, b: CodexPurchase) =>
+ state === "desc"
+ ? Number(b.request.ask.duration) - Number(a.request.ask.duration)
+ : Number(a.request.ask.duration) - Number(b.request.ask.duration),
+ sortByReward:
+ (state: TabSortState) => (a: CodexPurchase, b: CodexPurchase) =>
+ state === "desc"
+ ? PurchaseUtils.calculatePrice(b.request) -
+ PurchaseUtils.calculatePrice(a.request)
+ : PurchaseUtils.calculatePrice(a.request) -
+ PurchaseUtils.calculatePrice(b.request),
+ sortByUploadedAt:
+ (state: TabSortState, table: Record) =>
+ (a: CodexPurchase, b: CodexPurchase) => {
+ return state === "desc"
+ ? (table[b.requestId] || 0) - (table[a.requestId] || 0)
+ : (table[a.requestId] || 0) - (table[b.requestId] || 0);
+ },
+ calculatePrice(request: CodexStorageRequest) {
+ return (
+ parseInt(request.ask.slotSize, 10) *
+ parseInt(request.ask.pricePerBytePerSecond, 10)
+ );
+ },
+};
diff --git a/src/components/StorageRequestSetup/StorageRequestCreate.tsx b/src/components/StorageRequestSetup/StorageRequestCreate.tsx
index 3158d41..3300982 100644
--- a/src/components/StorageRequestSetup/StorageRequestCreate.tsx
+++ b/src/components/StorageRequestSetup/StorageRequestCreate.tsx
@@ -83,10 +83,11 @@ export function StorageRequestCreate() {
WebStorage.set("storage-request-step", step);
if (step == CONFIRM_STATE) {
- const { availability, availabilityUnit, expiration, ...rest } =
+ const { availability, availabilityUnit, expiration, reward, ...rest } =
storageRequest;
mutateAsync({
...rest,
+ pricePerBytePerSecond: reward,
duration: Math.trunc(availability * Times.value(availabilityUnit)),
expiry: expiration * 60,
});
diff --git a/src/components/StorageRequestSetup/StorageRequestReview.tsx b/src/components/StorageRequestSetup/StorageRequestReview.tsx
index 787e382..45f4895 100644
--- a/src/components/StorageRequestSetup/StorageRequestReview.tsx
+++ b/src/components/StorageRequestSetup/StorageRequestReview.tsx
@@ -290,13 +290,13 @@ export function StorageRequestReview({
onValidation={isInvalidNumber}
title="Penality tokens">
+ title="Price per byte">