diff --git a/docs/pages/index.mdx b/docs/pages/index.mdx index 6ea23f4a..513e71c8 100644 --- a/docs/pages/index.mdx +++ b/docs/pages/index.mdx @@ -1,4 +1,4 @@ -> [!WARNING] +> WARNING > > The POAP SDK is still in active initial development phase. Anything MAY change at any time. > diff --git a/docs/pages/packages/drops/CreateDrop.mdx b/docs/pages/packages/drops/CreateDrop.mdx new file mode 100644 index 00000000..12b4af26 --- /dev/null +++ b/docs/pages/packages/drops/CreateDrop.mdx @@ -0,0 +1,47 @@ +# Create Drop + +Using `DropsClient` to [setup a Drop](https://poap.zendesk.com/hc/en-us/articles/9702718846989-How-do-I-set-up-a-POAP-Drop) +is straightforward, there is no need of being authenticated with an email and +the only requiriments are having the API key. + +```typescript +import fsPromises from 'fs/promises'; +import { Drop } from '@poap-xyz/drops'; + +// The artwork of the Drop as loaded from the filesystem. +const buffer = await fsPromises.readFile('path/to/poap-artwork.png'); +const image = new Blob([buffer], { type: 'image/png' }); + +const drop: Drop = await client.create({ + name: 'My super event to celebrate!', + description: 'Share the moment with all my invitees to celebrate.\nWe spend great time together.', + eventUrl: 'https://poap.xyz', + + // Where that it takes place. + city: 'Buenos Aires', + country: 'Argentina', + virtualEvent: false, + + // Not to be shared. + privateEvent: true, + + // When does it start and when does it end. + startDate: new Date(2024, 6, 24), + endDate: new Date(2024, 6, 25), + expiryDate: new Date(2024, 7, 24), + + // A password to edit my Drop. + secretCode: '123456', + + // The artwork. + image, + filename: 'my-super-event-artwork.png', + contentType: 'image/png', + + // A valid email where I will receive the mint links. + email: 'your_email@poap.io', + + // The number of invitees in my event. + requestedCodes: 10, +}); +``` diff --git a/docs/pages/packages/drops/FetchDrops.mdx b/docs/pages/packages/drops/FetchDrops.mdx new file mode 100644 index 00000000..8a4b053b --- /dev/null +++ b/docs/pages/packages/drops/FetchDrops.mdx @@ -0,0 +1,39 @@ +# Fetch Drops + +When retrieving Drops we have to paginated using `offset` and `limit`. But besides we can sort the +results and filter them by many options. + +```typescript +import { Drop, DropsSortFields } from '@poap-xyz/drops'; +import { Order, PaginatedResult } from '@poap-xyz/utils'; + +const paginatedDrops: PaginatedResult = await client.fetch({ + offset: 0, + limit: 10, + sortField: DropsSortFields.Id, + sortDir: Order.ASC, +}); +``` + +## Fetch single Drop + +By giving the Drop ID we want to find, we can filter the pagination to contain the Drop or not. + +```typescript +import { Drop } from '@poap-xyz/drops'; +import { PaginatedResult } from '@poap-xyz/utils'; + +const dropId = 14; + +const paginatedDrops: PaginatedResult = await client.fetch({ + offset: 0, + limit: 10, + ids: [dropId], +}); + +if (paginatedDrops.items.length === 0) { + throw new Error('My super drop was not found'); +} + +const drop: Drop = paginatedDrops.items[0]; +``` diff --git a/docs/pages/packages/drops/SearchDrops.mdx b/docs/pages/packages/drops/SearchDrops.mdx index 03d6512b..bb28a2d5 100644 --- a/docs/pages/packages/drops/SearchDrops.mdx +++ b/docs/pages/packages/drops/SearchDrops.mdx @@ -8,13 +8,16 @@ search in name and description. When searching for a whole word, use `fetch` method: ```typescript - const data: PaginatedResult = await dropsClient.fetch({ - sortField: DropsSortFields.Name, - sortDir: Order.ASC, - limit: 3, - offset: 0, - name: 'POAP', - }); +import { Drop } from '@poap-xyz/drops'; +import { PaginatedResult } from '@poap-xyz/utils'; + +const paginatedDrops: PaginatedResult = await dropsClient.fetch({ + sortField: DropsSortFields.Name, + sortDir: Order.ASC, + limit: 3, + offset: 0, + name: 'POAP', +}); ``` ## Fuzzy search @@ -23,9 +26,12 @@ When given a generic search input, and to match any part of the words used in the name of the description, use `search` method: ```typescript - const data: PaginatedResult = await dropsClient.search({ - limit: 3, - offset: 0, - search: 'POAP', - }); +import { Drop } from '@poap-xyz/drops'; +import { PaginatedResult } from '@poap-xyz/utils'; + +const paginatedDrops: PaginatedResult = await dropsClient.search({ + limit: 3, + offset: 0, + search: 'POAP', +}); ``` diff --git a/docs/pages/packages/drops/_meta.json b/docs/pages/packages/drops/_meta.json index 23cd2cff..e8f9c94a 100644 --- a/docs/pages/packages/drops/_meta.json +++ b/docs/pages/packages/drops/_meta.json @@ -1,3 +1,5 @@ { + "CreateDrop": "Create Drop", + "FetchDrops": "Fetch Drops", "SearchDrops": "Search Drops" } diff --git a/examples/frames/src/frames/buttons.ts b/docs/pages/packages/frames/Examples.mdx similarity index 58% rename from examples/frames/src/frames/buttons.ts rename to docs/pages/packages/frames/Examples.mdx index c80efb9a..9f07d29a 100644 --- a/examples/frames/src/frames/buttons.ts +++ b/docs/pages/packages/frames/Examples.mdx @@ -1,6 +1,24 @@ +# Examples + +## Basic + +```typescript +import { Frame, FrameAspectRatio } from '@poap-xyz/frames'; + +const frame = new Frame({ + title: 'Hello World', + image: 'https://placehold.co/600x600', + aspectRatio: FrameAspectRatio.SQUARE, + postUrl: 'https://poap.xyz', +}); +``` + +## With Buttons + +```typescript import { Frame, FrameAspectRatio, FrameButtonAction } from '@poap-xyz/frames'; -export const FRAME_WITH_BUTTONS = new Frame({ +const frameWithButtons = new Frame({ title: 'Hello World', image: 'https://placehold.co/600x600', aspectRatio: FrameAspectRatio.SQUARE, @@ -19,3 +37,4 @@ export const FRAME_WITH_BUTTONS = new Frame({ }, ], }); +``` diff --git a/docs/pages/packages/frames/Render.mdx b/docs/pages/packages/frames/Render.mdx new file mode 100644 index 00000000..3efd187f --- /dev/null +++ b/docs/pages/packages/frames/Render.mdx @@ -0,0 +1,19 @@ +# Render Frame + +The `Frame` class has two methods to be rendered. + +## Meta tags + +To get a list of generated meta tags, use `toMetaTags` method. + +```typescript +const metaTags = frame.toMetaTags(); +``` + +## Render + +To render HTML directly use `render` method. + +```typescript +frame.render(); +``` diff --git a/docs/pages/packages/frames/_meta.json b/docs/pages/packages/frames/_meta.json new file mode 100644 index 00000000..a4a974f2 --- /dev/null +++ b/docs/pages/packages/frames/_meta.json @@ -0,0 +1,4 @@ +{ + "Render": "Render", + "Examples": "Examples" +} diff --git a/docs/pages/packages/moments/FetchMoments.mdx b/docs/pages/packages/moments/FetchMoments.mdx new file mode 100644 index 00000000..aee6ec99 --- /dev/null +++ b/docs/pages/packages/moments/FetchMoments.mdx @@ -0,0 +1,57 @@ +# Fetch Moments + +## List Moments + +Fetching moments per page are done by giving an `offset` and a `limit`. This way +all the uploaded moments could be retrieved. + +```typescript +import { Moment } from '@poap-xyz/moments'; +import { Order, PaginatedResult } from '@poap-xyz/utils'; + +const paginatedMoments: PaginatedResult = await client.fetch({ + offset: 0, + limit: 10, + idOrder: Order.DESC, +}); +``` + +### By Drop + +The list can be filtered by one or more Drops by giving `drop_ids` list with the +Drop IDs. Also, the list can be sorted by `id`, `created`, `tokenId` or `dropId`. + +```typescript +import { Moment } from '@poap-xyz/moments'; +import { Order, PaginatedResult } from '@poap-xyz/utils'; + +const dropId = 14; + +const paginatedMoments: PaginatedResult = await client.fetch({ + offset: 0, + limit: 10, + drop_ids: [dropId], + idOrder: Order.DESC, +}); +``` + +## Fetch single Moment + +```typescript +import { Moment } from '@poap-xyz/moments'; +import { PaginatedResult } from '@poap-xyz/utils'; + +const momentId = '7284219b-1bc7-43b8-ab27-44749bdd91e1'; + +const paginatedMoments: PaginatedResult = await client.fetch({ + offset: 0, + limit: 1, + id: momentId, +}); + +if (paginatedMoments.items.length === 0) { + throw new Error('My moment does not exists'); +} + +const moment: Moment = paginatedMoments.items[0]; +``` diff --git a/docs/pages/packages/moments/UpdateMoment.mdx b/docs/pages/packages/moments/UpdateMoment.mdx new file mode 100644 index 00000000..ab5121c0 --- /dev/null +++ b/docs/pages/packages/moments/UpdateMoment.mdx @@ -0,0 +1,12 @@ +# Update Moment + +## Update CID + +```typescript +const momentId = 'b08fad41-7154-499f-88f9-abea66ceab48'; +const cid = '0001-7ce5368171cc3d988157d7dab3d313d7bd43de3e-365e5b83699adce0825021d011f1bf73bd5ef9369d06e49645afbea2ef34f54e0557c1d4742c8bd6d1f7a02be4aa483c03888af0aa143d5aa7351e2baaf931231c.moment'; + +await client.patchMoment(momentId, { + cid, +}); +``` diff --git a/docs/pages/packages/moments/UploadMoments.mdx b/docs/pages/packages/moments/UploadMoments.mdx index 0cf1df55..e8141f06 100644 --- a/docs/pages/packages/moments/UploadMoments.mdx +++ b/docs/pages/packages/moments/UploadMoments.mdx @@ -6,17 +6,44 @@ upload an image and create it as a moment associated with a Drop or a POAP. ## From Node.js ```typescript +import mime from 'mime'; import fsPromises from 'fs/promises'; import { Moment } from '@poap-xyz/moments'; +// Load the image of the moment. +const fileBuffer = await fsPromises.readFile('path/to/poap-moment.png'); +const mimeType = mime.getType('path/to/poap-moment.png'); + +// Upload it. const moment: Moment = await client.createMoment({ + /** + * Moments are associated with a Drop. + */ dropId: 110148, + /** - * The Token ID related to the moment (Optional) + * The Token ID related to the moment (optional). */ tokenId: 6568008, - mimeType: 'image/png', - file: await fsPromises.readFile('path/to/file.png'), + + /** + * Who is uploading the moment. + */ author: '0x82AB2941Cf555CED5ad7Ed232a5B5f6083815FBC', + + /** + * The list of images in the moment. + */ + media: [ + { + fileBinary: fileBuffer, + fileType: mimeType, + }, + ], + + /** + * Some text to describe the moment. + */ + description: 'Look how much fun we were having!', }); ``` diff --git a/docs/pages/packages/moments/_meta.json b/docs/pages/packages/moments/_meta.json index c059eaa8..9a8b38e8 100644 --- a/docs/pages/packages/moments/_meta.json +++ b/docs/pages/packages/moments/_meta.json @@ -1,3 +1,5 @@ { - "UploadMoments": "Upload Moments" + "FetchMoments": "Fetch Moments", + "UploadMoments": "Upload Moments", + "UpdateMoment": "Update Moment" } diff --git a/docs/pages/packages/poaps/EmailReservation.mdx b/docs/pages/packages/poaps/EmailReservation.mdx new file mode 100644 index 00000000..2ac0a285 --- /dev/null +++ b/docs/pages/packages/poaps/EmailReservation.mdx @@ -0,0 +1,18 @@ +# Email Reservation + +A POAP can be reserved with an email where to receive the instructions to mint +the it to the blockchain in the future. The email could be not be send in cases +that another email is send in their place or the collector knows already how to +mint it afterwards. + +```typescript +import { POAPReservation } from '@poap-xyz/poaps'; + +const emailReservation: POAPReservation = await client.emailReservation({ + mintCode: 'your_poap_code', + email: 'your@email.io', + sendEmail: true, +}); +``` + +This method can throw [custom errors](Errors) that need to handled. diff --git a/docs/pages/packages/poaps/Errors.mdx b/docs/pages/packages/poaps/Errors.mdx index b9cb10a5..88e0e4f5 100644 --- a/docs/pages/packages/poaps/Errors.mdx +++ b/docs/pages/packages/poaps/Errors.mdx @@ -9,10 +9,15 @@ These custom error classes allow for more precise error handling and better debu Below example demonstrates how one might use the `PoapsClient` class along with the custom error handling. ```typescript -import { FinishedWithError } from '@poap-xyz/poaps'; +import { + POAP, + FinishedWithError, + CodeAlreadyMintedError, + CodeExpiredError, +} from '@poap-xyz/poaps'; try { - const poap = await client.mintSync({ + const poap: POAP = await client.mintSync({ mintCode: 'some-mint-code', address: '0x1234567890abcdef1234567890abcdef12345678', }); diff --git a/docs/pages/packages/poaps/FetchPOAPs.mdx b/docs/pages/packages/poaps/FetchPOAPs.mdx new file mode 100644 index 00000000..d71a1a93 --- /dev/null +++ b/docs/pages/packages/poaps/FetchPOAPs.mdx @@ -0,0 +1,85 @@ +# Fetch POAPs + +Once POAPs have been minted they could be fetched with `PoapsClient`. + +## Fetch single POAP + +To retrieve one POAP it can be done with it's ID. + +```typescript +import { POAP } from '@poap-xyz/poaps'; +import { PaginatedResult } from '@poap-xyz/utils'; + +const poapId = 999; + +const paginatedPOAPs: PaginatedResult = await client.fetch({ + offset: 0, + limit: 1, + ids: [poapId], +}); + +if (paginatedPOAPs.items.length === 0) { + throw new Error('My POAP was not found'); +} + +const poap: POAP = paginatedPOAPs.items[0]; +``` + +## List POAPs + +Paginated POAPs are fetched using `offset` and `limit`. They can also be sorted. + +```typescript +import { POAP, PoapsSortFields } from '@poap-xyz/poaps'; +import { Order, PaginatedResult } from '@poap-xyz/utils'; + +const paginatedPOAPs: PaginatedResult = await client.fetch({ + offset: 0, + limit: 10, + sortField: PoapsSortFields.MintedOn, + sortDir: Order.DESC, +}); +``` + +### By Collector + +By giving a collector's address, the list of POAPs owned by that address can be +fetched. + +```typescript +import { POAP, PoapsSortFields } from '@poap-xyz/poaps'; +import { Order, PaginatedResult } from '@poap-xyz/utils'; + +// The address of the collector. +const collectorAddress = '0xf6B6F07862A02C85628B3A9688beae07fEA9C863'; + +const collectorPOAPs: PaginatedResult = await client.fetch({ + offset: 0, + limit: 10, + sortField: PoapsSortFields.MintedOn, + sortDir: Order.ASC, + collectorAddress, +}); +``` + +### By Drop + +Get all the POAPs associated to a Drop by giving the ID, and optional filter out +the zero and dead addresses. + +```typescript +import { POAP, PoapsSortFields } from '@poap-xyz/poaps'; +import { Order, PaginatedResult } from '@poap-xyz/utils'; + +const dropId = 14; + +const dropPOAPs: PaginatedResult = await client.fetch({ + offset: 0, + limit: 10, + sortField: PoapsSortFields.MintedOn, + sortDir: Order.ASC, + filterZeroAddress: true, + filterDeadAddress: true, + dropId, +}); +``` diff --git a/docs/pages/packages/poaps/Mint.mdx b/docs/pages/packages/poaps/Mint.mdx new file mode 100644 index 00000000..86f1a3e8 --- /dev/null +++ b/docs/pages/packages/poaps/Mint.mdx @@ -0,0 +1,49 @@ +# Mint POAP + +Minting a POAP is an asynchronous process, but with `PoapsClient` it can simplified +to only one method call. + +## Async + +If you prefer to send the minting to the server and then wait for the POAP to be +minted, and eventually, once indexed, the token ID can be retrieved. + +```typescript +import { POAP } from '@poap-xyz/poaps'; + +// Initiate the asynchronous mint process. +await client.mintAsync({ + mintCode: 'your_mint_code', + address: 'your_address', +}); + +// Wait for the mint's status to transition from 'IN_PROCESS' or 'PENDING' states. +await client.waitMintStatus('your_mint_code'); + +// Wait for the minted POAP to be indexed and fetch the mint code information related to the Mint Code. +const { poapId } = await client.waitPoapIndexed('your_mint_code'); + +// Retrieve the minted POAP. +const poap: POAP = ( + await client.fetch({ + offset: 0, + limit: 1, + ids: [poapId], + }) +).items[0]; +``` + +## Sync + +All the minting process can done automatically by `PoapsClient`. + +```typescript +import { POAP } from '@poap-xyz/poaps'; + +const poap: POAP = await client.mintSync({ + mintCode: 'your_poap_code', + address: 'your_address', +}); +``` + +Don't forget to handle [custom errors](Errors). diff --git a/docs/pages/packages/poaps/_meta.json b/docs/pages/packages/poaps/_meta.json index 0f3f9d36..aa050731 100644 --- a/docs/pages/packages/poaps/_meta.json +++ b/docs/pages/packages/poaps/_meta.json @@ -1,3 +1,6 @@ { - "Errors": "Error Handling" + "EmailReservation": "Email Reservation", + "Mint": "Mint POAP", + "Errors": "Error Handling", + "FetchPOAPs": "Fetch POAPs" } diff --git a/examples/drops/backend/.env.template b/examples/drops/backend/.env.template deleted file mode 100644 index 2f9f53aa..00000000 --- a/examples/drops/backend/.env.template +++ /dev/null @@ -1,6 +0,0 @@ -CLIENT_ID=client_id -CLIENT_SECRET=client_secret -API_KEY=api_key -OAUTH_SERVER_DOMAIN=oauth_server_domain -POAP_DROPS_BASE_URL=poap_drops_base_url -COMPASS_URL=https://dev-compass.poap.tech/v1/graphql diff --git a/examples/drops/backend/.nvmrc b/examples/drops/backend/.nvmrc deleted file mode 100644 index 0828ab79..00000000 --- a/examples/drops/backend/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v18 \ No newline at end of file diff --git a/examples/drops/backend/package.json b/examples/drops/backend/package.json deleted file mode 100644 index 613ca0d9..00000000 --- a/examples/drops/backend/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "backend-drops-example", - "version": "1.0.0", - "description": "Backend example for using the library", - "main": "src/index.ts", - "scripts": { - "start": "ts-node ./src/index.ts", - "build": "tsc", - "test": "echo \"No tests specified\" && exit 0" - }, - "dependencies": { - "@poap-xyz/drops": "*", - "@poap-xyz/providers": "*", - "@poap-xyz/utils": "*", - "@types/node": "^18.16.0", - "axios": "^1.6.8", - "dotenv": "^16.0.3", - "stream": "^0.0.2" - }, - "devDependencies": { - "@types/node-fetch": "^2.6.3", - "ts-node": "^10.4.0", - "typescript": "^4.5.5" - }, - "engines": { - "node": ">=18" - } -} diff --git a/examples/drops/backend/src/assets/poap.png b/examples/drops/backend/src/assets/poap.png deleted file mode 100644 index 0e9cb135..00000000 Binary files a/examples/drops/backend/src/assets/poap.png and /dev/null differ diff --git a/examples/drops/backend/src/index.ts b/examples/drops/backend/src/index.ts deleted file mode 100644 index a8743b55..00000000 --- a/examples/drops/backend/src/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { DropsClient } from '@poap-xyz/drops'; -import { PoapCompass, PoapDropApi } from '@poap-xyz/providers'; -import { fetch_multiple_drops } from './methods/fetch_multiple_drops'; -import { fetch_single_drop } from './methods/fetch_single_drop'; -import { create_drop } from './methods/create_drop'; -import { getRequiredEnvVar } from './methods/get_required_env_var'; - -import dotenv from 'dotenv'; - -dotenv.config(); - -async function main(): Promise { - // Use your library here - const client = new DropsClient( - new PoapCompass({ - baseUrl: getRequiredEnvVar('COMPASS_URL'), - apiKey: getRequiredEnvVar('API_KEY'), - }), - new PoapDropApi({ - apiKey: getRequiredEnvVar('API_KEY'), - baseUrl: getRequiredEnvVar('POAP_DROPS_BASE_URL'), - }), - ); - // Multiple Drops - await fetch_multiple_drops(client); - // One Drop by id - await fetch_single_drop(client); - // Create Drop - await create_drop(client); -} - -main().catch((error) => { - console.error(error); - process.exit(1); -}); diff --git a/examples/drops/backend/src/methods/create_drop.ts b/examples/drops/backend/src/methods/create_drop.ts deleted file mode 100644 index c3a636f2..00000000 --- a/examples/drops/backend/src/methods/create_drop.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { DropsClient } from '@poap-xyz/drops'; -import { CreateDropsInput } from '@poap-xyz/drops/dist/cjs/types'; -import fs from 'fs'; - -const today = new Date(); -const oneMonthFromToday = new Date( - today.getFullYear(), - today.getMonth() + 1, - today.getDate(), -); -const twoMonthsFromToday = new Date( - today.getFullYear(), - today.getMonth() + 2, - today.getDate(), -); - -const toPOAPdate = (date: Date): string => { - return date - .toLocaleDateString('en-US', { - month: '2-digit', - day: '2-digit', - year: 'numeric', - }) - .replace(/\//g, '-'); -}; - -export const create_drop = async (client: DropsClient): Promise => { - const buffer = await fs.promises.readFile('src/assets/poap.png'); - const image = new Blob([buffer], { type: 'image/png' }); - - const createDrop: CreateDropsInput = { - name: 'Test ' + toPOAPdate(today), - description: 'Description', - city: 'Buenos Aires', - country: 'Argentina', - startDate: toPOAPdate(today), - endDate: toPOAPdate(oneMonthFromToday), - expiryDate: toPOAPdate(twoMonthsFromToday), - eventUrl: 'https://poap.xyz/', - virtualEvent: true, - secretCode: '123456', - image, - filename: 'file.png', - contentType: 'image/png', - eventTemplateId: 1, - email: 'your_email@poap.io', - requestedCodes: 10, - privateEvent: true, - }; - - try { - const response = await client.create(createDrop); - console.log(response); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/drops/backend/src/methods/fetch_multiple_drops.ts b/examples/drops/backend/src/methods/fetch_multiple_drops.ts deleted file mode 100644 index a393b316..00000000 --- a/examples/drops/backend/src/methods/fetch_multiple_drops.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Drop, DropsClient, DropsSortFields } from '@poap-xyz/drops'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_multiple_drops = async ( - client: DropsClient, -): Promise => { - try { - const data: PaginatedResult = await client.fetch({ - sortField: DropsSortFields.Id, - sortDir: Order.ASC, - limit: 10, - offset: 1, - }); - console.log(data); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/drops/backend/src/methods/fetch_single_drop.ts b/examples/drops/backend/src/methods/fetch_single_drop.ts deleted file mode 100644 index a004af33..00000000 --- a/examples/drops/backend/src/methods/fetch_single_drop.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Drop, DropsClient, DropsSortFields } from '@poap-xyz/drops'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_single_drop = async (client: DropsClient): Promise => { - try { - const data: PaginatedResult = await client.fetch({ - sortField: DropsSortFields.Id, - sortDir: Order.ASC, - limit: 10, - offset: 0, - ids: [1], - }); - console.log(data); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/drops/backend/src/methods/get_required_env_var.ts b/examples/drops/backend/src/methods/get_required_env_var.ts deleted file mode 100644 index 63322d09..00000000 --- a/examples/drops/backend/src/methods/get_required_env_var.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const getRequiredEnvVar = (envVarName: string): string => { - const envVar = process.env[envVarName]; - if (envVar === undefined) { - throw new Error(`Environment variable ${envVarName} is required`); - } - return envVar; -}; diff --git a/examples/drops/backend/tsconfig.json b/examples/drops/backend/tsconfig.json deleted file mode 100644 index b8902d40..00000000 --- a/examples/drops/backend/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "lib": [ - "es6" - ], - "target": "es6", - "module": "commonjs", - "moduleResolution": "node", - "outDir": "dist", - "resolveJsonModule": true, - "emitDecoratorMetadata": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "sourceMap": true, - "allowSyntheticDefaultImports": true - - }, - "include": ["src/**/*.ts", "src/assets/*.png"], - "exclude": ["node_modules", "**/*.spec.ts"] -} diff --git a/examples/frames/.nvmrc b/examples/frames/.nvmrc deleted file mode 100644 index 0828ab79..00000000 --- a/examples/frames/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v18 \ No newline at end of file diff --git a/examples/frames/package.json b/examples/frames/package.json deleted file mode 100644 index 90086708..00000000 --- a/examples/frames/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "backend-frames-example", - "version": "1.0.0", - "description": "Backend example for using the library", - "main": "src/index.ts", - "scripts": { - "start": "ts-node ./src/index.ts", - "build": "tsc", - "test": "echo \"No tests specified\" && exit 0" - }, - "dependencies": { - "@poap-xyz/frames": "*", - "@poap-xyz/providers": "*", - "@poap-xyz/utils": "*", - "@types/node": "^18.16.0", - "axios": "^1.6.8", - "dotenv": "^16.0.3", - "stream": "^0.0.2" - }, - "devDependencies": { - "@types/node-fetch": "^2.6.3", - "ts-node": "^10.4.0", - "typescript": "^4.5.5" - }, - "engines": { - "node": ">=18" - } -} diff --git a/examples/frames/src/frames/base.ts b/examples/frames/src/frames/base.ts deleted file mode 100644 index dd62c8de..00000000 --- a/examples/frames/src/frames/base.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Frame, FrameAspectRatio } from '@poap-xyz/frames'; - -export const BASE_FRAME = new Frame({ - title: 'Hello World', - image: 'https://placehold.co/600x600', - aspectRatio: FrameAspectRatio.SQUARE, - postUrl: 'https://poap.xyz', -}); diff --git a/examples/frames/src/index.ts b/examples/frames/src/index.ts deleted file mode 100644 index 78a6bd34..00000000 --- a/examples/frames/src/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import dotenv from 'dotenv'; -import { Frame } from '@poap-xyz/frames'; -import { BASE_FRAME } from './frames/base'; -import { FRAME_WITH_BUTTONS } from './frames/buttons'; - -dotenv.config(); - -function main(): void { - runFrameExample('Base frame', BASE_FRAME); - runFrameExample('Frame with buttons', FRAME_WITH_BUTTONS); -} - -function runFrameExample(name: string, frame: Frame): void { - console.log(name); - console.log('meta tags:'); - console.log(frame.toMetaTags()); - console.log('html:'); - console.log(frame.render()); - console.log('---------'); -} - -main(); diff --git a/examples/frames/tsconfig.json b/examples/frames/tsconfig.json deleted file mode 100644 index 8c8a9317..00000000 --- a/examples/frames/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "lib": ["es6"], - "target": "es6", - "module": "commonjs", - "moduleResolution": "node", - "outDir": "dist", - "resolveJsonModule": true, - "emitDecoratorMetadata": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "sourceMap": true, - "allowSyntheticDefaultImports": true, - }, - "include": ["src/**/*.ts", "src/assets/*.png"], - "exclude": ["node_modules", "**/*.spec.ts"], -} diff --git a/examples/moments/backend/.env.template b/examples/moments/backend/.env.template deleted file mode 100644 index a4943983..00000000 --- a/examples/moments/backend/.env.template +++ /dev/null @@ -1,2 +0,0 @@ -CLIENT_ID= -CLIENT_SECRET= \ No newline at end of file diff --git a/examples/moments/backend/.nvmrc b/examples/moments/backend/.nvmrc deleted file mode 100644 index 0828ab79..00000000 --- a/examples/moments/backend/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v18 \ No newline at end of file diff --git a/examples/moments/backend/package.json b/examples/moments/backend/package.json deleted file mode 100644 index e6131833..00000000 --- a/examples/moments/backend/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "backend-moments-example", - "version": "1.0.0", - "description": "Backend example for using the library", - "main": "src/index.ts", - "scripts": { - "start": "ts-node ./src/index.ts", - "build": "tsc", - "test": "echo \"No tests specified\" && exit 0" - }, - "dependencies": { - "@poap-xyz/moments": "*", - "@poap-xyz/providers": "*", - "@poap-xyz/utils": "*", - "axios": "^1.3.6", - "dotenv": "^16.0.3", - "form-data": "^4.0.0", - "mime": "^3.0.0", - "node-fetch": "^3.3.1" - }, - "devDependencies": { - "@types/mime": "^3.0.1", - "@types/node": "^18.16.0", - "@types/node-fetch": "^2.6.3", - "ts-node": "^10.4.0", - "typescript": "^4.5.5" - } -} diff --git a/examples/moments/backend/src/assets/poap.png b/examples/moments/backend/src/assets/poap.png deleted file mode 100644 index 0e9cb135..00000000 Binary files a/examples/moments/backend/src/assets/poap.png and /dev/null differ diff --git a/examples/moments/backend/src/index.ts b/examples/moments/backend/src/index.ts deleted file mode 100644 index b972bf81..00000000 --- a/examples/moments/backend/src/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { MomentsClient } from '@poap-xyz/moments'; -import { - PoapCompass, - PoapMomentsApi, - AuthenticationProviderHttp, -} from '@poap-xyz/providers'; -import { create_moment } from './methods/create_moment'; -import { patch_moment } from './methods/patch_moment'; -import { fetch_multiple_moments } from './methods/fetch_multiple_moments'; -import { fetch_single_moment } from './methods/fetch_single_moment'; -import { fetch_moments_by_drop_ids } from './methods/fetch_moments_by_drop_ids'; -import { getRequiredEnvVar } from './methods/get_required_env_var'; -import dotenv from 'dotenv'; - -dotenv.config(); - -async function main(): Promise { - const momentsApi = new PoapMomentsApi({ - // You need to provide an authentication provider for write operations - authenticationProvider: new AuthenticationProviderHttp( - getRequiredEnvVar('CLIENT_ID'), - getRequiredEnvVar('CLIENT_SECRET'), - ), - }); - - // We use Compass for read operations - const compass = new PoapCompass({ - apiKey: 'your_api_key', - }); - - // Use your library here - const client = new MomentsClient(momentsApi, compass); - // Create Moment - - await create_moment(client); - // Fetch multiple moments - await fetch_multiple_moments(client); - // Fetch one moment by id - await fetch_single_moment(client); - // Fetch moments by drop ids - await fetch_moments_by_drop_ids(client); - // Patch Moment - await patch_moment(client); -} - -main().catch(() => { - process.exit(1); -}); diff --git a/examples/moments/backend/src/methods/create_moment.ts b/examples/moments/backend/src/methods/create_moment.ts deleted file mode 100644 index 8ddc9f24..00000000 --- a/examples/moments/backend/src/methods/create_moment.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { CreateMomentInput, MomentsClient } from '@poap-xyz/moments'; -import fs from 'fs'; -import mime from 'mime'; - -export const create_moment = async (client: MomentsClient): Promise => { - const fileBuffer = await fs.promises.readFile('src/assets/poap.png'); - const mimeType = mime.getType('src/assets/poap.png'); - - if (!mimeType) { - console.log('Could not determine file type.'); - return; - } - - const input: CreateMomentInput = { - dropId: 110148, - /** - * The Token ID related to the moment (Optional) - */ - tokenId: 6568008, - author: '0x82AB2941Cf555CED5ad7Ed232a5B5f6083815FBC', - media: [ - { - fileBinary: fileBuffer, - fileType: mimeType, - }, - ], - description: 'This is a description', - }; - - try { - const response = await client.createMoment(input); - console.log(response); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/moments/backend/src/methods/fetch_moments_by_drop_ids.ts b/examples/moments/backend/src/methods/fetch_moments_by_drop_ids.ts deleted file mode 100644 index 587cee1f..00000000 --- a/examples/moments/backend/src/methods/fetch_moments_by_drop_ids.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { FetchMomentsInput, Moment, MomentsClient } from '@poap-xyz/moments'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_moments_by_drop_ids = async ( - client: MomentsClient, -): Promise => { - console.log('fetch_moments_by_drop_ids'); - const input: FetchMomentsInput = { - offset: 0, - limit: 10, - drop_ids: [1], - idOrder: Order.DESC, - }; - console.log(input); - - try { - const data: PaginatedResult = await client.fetch(input); - console.log(data); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/moments/backend/src/methods/fetch_multiple_moments.ts b/examples/moments/backend/src/methods/fetch_multiple_moments.ts deleted file mode 100644 index 18225e5d..00000000 --- a/examples/moments/backend/src/methods/fetch_multiple_moments.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { FetchMomentsInput, Moment, MomentsClient } from '@poap-xyz/moments'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_multiple_moments = async ( - client: MomentsClient, -): Promise => { - const input: FetchMomentsInput = { - offset: 0, - limit: 10, - idOrder: Order.DESC, - }; - - try { - const data: PaginatedResult = await client.fetch(input); - console.log(data); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/moments/backend/src/methods/fetch_single_moment.ts b/examples/moments/backend/src/methods/fetch_single_moment.ts deleted file mode 100644 index 4eed9e41..00000000 --- a/examples/moments/backend/src/methods/fetch_single_moment.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { FetchMomentsInput, Moment, MomentsClient } from '@poap-xyz/moments'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_single_moment = async ( - client: MomentsClient, -): Promise => { - const input: FetchMomentsInput = { - offset: 0, - limit: 10, - id: '7284219b-1bc7-43b8-ab27-44749bdd91e1', - idOrder: Order.DESC, - }; - try { - const data: PaginatedResult = await client.fetch(input); - console.log(data); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/moments/backend/src/methods/get_required_env_var.ts b/examples/moments/backend/src/methods/get_required_env_var.ts deleted file mode 100644 index 8b5a7bb7..00000000 --- a/examples/moments/backend/src/methods/get_required_env_var.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const getRequiredEnvVar = (envVarName: string): string => { - const env_var = process.env[envVarName]; - if (env_var === undefined) { - throw new Error(`Environment variable ${envVarName} is required`); - } - return env_var; -}; diff --git a/examples/moments/backend/src/methods/patch_moment.ts b/examples/moments/backend/src/methods/patch_moment.ts deleted file mode 100644 index e568d00b..00000000 --- a/examples/moments/backend/src/methods/patch_moment.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { MomentsClient, PatchMomentInput } from '@poap-xyz/moments'; - -export const patch_moment = async (client: MomentsClient): Promise => { - const momentId = "b08fad41-7154-499f-88f9-abea66ceab48" - const input: PatchMomentInput = { - cid: "0001-7ce5368171cc3d988157d7dab3d313d7bd43de3e-365e5b83699adce0825021d011f1bf73bd5ef9369d06e49645afbea2ef34f54e0557c1d4742c8bd6d1f7a02be4aa483c03888af0aa143d5aa7351e2baaf931231c.moment", - }; - - try { - await client.patchMoment(momentId, input); - console.log('Patch successful'); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/moments/backend/tsconfig.json b/examples/moments/backend/tsconfig.json deleted file mode 100644 index b8902d40..00000000 --- a/examples/moments/backend/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "lib": [ - "es6" - ], - "target": "es6", - "module": "commonjs", - "moduleResolution": "node", - "outDir": "dist", - "resolveJsonModule": true, - "emitDecoratorMetadata": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "sourceMap": true, - "allowSyntheticDefaultImports": true - - }, - "include": ["src/**/*.ts", "src/assets/*.png"], - "exclude": ["node_modules", "**/*.spec.ts"] -} diff --git a/examples/poaps/backend/.env.template b/examples/poaps/backend/.env.template deleted file mode 100644 index 7c00d81b..00000000 --- a/examples/poaps/backend/.env.template +++ /dev/null @@ -1,5 +0,0 @@ -CLIENT_ID= -CLIENT_SECRET= -API_KEY= -OAUTH_SERVER_DOMAIN= -POAP_TOKEN_BASE_URL=https://api.poap.tech diff --git a/examples/poaps/backend/.nvmrc b/examples/poaps/backend/.nvmrc deleted file mode 100644 index 0828ab79..00000000 --- a/examples/poaps/backend/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v18 \ No newline at end of file diff --git a/examples/poaps/backend/package.json b/examples/poaps/backend/package.json deleted file mode 100644 index 71f38933..00000000 --- a/examples/poaps/backend/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "backend-poaps-example", - "version": "1.0.0", - "description": "Backend example for using the library", - "main": "src/index.ts", - "scripts": { - "start": "ts-node ./src/index.ts", - "build": "tsc", - "test": "echo \"No tests specified\" && exit 0" - }, - "dependencies": { - "@poap-xyz/poaps": "*", - "@poap-xyz/providers": "*", - "@poap-xyz/utils": "*", - "@types/node": "^18.16.0", - "axios": "^1.6.8", - "dotenv": "^16.0.3", - "perf_hooks": "^0.0.1", - "stream": "^0.0.2" - }, - "devDependencies": { - "ts-node": "^10.4.0", - "typescript": "^4.5.5" - } -} diff --git a/examples/poaps/backend/src/index.ts b/examples/poaps/backend/src/index.ts deleted file mode 100644 index 2810af0b..00000000 --- a/examples/poaps/backend/src/index.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { PoapsClient } from '@poap-xyz/poaps'; -import { - AuthenticationProviderHttp, - PoapCompass, - PoapTokenApi, -} from '@poap-xyz/providers'; -import { fetch_multiple_poaps } from './methods/fetch_multiple_poaps'; -import { fetch_single_poap } from './methods/fetch_single_poap'; -import { fetch_multiple_poaps_by_collector } from './methods/fetch_multiple_poaps_by_collector'; -import { fetch_multiple_poaps_by_drop_id } from './methods/fetch_multiple_poaps_by_drop_id'; -import { mint_sync_poap } from './methods/mint_sync_poap'; -import { getRequiredEnvVar } from './methods/get_required_env_var'; -import { mint_async_poap } from './methods/mint_async_poap'; -import { email_reservation_poap } from './methods/email_reservation_poap'; -import dotenv from 'dotenv'; - -dotenv.config(); - -async function main(): Promise { - // Use your library here - const client = new PoapsClient( - new PoapCompass({ - apiKey: getRequiredEnvVar('API_KEY'), - }), - new PoapTokenApi({ - apiKey: getRequiredEnvVar('API_KEY'), - baseUrl: getRequiredEnvVar('POAP_TOKEN_BASE_URL'), - authenticationProvider: new AuthenticationProviderHttp( - getRequiredEnvVar('CLIENT_ID'), - getRequiredEnvVar('CLIENT_SECRET'), - getRequiredEnvVar('OAUTH_SERVER_DOMAIN'), - ), - }), - ); - // Multiple POAPs - await fetch_multiple_poaps(client); - // One POAP by id - await fetch_single_poap(client); - // Multiple POAPs by collector - await fetch_multiple_poaps_by_collector(client); - // Multiple POAPs by drop - await fetch_multiple_poaps_by_drop_id(client); - // mint Sync POAP - await mint_sync_poap(client); - // mint Async POAP - await mint_async_poap(client); - // Email Reservation POAP - await email_reservation_poap(client); -} - -main().catch((error) => { - console.error(error); - process.exit(1); -}); diff --git a/examples/poaps/backend/src/methods/email_reservation_poap.ts b/examples/poaps/backend/src/methods/email_reservation_poap.ts deleted file mode 100644 index cc1c6497..00000000 --- a/examples/poaps/backend/src/methods/email_reservation_poap.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { PoapsClient, POAPReservation } from '@poap-xyz/poaps'; -import { handleError } from '../utils/handleError'; - -export const email_reservation_poap = async ( - client: PoapsClient, -): Promise => { - try { - const data: POAPReservation = await client.emailReservation({ - mintCode: 'your_poap_code', - email: 'your@email.io', - sendEmail: true, - }); - console.log(data); - } catch (error) { - handleError(error); - } -}; diff --git a/examples/poaps/backend/src/methods/fetch_multiple_poaps.ts b/examples/poaps/backend/src/methods/fetch_multiple_poaps.ts deleted file mode 100644 index a0f512a2..00000000 --- a/examples/poaps/backend/src/methods/fetch_multiple_poaps.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { POAP, PoapsClient, PoapsSortFields } from '@poap-xyz/poaps'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_multiple_poaps = async ( - client: PoapsClient, -): Promise => { - try { - const data: PaginatedResult = await client.fetch({ - sortField: PoapsSortFields.MintedOn, - sortDir: Order.ASC, - limit: 10, - offset: 0, - }); - console.log(data); - console.log('The first 10 POAP tokens minted.'); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/poaps/backend/src/methods/fetch_multiple_poaps_by_collector.ts b/examples/poaps/backend/src/methods/fetch_multiple_poaps_by_collector.ts deleted file mode 100644 index 6d102895..00000000 --- a/examples/poaps/backend/src/methods/fetch_multiple_poaps_by_collector.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { POAP, PoapsClient, PoapsSortFields } from '@poap-xyz/poaps'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_multiple_poaps_by_collector = async ( - client: PoapsClient, -): Promise => { - try { - const data: PaginatedResult = await client.fetch({ - sortField: PoapsSortFields.MintedOn, - sortDir: Order.ASC, - limit: 10, - offset: 0, - collectorAddress: '0xf6B6F07862A02C85628B3A9688beae07fEA9C863', - }); - console.log(data); - console.log( - 'The first 10 POAP tokens minted by collector 0xf6B6F07862A02C85628B3A9688beae07fEA9C863.', - ); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/poaps/backend/src/methods/fetch_multiple_poaps_by_drop_id.ts b/examples/poaps/backend/src/methods/fetch_multiple_poaps_by_drop_id.ts deleted file mode 100644 index fda3ef2a..00000000 --- a/examples/poaps/backend/src/methods/fetch_multiple_poaps_by_drop_id.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { POAP, PoapsClient, PoapsSortFields } from '@poap-xyz/poaps'; -import { Order, PaginatedResult } from '@poap-xyz/utils'; - -export const fetch_multiple_poaps_by_drop_id = async ( - client: PoapsClient, -): Promise => { - try { - const data: PaginatedResult = await client.fetch({ - sortField: PoapsSortFields.MintedOn, - sortDir: Order.DESC, - limit: 10, - offset: 0, - dropId: 3, - filterZeroAddress: true, - filterDeadAddress: true, - }); - console.log(data); - console.log('The first 10 POAP tokens minted for the drop 14.'); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/poaps/backend/src/methods/fetch_single_poap.ts b/examples/poaps/backend/src/methods/fetch_single_poap.ts deleted file mode 100644 index 9675302f..00000000 --- a/examples/poaps/backend/src/methods/fetch_single_poap.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { POAP, PoapsClient, PoapsSortFields } from '@poap-xyz/poaps'; -import { PaginatedResult, Order } from '@poap-xyz/utils'; - -export const fetch_single_poap = async (client: PoapsClient): Promise => { - try { - const data: PaginatedResult = await client.fetch({ - sortField: PoapsSortFields.MintedOn, - sortDir: Order.ASC, - limit: 10, - offset: 0, - ids: [1], - }); - console.log(data); - console.log('PaginatedResult: But only contains one POAP'); - } catch (error) { - console.log(error); - } -}; diff --git a/examples/poaps/backend/src/methods/get_required_env_var.ts b/examples/poaps/backend/src/methods/get_required_env_var.ts deleted file mode 100644 index 63322d09..00000000 --- a/examples/poaps/backend/src/methods/get_required_env_var.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const getRequiredEnvVar = (envVarName: string): string => { - const envVar = process.env[envVarName]; - if (envVar === undefined) { - throw new Error(`Environment variable ${envVarName} is required`); - } - return envVar; -}; diff --git a/examples/poaps/backend/src/methods/mint_async_poap.ts b/examples/poaps/backend/src/methods/mint_async_poap.ts deleted file mode 100644 index 8e9119ed..00000000 --- a/examples/poaps/backend/src/methods/mint_async_poap.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { PoapsClient } from '@poap-xyz/poaps'; -import { handleError } from '../utils/handleError'; - -/** - * Attempts to mint a POAP token asynchronously based on a predefined Mint Code and address. - * After successfully minting, the function fetches and logs the details of the minted POAP. - * In the event of an error during the process, the error is captured and managed by a separate utility function. - * - * Note: Replace 'your_mint_code' and 'your_address' placeholders with appropriate values. - * - * @async - * @function - * @param {PoapsClient} client - An instance of the PoapsClient to interface with the POAP service. - * @returns {Promise} Resolves when the operation completes, either with a minted POAP or an error. - */ -export const mint_async_poap = async (client: PoapsClient): Promise => { - try { - // Initiate the asynchronous mint process - await client.mintAsync({ - mintCode: 'your_mint_code', - address: 'your_address', - }); - - // Wait for the mint's status to transition from 'IN_PROCESS' or 'PENDING' states - await client.waitMintStatus('your_mint_code'); - - // Wait for the minted POAP to be indexed and fetch the mint code information related to the Mint Code - const getMintCodeResponse = await client.waitPoapIndexed('your_mint_code'); - - // Retrieve and log the specifics of the minted POAP - console.log( - ( - await client.fetch({ - limit: 1, - offset: 0, - ids: [getMintCodeResponse.poapId], - }) - ).items[0], - ); - } catch (error) { - // Address any errors using the designated utility function - handleError(error); - } -}; diff --git a/examples/poaps/backend/src/methods/mint_sync_poap.ts b/examples/poaps/backend/src/methods/mint_sync_poap.ts deleted file mode 100644 index 8decac76..00000000 --- a/examples/poaps/backend/src/methods/mint_sync_poap.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { POAP, PoapsClient } from '@poap-xyz/poaps'; -import { handleError } from '../utils/handleError'; - -export const mint_sync_poap = async (client: PoapsClient): Promise => { - try { - const data: POAP = await client.mintSync({ - mintCode: 'your_poap_code', - address: 'your_address', - }); - console.log(data); - } catch (error) { - handleError(error); - } -}; diff --git a/examples/poaps/backend/src/utils/handleError.ts b/examples/poaps/backend/src/utils/handleError.ts deleted file mode 100644 index 3222c06c..00000000 --- a/examples/poaps/backend/src/utils/handleError.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - CodeAlreadyMintedError, - CodeExpiredError, - FinishedWithError, -} from '@poap-xyz/poaps'; - -/** - * Handles specific POAP-related errors by logging them. - * - * Errors handled: - * - CodeAlreadyMintedError: Thrown when a POAP mint code has already been minted. - * - CodeExpiredError: Thrown when a POAP mint code has expired and is no longer valid for minting. - * - FinishedWithError: Thrown when the POAP mint process completes but encounters an error. - * - * @param {unknown} error - The error object to be checked and handled. - */ -export const handleError = (error: unknown): void => { - if ( - // Checks if the error is an instance of CodeAlreadyClaimedError. - // This error occurs when a user attempts to mint a POAP that has already been minted by someone else. - error instanceof CodeAlreadyMintedError || - // Checks if the error is an instance of CodeExpiredError. - // This error is thrown when the mint code for a POAP has expired. - error instanceof CodeExpiredError || - // Checks if the error is an instance of FinishedWithError. - // This error indicates that the POAP mint process finished but encountered an unexpected error. - error instanceof FinishedWithError - ) { - // Logs the specific error message. - console.error(error); - } else { - // Logs the generic error message. - console.error('An unexpected error occurred:', error); - } -}; diff --git a/examples/poaps/backend/tsconfig.json b/examples/poaps/backend/tsconfig.json deleted file mode 100644 index 57666324..00000000 --- a/examples/poaps/backend/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "lib": [ - "es6" - ], - "target": "es6", - "module": "commonjs", - "moduleResolution": "node", - "outDir": "dist", - "resolveJsonModule": true, - "emitDecoratorMetadata": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "sourceMap": true, - "allowSyntheticDefaultImports": true - - }, - "include": ["src/**/*.ts"], - "exclude": ["node_modules", "**/*.spec.ts"] -} diff --git a/package.json b/package.json index fa5d26cd..07aa38bd 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,7 @@ "typescript": "^5.3.3" }, "workspaces": [ - "packages/*", - "examples/**" + "packages/*" ], "packageManager": "yarn@3.5.0" } diff --git a/packages/drops/package.json b/packages/drops/package.json index 5a46054a..e4d842bf 100644 --- a/packages/drops/package.json +++ b/packages/drops/package.json @@ -1,6 +1,6 @@ { "name": "@poap-xyz/drops", - "version": "0.5.1", + "version": "0.5.2", "description": "Drops module for the poap.js library", "main": "dist/cjs/index.cjs", "module": "dist/esm/index.mjs", @@ -29,7 +29,7 @@ "node": ">=18" }, "dependencies": { - "@poap-xyz/providers": "0.5.1", - "@poap-xyz/utils": "0.5.1" + "@poap-xyz/providers": "0.5.2", + "@poap-xyz/utils": "0.5.2" } } diff --git a/packages/moments/package.json b/packages/moments/package.json index 0fcffab4..169e9bcf 100644 --- a/packages/moments/package.json +++ b/packages/moments/package.json @@ -1,6 +1,6 @@ { "name": "@poap-xyz/moments", - "version": "0.5.1", + "version": "0.5.2", "description": "Moments module for the poap.js library", "main": "dist/cjs/index.cjs", "module": "dist/esm/index.mjs", @@ -26,8 +26,8 @@ "build": "rollup -c --bundleConfigAsCjs" }, "dependencies": { - "@poap-xyz/providers": "0.5.1", - "@poap-xyz/utils": "0.5.1", + "@poap-xyz/providers": "0.5.2", + "@poap-xyz/utils": "0.5.2", "uuid": "^9.0.0" }, "engines": { diff --git a/packages/poaps/package.json b/packages/poaps/package.json index 6acc2f78..13b26809 100644 --- a/packages/poaps/package.json +++ b/packages/poaps/package.json @@ -1,6 +1,6 @@ { "name": "@poap-xyz/poaps", - "version": "0.5.1", + "version": "0.5.2", "description": "Poaps module for the poap.js library", "main": "dist/cjs/index.cjs", "module": "dist/esm/index.mjs", @@ -26,8 +26,8 @@ "build": "rollup -c --bundleConfigAsCjs" }, "dependencies": { - "@poap-xyz/providers": "0.5.1", - "@poap-xyz/utils": "0.5.1" + "@poap-xyz/providers": "0.5.2", + "@poap-xyz/utils": "0.5.2" }, "engines": { "node": ">=18" diff --git a/packages/providers/package.json b/packages/providers/package.json index 7f2a5447..c68ec29d 100644 --- a/packages/providers/package.json +++ b/packages/providers/package.json @@ -1,6 +1,6 @@ { "name": "@poap-xyz/providers", - "version": "0.5.1", + "version": "0.5.2", "description": "Providers module for the poap.js library", "main": "dist/cjs/index.cjs", "module": "dist/esm/index.mjs", @@ -26,7 +26,7 @@ "build": "rollup -c --bundleConfigAsCjs" }, "dependencies": { - "@poap-xyz/utils": "0.5.1", + "@poap-xyz/utils": "0.5.2", "axios": "^1.6.8", "lodash.chunk": "^4.2.0" }, diff --git a/packages/utils/package.json b/packages/utils/package.json index 7795b7f7..232caa29 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@poap-xyz/utils", - "version": "0.5.1", + "version": "0.5.2", "description": "Utils module for the poap.js library", "main": "dist/cjs/index.cjs", "module": "dist/esm/index.mjs", diff --git a/yarn.lock b/yarn.lock index a275fefc..c52d1355 100644 --- a/yarn.lock +++ b/yarn.lock @@ -880,16 +880,16 @@ __metadata: languageName: node linkType: hard -"@poap-xyz/drops@*, @poap-xyz/drops@workspace:packages/drops": +"@poap-xyz/drops@workspace:packages/drops": version: 0.0.0-use.local resolution: "@poap-xyz/drops@workspace:packages/drops" dependencies: - "@poap-xyz/providers": 0.5.1 - "@poap-xyz/utils": 0.5.1 + "@poap-xyz/providers": 0.5.2 + "@poap-xyz/utils": 0.5.2 languageName: unknown linkType: soft -"@poap-xyz/frames@*, @poap-xyz/frames@workspace:packages/frames": +"@poap-xyz/frames@workspace:packages/frames": version: 0.0.0-use.local resolution: "@poap-xyz/frames@workspace:packages/frames" dependencies: @@ -897,31 +897,31 @@ __metadata: languageName: unknown linkType: soft -"@poap-xyz/moments@*, @poap-xyz/moments@workspace:packages/moments": +"@poap-xyz/moments@workspace:packages/moments": version: 0.0.0-use.local resolution: "@poap-xyz/moments@workspace:packages/moments" dependencies: - "@poap-xyz/providers": 0.5.1 - "@poap-xyz/utils": 0.5.1 + "@poap-xyz/providers": 0.5.2 + "@poap-xyz/utils": 0.5.2 "@types/uuid": ^9.0.2 uuid: ^9.0.0 languageName: unknown linkType: soft -"@poap-xyz/poaps@*, @poap-xyz/poaps@workspace:packages/poaps": +"@poap-xyz/poaps@workspace:packages/poaps": version: 0.0.0-use.local resolution: "@poap-xyz/poaps@workspace:packages/poaps" dependencies: - "@poap-xyz/providers": 0.5.1 - "@poap-xyz/utils": 0.5.1 + "@poap-xyz/providers": 0.5.2 + "@poap-xyz/utils": 0.5.2 languageName: unknown linkType: soft -"@poap-xyz/providers@*, @poap-xyz/providers@0.5.1, @poap-xyz/providers@workspace:packages/providers": +"@poap-xyz/providers@0.5.2, @poap-xyz/providers@workspace:packages/providers": version: 0.0.0-use.local resolution: "@poap-xyz/providers@workspace:packages/providers" dependencies: - "@poap-xyz/utils": 0.5.1 + "@poap-xyz/utils": 0.5.2 axios: ^1.6.8 axios-mock-adapter: ^1.21.4 jest-fetch-mock: ^3.0.3 @@ -929,7 +929,7 @@ __metadata: languageName: unknown linkType: soft -"@poap-xyz/utils@*, @poap-xyz/utils@0.5.1, @poap-xyz/utils@workspace:packages/utils": +"@poap-xyz/utils@0.5.2, @poap-xyz/utils@workspace:packages/utils": version: 0.0.0-use.local resolution: "@poap-xyz/utils@workspace:packages/utils" languageName: unknown @@ -1302,24 +1302,7 @@ __metadata: languageName: node linkType: hard -"@types/mime@npm:^3.0.1": - version: 3.0.3 - resolution: "@types/mime@npm:3.0.3" - checksum: d905a6b4736cc60fb56b39776b77ba0e10983d39f0aefc0034dc895b6ef90780e2f2e0a8c576539adb2963741a5aa67a6924d8940b0f7250f69e3e68a57f93b5 - languageName: node - linkType: hard - -"@types/node-fetch@npm:^2.6.3": - version: 2.6.8 - resolution: "@types/node-fetch@npm:2.6.8" - dependencies: - "@types/node": "*" - form-data: ^4.0.0 - checksum: f40e5e2fa3ca05a45453397e891776619739f093f913199c00c141735f8098e4f2ffdea04b9d608182aede2df9607605c71e0fdb97d2614899545ce81bac7005 - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:^18.16.0": +"@types/node@npm:*": version: 18.18.8 resolution: "@types/node@npm:18.18.8" dependencies: @@ -1800,17 +1783,6 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.3.6": - version: 1.6.0 - resolution: "axios@npm:1.6.0" - dependencies: - follow-redirects: ^1.15.0 - form-data: ^4.0.0 - proxy-from-env: ^1.1.0 - checksum: c7c9f2ae9e0b9bad7d6f9a4dff030930b12ee667dedf54c3c776714f91681feb743c509ac0796ae5c01e12c4ab4a2bee74905068dd200fbc1ab86f9814578fb0 - languageName: node - linkType: hard - "axios@npm:^1.6.8": version: 1.6.8 resolution: "axios@npm:1.6.8" @@ -1898,77 +1870,6 @@ __metadata: languageName: node linkType: hard -"backend-drops-example@workspace:examples/drops/backend": - version: 0.0.0-use.local - resolution: "backend-drops-example@workspace:examples/drops/backend" - dependencies: - "@poap-xyz/drops": "*" - "@poap-xyz/providers": "*" - "@poap-xyz/utils": "*" - "@types/node": ^18.16.0 - "@types/node-fetch": ^2.6.3 - axios: ^1.6.8 - dotenv: ^16.0.3 - stream: ^0.0.2 - ts-node: ^10.4.0 - typescript: ^4.5.5 - languageName: unknown - linkType: soft - -"backend-frames-example@workspace:examples/frames": - version: 0.0.0-use.local - resolution: "backend-frames-example@workspace:examples/frames" - dependencies: - "@poap-xyz/frames": "*" - "@poap-xyz/providers": "*" - "@poap-xyz/utils": "*" - "@types/node": ^18.16.0 - "@types/node-fetch": ^2.6.3 - axios: ^1.6.8 - dotenv: ^16.0.3 - stream: ^0.0.2 - ts-node: ^10.4.0 - typescript: ^4.5.5 - languageName: unknown - linkType: soft - -"backend-moments-example@workspace:examples/moments/backend": - version: 0.0.0-use.local - resolution: "backend-moments-example@workspace:examples/moments/backend" - dependencies: - "@poap-xyz/moments": "*" - "@poap-xyz/providers": "*" - "@poap-xyz/utils": "*" - "@types/mime": ^3.0.1 - "@types/node": ^18.16.0 - "@types/node-fetch": ^2.6.3 - axios: ^1.3.6 - dotenv: ^16.0.3 - form-data: ^4.0.0 - mime: ^3.0.0 - node-fetch: ^3.3.1 - ts-node: ^10.4.0 - typescript: ^4.5.5 - languageName: unknown - linkType: soft - -"backend-poaps-example@workspace:examples/poaps/backend": - version: 0.0.0-use.local - resolution: "backend-poaps-example@workspace:examples/poaps/backend" - dependencies: - "@poap-xyz/poaps": "*" - "@poap-xyz/providers": "*" - "@poap-xyz/utils": "*" - "@types/node": ^18.16.0 - axios: ^1.6.8 - dotenv: ^16.0.3 - perf_hooks: ^0.0.1 - stream: ^0.0.2 - ts-node: ^10.4.0 - typescript: ^4.5.5 - languageName: unknown - linkType: soft - "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -2521,13 +2422,6 @@ __metadata: languageName: node linkType: hard -"data-uri-to-buffer@npm:^4.0.0": - version: 4.0.1 - resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c - languageName: node - linkType: hard - "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" @@ -2682,13 +2576,6 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.0.3": - version: 16.3.1 - resolution: "dotenv@npm:16.3.1" - checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd - languageName: node - linkType: hard - "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -2718,13 +2605,6 @@ __metadata: languageName: node linkType: hard -"emitter-component@npm:^1.1.1": - version: 1.1.1 - resolution: "emitter-component@npm:1.1.1" - checksum: 10e907f507a8c16a318e07595119e58b5c3267528d4e3b962ee9b14fd83c97599e7931ccb983ec551a8de8116955c1d6ae7d213c5b0c920b62c02b7cb8d7a4d7 - languageName: node - linkType: hard - "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -3258,16 +3138,6 @@ __metadata: languageName: node linkType: hard -"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": - version: 3.2.0 - resolution: "fetch-blob@npm:3.2.0" - dependencies: - node-domexception: ^1.0.0 - web-streams-polyfill: ^3.0.3 - checksum: f19bc28a2a0b9626e69fd7cf3a05798706db7f6c7548da657cbf5026a570945f5eeaedff52007ea35c8bcd3d237c58a20bf1543bc568ab2422411d762dd3d5bf - languageName: node - linkType: hard - "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -3335,16 +3205,6 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.0": - version: 1.15.3 - resolution: "follow-redirects@npm:1.15.3" - peerDependenciesMeta: - debug: - optional: true - checksum: 584da22ec5420c837bd096559ebfb8fe69d82512d5585004e36a3b4a6ef6d5905780e0c74508c7b72f907d1fa2b7bd339e613859e9c304d0dc96af2027fd0231 - languageName: node - linkType: hard - "follow-redirects@npm:^1.15.6": version: 1.15.6 resolution: "follow-redirects@npm:1.15.6" @@ -3392,15 +3252,6 @@ __metadata: languageName: node linkType: hard -"formdata-polyfill@npm:^4.0.10": - version: 4.0.10 - resolution: "formdata-polyfill@npm:4.0.10" - dependencies: - fetch-blob: ^3.1.2 - checksum: 82a34df292afadd82b43d4a740ce387bc08541e0a534358425193017bf9fb3567875dc5f69564984b1da979979b70703aa73dee715a17b6c229752ae736dd9db - languageName: node - linkType: hard - "fs-extra@npm:^10.0.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -5181,15 +5032,6 @@ __metadata: languageName: node linkType: hard -"mime@npm:^3.0.0": - version: 3.0.0 - resolution: "mime@npm:3.0.0" - bin: - mime: cli.js - checksum: f43f9b7bfa64534e6b05bd6062961681aeb406a5b53673b53b683f27fcc4e739989941836a355eef831f4478923651ecc739f4a5f6e20a76487b432bfd4db928 - languageName: node - linkType: hard - "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -5370,13 +5212,6 @@ __metadata: languageName: node linkType: hard -"node-domexception@npm:^1.0.0": - version: 1.0.0 - resolution: "node-domexception@npm:1.0.0" - checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f - languageName: node - linkType: hard - "node-fetch@npm:^2.6.12": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" @@ -5391,17 +5226,6 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^3.3.1": - version: 3.3.2 - resolution: "node-fetch@npm:3.3.2" - dependencies: - data-uri-to-buffer: ^4.0.0 - fetch-blob: ^3.1.4 - formdata-polyfill: ^4.0.10 - checksum: 06a04095a2ddf05b0830a0d5302699704d59bda3102894ea64c7b9d4c865ecdff2d90fd042df7f5bc40337266961cb6183dcc808ea4f3000d024f422b462da92 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 10.0.1 resolution: "node-gyp@npm:10.0.1" @@ -5735,13 +5559,6 @@ __metadata: languageName: node linkType: hard -"perf_hooks@npm:^0.0.1": - version: 0.0.1 - resolution: "perf_hooks@npm:0.0.1" - checksum: a38f6397943cd55b7780e1ae504f187d218a4c986afcdd674a68fc4937aa415f29e3e007c26e498b55e277052f1bee3028b348ce7509ad1a47c2e8d0d381bd87 - languageName: node - linkType: hard - "picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -6539,15 +6356,6 @@ __metadata: languageName: node linkType: hard -"stream@npm:^0.0.2": - version: 0.0.2 - resolution: "stream@npm:0.0.2" - dependencies: - emitter-component: ^1.1.1 - checksum: 43d89e176c282234d452754f9b55a82c74ea68345bf6176af32c4c213801f88df7984c83ec5a735457705dddf4668373edb9f0ec270a7491e1d881631a763978 - languageName: node - linkType: hard - "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -6862,44 +6670,6 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.4.0": - version: 10.9.1 - resolution: "ts-node@npm:10.9.1" - dependencies: - "@cspotcode/source-map-support": ^0.8.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.1 - yn: 3.1.1 - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 - languageName: node - linkType: hard - "ts-node@npm:^10.9.2": version: 10.9.2 resolution: "ts-node@npm:10.9.2" @@ -7048,16 +6818,6 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.5.5": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db - languageName: node - linkType: hard - "typescript@npm:^5.3.3": version: 5.3.3 resolution: "typescript@npm:5.3.3" @@ -7068,16 +6828,6 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.5.5#~builtin": - version: 4.9.5 - resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=23ec76" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: ab417a2f398380c90a6cf5a5f74badd17866adf57f1165617d6a551f059c3ba0a3e4da0d147b3ac5681db9ac76a303c5876394b13b3de75fdd5b1eaa06181c9d - languageName: node - linkType: hard - "typescript@patch:typescript@^5.3.3#~builtin": version: 5.3.3 resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=85af82" @@ -7205,13 +6955,6 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:^3.0.3": - version: 3.2.1 - resolution: "web-streams-polyfill@npm:3.2.1" - checksum: b119c78574b6d65935e35098c2afdcd752b84268e18746606af149e3c424e15621b6f1ff0b42b2676dc012fc4f0d313f964b41a4b5031e525faa03997457da02 - languageName: node - linkType: hard - "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1"