diff --git a/carbonmark-api/package.json b/carbonmark-api/package.json index d7de196b15..31de4096f1 100644 --- a/carbonmark-api/package.json +++ b/carbonmark-api/package.json @@ -1,6 +1,6 @@ { "name": "@klimadao/carbonmark-api", - "version": "2.0.0-2", + "version": "2.0.0-3", "description": "An API for exploring Carbonmark project data, prices and activity.", "main": "app.ts", "scripts": { diff --git a/carbonmark-api/src/models/Purchase.model.ts b/carbonmark-api/src/models/Purchase.model.ts index 72e7fdc110..8bf4721faa 100644 --- a/carbonmark-api/src/models/Purchase.model.ts +++ b/carbonmark-api/src/models/Purchase.model.ts @@ -8,8 +8,8 @@ export const PurchaseModel = Type.Object({ ], }), amount: Type.String({ - description: "Stringified 18 decimal BigNumber", - examples: ["1000000000000000000"], + description: "Quantity of credits purchased", + examples: ["1.0"], }), listing: Type.Object({ id: Type.String({ @@ -38,8 +38,8 @@ export const PurchaseModel = Type.Object({ }), }), price: Type.String({ - description: "Stringified 6 decimal BigNumber", - examples: ["1000000"], + description: "Total purchase price (USDC)", + examples: ["5.0"], }), }); diff --git a/carbonmark-api/src/routes/purchases/[id]/get.ts b/carbonmark-api/src/routes/purchases/[id]/get.ts index 5976afdda6..75fb181bf3 100644 --- a/carbonmark-api/src/routes/purchases/[id]/get.ts +++ b/carbonmark-api/src/routes/purchases/[id]/get.ts @@ -1,4 +1,5 @@ import { Static } from "@sinclair/typebox"; +import { utils } from "ethers"; import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import { isNil } from "lodash"; import { Purchase } from "../../../models/Purchase.model"; @@ -35,7 +36,9 @@ const handler = async ( }); const response: Purchase = { - ...purchase, + id: purchase.id, + amount: utils.formatUnits(purchase.amount, 18), + price: utils.formatUnits(purchase.price, 6), listing: { id: purchase.listing.id, project: { diff --git a/carbonmark-api/test/fixtures/marketplace.ts b/carbonmark-api/test/fixtures/marketplace.ts index b72d7a0a0d..9e5ad7014d 100644 --- a/carbonmark-api/test/fixtures/marketplace.ts +++ b/carbonmark-api/test/fixtures/marketplace.ts @@ -20,9 +20,9 @@ const projectWithListing = aProject({ /** marketplace.getPurchaseById() */ const purchase: GetPurchaseByIdQuery["purchase"] = { - amount: "1000000000000000000", // 1t + amount: "1000000000000000000", // 1 tonne id: "0xfe2949e3644b88d2e00e5f84f6266c191dbb0379a18e00a18192116de7c5c779", - price: "1000000", // $1 + price: "5000000", // 5 USDC listing: { id: "0x01", project: { diff --git a/carbonmark-api/test/routes/purchases/get.test.ts b/carbonmark-api/test/routes/purchases/get.test.ts index 23e3d645ce..ef5f871192 100644 --- a/carbonmark-api/test/routes/purchases/get.test.ts +++ b/carbonmark-api/test/routes/purchases/get.test.ts @@ -9,6 +9,8 @@ import { DEV_URL, ERROR } from "../../test.constants"; const purchaseModelFixture: Purchase = { ...marketplace.purchase, + amount: "1.0", + price: "5.0", listing: { id: marketplace.purchase.listing.id, project: { @@ -43,7 +45,7 @@ describe("GET /purchases/:id", () => { }); /** The happy path */ - test("Success", async () => { + test("Returns and formats BigNumber values", async () => { // Mock the response from the graph nock(GRAPH_URLS["polygon"].marketplace) .post("") diff --git a/package-lock.json b/package-lock.json index 4ffea67b09..aaee131ea9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -236,7 +236,7 @@ }, "carbonmark-api": { "name": "@klimadao/carbonmark-api", - "version": "2.0.0-2", + "version": "2.0.0-3", "license": "ISC", "dependencies": { "@fastify/autoload": "^5.0.0",