Skip to content

Commit

Permalink
add tokenId to listings (#2188)
Browse files Browse the repository at this point in the history
* add tokenId to listings

* bump api version

* extract tokenId from fixture

* rename test

* make vintage required

* migrate to new graph version

* remove tokenId frmo fixtures

* remove tokenId mock

* revert renaming token to symbol

* revert test changes

* remove icr fixture

---------

Co-authored-by: emc <0xemc@protonmail.com>
  • Loading branch information
sprrwhwk and 0xemc committed Feb 5, 2024
1 parent b6dc6c3 commit 19cc069
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 7 deletions.
2 changes: 1 addition & 1 deletion carbonmark-api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@klimadao/carbonmark-api",
"version": "6.0.1",
"version": "6.1.0",
"description": "An API for exploring Carbonmark project data, prices and activity.",
"main": "app.ts",
"scripts": {
Expand Down
9 changes: 9 additions & 0 deletions carbonmark-api/src/.generated/mocks/marketplace.mocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ export const aListing = (overrides?: Partial<Listing>, _relationshipsToOmit: Set
seller: overrides && overrides.hasOwnProperty('seller') ? overrides.seller! : relationshipsToOmit.has('User') ? {} as User : aUser({}, relationshipsToOmit),
singleUnitPrice: overrides && overrides.hasOwnProperty('singleUnitPrice') ? overrides.singleUnitPrice! : '100000000000000000000',
tokenAddress: overrides && overrides.hasOwnProperty('tokenAddress') ? overrides.tokenAddress! : 'at',
tokenId: overrides && overrides.hasOwnProperty('tokenId') ? overrides.tokenId! : '100000000000000000000',
tokenSymbol: overrides && overrides.hasOwnProperty('tokenSymbol') ? overrides.tokenSymbol! : 'assumenda',
totalAmountToSell: overrides && overrides.hasOwnProperty('totalAmountToSell') ? overrides.totalAmountToSell! : '100000000000000000000',
updatedAt: overrides && overrides.hasOwnProperty('updatedAt') ? overrides.updatedAt! : '100000000000000000000',
Expand Down Expand Up @@ -445,6 +446,14 @@ export const aListing_Filter = (overrides?: Partial<Listing_Filter>, _relationsh
tokenAddress_not: overrides && overrides.hasOwnProperty('tokenAddress_not') ? overrides.tokenAddress_not! : 'sint',
tokenAddress_not_contains: overrides && overrides.hasOwnProperty('tokenAddress_not_contains') ? overrides.tokenAddress_not_contains! : 'dolorem',
tokenAddress_not_in: overrides && overrides.hasOwnProperty('tokenAddress_not_in') ? overrides.tokenAddress_not_in! : ['ut'],
tokenId: overrides && overrides.hasOwnProperty('tokenId') ? overrides.tokenId! : '100000000000000000000',
tokenId_gt: overrides && overrides.hasOwnProperty('tokenId_gt') ? overrides.tokenId_gt! : '100000000000000000000',
tokenId_gte: overrides && overrides.hasOwnProperty('tokenId_gte') ? overrides.tokenId_gte! : '100000000000000000000',
tokenId_in: overrides && overrides.hasOwnProperty('tokenId_in') ? overrides.tokenId_in! : ['100000000000000000000'],
tokenId_lt: overrides && overrides.hasOwnProperty('tokenId_lt') ? overrides.tokenId_lt! : '100000000000000000000',
tokenId_lte: overrides && overrides.hasOwnProperty('tokenId_lte') ? overrides.tokenId_lte! : '100000000000000000000',
tokenId_not: overrides && overrides.hasOwnProperty('tokenId_not') ? overrides.tokenId_not! : '100000000000000000000',
tokenId_not_in: overrides && overrides.hasOwnProperty('tokenId_not_in') ? overrides.tokenId_not_in! : ['100000000000000000000'],
tokenSymbol: overrides && overrides.hasOwnProperty('tokenSymbol') ? overrides.tokenSymbol! : 'sed',
tokenSymbol_contains: overrides && overrides.hasOwnProperty('tokenSymbol_contains') ? overrides.tokenSymbol_contains! : 'quo',
tokenSymbol_contains_nocase: overrides && overrides.hasOwnProperty('tokenSymbol_contains_nocase') ? overrides.tokenSymbol_contains_nocase! : 'quo',
Expand Down
23 changes: 18 additions & 5 deletions carbonmark-api/src/.generated/types/marketplace.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@ export enum Activity_OrderBy {
listing__minFillAmount = 'listing__minFillAmount',
listing__singleUnitPrice = 'listing__singleUnitPrice',
listing__tokenAddress = 'listing__tokenAddress',
listing__tokenId = 'listing__tokenId',
listing__tokenSymbol = 'listing__tokenSymbol',
listing__totalAmountToSell = 'listing__totalAmountToSell',
listing__updatedAt = 'listing__updatedAt',
Expand Down Expand Up @@ -356,6 +357,7 @@ export type Listing = {
seller: User;
singleUnitPrice: Scalars['BigInt'];
tokenAddress: Scalars['Bytes'];
tokenId: Scalars['BigInt'];
tokenSymbol: Scalars['String'];
totalAmountToSell: Scalars['BigInt'];
updatedAt: Maybe<Scalars['BigInt']>;
Expand Down Expand Up @@ -496,6 +498,14 @@ export type Listing_Filter = {
tokenAddress_not: InputMaybe<Scalars['Bytes']>;
tokenAddress_not_contains: InputMaybe<Scalars['Bytes']>;
tokenAddress_not_in: InputMaybe<Array<Scalars['Bytes']>>;
tokenId: InputMaybe<Scalars['BigInt']>;
tokenId_gt: InputMaybe<Scalars['BigInt']>;
tokenId_gte: InputMaybe<Scalars['BigInt']>;
tokenId_in: InputMaybe<Array<Scalars['BigInt']>>;
tokenId_lt: InputMaybe<Scalars['BigInt']>;
tokenId_lte: InputMaybe<Scalars['BigInt']>;
tokenId_not: InputMaybe<Scalars['BigInt']>;
tokenId_not_in: InputMaybe<Array<Scalars['BigInt']>>;
tokenSymbol: InputMaybe<Scalars['String']>;
tokenSymbol_contains: InputMaybe<Scalars['String']>;
tokenSymbol_contains_nocase: InputMaybe<Scalars['String']>;
Expand Down Expand Up @@ -558,6 +568,7 @@ export enum Listing_OrderBy {
seller__id = 'seller__id',
singleUnitPrice = 'singleUnitPrice',
tokenAddress = 'tokenAddress',
tokenId = 'tokenId',
tokenSymbol = 'tokenSymbol',
totalAmountToSell = 'totalAmountToSell',
updatedAt = 'updatedAt'
Expand Down Expand Up @@ -891,6 +902,7 @@ export enum Purchase_OrderBy {
listing__minFillAmount = 'listing__minFillAmount',
listing__singleUnitPrice = 'listing__singleUnitPrice',
listing__tokenAddress = 'listing__tokenAddress',
listing__tokenId = 'listing__tokenId',
listing__tokenSymbol = 'listing__tokenSymbol',
listing__totalAmountToSell = 'listing__totalAmountToSell',
listing__updatedAt = 'listing__updatedAt',
Expand Down Expand Up @@ -1298,7 +1310,7 @@ export enum _SubgraphErrorPolicy_ {
deny = 'deny'
}

export type ListingFragmentFragment = { __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } };
export type ListingFragmentFragment = { __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, tokenId: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } };

export type ProjectFragmentFragment = { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } };

Expand Down Expand Up @@ -1338,15 +1350,15 @@ export type GetListingByIdQueryVariables = Exact<{
}>;


export type GetListingByIdQuery = { __typename?: 'Query', listing: { __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } } | null };
export type GetListingByIdQuery = { __typename?: 'Query', listing: { __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, tokenId: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } } | null };

export type GetUserByWalletQueryVariables = Exact<{
wallet: InputMaybe<Scalars['String']>;
expiresAfter: InputMaybe<Scalars['BigInt']>;
}>;


export type GetUserByWalletQuery = { __typename?: 'Query', listings: Array<{ __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } }>, activities: Array<{ __typename?: 'Activity', id: string, amount: string | null, previousAmount: string | null, price: string | null, previousPrice: string | null, timeStamp: string | null, activityType: ActivityType, project: { __typename?: 'Project', key: string, vintage: string }, buyer: { __typename?: 'User', id: any } | null, seller: { __typename?: 'User', id: any } }> };
export type GetUserByWalletQuery = { __typename?: 'Query', listings: Array<{ __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, tokenId: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } }>, activities: Array<{ __typename?: 'Activity', id: string, amount: string | null, previousAmount: string | null, price: string | null, previousPrice: string | null, timeStamp: string | null, activityType: ActivityType, project: { __typename?: 'Project', key: string, vintage: string }, buyer: { __typename?: 'User', id: any } | null, seller: { __typename?: 'User', id: any } }> };

export type GetProjectsQueryVariables = Exact<{
search: InputMaybe<Scalars['String']>;
Expand All @@ -1357,15 +1369,15 @@ export type GetProjectsQueryVariables = Exact<{
}>;


export type GetProjectsQuery = { __typename?: 'Query', projects: Array<{ __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, listings: Array<{ __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } }> | null, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } }> };
export type GetProjectsQuery = { __typename?: 'Query', projects: Array<{ __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, listings: Array<{ __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, tokenId: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } }> | null, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } }> };

