From 8683e85a721f690efda5ae59ebe9f7fdebe29ed8 Mon Sep 17 00:00:00 2001 From: Alexandre Gouasmi Date: Tue, 19 Dec 2023 10:56:46 +0100 Subject: [PATCH] fix: types in nft/types and adjusting tests for currentOwnerAddres return in packNftContract --- libs/nft/thirdweb-organizer/src/action.ts | 3 +- libs/nft/thirdweb-organizer/src/index.ts | 51 ++++--------------- .../src/nftCollection.integration.test.ts | 4 ++ libs/nft/types/src/lib/index.ts | 36 +++++++++++++ 4 files changed, 51 insertions(+), 43 deletions(-) diff --git a/libs/nft/thirdweb-organizer/src/action.ts b/libs/nft/thirdweb-organizer/src/action.ts index e26ad47cb..c00f9ce8b 100644 --- a/libs/nft/thirdweb-organizer/src/action.ts +++ b/libs/nft/thirdweb-organizer/src/action.ts @@ -23,6 +23,7 @@ import type { PackNftContract_Insert_Input, } from '@gql/shared/types'; import { defaultLocale } from '@next/i18n'; +import { ContractType } from '@nft/types'; import { ThirdwebSDK } from '@thirdweb-dev/sdk'; export async function createEventPassNftContract( @@ -127,6 +128,6 @@ export async function getUnopenedNftPackAmount(packId: string) { export async function getPackSupply(contractAddress: string) { const sdk = new ThirdwebSDK(env.CHAIN); - const pack = await sdk.getContract(contractAddress, 'pack'); + const pack = await sdk.getContract(contractAddress, ContractType.PACK); return pack.erc1155.totalSupply(0); } diff --git a/libs/nft/thirdweb-organizer/src/index.ts b/libs/nft/thirdweb-organizer/src/index.ts index fa4b3da9f..bbb24f29f 100644 --- a/libs/nft/thirdweb-organizer/src/index.ts +++ b/libs/nft/thirdweb-organizer/src/index.ts @@ -5,18 +5,16 @@ import { EventPass, EventPassDelayedRevealed, } from '@features/back-office/events-types'; -import { GetEventPassOrganizerFolderPath } from '@features/pass-common'; import { GetEventPassNftContractNftsQuery } from '@gql/admin/types'; +import { EventPassNftContractType_Enum } from '@gql/shared/types'; import { - EventPassNftContractType_Enum, - EventPassNftContract_Insert_Input, -} from '@gql/shared/types'; -import { EventPassNft } from '@nft/types'; -import { - NFTMetadata as ThirdwebNFTMetadata, - ThirdwebSDK, - TransactionResultWithId, -} from '@thirdweb-dev/sdk'; + ContractType, + EventPassNftContractObject, + EventSmallData, + NftsMetadata, + RequiredEventPassNft, +} from '@nft/types'; +import { ThirdwebSDK, TransactionResultWithId } from '@thirdweb-dev/sdk'; import * as crypto from 'crypto'; import { Signer, ethers } from 'ethers'; import { @@ -28,33 +26,13 @@ import { updateNftsWithPackId, } from './action'; -type NftsMetadata = ThirdwebNFTMetadata & { - name: string; -}; - -type EventSmallData = Omit & { - eventSlug: string; -}; - -type EventPassNftContractObject = Required< - Pick< - EventPassNftContract_Insert_Input, - | 'type' - | 'contractAddress' - | 'eventPassId' - | 'chainId' - | 'eventId' - | 'organizerId' - > -> & - EventPassNftContract_Insert_Input; - interface CommonProps extends EventPass, EventSmallData { address: string; chainId: string; } type Pack = { + //TODO: change to Pack from hygraph id: string; name: string; image: string; @@ -75,10 +53,6 @@ type SaveEventPassContractIntoDbProps = { object: EventPassNftContractObject; }; -type RequiredEventPassNft = Required< - Pick ->; - type SavePackContractIntoDbProps = { chainIdNumber: number; eventData: { @@ -100,15 +74,8 @@ type DeployAndCreatePackProps = { }[]; }; -const CONTRACT_TYPE_NFT_DROP = 'nft-drop'; -const CONTRACT_TYPE_PACK = 'pack'; const BASE_URL = 'https://www.offline.live/pass/organizer/'; -enum ContractType { - NFT_DROP = CONTRACT_TYPE_NFT_DROP, - PACK = CONTRACT_TYPE_PACK, -} - class CollectionDeploymentError extends Error { constructor(error: Error) { super(`Error deploying a collection: ${error.message}`); diff --git a/libs/nft/thirdweb-organizer/src/nftCollection.integration.test.ts b/libs/nft/thirdweb-organizer/src/nftCollection.integration.test.ts index aabb0a3db..831184476 100644 --- a/libs/nft/thirdweb-organizer/src/nftCollection.integration.test.ts +++ b/libs/nft/thirdweb-organizer/src/nftCollection.integration.test.ts @@ -359,11 +359,13 @@ describe('NftCollection', () => { tokenId: 0, contractAddress: '0xFakeDelayedReveal', eventPassId: 'fakeEventPassDelayedRevealId', + currentOwnerAddress: '0xB98bD7C7f656290071E52D1aA617D9cB4467Fd6D', }, { tokenId: 1, contractAddress: '0xFakeDelayedReveal', eventPassId: 'fakeEventPassDelayedRevealId', + currentOwnerAddress: '0xc0ffee254729296a45a3885639AC7E10F9d54979', }, ], }), @@ -513,11 +515,13 @@ describe('NftCollection', () => { tokenId: 0, contractAddress: '0xFakePack', eventPassId: 'FakePackId', + currentOwnerAddress: null, }, { tokenId: 1, contractAddress: '0xFakePack', eventPassId: 'FakePackId', + currentOwnerAddress: null, }, ], }), diff --git a/libs/nft/types/src/lib/index.ts b/libs/nft/types/src/lib/index.ts index 066bcb37b..d49374320 100644 --- a/libs/nft/types/src/lib/index.ts +++ b/libs/nft/types/src/lib/index.ts @@ -1,3 +1,4 @@ +import { GetEventPassOrganizerFolderPath } from '@features/pass-common'; import type { GetEventPassOrderFromIdQuery, GetEventPassOrdersFromStripeCheckoutSessionQuery, @@ -7,6 +8,8 @@ import type { EventPassNft as ImportedEventPassNft, NftTransfer as ImportedNftTransfer, } from '@gql/shared/types'; +import { EventPassNftContract_Insert_Input } from '@gql/shared/types'; +import { NFTMetadata as ThirdwebNFTMetadata } from '@thirdweb-dev/sdk'; export type NftTransfer = ImportedNftTransfer; @@ -31,3 +34,36 @@ export type EventPassNftAfterMutation = NonNullable< export type EventPassOrderWithContractData = GetEventPassOrdersFromStripeCheckoutSessionQuery['eventPassOrder'][0] & GetEventPassOrderFromIdQuery['eventPassOrder_by_pk']; + +export enum ContractType { + NFT_DROP = 'nft-drop', + PACK = 'pack', +} + +export type EventSmallData = Omit< + GetEventPassOrganizerFolderPath, + 'eventPassId' +> & { + eventSlug: string; +}; + +export type NftsMetadata = ThirdwebNFTMetadata & { + name: string; +}; + +export type EventPassNftContractObject = Required< + Pick< + EventPassNftContract_Insert_Input, + | 'type' + | 'contractAddress' + | 'eventPassId' + | 'chainId' + | 'eventId' + | 'organizerId' + > +> & + EventPassNftContract_Insert_Input; + +export type RequiredEventPassNft = Required< + Pick +>;