{"_id":"@blockydevs/arns-marketplace-data","_rev":"2-4a0238ce4268be149b72260fff869478","name":"@blockydevs/arns-marketplace-data","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@blockydevs/arns-marketplace-data","version":"0.1.0","author":{"name":"BlockyDevs"},"license":"MIT","_id":"@blockydevs/arns-marketplace-data@0.1.0","maintainers":[{"name":"bartoszsolkabd","email":"bartosz.solka@blockydevs.com"},{"name":"0xmmbd","email":"maciej.malik@blockydevs.com"}],"dist":{"shasum":"42c131a5c156777c0d64bf5b3c3d2891743a15a7","tarball":"https://registry.npmjs.org/@blockydevs/arns-marketplace-data/-/arns-marketplace-data-0.1.0.tgz","fileCount":9,"integrity":"sha512-/nLRCNE24/UgnoulqdHvSCXNbmZsA+yGd8knWLFLmTkTw/AMQIGbTBL3KFsaak4lKLi4oC3euhbvuCq3Qe1C8w==","signatures":[{"sig":"MEYCIQCwjcmM4sXMzXqWoOZyAnmCsmUp0Tjl1CtCUiz5kkO4egIhAJugKeO8K/Ezmp07H03+6VJkAO2b5djSTMrOMI+ktI1k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189809},"main":"./dist/index.cjs","type":"module","_from":"file:blockydevs-arns-marketplace-data-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"pnpm typecheck && tsup","typecheck":"tsc --build --noEmit","commitlint":"commitlint","quickrelease":"pnpm build && changeset add && changeset version && changeset publish","changeset:add":"changeset add","changeset:publish":"pnpm build && changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"0xmmbd","email":"maciej.malik@blockydevs.com"},"_resolved":"/tmp/6a24cee12fef9bf9e12d20791b142fc2/blockydevs-arns-marketplace-data-0.1.0.tgz","_integrity":"sha512-/nLRCNE24/UgnoulqdHvSCXNbmZsA+yGd8knWLFLmTkTw/AMQIGbTBL3KFsaak4lKLi4oC3euhbvuCq3Qe1C8w==","_npmVersion":"10.9.2","description":"Data and utility library for interacting with the ArNS Marketplace, including hooks, contexts, data-fetching logic, and formatting utilities.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","eslint":"^9.32.0","vitest":"^3.2.4","prettier":"^3.6.2","@eslint/js":"^9.32.0","typescript":"^5.9.2","@types/node":"^24.2.0","@changesets/cli":"^2.29.5","@commitlint/cli":"^19.8.1","typescript-eslint":"^8.39.0","eslint-plugin-unicorn":"^60.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@commitlint/config-conventional":"^19.8.1","@ianvs/prettier-plugin-sort-imports":"^4.5.1"},"peerDependencies":{"@ar.io/sdk":"^3.18.1","bignumber.js":"^9.3.1","arweave-graphql":"^0.0.5"},"_npmOperationalInternal":{"tmp":"tmp/arns-marketplace-data_0.1.0_1758570483215_0.5315529933028089","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@blockydevs/arns-marketplace-data","version":"0.2.0","description":"Data and utility library for interacting with the ArNS Marketplace, including hooks, contexts, data-fetching logic, and formatting utilities.","license":"MIT","sideEffects":false,"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"publishConfig":{"access":"public"},"author":{"name":"BlockyDevs"},"engines":{"node":">=18"},"peerDependencies":{"@ar.io/sdk":"^3.18.1","arweave-graphql":"^0.0.5","bignumber.js":"^9.3.1"},"devDependencies":{"@changesets/cli":"^2.29.5","@commitlint/cli":"^19.8.1","@commitlint/config-conventional":"^19.8.1","@eslint/js":"^9.32.0","@ianvs/prettier-plugin-sort-imports":"^4.5.1","@types/node":"^24.2.0","eslint":"^9.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","eslint-plugin-unicorn":"^60.0.0","prettier":"^3.6.2","tsup":"^8.5.0","typescript":"^5.9.2","typescript-eslint":"^8.39.0","vitest":"^3.2.4"},"scripts":{"dev":"tsup --watch","build":"pnpm typecheck && tsup","test":"vitest run","lint":"eslint .","typecheck":"tsc --build --noEmit","commitlint":"commitlint","changeset:add":"changeset add","changeset:version":"changeset version","changeset:publish":"pnpm build && changeset publish","quickrelease":"pnpm build && changeset add && changeset version && changeset publish"},"_id":"@blockydevs/arns-marketplace-data@0.2.0","_integrity":"sha512-/4slccX+bWsHCD0WTiyn3YvDVo8J86+IKcRw74Npegiu90Qst5LHsfOT903J3BOrvDPHhX6VDWMPZN7/FjqaFQ==","_resolved":"/private/var/folders/w1/f1xbybf150x84c90kvt29mvm0000gn/T/3d60d6467f070c2a09f0d6525092b7a5/blockydevs-arns-marketplace-data-0.2.0.tgz","_from":"file:blockydevs-arns-marketplace-data-0.2.0.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-/4slccX+bWsHCD0WTiyn3YvDVo8J86+IKcRw74Npegiu90Qst5LHsfOT903J3BOrvDPHhX6VDWMPZN7/FjqaFQ==","shasum":"ca925eb509ed02f61c964b3ec5edb9144a6650e7","tarball":"https://registry.npmjs.org/@blockydevs/arns-marketplace-data/-/arns-marketplace-data-0.2.0.tgz","fileCount":9,"unpackedSize":198176,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFrWJH1uql3n2oUs/+ULRxSLCeFL9E7+cMMD8lB76VtrAiEAy9eZv2iMRqh6iehZJdmXAIiuQmCH1i2Ji6v/iBGjLSc="}]},"_npmUser":{"name":"bartoszsolkabd","email":"bartosz.solka@blockydevs.com"},"directories":{},"maintainers":[{"name":"bartoszsolkabd","email":"bartosz.solka@blockydevs.com"},{"name":"0xmmbd","email":"maciej.malik@blockydevs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/arns-marketplace-data_0.2.0_1761735582810_0.22153620236793747"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-22T19:48:03.138Z","modified":"2025-10-29T10:59:43.228Z","0.1.0":"2025-09-22T19:48:03.406Z","0.2.0":"2025-10-29T10:59:43.045Z"},"author":{"name":"BlockyDevs"},"license":"MIT","description":"Data and utility library for interacting with the ArNS Marketplace, including hooks, contexts, data-fetching logic, and formatting utilities.","maintainers":[{"name":"bartoszsolkabd","email":"bartosz.solka@blockydevs.com"},{"name":"0xmmbd","email":"maciej.malik@blockydevs.com"}],"readme":"# @blockydevs/arns-marketplace-data\n\n#### A data and utility library for working with the ArNS Marketplace on ar.io: discover listings, correlate them with Arweave Name Tokens (ANTs), and perform actions (create/buy/bid/settle/cancel) via AO messages.\n\n## Table of Contents\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Process IDs you need](#process-ids-you-need)\n- [Essential APIs](#essential-apis)\n    - [Read](#read)\n    - [Write (requires signer)](#write-requires-signer)\n- [Filtering listings](#filtering-listings)\n- [Completed listings](#completed-listings)\n- [Amounts & conversion](#amounts--conversion)\n- [Pagination (cursor-based)](#pagination-cursor-based)\n- [Write confirmations and retries](#write-confirmations-and-retries)\n- [Types](#types)\n\n## Installation\n\nRequires Node >= 18\n\n```bash\npnpm add @blockydevs/arns-marketplace-data @ar.io/sdk @permaweb/aoconnect arweave-graphql bignumber.js\n```\n\n\n## Quick Start\n\n```tsx\nimport { fetchActiveListings } from '@blockydevs/arns-marketplace-data';\nimport { connect } from '@permaweb/aoconnect';\n\nconst ao = connect();\n\nconst listings = await fetchActiveListings({\n  ao,\n  marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>',\n  limit: 10,\n});\n\nconsole.log(listings.items);\n```\n\n\nCommon lookups:\n\n```tsx\nimport { searchANT, fetchListingDetails } from '@blockydevs/arns-marketplace-data';\n\nawait searchANT({\n  name: 'ardrive',\n  ao,\n  arioProcessId: '<ARIO_PROCESS_ID>',\n  marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>',\n});\n\nawait fetchListingDetails({ ao, marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>', orderId: '<ORDER_ID>' });\n```\n\nBulk metadata lookups:\n\n```tsx\nimport { fetchAllAntsFromActivity, fetchANTsMetadata } from '@blockydevs/arns-marketplace-data';\n\n// Get all ANT IDs that have ever been listed\nconst antIds = await fetchAllAntsFromActivity({\n  ao,\n  marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>',\n});\n\n// Fetch metadata for multiple ANTs\nconst metadata = await fetchANTsMetadata({\n  ao,\n  arioProcessId: '<ARIO_PROCESS_ID>',\n  antIds: ['<ANT_ID_1>', '<ANT_ID_2>', '<ANT_ID_3>'],\n});\n\nconsole.log(metadata);\n```\n\n## Process IDs you need\n\n- ARIO (network) Process ID\n- Marketplace Contract Process ID\n\n## Essential APIs\n\n### Read\n- `fetchActiveListings({ ao, marketplaceProcessId, limit?, cursor?, filters? })`\n- `fetchListingDetails({ ao, marketplaceProcessId, orderId })`\n- `fetchCompletedListings({ ao, marketplaceProcessId, limit?, cursor?, filters? })`\n- `fetchMyANTs({ ao, walletAddress, arioProcessId, marketplaceProcessId, config? })`\n- `searchANT({ name, ao, arioProcessId, marketplaceProcessId })`\n- `fetchAllAntsFromActivity({ ao, marketplaceProcessId })`\n- `fetchANTsMetadata({ ao, arioProcessId, antIds })`\n\n\n### Write (requires signer)\n\n```tsx\nimport { ArweaveSigner } from '@ar.io/sdk/node';\nimport { createListing, buyListing, bidListing, settleListing, cancelListing } from '@blockydevs/arns-marketplace-data';\n\nconst signer = new ArweaveSigner(/* JWK */);\n\n// create\nawait createListing({\n  ao,\n  signer,\n  walletAddress: '<WALLET>',\n  antProcessId: '<ANT_ID>',\n  marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>',\n  arioProcessId: '<ARIO_PROCESS_ID>',\n  config: { type: 'fixed', price: '10' },\n  waitForConfirmation: true,\n});\n\n// buy (fixed/dutch)\nawait buyListing({\n  ao,\n  signer,\n  walletAddress: '<WALLET>',\n  orderId: '<ORDER_ID>',\n  price: '12.5',\n  marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>',\n  arioProcessId: '<ARIO_PROCESS_ID>',\n  antTokenId: '<ANT_ID>',\n  orderType: 'fixed',\n});\n\n// bid (english)\nawait bidListing({\n  ao,\n  signer,\n  walletAddress: '<WALLET>',\n  orderId: '<ORDER_ID>',\n  bidPrice: '15',\n  marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>',\n  arioProcessId: '<ARIO_PROCESS_ID>',\n  antTokenId: '<ANT_ID>',\n});\n\n// finalize\nawait settleListing({ ao, signer, orderId: '<ORDER_ID>', marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>' });\nawait cancelListing({ ao, signer, orderId: '<ORDER_ID>', marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>' });\n```\n\n\n## Filtering listings\n\nBoth active and completed listings support simple server-side filtering via the `filters` option:\n- `Sender`: wallet address that created the order\n- `DominantToken`: the primary token (e.g., ANT process ID)\n- `Name`: the ArNS name to look up (exact match)\n\nTips:\n- Use `limit: 0` to fetch all available pages in one call (the helper will paginate under the hood).\n- You can combine `filters` with `cursor` for manual pagination strategies.\n\n## Completed listings\n\nFetch recently completed, settled, or cancelled orders:\n\n```tsx\nimport { fetchCompletedListings } from '@blockydevs/arns-marketplace-data';\n\nconst completed = await fetchCompletedListings({\n  ao,\n  marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>',\n  limit: 20, // or 0 to fetch all\n  // filters: { Sender: '<WALLET>', DominantToken: '<ANT_ID>', Name: 'example' }\n});\n\nconsole.log(completed.items);\n```\n\n\n## Amounts & conversion\n\n- Amounts for write calls are ARIO strings (e.g. `'12.5'`).\n- Internally converted to mARIO to avoid float issues.\n\n```tsx\nimport { marioToArio, arioToMario } from '@blockydevs/arns-marketplace-data';\n\nmarioToArio(1_000_000); // => 1\narioToMario(1.5);       // => 1_500_000\n```\n\n\n## Pagination (cursor-based)\n\nPaginated responses include `items`, `nextCursor`, `hasMore`, `totalItems`.\n\n```tsx\nlet cursor: string | undefined;\nconst all: any[] = [];\n\nwhile (true) {\n  const page = await fetchActiveListings({ ao, marketplaceProcessId: '<MARKETPLACE_PROCESS_ID>', limit: 100, cursor });\n  all.push(...page.items);\n  if (!page.hasMore) break;\n  cursor = page.nextCursor;\n}\n```\n\n\n## Write confirmations and retries\n\nWhen creating listings, you can control confirmation behavior:\n- `waitForConfirmation?: boolean` (default `true`) — waits until the new listing is visible from activity reads.\n- `retryConfirmationAttempts?: number` — how many times to re-check for the new listing.\n- `retryConfirmationBaseDelayMs?: number` — base delay used between retries with backoff.\n\nThis helps ensure your UI only proceeds once the listing is discoverable.\n\n## Types\n\nUseful exported types to help with typing and state modeling:\n- `ActiveListing` and subtypes for fixed/english/dutch listings\n- `ListingDetails` for a single order details view\n- `CompletedListing` (for completed items)\n- `OwnedANT` and common enums like `OrderType`, `OrderStatus`, `OwnershipType`","readmeFilename":"README.md"}