export type GetProjectByIdQueryVariables = Exact<{
projectId: Scalars['ID'];
expiresAfter: InputMaybe<Scalars['BigInt']>;
}>;


export type GetProjectByIdQuery = { __typename?: 'Query', project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, listings: Array<{ __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } }> | null, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } | null };
export type GetProjectByIdQuery = { __typename?: 'Query', project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, listings: Array<{ __typename?: 'Listing', id: string, totalAmountToSell: string, leftToSell: string, tokenAddress: any, active: boolean | null, deleted: boolean | null, singleUnitPrice: string, createdAt: string | null, updatedAt: string | null, expiration: string, minFillAmount: string, tokenId: string, seller: { __typename?: 'User', id: any }, project: { __typename?: 'Project', id: string, key: string, vintage: string, name: string, methodology: string, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } }> | null, category: { __typename?: 'Category', id: string }, country: { __typename?: 'Country', id: string } } | null };

export type GetActivitiesByProjectIdQueryVariables = Exact<{
projectId: InputMaybe<Array<Scalars['ID']> | Scalars['ID']>;
Expand Down Expand Up @@ -1416,6 +1428,7 @@ export const ListingFragmentFragmentDoc = gql`
}
expiration
minFillAmount
tokenId
}
${ProjectFragmentFragmentDoc}`;
export const ActivityFragmentFragmentDoc = gql`
Expand Down
2 changes: 1 addition & 1 deletion carbonmark-api/src/app.constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const GRAPH_API_ROOT_ID = "https://api.thegraph.com/subgraphs/id";
* This is also the case for SANITY_URLS
*/
const POLYGON_URLS = {
marketplace: `${GRAPH_API_ROOT_ID}/QmXrzcwG5b31hE1nDzT5NCAiHfM9stwMLqs8uk9enJiyPf`,
marketplace: `${GRAPH_API_ROOT_ID}/QmaHkN47zUB3b1xnfeqCwatG5DRtMuitEDf9FdFkq5V3Fr`,
assets: `${GRAPH_API_ROOT}/cujowolf/klima-refi-current-holdings`,
tokens: `${GRAPH_API_ROOT}/klimadao/klimadao-pairs`,
digitalCarbon: `${GRAPH_API_ROOT}/klimadao/polygon-digital-carbon`,
Expand Down
1 change: 1 addition & 0 deletions carbonmark-api/src/graphql/marketplace.fragments.gql
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ fragment ListingFragment on Listing {
}
expiration
minFillAmount
tokenId
}

fragment ProjectFragment on Project {
Expand Down
1 change: 1 addition & 0 deletions carbonmark-api/src/models/Listing.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ export const ListingModel = Type.Object(
methodology: Type.String(),
}),
symbol: Type.Optional(Type.String({ description: "Symbol of the token" })),
tokenId: Type.String({ description: "ID of the token" }),
},
{
description: "Marketplace listing with per-tonne price and project info.",
Expand Down

0 comments on commit 19cc069

Please sign in to comment.