@medialane/sdk 0.158.0 → 0.159.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/{chunk-SEBUPNF4.js → chunk-A6EQBVUF.js} +6 -19
  2. package/dist/chunk-A6EQBVUF.js.map +1 -0
  3. package/dist/{chunk-OUPVVMLK.cjs → chunk-H7I6TEOA.cjs} +5 -4
  4. package/dist/chunk-H7I6TEOA.cjs.map +1 -0
  5. package/dist/{chunk-3IJQNNFE.cjs → chunk-K5MWWVX5.cjs} +10 -22
  6. package/dist/chunk-K5MWWVX5.cjs.map +1 -0
  7. package/dist/{chunk-3PZUSEAW.js → chunk-PBJLHXDB.js} +5 -4
  8. package/dist/chunk-PBJLHXDB.js.map +1 -0
  9. package/dist/{errors-D037rFnb.d.ts → errors-6Aarmz0V.d.cts} +3 -15
  10. package/dist/{errors-D_k2He89.d.cts → errors-BJl2TojD.d.ts} +3 -15
  11. package/dist/evm/index.cjs +3 -3
  12. package/dist/evm/index.d.cts +1 -1
  13. package/dist/evm/index.d.ts +1 -1
  14. package/dist/evm/index.js +1 -1
  15. package/dist/index.cjs +74 -70
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +6 -9
  18. package/dist/index.d.ts +6 -9
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/solana/index.cjs +2 -2
  22. package/dist/solana/index.d.cts +1 -1
  23. package/dist/solana/index.d.ts +1 -1
  24. package/dist/solana/index.js +1 -1
  25. package/dist/starknet/index.cjs +940 -219
  26. package/dist/starknet/index.cjs.map +1 -1
  27. package/dist/starknet/index.d.cts +617 -199
  28. package/dist/starknet/index.d.ts +617 -199
  29. package/dist/starknet/index.js +866 -150
  30. package/dist/starknet/index.js.map +1 -1
  31. package/dist/stellar/index.cjs +2 -2
  32. package/dist/stellar/index.d.cts +1 -1
  33. package/dist/stellar/index.d.ts +1 -1
  34. package/dist/stellar/index.js +1 -1
  35. package/dist/{types-CO6YYHVA.d.cts → types-PPshMWr7.d.cts} +1 -0
  36. package/dist/{types-CO6YYHVA.d.ts → types-PPshMWr7.d.ts} +1 -0
  37. package/package.json +1 -1
  38. package/dist/chunk-3IJQNNFE.cjs.map +0 -1
  39. package/dist/chunk-3PZUSEAW.js.map +0 -1
  40. package/dist/chunk-OUPVVMLK.cjs.map +0 -1
  41. package/dist/chunk-SEBUPNF4.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/fee/config.ts","../src/fee/app-config.ts","../src/config.ts","../src/utils/address.ts","../src/utils/retry.ts","../src/api/client.ts","../src/starknet/passkey-wallet/crypto.ts","../src/constants.ts","../src/starknet/media-wallet/account.ts","../src/wallet/passkey.ts","../src/services/registry.ts","../src/utils/token.ts","../src/utils/bigint.ts","../src/utils/rpc.ts","../src/errors.ts"],"names":["z","CHAINS","DEFAULT_CHAIN","getCoordinates","hash","keccak_256","base58","base32","ec","num","SN","getStarknetCoordinates"],"mappings":"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","file":"chunk-K5MWWVX5.cjs","sourcesContent":["import { z } from \"zod\";\n\nexport const FeeConfigSchema = z.object({\n enabled: z.boolean().default(true),\n fundAddress: z.string().min(1).optional(),\n marketplaceBps: z.number().int().min(0).max(10000).default(100),\n launchpadBps: z.number().int().min(0).max(10000).default(100),\n sponsorshipBps: z.number().int().min(0).max(10000).default(100),\n});\n\nexport type FeeConfig = z.input<typeof FeeConfigSchema>;\n\nexport interface ResolvedFeeConfig {\n enabled: boolean;\n fundAddress: string | undefined;\n marketplaceBps: number;\n launchpadBps: number;\n sponsorshipBps: number;\n}\n\nexport function resolveFeeConfig(raw: FeeConfig | undefined): ResolvedFeeConfig {\n const p = FeeConfigSchema.parse(raw ?? {});\n return {\n enabled: p.enabled,\n fundAddress: p.fundAddress,\n marketplaceBps: p.marketplaceBps,\n launchpadBps: p.launchpadBps,\n sponsorshipBps: p.sponsorshipBps,\n };\n}\n","import { resolveFeeConfig, type ResolvedFeeConfig } from \"./config.js\";\n\nexport interface FeeEnv {\n NEXT_PUBLIC_FEE_ENABLED?: string;\n NEXT_PUBLIC_FEE_FUND_ADDRESS?: string;\n NEXT_PUBLIC_FEE_MARKETPLACE_BPS?: string;\n NEXT_PUBLIC_FEE_LAUNCHPAD_BPS?: string;\n}\n\nconst DEFAULT_BPS = 100;\n\nfunction bps(raw: string | undefined): number {\n if (!raw) return DEFAULT_BPS;\n const n = Number(raw);\n return Number.isFinite(n) ? n : DEFAULT_BPS;\n}\n\nexport function resolveAppFeeConfig(env: FeeEnv = {}): ResolvedFeeConfig {\n return resolveFeeConfig({\n enabled: env.NEXT_PUBLIC_FEE_ENABLED !== \"false\",\n fundAddress: env.NEXT_PUBLIC_FEE_FUND_ADDRESS || undefined,\n marketplaceBps: bps(env.NEXT_PUBLIC_FEE_MARKETPLACE_BPS),\n launchpadBps: bps(env.NEXT_PUBLIC_FEE_LAUNCHPAD_BPS),\n });\n}\n","import { z } from \"zod\";\nimport { CHAINS, getCoordinates, DEFAULT_CHAIN, type Chain } from \"./chains.js\";\nimport type { RetryOptions } from \"./utils/retry.js\";\nimport { FeeConfigSchema, resolveFeeConfig, type ResolvedFeeConfig } from \"./fee/index.js\";\n\nexport const MedialaneConfigSchema = z.object({\n\n chain: z.enum(CHAINS).default(DEFAULT_CHAIN),\n rpcUrl: z.string().url().optional(),\n backendUrl: z.string().url().optional(),\n apiKey: z.string().optional(),\n\n marketplace721Contract: z.string().optional(),\n marketplaceContract: z.string().optional(),\n marketplace1155Contract: z.string().optional(),\n collection721Contract: z.string().optional(),\n collectionContract: z.string().optional(),\n collection1155Contract: z.string().optional(),\n retryOptions: z.object({\n maxAttempts: z.number().int().min(1).max(10).optional(),\n baseDelayMs: z.number().int().min(0).optional(),\n maxDelayMs: z.number().int().min(0).optional(),\n }).optional(),\n feeConfig: FeeConfigSchema.optional(),\n});\n\nexport type MedialaneConfig = z.input<typeof MedialaneConfigSchema>;\n\nexport interface ResolvedConfig {\n chain: Chain;\n rpcUrl: string;\n backendUrl: string | undefined;\n apiKey: string | undefined;\n marketplace721Contract: string;\n marketplaceContract: string;\n marketplace1155Contract: string;\n collection721Contract: string;\n collectionContract: string;\n collection1155Contract: string;\n retryOptions?: RetryOptions;\n feeConfig: ResolvedFeeConfig;\n}\n\nexport function resolveConfig(raw: MedialaneConfig): ResolvedConfig {\n const parsed = MedialaneConfigSchema.parse(raw);\n const coords = getCoordinates(parsed.chain);\n\n const sn = (parsed.chain === \"STARKNET\" ? coords : {}) as import(\"./chains.js\").StarknetCoordinates;\n\n const marketplace721Contract =\n parsed.marketplace721Contract ?? parsed.marketplaceContract ?? sn.marketplace721!;\n const collection721Contract =\n parsed.collection721Contract ?? parsed.collectionContract ?? sn.collection721!;\n\n return {\n chain: parsed.chain,\n rpcUrl: parsed.rpcUrl ?? coords.rpcUrl,\n backendUrl: parsed.backendUrl,\n apiKey: parsed.apiKey,\n marketplace721Contract,\n marketplaceContract: marketplace721Contract,\n marketplace1155Contract: parsed.marketplace1155Contract ?? sn.marketplace1155!,\n collection721Contract,\n collectionContract: collection721Contract,\n collection1155Contract: parsed.collection1155Contract ?? sn.collection1155!,\n retryOptions: parsed.retryOptions,\n feeConfig: resolveFeeConfig(parsed.feeConfig),\n };\n}\n","import { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { base32, base58 } from \"@scure/base\";\nimport type { Chain } from \"../chains.js\";\n\nexport function normalizeAddress(chain: Chain, address: string): string {\n switch (chain) {\n case \"STARKNET\":\n return normalizeStarknet(address);\n case \"ETHEREUM\":\n case \"BASE\":\n return normalizeEvm(address);\n case \"SOLANA\":\n return normalizeSolana(address);\n case \"STELLAR\":\n return normalizeStellar(address);\n case \"BITCOIN\":\n throw new Error(\"BITCOIN address normalization not implemented\");\n }\n}\n\nfunction normalizeStarknet(address: string): string {\n try {\n const hex = BigInt(address).toString(16);\n return \"0x\" + hex.padStart(64, \"0\").toLowerCase();\n } catch {\n throw new Error(`Invalid STARKNET address: \"${address}\"`);\n }\n}\n\nfunction normalizeEvm(address: string): string {\n const m = /^0x([0-9a-fA-F]{40})$/.exec(address);\n if (!m) throw new Error(`Invalid ETHEREUM/BASE address: \"${address}\"`);\n const lower = m[1].toLowerCase();\n\n const hash = keccak_256(new TextEncoder().encode(lower));\n let out = \"0x\";\n for (let i = 0; i < 40; i++) {\n const nibble = (hash[i >> 1]! >> (i % 2 === 0 ? 4 : 0)) & 0xf;\n out += nibble >= 8 ? lower[i]!.toUpperCase() : lower[i];\n }\n return out;\n}\n\nfunction normalizeSolana(address: string): string {\n try {\n const bytes = base58.decode(address);\n if (bytes.length !== 32) throw new Error(\"not a 32-byte key\");\n return address;\n } catch {\n throw new Error(`Invalid SOLANA address: \"${address}\"`);\n }\n}\n\nconst STELLAR_VERSION_BYTES = new Set([6 << 3, 2 << 3]);\n\nfunction normalizeStellar(address: string): string {\n const upper = address.toUpperCase();\n if (!/^[GC][A-Z2-7]{55}$/.test(upper)) {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n let decoded: Uint8Array;\n try {\n decoded = base32.decode(upper);\n } catch {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n if (decoded.length !== 35 || !STELLAR_VERSION_BYTES.has(decoded[0]!)) {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n const payload = decoded.subarray(0, 33);\n const checksum = decoded[33]! | (decoded[34]! << 8);\n if (crc16xmodem(payload) !== checksum) {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n return upper;\n}\n\nfunction crc16xmodem(bytes: Uint8Array): number {\n let crc = 0;\n for (const byte of bytes) {\n crc ^= byte << 8;\n for (let i = 0; i < 8; i++) {\n crc = crc & 0x8000 ? ((crc << 1) ^ 0x1021) & 0xffff : (crc << 1) & 0xffff;\n }\n }\n return crc;\n}\n\ndeclare const canonicalHashBrand: unique symbol;\n\nexport type CanonicalHash = string & { readonly [canonicalHashBrand]: true };\n\nexport function normalizeHash(hash: string): CanonicalHash {\n try {\n const hex = BigInt(hash).toString(16);\n return (\"0x\" + hex.padStart(64, \"0\").toLowerCase()) as CanonicalHash;\n } catch {\n throw new Error(`Invalid hash: \"${hash}\"`);\n }\n}\n\nexport function shortenAddress(chain: Chain, address: string, chars = 4): string {\n const norm = normalizeAddress(chain, address);\n return `${norm.slice(0, chars + 2)}...${norm.slice(-chars)}`;\n}\n","import { MedialaneApiError } from \"../api/client.js\";\n\nexport interface RetryOptions {\n maxAttempts?: number;\n baseDelayMs?: number;\n maxDelayMs?: number;\n}\n\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_BASE_DELAY_MS = 300;\nconst DEFAULT_MAX_DELAY_MS = 5000;\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function isRetryableFor(method: string, err: unknown): boolean {\n if (err instanceof MedialaneApiError && err.status === 429) return true;\n const isRead = method === \"GET\" || method === \"HEAD\";\n if (!isRead) return false;\n return (err instanceof MedialaneApiError && err.status >= 500) || err instanceof TypeError;\n}\n\nexport async function withRetry<T>(\n fn: () => Promise<T>,\n opts?: RetryOptions,\n method = \"GET\",\n): Promise<T> {\n const maxAttempts = opts?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;\n const baseDelayMs = opts?.baseDelayMs ?? DEFAULT_BASE_DELAY_MS;\n const maxDelayMs = opts?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;\n\n let lastError: unknown;\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n try {\n return await fn();\n } catch (err) {\n lastError = err;\n\n if (!isRetryableFor(method, err) || attempt === maxAttempts - 1) {\n throw err;\n }\n\n const retryAfterMs = err instanceof MedialaneApiError ? err.retryAfterMs : undefined;\n const backoff = baseDelayMs * Math.pow(2, attempt) + Math.random() * baseDelayMs;\n const delay = Math.min(retryAfterMs ?? backoff, maxDelayMs);\n await sleep(delay);\n }\n }\n\n throw lastError;\n}\n","import { normalizeAddress } from \"../utils/address.js\";\nimport type { Chain } from \"../chains.js\";\nimport type { ChainFilter } from \"../types/api.js\";\nimport type { MedialaneErrorCode } from \"../types/errors.js\";\nimport { withRetry, type RetryOptions } from \"../utils/retry.js\";\nimport type {\n ApiOrder,\n ApiOrdersQuery,\n ApiCounterOffersQuery,\n ApiToken,\n ApiCollection,\n ApiCoin,\n ApiCoinPrices,\n ApiCoinClaimResult,\n ApiUserRewards,\n ApiRewardsLeaderboardEntry,\n ApiRewardsConfig,\n ApiRewardsBatchEntry,\n ApiPointEvent,\n ApiCoinsQuery,\n ApiCollectionProfile,\n UpdateCollectionProfileInput,\n ApiCreatorProfile,\n ApiCreatorListResult,\n ApiCollectionClaim,\n ApiCollectionSlugClaim,\n ApiBusinessProvisioning,\n ApiWalletActivity,\n ApiUserWallet,\n ApiChain,\n ApiActivity,\n ApiActivitiesQuery,\n ApiComment,\n ApiRemixOffer,\n ApiRemixOffersQuery,\n ApiPublicRemix,\n ApiSearchResult,\n ApiIntent,\n ApiIntentCreated,\n ApiTxSyncResult,\n ApiMetadataSignedUrl,\n ApiMetadataUpload,\n ApiPortalMe,\n ApiPortalKey,\n ApiPortalKeyCreated,\n ApiCreditPayment,\n ApiFundingInstructions,\n ApiFundingIntent,\n ApiFundingMethod,\n ApiFundingSubmit,\n ApiPortalSpend,\n CreateListingIntentParams,\n MakeOfferIntentParams,\n FulfillOrderIntentParams,\n CancelOrderIntentParams,\n CreateMintIntentParams,\n CreateCollectionIntentParams,\n CreateTierIntentParams,\n EmissionParams,\n ApiEmissionResult,\n CreateCoinIntentParams,\n LaunchCoinIntentParams,\n CreateSponsorshipOfferIntentParams,\n SetSponsorshipOfferOpenIntentParams,\n PlaceSponsorshipBidIntentParams,\n RetractSponsorshipBidIntentParams,\n AcceptSponsorshipBidIntentParams,\n CreateSponsorshipProposalIntentParams,\n WithdrawSponsorshipProposalIntentParams,\n AcceptSponsorshipProposalIntentParams,\n RejectSponsorshipProposalIntentParams,\n CreateCheckoutIntentParams,\n ApiCheckoutIntentResult,\n CreateCounterOfferIntentParams,\n CreateRemixOfferParams,\n AutoRemixOfferParams,\n ConfirmSelfRemixParams,\n ConfirmRemixOfferParams,\n ApiResponse,\n CollectionTokensSort,\n DropMintStatus,\n ApiPlatformStats,\n ApiDropInfo,\n ApiDropState,\n ApiTierOnchain,\n ApiIpNftTokenData,\n ApiTokensQuery,\n ApiUsernameClaim,\n ApiSubmitReport,\n ApiSponsorshipOffer,\n ApiSponsorshipBid,\n ApiSponsorshipProposal,\n ApiSponsorshipLicense,\n ApiSponsorshipOffersQuery,\n ApiSponsorshipProposalsQuery,\n ApiSponsorshipLicensesQuery,\n ApiCollectionsListQuery,\n ApiPricing,\n} from \"../types/api.js\";\n\nfunction deriveErrorCode(status: number): MedialaneErrorCode {\n if (status === 404) return \"TOKEN_NOT_FOUND\";\n if (status === 429) return \"RATE_LIMITED\";\n if (status === 410) return \"INTENT_EXPIRED\";\n if (status === 401 || status === 403) return \"UNAUTHORIZED\";\n if (status === 400) return \"INVALID_PARAMS\";\n return \"UNKNOWN\";\n}\n\nexport class MedialaneApiError extends Error {\n readonly code: MedialaneErrorCode;\n constructor(\n public readonly status: number,\n message: string,\n\n public readonly retryAfterMs?: number,\n public readonly details?: unknown,\n ) {\n super(message);\n this.name = \"MedialaneApiError\";\n this.code = deriveErrorCode(status);\n }\n}\n\nexport function parseRetryAfter(value: string | null): number | undefined {\n if (!value) return undefined;\n const seconds = Number(value);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1000);\n const date = Date.parse(value);\n if (!Number.isNaN(date)) return Math.max(0, date - Date.now());\n return undefined;\n}\n\nexport class ApiClient {\n private readonly baseHeaders: Record<string, string>;\n private readonly retryOptions: RetryOptions | undefined;\n\n constructor(\n private readonly baseUrl: string,\n apiKey?: string,\n retryOptions?: RetryOptions,\n private readonly chain: Chain = \"STARKNET\"\n ) {\n this.baseHeaders = apiKey ? { \"x-api-key\": apiKey } : {};\n this.retryOptions = retryOptions;\n }\n\n private addr(a: string): string {\n return normalizeAddress(this.chain, a);\n }\n\n private async request<T>(\n path: string,\n init?: RequestInit,\n opts?: { allow404?: boolean; allow403?: boolean },\n ): Promise<T> {\n const url = `${this.baseUrl.replace(/\\/$/, \"\")}${path}`;\n const headers: Record<string, string> = { ...this.baseHeaders };\n if (init?.body != null && !(init.body instanceof FormData)) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n const allowed = (status: number): boolean =>\n (opts?.allow404 === true && status === 404) || (opts?.allow403 === true && status === 403);\n\n const res = await withRetry(async () => {\n const response = await fetch(url, {\n ...init,\n headers: { ...headers, ...(init?.headers as Record<string, string> | undefined) },\n });\n if (!response.ok && !allowed(response.status)) {\n const text = await response.text().catch(() => response.statusText);\n let message = `Request failed with status ${response.status}`;\n let details: unknown = text;\n try {\n const body = JSON.parse(text) as { error?: string };\n if (typeof body.error === \"string\" && body.error.trim() !== \"\") {\n message = body.error;\n }\n details = body;\n } catch {\n\n }\n throw new MedialaneApiError(\n response.status,\n message,\n parseRetryAfter(response.headers.get(\"retry-after\")),\n details,\n );\n }\n return response;\n }, this.retryOptions, (init?.method ?? \"GET\").toUpperCase());\n\n if (allowed(res.status)) return null as T;\n return res.json() as Promise<T>;\n }\n\n private get<T>(path: string): Promise<T> {\n return this.request<T>(path, { method: \"GET\" });\n }\n\n private post<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(path, { method: \"POST\", body: JSON.stringify(body) });\n }\n\n private patch<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(path, { method: \"PATCH\", body: JSON.stringify(body) });\n }\n\n private bearer(siwsToken: string): Record<string, string> {\n return { Authorization: `Bearer ${siwsToken}` };\n }\n\n private asSubject(siwsToken?: string): Record<string, string> | undefined {\n return siwsToken ? this.bearer(siwsToken) : undefined;\n }\n\n getOrders(query: ApiOrdersQuery = {}): Promise<ApiResponse<ApiOrder[]>> {\n const params = new URLSearchParams();\n if (query.status) params.set(\"status\", query.status);\n if (query.collection) params.set(\"collection\", query.collection);\n if (query.currency) params.set(\"currency\", query.currency);\n if (query.sort) params.set(\"sort\", query.sort);\n if (query.page !== undefined) params.set(\"page\", String(query.page));\n if (query.limit !== undefined) params.set(\"limit\", String(query.limit));\n if (query.offerer) params.set(\"offerer\", this.addr(query.offerer));\n if (query.minPrice) params.set(\"minPrice\", query.minPrice);\n if (query.maxPrice) params.set(\"maxPrice\", query.maxPrice);\n if (query.chain) params.set(\"chain\", query.chain);\n const qs = params.toString();\n return this.get<ApiResponse<ApiOrder[]>>(`/v1/orders${qs ? `?${qs}` : \"\"}`);\n }\n\n getOrder(orderHash: string): Promise<ApiResponse<ApiOrder>> {\n return this.get<ApiResponse<ApiOrder>>(`/v1/orders/${orderHash}`);\n }\n\n getActiveOrdersForToken(contract: string, tokenId: string): Promise<ApiResponse<ApiOrder[]>> {\n return this.get<ApiResponse<ApiOrder[]>>(`/v1/orders/token/${this.addr(contract)}/${tokenId}`);\n }\n\n getReceivedOffers(address: string, opts: { page?: number; limit?: number } = {}): Promise<ApiResponse<ApiOrder[]>> {\n const params = new URLSearchParams({ page: String(opts.page ?? 1), limit: String(opts.limit ?? 50) });\n return this.get<ApiResponse<ApiOrder[]>>(`/v1/orders/received/${this.addr(address)}?${params}`);\n }\n\n getOrdersByUser(address: string, page = 1, limit = 20): Promise<ApiResponse<ApiOrder[]>> {\n return this.get<ApiResponse<ApiOrder[]>>(\n `/v1/orders/user/${this.addr(address)}?page=${page}&limit=${limit}`\n );\n }\n\n getToken(contract: string, tokenId: string, wait = false): Promise<ApiResponse<ApiToken>> {\n return this.get<ApiResponse<ApiToken>>(\n `/v1/tokens/${contract}/${tokenId}${wait ? \"?wait=true\" : \"\"}`\n );\n }\n\n getTokensByOwner(address: string, page = 1, limit = 20): Promise<ApiResponse<ApiToken[]>> {\n return this.get<ApiResponse<ApiToken[]>>(\n `/v1/tokens/owned/${this.addr(address)}?page=${page}&limit=${limit}`\n );\n }\n\n getTokenHistory(\n contract: string,\n tokenId: string,\n page = 1,\n limit = 20\n ): Promise<ApiResponse<ApiActivity[]>> {\n return this.get<ApiResponse<ApiActivity[]>>(\n `/v1/tokens/${contract}/${tokenId}/history?page=${page}&limit=${limit}`\n );\n }\n\n getCollection(contract: string): Promise<ApiResponse<ApiCollection>> {\n return this.get<ApiResponse<ApiCollection>>(`/v1/collections/${this.addr(contract)}`);\n }\n\n getCollectionTokens(\n contract: string,\n page = 1,\n limit = 20,\n sort: CollectionTokensSort = \"recent\"\n ): Promise<ApiResponse<ApiToken[]>> {\n return this.get<ApiResponse<ApiToken[]>>(\n `/v1/collections/${this.addr(contract)}/tokens?page=${page}&limit=${limit}&sort=${sort}`\n );\n }\n\n getActivities(query: ApiActivitiesQuery = {}): Promise<ApiResponse<ApiActivity[]>> {\n const params = new URLSearchParams();\n if (query.type) params.set(\"type\", query.type);\n if (query.contract) params.set(\"contract\", query.contract);\n if (query.page !== undefined) params.set(\"page\", String(query.page));\n if (query.limit !== undefined) params.set(\"limit\", String(query.limit));\n if (query.chain) params.set(\"chain\", query.chain);\n const qs = params.toString();\n return this.get<ApiResponse<ApiActivity[]>>(`/v1/activities${qs ? `?${qs}` : \"\"}`);\n }\n\n getActivitiesByAddress(\n address: string,\n page = 1,\n limit = 20\n ): Promise<ApiResponse<ApiActivity[]>> {\n return this.get<ApiResponse<ApiActivity[]>>(\n `/v1/activities/${this.addr(address)}?page=${page}&limit=${limit}`\n );\n }\n\n getTokenComments(\n contract: string,\n tokenId: string,\n opts: { page?: number; limit?: number } = {}\n ): Promise<ApiResponse<ApiComment[]>> {\n const params = new URLSearchParams();\n if (opts.page !== undefined) params.set(\"page\", String(opts.page));\n if (opts.limit !== undefined) params.set(\"limit\", String(opts.limit));\n const qs = params.toString();\n return this.get<ApiResponse<ApiComment[]>>(\n `/v1/tokens/${this.addr(contract)}/${tokenId}/comments${qs ? `?${qs}` : \"\"}`\n );\n }\n\n search(q: string, limit = 10, chain?: ChainFilter): Promise<ApiResponse<ApiSearchResult> & { query: string }> {\n const params = new URLSearchParams({ q, limit: String(limit) });\n if (chain) params.set(\"chain\", chain);\n return this.get<ApiResponse<ApiSearchResult> & { query: string }>(\n `/v1/search?${params.toString()}`\n );\n }\n\n createListingIntent(\n params: CreateListingIntentParams\n ): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/listing\", params);\n }\n\n createOfferIntent(\n params: MakeOfferIntentParams\n ): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/offer\", params);\n }\n\n createFulfillIntent(\n params: FulfillOrderIntentParams\n ): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/fulfill\", params);\n }\n\n createCancelIntent(\n params: CancelOrderIntentParams\n ): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/cancel\", params);\n }\n\n createCheckoutIntent(\n params: CreateCheckoutIntentParams\n ): Promise<{ data: ApiCheckoutIntentResult[] }> {\n return this.post<{ data: ApiCheckoutIntentResult[] }>(\"/v1/intents/checkout\", params);\n }\n\n getIntent(id: string): Promise<ApiResponse<ApiIntent>> {\n return this.get<ApiResponse<ApiIntent>>(`/v1/intents/${id}`);\n }\n\n submitIntentSignature(id: string, signature: string[]): Promise<ApiResponse<ApiIntent>> {\n return this.patch<ApiResponse<ApiIntent>>(`/v1/intents/${id}/signature`, { signature });\n }\n\n confirmIntent(id: string, txHash: string): Promise<ApiResponse<ApiIntent>> {\n return this.patch<ApiResponse<ApiIntent>>(`/v1/intents/${id}/confirm`, { txHash });\n }\n\n syncTransaction(txHash: string): Promise<ApiResponse<ApiTxSyncResult>> {\n return this.post<ApiResponse<ApiTxSyncResult>>(\"/v1/tx/sync\", { txHash });\n }\n\n createMintIntent(params: CreateMintIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/mint\", params);\n }\n\n createCollectionIntent(params: CreateCollectionIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/create-collection\", params);\n }\n\n createTierIntent(params: CreateTierIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/create-tier\", params);\n }\n\n emitToRecipients(params: EmissionParams): Promise<ApiResponse<ApiEmissionResult>> {\n return this.post<ApiResponse<ApiEmissionResult>>(\"/v1/business/issuance/emission\", params);\n }\n\n createCoinIntent(params: CreateCoinIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/create-coin\", params);\n }\n\n launchCoinIntent(params: LaunchCoinIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/launch-coin\", params);\n }\n\n createSponsorshipOfferIntent(params: CreateSponsorshipOfferIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-offer\", params);\n }\n\n setSponsorshipOfferOpenIntent(params: SetSponsorshipOfferOpenIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-offer-open\", params);\n }\n\n placeSponsorshipBidIntent(params: PlaceSponsorshipBidIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-bid\", params);\n }\n\n retractSponsorshipBidIntent(params: RetractSponsorshipBidIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-bid-retract\", params);\n }\n\n acceptSponsorshipBidIntent(params: AcceptSponsorshipBidIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-bid-accept\", params);\n }\n\n createSponsorshipProposalIntent(params: CreateSponsorshipProposalIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-proposal\", params);\n }\n\n withdrawSponsorshipProposalIntent(params: WithdrawSponsorshipProposalIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-proposal-withdraw\", params);\n }\n\n acceptSponsorshipProposalIntent(params: AcceptSponsorshipProposalIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-proposal-accept\", params);\n }\n\n rejectSponsorshipProposalIntent(params: RejectSponsorshipProposalIntentParams): Promise<ApiResponse<ApiIntentCreated>> {\n return this.post<ApiResponse<ApiIntentCreated>>(\"/v1/intents/sponsorship-proposal-reject\", params);\n }\n\n createCounterOfferIntent(\n params: CreateCounterOfferIntentParams,\n siwsToken?: string\n ): Promise<ApiResponse<ApiIntentCreated>> {\n const extraHeaders: Record<string, string> = siwsToken ? { \"Authorization\": `Bearer ${siwsToken}` } : {};\n return this.request<ApiResponse<ApiIntentCreated>>(\"/v1/intents/counter-offer\", {\n method: \"POST\",\n body: JSON.stringify(params),\n headers: extraHeaders,\n });\n }\n\n getCounterOffers(query: ApiCounterOffersQuery): Promise<ApiResponse<ApiOrder[]>> {\n const params = new URLSearchParams();\n if (query.originalOrderHash) params.set(\"originalOrderHash\", query.originalOrderHash);\n if (query.sellerAddress) params.set(\"sellerAddress\", query.sellerAddress);\n if (query.page !== undefined) params.set(\"page\", String(query.page));\n if (query.limit !== undefined) params.set(\"limit\", String(query.limit));\n return this.get<ApiResponse<ApiOrder[]>>(`/v1/orders/counter-offers?${params}`);\n }\n\n getMetadataSignedUrl(kind?: \"image\" | \"document\" | \"media\"): Promise<ApiResponse<ApiMetadataSignedUrl>> {\n const params = kind ? `?kind=${kind}` : \"\";\n return this.get<ApiResponse<ApiMetadataSignedUrl>>(`/v1/metadata/signed-url${params}`);\n }\n\n uploadMetadata(metadata: Record<string, unknown>): Promise<ApiResponse<ApiMetadataUpload>> {\n return this.post<ApiResponse<ApiMetadataUpload>>(\"/v1/metadata/upload\", metadata);\n }\n\n async uploadMetadataDirectory(files: { name: string; content: unknown }[]): Promise<{ cid: string; baseUri: string }> {\n const res = await this.post<{ data: { cid: string; baseUri: string } }>(\"/v1/metadata/upload-directory\", { files });\n return res.data;\n }\n\n resolveMetadata(uri: string): Promise<ApiResponse<unknown>> {\n const params = new URLSearchParams({ uri });\n return this.get<ApiResponse<unknown>>(`/v1/metadata/resolve?${params.toString()}`);\n }\n\n uploadFile(file: File): Promise<ApiResponse<ApiMetadataUpload>> {\n const formData = new FormData();\n formData.append(\"file\", file);\n\n return this.request<ApiResponse<ApiMetadataUpload>>(\"/v1/metadata/upload-file\", {\n method: \"POST\",\n body: formData,\n });\n }\n\n getMe(siwsToken?: string): Promise<ApiResponse<ApiPortalMe>> {\n return this.request<ApiResponse<ApiPortalMe>>(\"/v1/portal/me\", {\n method: \"GET\",\n headers: this.asSubject(siwsToken),\n });\n }\n\n getApiKeys(siwsToken?: string): Promise<ApiResponse<ApiPortalKey[]>> {\n return this.request<ApiResponse<ApiPortalKey[]>>(\"/v1/portal/keys\", {\n method: \"GET\",\n headers: this.asSubject(siwsToken),\n });\n }\n\n createApiKey(\n input?: { label?: string },\n siwsToken?: string,\n ): Promise<ApiResponse<ApiPortalKeyCreated>> {\n return this.request<ApiResponse<ApiPortalKeyCreated>>(\"/v1/portal/keys\", {\n method: \"POST\",\n body: JSON.stringify(input ?? {}),\n headers: this.asSubject(siwsToken),\n });\n }\n\n deleteApiKey(id: string, siwsToken?: string): Promise<ApiResponse<{ id: string }>> {\n return this.request<ApiResponse<{ id: string }>>(`/v1/portal/keys/${id}`, {\n method: \"DELETE\",\n headers: this.asSubject(siwsToken),\n });\n }\n\n getCreditHistory(siwsToken?: string): Promise<ApiResponse<ApiCreditPayment[]>> {\n return this.request<ApiResponse<ApiCreditPayment[]>>(\"/v1/portal/credits/history\", {\n method: \"GET\",\n headers: this.asSubject(siwsToken),\n });\n }\n\n getSpend(siwsToken?: string): Promise<ApiResponse<ApiPortalSpend>> {\n return this.request<ApiResponse<ApiPortalSpend>>(\"/v1/portal/credits/spend\", {\n method: \"GET\",\n headers: this.asSubject(siwsToken),\n });\n }\n\n checkDeposit(txHash: string, siwsToken?: string): Promise<ApiResponse<{ deposits: number }>> {\n return this.request<ApiResponse<{ deposits: number }>>(\"/v1/portal/credits/check\", {\n method: \"POST\",\n body: JSON.stringify({ txHash }),\n headers: this.asSubject(siwsToken),\n });\n }\n\n getFundingMethods(siwsToken?: string): Promise<ApiResponse<ApiFundingMethod[]>> {\n return this.request<ApiResponse<ApiFundingMethod[]>>(\"/v1/portal/funding/methods\", {\n method: \"GET\",\n headers: this.asSubject(siwsToken),\n });\n }\n\n createFunding(\n input: { method: string; params: Record<string, unknown> },\n siwsToken?: string,\n ): Promise<ApiResponse<ApiFundingIntent>> {\n return this.request<ApiResponse<ApiFundingIntent>>(\"/v1/portal/funding\", {\n method: \"POST\",\n body: JSON.stringify({ method: input.method, params: input.params }),\n headers: this.asSubject(siwsToken),\n });\n }\n\n getFunding(id: string, siwsToken?: string): Promise<ApiResponse<ApiFundingIntent>> {\n return this.request<ApiResponse<ApiFundingIntent>>(`/v1/portal/funding/${encodeURIComponent(id)}`, {\n method: \"GET\",\n headers: this.asSubject(siwsToken),\n });\n }\n\n getFundingChallenge(id: string, payer: string, siwsToken?: string): Promise<ApiResponse<{ typedData: unknown }>> {\n return this.request<ApiResponse<{ typedData: unknown }>>(`/v1/portal/funding/${encodeURIComponent(id)}/challenge`, {\n method: \"POST\",\n body: JSON.stringify({ payer }),\n headers: this.asSubject(siwsToken),\n });\n }\n\n authorizeFunding(\n id: string,\n input: { payer: string; signature: string[] },\n siwsToken?: string,\n ): Promise<ApiResponse<{ instructions: ApiFundingInstructions }>> {\n return this.request<ApiResponse<{ instructions: ApiFundingInstructions }>>(\n `/v1/portal/funding/${encodeURIComponent(id)}/authorize`,\n { method: \"POST\", body: JSON.stringify({ payer: input.payer, signature: input.signature }), headers: this.asSubject(siwsToken) },\n );\n }\n\n submitFunding(id: string, txHash: string, siwsToken?: string): Promise<ApiResponse<ApiFundingSubmit>> {\n return this.request<ApiResponse<ApiFundingSubmit>>(`/v1/portal/funding/${encodeURIComponent(id)}/submit`, {\n method: \"POST\",\n body: JSON.stringify({ txHash }),\n headers: this.asSubject(siwsToken),\n });\n }\n\n cancelFunding(id: string, siwsToken?: string): Promise<ApiResponse<{ status: string }>> {\n return this.request<ApiResponse<{ status: string }>>(`/v1/portal/funding/${encodeURIComponent(id)}/cancel`, {\n method: \"POST\",\n body: JSON.stringify({}),\n headers: this.asSubject(siwsToken),\n });\n }\n\n async claimCollection(\n contractAddress: string,\n walletAddress: string,\n siwsToken: string\n ): Promise<{ verified: boolean; collection?: ApiCollection; reason?: string }> {\n return this.request(\"/v1/collections/claim\", {\n method: \"POST\",\n body: JSON.stringify({ contractAddress, walletAddress }),\n headers: this.bearer(siwsToken),\n });\n }\n\n requestCollectionClaim(params: {\n contractAddress: string;\n walletAddress?: string;\n email: string;\n notes?: string;\n }): Promise<{ claim: ApiCollectionClaim }> {\n return this.request(\"/v1/collections/claim/request\", {\n method: \"POST\",\n body: JSON.stringify(params),\n });\n }\n\n registerBusinessProvisioning(params: {\n chain?: \"STARKNET\";\n email: string;\n }): Promise<ApiResponse<ApiBusinessProvisioning> & { reusedExistingWallet?: boolean }> {\n return this.post<ApiResponse<ApiBusinessProvisioning> & { reusedExistingWallet?: boolean }>(\n \"/v1/business/provisioning\",\n { chain: params.chain ?? \"STARKNET\", email: params.email },\n );\n }\n\n getCollectionProfile(contractAddress: string): Promise<ApiCollectionProfile | null> {\n return this.request<ApiCollectionProfile | null>(\n `/v1/collections/${this.addr(contractAddress)}/profile`,\n { method: \"GET\" },\n { allow404: true },\n );\n }\n\n updateCollectionProfile(\n contractAddress: string,\n data: UpdateCollectionProfileInput,\n siwsToken: string\n ): Promise<ApiCollectionProfile> {\n return this.request<ApiCollectionProfile>(\n `/v1/collections/${this.addr(contractAddress)}/profile`,\n { method: \"PATCH\", body: JSON.stringify(data), headers: this.bearer(siwsToken) },\n );\n }\n\n getWalletActivity(\n address: string,\n chain: \"STARKNET\" = \"STARKNET\",\n ): Promise<ApiResponse<ApiWalletActivity[]>> {\n return this.get<ApiResponse<ApiWalletActivity[]>>(\n `/v1/wallet-activity?address=${this.addr(address)}&chain=${chain}`,\n );\n }\n\n getGatedContent(\n contractAddress: string,\n siwsToken: string\n ): Promise<{ title: string; url: string; type: string } | null> {\n return this.request<{ title: string; url: string; type: string } | null>(\n `/v1/collections/${this.addr(contractAddress)}/gated-content`,\n { method: \"GET\", headers: this.bearer(siwsToken) },\n { allow404: true, allow403: true },\n );\n }\n\n getCreators(opts: { search?: string; page?: number; limit?: number } = {}): Promise<ApiCreatorListResult> {\n const params = new URLSearchParams();\n if (opts.search) params.set(\"search\", opts.search);\n if (opts.page) params.set(\"page\", String(opts.page));\n if (opts.limit) params.set(\"limit\", String(opts.limit));\n const qs = params.toString();\n return this.get<ApiCreatorListResult>(`/v1/creators${qs ? `?${qs}` : \"\"}`);\n }\n\n getCreatorProfile(walletAddress: string): Promise<ApiCreatorProfile | null> {\n return this.request<ApiCreatorProfile | null>(\n `/v1/creators/${this.addr(walletAddress)}/profile`,\n { method: \"GET\" },\n { allow404: true },\n );\n }\n\n getCreatorByUsername(username: string): Promise<ApiCreatorProfile | null> {\n return this.request<ApiCreatorProfile | null>(\n `/v1/creators/by-username/${encodeURIComponent(username.toLowerCase().trim())}`,\n { method: \"GET\" },\n { allow404: true },\n );\n }\n\n updateCreatorProfile(\n walletAddress: string,\n data: Partial<Omit<ApiCreatorProfile, \"walletAddress\" | \"chain\" | \"updatedAt\">>,\n siwsToken: string\n ): Promise<ApiCreatorProfile> {\n return this.request<ApiCreatorProfile>(\n `/v1/creators/${this.addr(walletAddress)}/profile`,\n { method: \"PATCH\", body: JSON.stringify(data), headers: this.bearer(siwsToken) },\n );\n }\n\n checkCollectionSlugAvailability(slug: string): Promise<{ available: boolean; reason?: string }> {\n return this.get<{ available: boolean; reason?: string }>(\n `/v1/collection-slug-claims/check/${encodeURIComponent(slug.toLowerCase().trim())}`,\n );\n }\n\n submitCollectionSlugClaim(\n contractAddress: string,\n slug: string,\n siwsToken: string,\n notifyEmail?: string\n ): Promise<{ claim: ApiCollectionSlugClaim }> {\n return this.request<{ claim: ApiCollectionSlugClaim }>(\"/v1/collection-slug-claims\", {\n method: \"POST\",\n body: JSON.stringify({ contractAddress, slug, notifyEmail }),\n headers: this.bearer(siwsToken),\n });\n }\n\n getMyCollectionSlugClaims(siwsToken: string): Promise<{ claims: ApiCollectionSlugClaim[] }> {\n return this.request<{ claims: ApiCollectionSlugClaim[] }>(\"/v1/collection-slug-claims/me\", {\n method: \"GET\",\n headers: this.bearer(siwsToken),\n });\n }\n\n async getCollectionBySlug(slug: string): Promise<ApiCollection | null> {\n const res = await this.request<{ data: ApiCollection } | null>(\n `/v1/collections/by-slug/${encodeURIComponent(slug.toLowerCase().trim())}`,\n { method: \"GET\" },\n { allow404: true },\n );\n return res?.data ?? null;\n }\n\n async registerUser(params: {\n walletAddress: string;\n\n walletType?: string;\n chain?: ApiChain;\n }): Promise<{\n accountId: string;\n publicId: string;\n walletAddress: string;\n chain: string;\n\n provider: string;\n createdAt: string;\n }> {\n return this.post(\"/v1/users/register\", params);\n }\n\n async upsertMyWallet(\n siwsToken: string,\n options: {\n\n walletType?: string;\n\n chain?: ApiChain;\n\n\n email?: string;\n\n accountToken?: string;\n } = {},\n ): Promise<ApiUserWallet> {\n const body: Record<string, string> = {\n walletType: options.walletType ?? \"UNKNOWN\",\n };\n if (options.chain) body.chain = options.chain;\n if (options.email) body.email = options.email;\n if (options.accountToken) body.accountToken = options.accountToken;\n return this.request<ApiUserWallet>(\"/v1/users/me\", {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: this.bearer(siwsToken),\n });\n }\n\n async checkEmail(email: string): Promise<{ exists: boolean }> {\n const body = await this.get<{ exists: boolean }>(`/v1/auth/email/exists?email=${encodeURIComponent(email)}`);\n return { exists: body.exists };\n }\n\n async requestEmailCode(email: string): Promise<void> {\n await this.post<unknown>(\"/v1/auth/email/request-code\", { email });\n }\n\n async registerEmailAccount(email: string): Promise<void> {\n await this.post<unknown>(\"/v1/auth/email/register-account\", { email });\n }\n\n async verifyEmailCode(email: string, code: string): Promise<void> {\n await this.post<unknown>(\"/v1/auth/email/verify-code\", { email, code });\n }\n\n async confirmEmail(token: string): Promise<{ email: string }> {\n const body = await this.post<{ ok: boolean; email: string }>(\"/v1/auth/email/confirm\", { token });\n return { email: body.email };\n }\n\n setupWalletKey(params: { newOwnerPubkey: string }): Promise<{ walletAddress: string; removeOwnerGuid: string | null }> {\n return this.post<{ walletAddress: string; removeOwnerGuid: string | null }>(\"/v1/users/me/wallet/key\", params);\n }\n\n async getSessionWallet(): Promise<{ walletAddress: string; needsKeySetup: boolean } | null> {\n const body = await this.post<{ walletAddress?: string | null; needsKeySetup?: boolean }>(\"/v1/users/me/wallet\", {});\n return body.walletAddress ? { walletAddress: body.walletAddress, needsKeySetup: body.needsKeySetup === true } : null;\n }\n\n getMyWallet(siwsToken: string): Promise<ApiUserWallet | null> {\n return this.request<ApiUserWallet | null>(\n \"/v1/users/me\",\n { method: \"GET\", headers: this.bearer(siwsToken) },\n { allow404: true },\n );\n }\n\n changeMyEmail(email: string, siwsToken: string): Promise<{ email: string }> {\n return this.request<{ email: string }>(\"/v1/users/me/email\", {\n method: \"POST\",\n headers: this.bearer(siwsToken),\n body: JSON.stringify({ email }),\n });\n }\n\n getTokenRemixes(\n contract: string,\n tokenId: string,\n opts: { page?: number; limit?: number } = {}\n ): Promise<ApiResponse<ApiPublicRemix[]>> {\n const params = new URLSearchParams();\n if (opts.page !== undefined) params.set(\"page\", String(opts.page));\n if (opts.limit !== undefined) params.set(\"limit\", String(opts.limit));\n const qs = params.toString();\n return this.get<ApiResponse<ApiPublicRemix[]>>(\n `/v1/tokens/${this.addr(contract)}/${tokenId}/remixes${qs ? `?${qs}` : \"\"}`\n );\n }\n\n submitRemixOffer(\n params: CreateRemixOfferParams,\n siwsToken: string\n ): Promise<ApiResponse<ApiRemixOffer>> {\n return this.request<ApiResponse<ApiRemixOffer>>(\"/v1/remix-offers\", {\n method: \"POST\",\n body: JSON.stringify(params),\n headers: { \"Authorization\": `Bearer ${siwsToken}` },\n });\n }\n\n submitAutoRemixOffer(\n params: AutoRemixOfferParams,\n siwsToken: string\n ): Promise<ApiResponse<ApiRemixOffer>> {\n return this.request<ApiResponse<ApiRemixOffer>>(\"/v1/remix-offers/auto\", {\n method: \"POST\",\n body: JSON.stringify(params),\n headers: { \"Authorization\": `Bearer ${siwsToken}` },\n });\n }\n\n confirmSelfRemix(\n params: ConfirmSelfRemixParams,\n siwsToken: string\n ): Promise<ApiResponse<ApiRemixOffer>> {\n return this.request<ApiResponse<ApiRemixOffer>>(\"/v1/remix-offers/self/confirm\", {\n method: \"POST\",\n body: JSON.stringify(params),\n headers: { \"Authorization\": `Bearer ${siwsToken}` },\n });\n }\n\n getRemixOffers(\n query: ApiRemixOffersQuery,\n siwsToken: string\n ): Promise<ApiResponse<ApiRemixOffer[]>> {\n const params = new URLSearchParams({ role: query.role });\n if (query.status) params.set(\"status\", query.status);\n if (query.page !== undefined) params.set(\"page\", String(query.page));\n if (query.limit !== undefined) params.set(\"limit\", String(query.limit));\n return this.request<ApiResponse<ApiRemixOffer[]>>(`/v1/remix-offers?${params}`, {\n method: \"GET\",\n headers: this.bearer(siwsToken),\n });\n }\n\n getRemixOffer(id: string, siwsToken?: string): Promise<ApiResponse<ApiRemixOffer>> {\n return this.request<ApiResponse<ApiRemixOffer>>(`/v1/remix-offers/${id}`, {\n method: \"GET\",\n headers: siwsToken ? this.bearer(siwsToken) : undefined,\n });\n }\n\n confirmRemixOffer(\n id: string,\n params: ConfirmRemixOfferParams,\n siwsToken: string\n ): Promise<ApiResponse<ApiRemixOffer>> {\n return this.request<ApiResponse<ApiRemixOffer>>(`/v1/remix-offers/${id}/confirm`, {\n method: \"POST\",\n body: JSON.stringify(params),\n headers: { \"Authorization\": `Bearer ${siwsToken}` },\n });\n }\n\n rejectRemixOffer(id: string, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>> {\n return this.request<ApiResponse<ApiRemixOffer>>(`/v1/remix-offers/${id}/reject`, {\n method: \"POST\",\n body: JSON.stringify({}),\n headers: { \"Authorization\": `Bearer ${siwsToken}` },\n });\n }\n\n extendRemixOffer(id: string, days: number, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>> {\n return this.request<ApiResponse<ApiRemixOffer>>(`/v1/remix-offers/${id}/extend`, {\n method: \"POST\",\n body: JSON.stringify({ days }),\n headers: { \"Authorization\": `Bearer ${siwsToken}` },\n });\n }\n\n getCoins(opts: ApiCoinsQuery = {}): Promise<ApiResponse<ApiCoin[]>> {\n const params = new URLSearchParams();\n if (opts.page) params.set(\"page\", String(opts.page));\n if (opts.limit) params.set(\"limit\", String(opts.limit));\n if (opts.service) params.set(\"service\", opts.service);\n if (opts.sort) params.set(\"sort\", opts.sort);\n if (opts.creator) params.set(\"creator\", this.addr(opts.creator));\n if (opts.chain) params.set(\"chain\", opts.chain);\n const qs = params.toString();\n return this.get<ApiResponse<ApiCoin[]>>(`/v1/coins${qs ? `?${qs}` : \"\"}`);\n }\n\n getCoin(contract: string): Promise<{ data: ApiCoin }> {\n return this.get<{ data: ApiCoin }>(`/v1/coins/${this.addr(contract)}`);\n }\n\n getCoinPrices(): Promise<ApiResponse<ApiCoinPrices>> {\n return this.get<ApiResponse<ApiCoinPrices>>(\"/v1/coins/prices\");\n }\n\n claimCoin(coinAddress: string, siwsToken: string): Promise<ApiCoinClaimResult> {\n return this.request<ApiCoinClaimResult>(\"/v1/coins/claim\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${siwsToken}` },\n body: JSON.stringify({ coinAddress }),\n });\n }\n\n getCoinClaims(status = \"PENDING\"): Promise<ApiResponse<ApiCollectionClaim[]>> {\n return this.get<ApiResponse<ApiCollectionClaim[]>>(\n `/v1/coins/claims?status=${encodeURIComponent(status)}`,\n );\n }\n\n updateCoinProfile(\n contract: string,\n data: { image?: string | null; description?: string | null },\n siwsToken: string\n ): Promise<ApiResponse<ApiCoin>> {\n return this.request<ApiResponse<ApiCoin>>(`/v1/coins/${this.addr(contract)}`, {\n method: \"PATCH\",\n body: JSON.stringify(data),\n headers: this.bearer(siwsToken),\n });\n }\n\n async getDropMintStatus(collection: string, wallet: string): Promise<DropMintStatus> {\n const res = await this.get<{ data: DropMintStatus }>(\n `/v1/drop/mint-status/${this.addr(collection)}/${this.addr(wallet)}`\n );\n return res.data;\n }\n\n async getDropInfo(contract: string): Promise<ApiDropInfo | null> {\n const res = await this.request<{ data: ApiDropInfo } | null>(\n `/v1/drop/${this.addr(contract)}/info`,\n { method: \"GET\" },\n { allow404: true },\n );\n return res?.data ?? null;\n }\n\n async getDropState(contract: string): Promise<ApiDropState> {\n const res = await this.get<{ data: ApiDropState }>(`/v1/drop/${this.addr(contract)}/state`);\n return res.data;\n }\n\n async getTicket(contract: string, tokenId: string): Promise<ApiTierOnchain> {\n const res = await this.get<{ data: ApiTierOnchain }>(`/v1/tickets/${this.addr(contract)}/${tokenId}`);\n return res.data;\n }\n\n async getTicketCount(contract: string): Promise<number> {\n const res = await this.get<{ data: { count: number } }>(`/v1/tickets/${this.addr(contract)}/count`);\n return res.data.count;\n }\n\n async getClubMembershipCount(contract: string): Promise<number> {\n const res = await this.get<{ data: { count: number } }>(`/v1/club/${this.addr(contract)}/count`);\n return res.data.count;\n }\n\n async getClubMembership(contract: string, tokenId: string): Promise<ApiTierOnchain> {\n const res = await this.get<{ data: ApiTierOnchain }>(`/v1/club/${this.addr(contract)}/${tokenId}`);\n return res.data;\n }\n\n async isClubMember(contract: string, tokenId: string, wallet: string): Promise<boolean> {\n const res = await this.get<{ data: { isMember: boolean } }>(\n `/v1/club/${this.addr(contract)}/${tokenId}/member/${this.addr(wallet)}`\n );\n return res.data.isMember;\n }\n\n async getIpNftTokenData(contract: string, tokenId: string): Promise<ApiIpNftTokenData | null> {\n const res = await this.get<{ data: ApiIpNftTokenData | null }>(`/v1/ipnft/${this.addr(contract)}/${tokenId}`);\n return res.data;\n }\n\n async getPlatformStats(): Promise<ApiPlatformStats> {\n const res = await this.get<{ data: ApiPlatformStats }>(\"/v1/stats\");\n return res.data;\n }\n\n getTokens(query: ApiTokensQuery = {}): Promise<ApiResponse<ApiToken[]>> {\n const params = new URLSearchParams();\n if (query.page !== undefined) params.set(\"page\", String(query.page));\n if (query.limit !== undefined) params.set(\"limit\", String(query.limit));\n if (query.sort) params.set(\"sort\", query.sort);\n if (query.ipType) params.set(\"ipType\", query.ipType);\n if (query.derivatives) params.set(\"derivatives\", query.derivatives);\n const qs = params.toString();\n return this.get<ApiResponse<ApiToken[]>>(`/v1/tokens${qs ? `?${qs}` : \"\"}`);\n }\n\n async isCreatorHidden(wallet: string): Promise<boolean> {\n const res = await this.get<{ isHidden: boolean }>(`/v1/creators/${this.addr(wallet)}/hidden`);\n return res.isHidden;\n }\n\n getMyUsernameClaim(siwsToken: string): Promise<{ username: string | null; claim: ApiUsernameClaim | null }> {\n return this.request<{ username: string | null; claim: ApiUsernameClaim | null }>(\"/v1/username-claims/me\", {\n method: \"GET\",\n headers: this.bearer(siwsToken),\n });\n }\n\n checkUsernameAvailability(username: string): Promise<{ available: boolean; reason?: string }> {\n return this.get<{ available: boolean; reason?: string }>(\n `/v1/username-claims/check/${encodeURIComponent(username)}`\n );\n }\n\n async submitUsernameClaim(username: string, siwsToken: string, notifyEmail?: string): Promise<ApiUsernameClaim> {\n const res = await this.request<{ claim: ApiUsernameClaim }>(\"/v1/username-claims\", {\n method: \"POST\",\n headers: this.bearer(siwsToken),\n body: JSON.stringify({ username, ...(notifyEmail ? { notifyEmail } : {}) }),\n });\n return res.claim;\n }\n\n async submitReport(report: ApiSubmitReport, siwsToken: string): Promise<void> {\n const targetContract = report.targetContract ? this.addr(report.targetContract) : undefined;\n const targetAddress = report.targetAddress ? this.addr(report.targetAddress) : undefined;\n let targetKey: string | null = null;\n if (report.targetType === \"TOKEN\" && targetContract && report.targetTokenId) {\n targetKey = `TOKEN:${targetContract}:${report.targetTokenId}`;\n } else if (report.targetType === \"COLLECTION\" && targetContract) {\n targetKey = `COLLECTION:${targetContract}`;\n } else if (report.targetType === \"CREATOR\" && targetAddress) {\n targetKey = `CREATOR:${targetAddress}`;\n } else if (report.targetType === \"COMMENT\" && report.targetId) {\n targetKey = `COMMENT::${report.targetId}`;\n }\n if (!targetKey) throw new Error(`A ${report.targetType} report needs its target`);\n\n await this.request<unknown>(\"/v1/reports\", {\n method: \"POST\",\n headers: this.bearer(siwsToken),\n body: JSON.stringify({ ...report, targetKey, targetContract, targetAddress }),\n });\n }\n\n getPricing(): Promise<ApiPricing> {\n return this.get<ApiPricing>(\"/v1/pricing\");\n }\n\n listCollections(query: ApiCollectionsListQuery = {}): Promise<ApiResponse<ApiCollection[]>> {\n const params = new URLSearchParams();\n if (query.page !== undefined) params.set(\"page\", String(query.page));\n if (query.limit !== undefined) params.set(\"limit\", String(query.limit));\n if (query.owner) params.set(\"owner\", this.addr(query.owner));\n if (query.service) params.set(\"service\", query.service);\n if (query.sort) params.set(\"sort\", query.sort);\n if (query.isFeatured !== undefined) params.set(\"isFeatured\", String(query.isFeatured));\n if (query.hideEmpty !== undefined) params.set(\"hideEmpty\", String(query.hideEmpty));\n if (query.standard) params.set(\"standard\", query.standard);\n if (query.chain) params.set(\"chain\", query.chain);\n const qs = params.toString();\n return this.get<ApiResponse<ApiCollection[]>>(`/v1/collections${qs ? `?${qs}` : \"\"}`);\n }\n\n generateWallet(newWalletSiwsToken: string, siwsToken: string): Promise<{ walletAddress: string }> {\n return this.request<{ walletAddress: string }>(\"/v1/users/me/generate-wallet\", {\n method: \"POST\",\n headers: this.bearer(siwsToken),\n body: JSON.stringify({ newWalletSiwsToken }),\n });\n }\n\n syncCoin(coinAddress: string, owner?: string): Promise<{ data: ApiCoin }> {\n return this.post<{ data: ApiCoin }>(\"/v1/coins/sync\", { coinAddress, ...(owner ? { owner } : {}) });\n }\n\n registerCollection(contractAddress: string): Promise<{ data: ApiCollection }> {\n return this.post<{ data: ApiCollection }>(\"/v1/collections/register\", { contractAddress });\n }\n\n getSponsorshipOffers(query: ApiSponsorshipOffersQuery = {}): Promise<ApiResponse<ApiSponsorshipOffer[]>> {\n const params = new URLSearchParams({ limit: String(query.limit ?? 50) });\n if (query.nftContract) params.set(\"nftContract\", query.nftContract);\n if (query.author) params.set(\"author\", query.author);\n if (query.owner) params.set(\"owner\", query.owner);\n if (query.open !== undefined) params.set(\"open\", String(query.open));\n return this.get<ApiResponse<ApiSponsorshipOffer[]>>(`/v1/sponsorship/offers?${params}`);\n }\n\n async getSponsorshipOffer(offerId: string): Promise<ApiSponsorshipOffer | null> {\n const res = await this.request<{ data: ApiSponsorshipOffer } | null>(\n `/v1/sponsorship/offers/${encodeURIComponent(offerId)}`,\n { method: \"GET\" },\n { allow404: true },\n );\n return res?.data ?? null;\n }\n\n async getSponsorshipProposal(proposalId: string): Promise<ApiSponsorshipProposal | null> {\n const res = await this.request<{ data: ApiSponsorshipProposal } | null>(\n `/v1/sponsorship/proposals/${encodeURIComponent(proposalId)}`,\n { method: \"GET\" },\n { allow404: true },\n );\n return res?.data ?? null;\n }\n\n async getSponsorshipBids(offerId: string): Promise<ApiSponsorshipBid[]> {\n const res = await this.get<{ data: ApiSponsorshipBid[] }>(`/v1/sponsorship/offers/${encodeURIComponent(offerId)}/bids`);\n return res.data;\n }\n\n getSponsorshipProposals(query: ApiSponsorshipProposalsQuery = {}): Promise<ApiResponse<ApiSponsorshipProposal[]>> {\n const params = new URLSearchParams({ limit: String(query.limit ?? 50) });\n if (query.nftContract) params.set(\"nftContract\", query.nftContract);\n if (query.proposer) params.set(\"proposer\", query.proposer);\n if (query.owner) params.set(\"owner\", query.owner);\n if (query.open !== undefined) params.set(\"open\", String(query.open));\n return this.get<ApiResponse<ApiSponsorshipProposal[]>>(`/v1/sponsorship/proposals?${params}`);\n }\n\n getSponsorshipLicenses(query: ApiSponsorshipLicensesQuery = {}): Promise<ApiResponse<ApiSponsorshipLicense[]>> {\n const params = new URLSearchParams({ limit: String(query.limit ?? 50) });\n if (query.holder) params.set(\"holder\", query.holder);\n if (query.author) params.set(\"author\", query.author);\n return this.get<ApiResponse<ApiSponsorshipLicense[]>>(`/v1/sponsorship/licenses?${params}`);\n }\n\n async getRewards(address: string): Promise<ApiUserRewards> {\n const res = await this.get<{ data: ApiUserRewards }>(`/v1/rewards/${this.addr(address)}`);\n return res.data;\n }\n\n getRewardsLeaderboard(page = 1, limit = 50): Promise<ApiResponse<ApiRewardsLeaderboardEntry[]>> {\n return this.get<ApiResponse<ApiRewardsLeaderboardEntry[]>>(`/v1/rewards?page=${page}&limit=${limit}`);\n }\n\n getRewardsEvents(address: string, page = 1, limit = 20): Promise<ApiResponse<ApiPointEvent[]>> {\n return this.get<ApiResponse<ApiPointEvent[]>>(\n `/v1/rewards/${this.addr(address)}/events?page=${page}&limit=${limit}`\n );\n }\n\n async getRewardsConfig(): Promise<ApiRewardsConfig> {\n const res = await this.get<{ data: ApiRewardsConfig }>(`/v1/rewards/config`);\n return res.data;\n }\n\n async getRewardsBatch(addresses: string[]): Promise<ApiRewardsBatchEntry[]> {\n if (addresses.length === 0) return [];\n const params = new URLSearchParams({ addresses: addresses.map((a) => this.addr(a)).join(\",\") });\n const res = await this.get<{ data: ApiRewardsBatchEntry[] }>(`/v1/rewards/batch?${params}`);\n return res.data;\n }\n}\n","import { ec, num } from \"starknet\";\n\nexport async function deriveAesKey(prfSecret: Uint8Array, hkdfInfo: Uint8Array): Promise<CryptoKey> {\n const hkdf = await crypto.subtle.importKey(\"raw\", prfSecret as BufferSource, \"HKDF\", false, [\"deriveKey\"]);\n return crypto.subtle.deriveKey(\n { name: \"HKDF\", hash: \"SHA-256\", salt: new Uint8Array(0), info: hkdfInfo as BufferSource },\n hkdf,\n { name: \"AES-GCM\", length: 256 },\n false,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function generateStarkKeyPair(): { privateKeyHex: string; publicKeyHex: string } {\n const privateKeyHex =\n \"0x\" +\n Array.from(ec.starkCurve.utils.randomPrivateKey())\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return { privateKeyHex, publicKeyHex: ec.starkCurve.getStarkKey(privateKeyHex) };\n}\n\nexport class InvalidStarkPrivateKeyError extends Error {\n constructor(reason: string) {\n super(`Not a valid Starknet private key: ${reason}`);\n this.name = \"InvalidStarkPrivateKeyError\";\n }\n}\n\nexport function starkKeyPairFromPrivateKey(input: string): { privateKeyHex: string; publicKeyHex: string } {\n const trimmed = input.trim().replace(/\\s+/g, \"\");\n const body = trimmed.startsWith(\"0x\") || trimmed.startsWith(\"0X\") ? trimmed.slice(2) : trimmed;\n\n if (body.length === 0) throw new InvalidStarkPrivateKeyError(\"it is empty\");\n if (!/^[0-9a-fA-F]+$/.test(body)) throw new InvalidStarkPrivateKeyError(\"it is not hexadecimal\");\n if (body.length > 64) throw new InvalidStarkPrivateKeyError(\"it is too long\");\n\n const value = BigInt(\"0x\" + body);\n if (value === 0n) throw new InvalidStarkPrivateKeyError(\"it is zero\");\n if (value >= ec.starkCurve.CURVE.n) throw new InvalidStarkPrivateKeyError(\"it is outside the curve order\");\n\n const privateKeyHex = \"0x\" + value.toString(16).padStart(64, \"0\");\n return { privateKeyHex, publicKeyHex: ec.starkCurve.getStarkKey(privateKeyHex) };\n}\n\nexport async function sealPrivateKey(\n aesKey: CryptoKey,\n iv: Uint8Array,\n privateKeyHex: string,\n): Promise<ArrayBuffer> {\n return crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv: iv as BufferSource },\n aesKey,\n new TextEncoder().encode(privateKeyHex),\n );\n}\n\nexport async function unsealPrivateKey(\n aesKey: CryptoKey,\n iv: Uint8Array,\n ciphertext: BufferSource,\n): Promise<string> {\n const buf = await crypto.subtle.decrypt({ name: \"AES-GCM\", iv: iv as BufferSource }, aesKey, ciphertext);\n return new TextDecoder().decode(buf);\n}\n\nexport function signWithPrivateKey(privateKeyHex: string, msgHash: string): [string, string] {\n const sig = ec.starkCurve.sign(msgHash, privateKeyHex);\n return [num.toHex(sig.r), num.toHex(sig.s)];\n}\n","import { getCoordinates } from \"./chains.js\";\n\nconst SN = getCoordinates(\"STARKNET\");\n\nexport const STARKNET_MARKETPLACE_721_CONTRACT = SN.marketplace721!;\nexport const STARKNET_MARKETPLACE_721_CLASS_HASH = SN.marketplace721ClassHash!;\nexport const STARKNET_MARKETPLACE_721_START_BLOCK = SN.marketplace721StartBlock!;\nexport const STARKNET_MARKETPLACE_1155_CONTRACT = SN.marketplace1155!;\nexport const STARKNET_MARKETPLACE_1155_CLASS_HASH = SN.marketplace1155ClassHash!;\nexport const STARKNET_MARKETPLACE_1155_START_BLOCK = SN.marketplace1155StartBlock!;\n\nexport const STARKNET_COLLECTION_721_CONTRACT = SN.collection721!;\nexport const STARKNET_DATA_TOKENIZATION_721_CONTRACT = SN.dataTokenization721!;\nexport const STARKNET_COLLECTION_721_START_BLOCK = SN.collection721StartBlock!;\nexport const STARKNET_IPNFT_CLASS_HASH = SN.ipNftClassHash!;\nexport const STARKNET_IPCOLLECTION_CLASS_HASH = SN.ipCollectionClassHash!;\nexport const STARKNET_COLLECTION_1155_CONTRACT = SN.collection1155!;\nexport const STARKNET_COLLECTION_1155_FACTORY_CLASS_HASH = SN.collection1155FactoryClassHash!;\nexport const STARKNET_COLLECTION_1155_CLASS_HASH = SN.collection1155ClassHash!;\nexport const STARKNET_COLLECTION_1155_START_BLOCK = SN.collection1155StartBlock!;\n\nexport const STARKNET_POP_FACTORY_CONTRACT = SN.popFactory!;\nexport const STARKNET_POP_COLLECTION_CLASS_HASH = SN.popCollectionClassHash!;\nexport const STARKNET_POP_FACTORY_START_BLOCK = SN.popFactoryStartBlock;\nexport const STARKNET_DROP_FACTORY_CONTRACT = SN.dropFactory!;\nexport const STARKNET_DROP_COLLECTION_CLASS_HASH = SN.dropCollectionClassHash!;\nexport const STARKNET_NFTCOMMENTS_CONTRACT = SN.nftComments!;\n\nexport const STARKNET_IP_TICKETS_FACTORY_CONTRACT = SN.ipTicketsFactory!;\nexport const STARKNET_IP_TICKET_COLLECTION_CLASS_HASH = SN.ipTicketCollectionClassHash!;\nexport const STARKNET_IP_CLUB_FACTORY_CONTRACT = SN.ipClubFactory!;\nexport const STARKNET_IP_CLUB_COLLECTION_CLASS_HASH = SN.ipClubCollectionClassHash!;\nexport const STARKNET_IP_SPONSORSHIP_CONTRACT = SN.ipSponsorship!;\nexport const STARKNET_IP_SPONSORSHIP_CLASS_HASH = SN.ipSponsorshipClassHash!;\n\nexport const STARKNET_MEDIAWALLET_CLASS_HASH = SN.mediaWalletClassHash!;\n\nexport const STARKNET_CREATOR_COIN_FACTORY_CONTRACT = SN.creatorCoinFactory!;\nexport const STARKNET_CREATOR_COIN_EKUBO_LAUNCHER = SN.creatorCoinEkuboLauncher!;\nexport const STARKNET_CREATOR_COIN_CLASS_HASH = SN.creatorCoinClassHash!;\nexport const STARKNET_CREATOR_COIN_FACTORY_CLASS_HASH = SN.creatorCoinFactoryClassHash!;\nexport const STARKNET_CREATOR_COIN_START_BLOCK = SN.creatorCoinStartBlock!;\n\nexport const STARKNET_GENESIS_MINT_CONTRACT = SN.genesisMint!;\nexport const STARKNET_GENESIS_NFT_URI = \"ipfs://bafkreiag6wzov7migmxwx3wrtudvbx4ajrlbjopqw7uni7nn2nsxv4eykm\";\nexport const STARKNET_EKUBO_CORE = SN.ekuboCore!;\n\nexport const SUPPORTED_TOKENS = [\n {\n\n symbol: \"USDC\",\n address:\n \"0x033068f6539f8e6e6b131e6b2b814e6c34a5224bc66947c47dab9dfee93b35fb\",\n decimals: 6,\n listable: true,\n },\n {\n symbol: \"USDT\",\n address:\n \"0x068f5c6a61780768455de69077e07e89787839bf8166decfbf92b645209c0fb8\",\n decimals: 6,\n listable: true,\n },\n {\n symbol: \"ETH\",\n address:\n \"0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7\",\n decimals: 18,\n listable: true,\n },\n {\n symbol: \"STRK\",\n address:\n \"0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d\",\n decimals: 18,\n listable: true,\n },\n {\n symbol: \"WBTC\",\n address:\n \"0x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac\",\n decimals: 8,\n listable: true,\n },\n] as const;\n\nexport type SupportedTokenSymbol = (typeof SUPPORTED_TOKENS)[number][\"symbol\"];\n\nexport const DEFAULT_CURRENCY: SupportedTokenSymbol = \"USDC\";\n","import { hash, num, type BigNumberish } from \"starknet\";\nimport { STARKNET_MEDIAWALLET_CLASS_HASH } from \"../../constants.js\";\n\nexport function ownerConstructorCalldata(ownerPubkey: BigNumberish): string[] {\n return [\"0x0\", num.toHex(ownerPubkey), \"0x1\"];\n}\n\nexport function computeAccountAddress(ownerPubkey: BigNumberish, salt: BigNumberish = 0): string {\n return hash.calculateContractAddressFromHash(\n num.toHex(salt),\n STARKNET_MEDIAWALLET_CLASS_HASH,\n ownerConstructorCalldata(ownerPubkey),\n 0,\n );\n}\n","import {\n deriveAesKey,\n generateStarkKeyPair,\n sealPrivateKey,\n starkKeyPairFromPrivateKey,\n unsealPrivateKey,\n} from \"../starknet/passkey-wallet/crypto.js\";\nimport { computeAccountAddress } from \"../starknet/media-wallet/account.js\";\nimport type { SealedOwner } from \"./types.js\";\nimport type { RecoveryKey } from \"./recovery-key.js\";\n\nexport class PasskeyCancelledError extends Error {\n constructor(message = \"Passkey prompt was cancelled.\") {\n super(message);\n this.name = \"PasskeyCancelledError\";\n }\n}\n\nexport interface PasskeyConfig {\n appName: string;\n relyingPartyName: string;\n relyingPartyId: () => string;\n prfSalt: Uint8Array<ArrayBuffer>;\n hkdfInfo: Uint8Array<ArrayBuffer>;\n passkeyUser: () => Promise<PublicKeyCredentialUserEntity>;\n knownCredentials: () => PublicKeyCredentialDescriptor[];\n credentials?: CredentialsContainer;\n randomBytes?: (length: number) => Uint8Array<ArrayBuffer>;\n}\n\nexport interface CreatedOwner {\n sealed: SealedOwner;\n privateKeyHex: string;\n}\n\nexport interface PasskeyOwner {\n createOwnerKey(): Promise<CreatedOwner>;\n unlockOwnerKey(sealed: SealedOwner): Promise<string>;\n sealImportedOwnerKey(recovery: RecoveryKey): Promise<SealedOwner>;\n}\n\ninterface Registration {\n credentialId: string;\n prfFirst: ArrayBuffer | null;\n}\n\nconst encodeBase64 = (buf: ArrayBuffer | Uint8Array): string => {\n const bytes = buf instanceof Uint8Array ? buf : new Uint8Array(buf);\n let binary = \"\";\n for (const byte of bytes) binary += String.fromCharCode(byte);\n return btoa(binary);\n};\n\nconst decodeBase64 = (value: string): Uint8Array<ArrayBuffer> => {\n const binary = atob(value);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n return bytes;\n};\n\nfunction isPasskeyCancellation(err: unknown): boolean {\n const name = (err as { name?: string } | null)?.name;\n return name === \"NotAllowedError\" || name === \"AbortError\";\n}\n\nexport function createPasskeyOwner(config: PasskeyConfig): PasskeyOwner {\n const randomBytes: (length: number) => Uint8Array<ArrayBuffer> =\n config.randomBytes ?? ((length: number) => crypto.getRandomValues(new Uint8Array(length)));\n const credentialsApi = (): CredentialsContainer => {\n const api = config.credentials ?? (typeof navigator === \"undefined\" ? undefined : navigator.credentials);\n if (!api) throw new Error(\"Passkeys are only available in a browser.\");\n return api;\n };\n\n const prfUnsupportedMessage = (): string => {\n const isBrave = typeof navigator !== \"undefined\" && \"brave\" in navigator;\n const cause = isBrave\n ? \"Brave doesn't currently support the WebAuthn PRF extension.\"\n : \"This browser didn't return a passkey PRF secret.\";\n return (\n `${cause} ${config.appName} needs it to seal your key. Your device passkey (Touch ID) is fine, ` +\n \"the limitation is the browser. Please open this in Safari or Chrome on an up-to-date OS.\"\n );\n };\n\n async function registerPasskey(): Promise<Registration> {\n let credential: PublicKeyCredential;\n try {\n credential = (await credentialsApi().create({\n publicKey: {\n challenge: randomBytes(32),\n rp: { name: config.relyingPartyName, id: config.relyingPartyId() },\n user: await config.passkeyUser(),\n excludeCredentials: config.knownCredentials(),\n pubKeyCredParams: [\n { type: \"public-key\", alg: -7 },\n { type: \"public-key\", alg: -257 },\n ],\n authenticatorSelection: {\n residentKey: \"required\",\n userVerification: \"required\",\n authenticatorAttachment: \"platform\",\n },\n extensions: { prf: { eval: { first: config.prfSalt } } } as AuthenticationExtensionsClientInputs,\n },\n })) as PublicKeyCredential;\n } catch (err) {\n if (isPasskeyCancellation(err)) throw new PasskeyCancelledError();\n throw err;\n }\n const prf = (\n credential.getClientExtensionResults() as {\n prf?: { enabled?: boolean; results?: { first?: ArrayBuffer } };\n }\n ).prf;\n return { credentialId: encodeBase64(credential.rawId), prfFirst: prf?.results?.first ?? null };\n }\n\n async function prfSecret(credentialId: string): Promise<Uint8Array<ArrayBuffer>> {\n let assertion: PublicKeyCredential;\n try {\n assertion = (await credentialsApi().get({\n publicKey: {\n challenge: randomBytes(32),\n rpId: config.relyingPartyId(),\n allowCredentials: [{ type: \"public-key\", id: decodeBase64(credentialId) }],\n userVerification: \"required\",\n extensions: { prf: { eval: { first: config.prfSalt } } } as AuthenticationExtensionsClientInputs,\n },\n })) as PublicKeyCredential;\n } catch (err) {\n if (isPasskeyCancellation(err)) throw new PasskeyCancelledError();\n throw err;\n }\n const result = (assertion.getClientExtensionResults() as { prf?: { results?: { first?: ArrayBuffer } } }).prf\n ?.results?.first;\n if (!result) throw new Error(\"Passkey PRF unavailable on this device/browser.\");\n return new Uint8Array(result);\n }\n\n async function secretFromRegistration(registration: Registration): Promise<Uint8Array<ArrayBuffer>> {\n if (registration.prfFirst) return new Uint8Array(registration.prfFirst);\n try {\n return await prfSecret(registration.credentialId);\n } catch {\n throw new Error(prfUnsupportedMessage());\n }\n }\n\n async function seal(secret: Uint8Array<ArrayBuffer>, privateKeyHex: string): Promise<{ iv: string; ciphertext: string }> {\n const aes = await deriveAesKey(secret, config.hkdfInfo);\n const iv = randomBytes(12);\n const ciphertext = await sealPrivateKey(aes, iv, privateKeyHex);\n return { iv: encodeBase64(iv), ciphertext: encodeBase64(ciphertext) };\n }\n\n return {\n async createOwnerKey() {\n const registration = await registerPasskey();\n const secret = await secretFromRegistration(registration);\n const { privateKeyHex, publicKeyHex } = generateStarkKeyPair();\n const { iv, ciphertext } = await seal(secret, privateKeyHex);\n return {\n sealed: {\n credentialId: registration.credentialId,\n ownerPubKey: publicKeyHex,\n address: computeAccountAddress(publicKeyHex, 0),\n iv,\n ciphertext,\n },\n privateKeyHex,\n };\n },\n\n async unlockOwnerKey(sealed) {\n const secret = await prfSecret(sealed.credentialId);\n const aes = await deriveAesKey(secret, config.hkdfInfo);\n return unsealPrivateKey(aes, decodeBase64(sealed.iv), decodeBase64(sealed.ciphertext));\n },\n\n async sealImportedOwnerKey(recovery) {\n const { privateKeyHex, publicKeyHex } = starkKeyPairFromPrivateKey(recovery.privateKey);\n const registration = await registerPasskey();\n const secret = await secretFromRegistration(registration);\n const { iv, ciphertext } = await seal(secret, privateKeyHex);\n return {\n credentialId: registration.credentialId,\n ownerPubKey: publicKeyHex,\n address: recovery.walletAddress,\n iv,\n ciphertext,\n };\n },\n };\n}\n","import type { ServiceDefinition, ServiceCapability } from \"../types/api.js\";\nimport { getStarknetCoordinates } from \"../chains.js\";\n\nconst SN = getStarknetCoordinates(\"STARKNET\");\n\nconst SERVICES = {\n \"mip-erc721\": {\n id: \"mip-erc721\",\n displayName: \"IP Collection\",\n description: \"Tokenize intellectual property as a per-creator ERC-721 collection.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.collection721!,\n startBlock: SN.collection721StartBlock!,\n },\n },\n uiVariant: \"standard\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\", \"mint\", \"remix\", \"license\"],\n events: [\n { name: \"CollectionCreated\", emittedBy: \"factory\" },\n\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"ip-erc721\": {\n id: \"ip-erc721\",\n displayName: \"Programmable IP\",\n description: \"One shared ERC-721 contract any wallet can mint into.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n uiVariant: \"standard\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\", \"mint\", \"remix\", \"license\"],\n\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"data-tokenization-erc721\": {\n id: \"data-tokenization-erc721\",\n displayName: \"Data Tokenization\",\n description: \"Establish verifiable ownership of your data, with licensing terms that hold up wherever it travels.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.dataTokenization721!,\n startBlock: SN.dataTokenization721StartBlock!,\n },\n },\n uiVariant: \"standard\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\", \"mint\", \"remix\", \"license\"],\n events: [\n { name: \"CollectionCreated\", emittedBy: \"factory\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"mip-erc1155\": {\n id: \"mip-erc1155\",\n displayName: \"NFT Editions\",\n description: \"Per-creator ERC-1155 collection; creator mints editions.\",\n standard: \"ERC1155\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.collection1155!,\n classHash: SN.collection1155ClassHash!,\n startBlock: SN.collection1155StartBlock!,\n },\n },\n uiVariant: \"edition\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\", \"mint\", \"remix\", \"license\"],\n events: [\n { name: \"CollectionDeployed\", emittedBy: \"factory\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"pop-protocol\": {\n id: \"pop-protocol\",\n displayName: \"POP Protocol\",\n description: \"Soulbound proof-of-presence collectibles per event.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.popFactory!,\n classHash: SN.popCollectionClassHash!,\n },\n },\n uiVariant: \"pop\",\n capabilities: [\"claim\", \"mint\"],\n events: [\n { name: \"CollectionCreated\", emittedBy: \"factory\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"certificate-emission\": {\n id: \"certificate-emission\",\n displayName: \"Certificate Emission\",\n description: \"Issue a soulbound credential to a list of recipients in one run — everyone gets a wallet and their certificate.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.popFactory!,\n classHash: SN.popCollectionClassHash!,\n },\n },\n uiVariant: \"pop\",\n capabilities: [\"mint\", \"airdrop\"],\n events: [\n { name: \"CollectionCreated\", emittedBy: \"factory\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"drop-collection\": {\n id: \"drop-collection\",\n displayName: \"Collection Drop\",\n description: \"Sequential mint with claim windows + allowlist.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.dropFactory!,\n classHash: SN.dropCollectionClassHash!,\n },\n },\n uiVariant: \"drop\",\n capabilities: [\"claim\", \"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\"],\n events: [\n { name: \"DropCreated\", emittedBy: \"factory\" },\n { name: \"AllowlistUpdated\", emittedBy: \"instance\", poll: \"slow\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"ip-tickets\": {\n id: \"ip-tickets\",\n displayName: \"IP Tickets\",\n description: \"Create verifiable on-chain tickets — mint to attendees, trade like any collection.\",\n standard: \"ERC1155\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.ipTicketsFactory!,\n classHash: SN.ipTicketCollectionClassHash!,\n },\n },\n uiVariant: \"ticket\",\n capabilities: [\"mint\", \"redeem\", \"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\"],\n events: [\n { name: \"CollectionDeployed\", emittedBy: \"factory\" },\n { name: \"TicketCreated\", emittedBy: \"instance\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"ip-ticketing\": {\n id: \"ip-ticketing\",\n displayName: \"IP Ticketing\",\n description: \"Distribute verifiable on-chain tickets to a list of recipients in one run — everyone gets a wallet and their ticket.\",\n standard: \"ERC1155\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.ipTicketsFactory!,\n classHash: SN.ipTicketCollectionClassHash!,\n },\n },\n uiVariant: \"ticket\",\n capabilities: [\"mint\", \"airdrop\", \"redeem\", \"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\"],\n events: [\n { name: \"CollectionDeployed\", emittedBy: \"factory\" },\n { name: \"TicketCreated\", emittedBy: \"instance\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"ip-club\": {\n id: \"ip-club\",\n displayName: \"IP Club\",\n description: \"Membership clubs — create tiers, mint membership cards, trade like any collection.\",\n standard: \"ERC1155\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.ipClubFactory!,\n classHash: SN.ipClubCollectionClassHash!,\n },\n },\n uiVariant: \"club\",\n capabilities: [\"mint\", \"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\"],\n events: [\n { name: \"ClubDeployed\", emittedBy: \"factory\" },\n { name: \"MembershipCreated\", emittedBy: \"instance\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"ip-sponsorship\": {\n id: \"ip-sponsorship\",\n displayName: \"IP Sponsorship\",\n description: \"Sponsorship offers and licenses anchored to an existing Medialane asset.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.ipSponsorship!,\n classHash: SN.ipSponsorshipClassHash!,\n startBlock: SN.ipSponsorshipStartBlock!,\n },\n },\n uiVariant: \"standard\",\n\n capabilities: [\"sponsor\", \"transfer\"],\n events: [\n { name: \"OfferCreated\", emittedBy: \"factory\" },\n { name: \"ProposalCreated\", emittedBy: \"factory\" },\n { name: \"LicenseMinted\", emittedBy: \"factory\" },\n ],\n metadataSchema: { licenseDefault: \"CC BY-SA\" },\n },\n \"creator-coin\": {\n id: \"creator-coin\",\n displayName: \"Creator Coin\",\n description:\n \"Launch a fixed-supply social token with permanently-locked Ekubo liquidity.\",\n standard: \"ERC20\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.creatorCoinFactory!,\n classHash: SN.creatorCoinFactoryClassHash!,\n startBlock: SN.creatorCoinStartBlock!,\n },\n },\n uiVariant: \"coin\",\n\n capabilities: [\"launch\", \"swap\", \"transfer\"],\n events: [\n { name: \"CreatorCoinCreated\", emittedBy: \"factory\" },\n { name: \"CreatorCoinLaunched\", emittedBy: \"factory\" },\n ],\n },\n \"medialane-marketplace-erc721\": {\n id: \"medialane-marketplace-erc721\",\n displayName: \"Medialane Marketplace (ERC-721)\",\n description: \"ERC-721 order matching venue.\",\n standard: \"ERC721\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.marketplace721!,\n classHash: SN.marketplace721ClassHash!,\n startBlock: SN.marketplace721StartBlock!,\n },\n },\n uiVariant: \"standard\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\"],\n events: [\n { name: \"OrderCreated\", emittedBy: \"factory\" },\n { name: \"OrderFulfilled\", emittedBy: \"factory\" },\n { name: \"OrderCancelled\", emittedBy: \"factory\" },\n ],\n },\n \"medialane-marketplace-erc1155\": {\n id: \"medialane-marketplace-erc1155\",\n displayName: \"Medialane Marketplace (ERC-1155)\",\n description: \"ERC-1155 order matching venue.\",\n standard: \"ERC1155\",\n provenance: \"MEDIALANE\",\n onchain: {\n STARKNET: {\n factoryAddress: SN.marketplace1155!,\n classHash: SN.marketplace1155ClassHash!,\n startBlock: SN.marketplace1155StartBlock!,\n },\n },\n uiVariant: \"edition\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\"],\n events: [\n { name: \"OrderCreated\", emittedBy: \"factory\" },\n { name: \"OrderFulfilled\", emittedBy: \"factory\" },\n { name: \"OrderCancelled\", emittedBy: \"factory\" },\n ],\n },\n \"unruggable-erc20\": {\n id: \"unruggable-erc20\",\n displayName: \"Unruggable\",\n description:\n \"An ERC-20 launched through the unruggable.meme protocol, the same contract Medialane's Creator Coin is forked from. Not deployed via a Medialane service, but exposes the same on-chain guarantees: capped team allocation, permanently locked liquidity, fixed supply. Brought in by owner claim or admin/partnership — never bulk-indexed.\",\n standard: \"ERC20\",\n provenance: \"EXTERNAL\",\n uiVariant: \"coin\",\n capabilities: [\"swap\", \"transfer\"],\n },\n \"external-erc20\": {\n id: \"external-erc20\",\n displayName: \"Memecoin\",\n description:\n \"A plain ERC-20 not deployed via a Medialane service and carrying no protocol-level guarantees. Brought in by owner claim or admin/partnership — never bulk-indexed. Generalizes to future chains.\",\n standard: \"ERC20\",\n provenance: \"EXTERNAL\",\n uiVariant: \"coin\",\n capabilities: [\"swap\", \"transfer\"],\n },\n \"external-erc721\": {\n id: \"external-erc721\",\n displayName: \"External ERC-721\",\n description: \"ERC-721 contract not deployed via a Medialane service.\",\n standard: \"ERC721\",\n provenance: \"EXTERNAL\",\n uiVariant: \"standard\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\"],\n },\n \"external-erc1155\": {\n id: \"external-erc1155\",\n displayName: \"External ERC-1155\",\n description: \"ERC-1155 contract not deployed via a Medialane service.\",\n standard: \"ERC1155\",\n provenance: \"EXTERNAL\",\n uiVariant: \"edition\",\n capabilities: [\"list\", \"buy\", \"make_offer\", \"cancel\", \"transfer\"],\n },\n} as const satisfies Record<string, ServiceDefinition>;\n\nexport type ServiceId = keyof typeof SERVICES;\n\nexport function isServiceId(id: string | null | undefined): id is ServiceId {\n return typeof id === \"string\" && id in SERVICES;\n}\n\nexport function getService(id: string | null | undefined): ServiceDefinition | undefined {\n return id && id in SERVICES ? (SERVICES as Record<string, ServiceDefinition>)[id] : undefined;\n}\n\nexport function listServices(): ServiceDefinition[] {\n return Object.values(SERVICES);\n}\n\nexport function getServicesByCapability(cap: ServiceCapability): ServiceDefinition[] {\n return Object.values(SERVICES).filter(\n (s) => (s.capabilities as readonly ServiceCapability[]).includes(cap),\n );\n}\n\nexport function hasCapability(\n id: string | null | undefined,\n cap: ServiceCapability,\n): boolean {\n return getService(id)?.capabilities.includes(cap) ?? false;\n}\n","import { SUPPORTED_TOKENS } from \"../constants.js\";\n\nexport type SupportedToken = (typeof SUPPORTED_TOKENS)[number];\n\nexport function parseAmount(human: string, decimals: number): string {\n const [whole, frac = \"\"] = human.split(\".\");\n const fracPadded = frac.padEnd(decimals, \"0\").slice(0, decimals);\n return (BigInt(whole) * BigInt(10) ** BigInt(decimals) + BigInt(fracPadded)).toString();\n}\n\nexport function formatAmount(raw: string, decimals: number): string {\n const value = BigInt(raw);\n const factor = 10n ** BigInt(decimals);\n const whole = value / factor;\n const remainder = value % factor;\n const fractional = remainder.toString().padStart(decimals, \"0\").replace(/0+$/, \"\");\n return fractional ? `${whole}.${fractional}` : whole.toString();\n}\n\nexport function getTokenByAddress(address: string | null | undefined): SupportedToken | undefined {\n if (typeof address !== \"string\" || address.trim() === \"\") return undefined;\n\n let target: bigint | null = null;\n try {\n target = BigInt(address);\n } catch {\n target = null;\n }\n return SUPPORTED_TOKENS.find((t) => {\n if (target !== null) {\n try {\n return BigInt(t.address) === target;\n } catch {\n\n }\n }\n return t.address.toLowerCase() === address.toLowerCase();\n });\n}\n\nexport function getTokenBySymbol(symbol: string | null | undefined): SupportedToken | undefined {\n if (typeof symbol !== \"string\") return undefined;\n const upper = symbol.toUpperCase();\n return SUPPORTED_TOKENS.find((t) => t.symbol === upper);\n}\n\nexport function getListableTokens(): ReadonlyArray<SupportedToken> {\n return SUPPORTED_TOKENS.filter((t) => t.listable);\n}\n","\nexport function stringifyBigInts(obj: unknown): unknown {\n if (typeof obj === \"bigint\") {\n return obj.toString();\n }\n if (Array.isArray(obj)) {\n return obj.map(stringifyBigInts);\n }\n if (obj !== null && typeof obj === \"object\") {\n return Object.fromEntries(\n Object.entries(obj as Record<string, unknown>).map(([key, value]) => [\n key,\n stringifyBigInts(value),\n ])\n );\n }\n return obj;\n}\n\nexport function u256ToBigInt(low: string, high: string): bigint {\n return BigInt(low) + (BigInt(high) << 128n);\n}\n\nexport function encodeU256(n: bigint): [string, string] {\n return [\n (n & 0xffffffffffffffffffffffffffffffffn).toString(),\n (n >> 128n).toString(),\n ];\n}\n","const TRANSIENT_BODY_RE =\n /\"code\"\\s*:\\s*-32001|\"code\"\\s*:\\s*-32603|unable to complete|rate.?limit|too many|throttl|exceed.*quota|temporarily unavailable|service unavailable|overload|gateway.*time|upstream.*time|backend.*error/i;\n\nexport const POLICY_REFUSAL_CODES: readonly number[] = [-32003, -32005, -32600];\n\nexport function isPolicyRefusal(input: { body?: unknown }): boolean {\n let body = input.body;\n\n if (typeof body === \"string\") {\n try {\n body = JSON.parse(body);\n } catch {\n return false;\n }\n }\n const err = (body as { error?: { code?: unknown } } | null | undefined)?.error;\n const code = err && typeof err === \"object\" ? (err as { code?: unknown }).code : undefined;\n return typeof code === \"number\" && POLICY_REFUSAL_CODES.includes(code);\n}\n\nexport function isTransientRpcError(input: { status?: number; body?: unknown }): boolean {\n const { status, body } = input;\n\n if (isPolicyRefusal({ body })) return false;\n\n if (typeof status === \"number\" && (status === 429 || status >= 500)) return true;\n if (body == null) return false;\n\n if (typeof body === \"object\") {\n const err = (body as { error?: { code?: unknown; message?: unknown } }).error;\n if (!err || typeof err !== \"object\") return false;\n const code = (err as { code?: unknown }).code;\n if (typeof code === \"number\") {\n if (code === 429) return true;\n if (code >= -32099 && code <= -32000) return true;\n if (code === -32603) return true;\n }\n const message = (err as { message?: unknown }).message;\n return typeof message === \"string\" ? TRANSIENT_BODY_RE.test(message) : false;\n }\n\n return TRANSIENT_BODY_RE.test(String(body));\n}\n\nexport interface FailoverFetchOptions {\n\n baseFetch?: typeof fetch;\n\n onFailover?: (info: { url: string; status?: number; error?: unknown }) => void;\n}\n\nexport function createFailoverFetch(\n urls: string[],\n options: FailoverFetchOptions = {},\n): typeof fetch {\n const endpoints = urls.filter((u): u is string => Boolean(u));\n if (endpoints.length === 0) {\n throw new Error(\"createFailoverFetch: at least one RPC URL is required\");\n }\n const doFetch = options.baseFetch ?? fetch;\n\n const failover = async (_input: unknown, init?: RequestInit): Promise<Response> => {\n let lastError: unknown;\n\n for (let i = 0; i < endpoints.length; i++) {\n const url = endpoints[i];\n const isLast = i === endpoints.length - 1;\n try {\n const res = await doFetch(url, init);\n const text = await res.text();\n const rebuilt = () =>\n new Response(text, { status: res.status, statusText: res.statusText, headers: res.headers });\n\n if (isLast || !isTransientRpcError({ status: res.status, body: text })) {\n return rebuilt();\n }\n options.onFailover?.({ url, status: res.status });\n } catch (err) {\n lastError = err;\n if (isLast) throw err;\n options.onFailover?.({ url, error: err });\n }\n }\n\n throw lastError ?? new Error(\"createFailoverFetch: all endpoints failed\");\n };\n\n return failover as unknown as typeof fetch;\n}\n","export class UserFacingError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"UserFacingError\";\n }\n}\n"]}
@@ -19,8 +19,9 @@ var COORDINATES = {
19
19
  collection1155FactoryClassHash: "0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2",
20
20
  collection1155ClassHash: "0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78",
21
21
  collection1155StartBlock: 11199527,
22
- popFactory: "0x00b32c34b427d8f346b5843ada6a37bd3368d879fc752cd52b68a87287f60111",
23
- popCollectionClassHash: "0x077c421686f10851872561953ea16898d933364b7f8937a5d7e2b1ba0a36263f",
22
+ popFactory: "0x06af6ffdde310991a40570716dc3681acc7effc610aeb548ea0baa02d4208d5f",
23
+ popCollectionClassHash: "0x076200229933dd10b8d6d41ecb1a53ba1972510a42f4d505dae4f6b54d1b317e",
24
+ popFactoryStartBlock: 16126169,
24
25
  dropFactory: "0x03587f42e29daee1b193f6cf83bf8627908ed6632d0d83fcb26225c50547d800",
25
26
  dropCollectionClassHash: "0x00092e72cdb63067521e803aaf7d4101c3e3ce026ae6bc045ec4228027e58282",
26
27
  nftComments: "0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843",
@@ -59,5 +60,5 @@ function getStarknetCoordinates(chain) {
59
60
  }
60
61
 
61
62
  export { CHAINS, DEFAULT_CHAIN, getCoordinates, getStarknetCoordinates };
62
- //# sourceMappingURL=chunk-3PZUSEAW.js.map
63
- //# sourceMappingURL=chunk-3PZUSEAW.js.map
63
+ //# sourceMappingURL=chunk-PBJLHXDB.js.map
64
+ //# sourceMappingURL=chunk-PBJLHXDB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chains.ts"],"names":[],"mappings":";AAEO,IAAM,SAAS,CAAC,UAAA,EAAY,YAAY,QAAA,EAAU,MAAA,EAAQ,WAAW,SAAS;AAsFrF,IAAM,WAAA,GAAkC;AAAA,EACtC,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,iCAAA;AAAA,IACR,cAAA,EAAgB,oEAAA;AAAA,IAChB,uBAAA,EAAyB,oEAAA;AAAA,IACzB,wBAAA,EAA0B,QAAA;AAAA,IAC1B,eAAA,EAAiB,oEAAA;AAAA,IACjB,wBAAA,EAA0B,oEAAA;AAAA,IAC1B,yBAAA,EAA2B,QAAA;AAAA,IAC3B,aAAA,EAAe,oEAAA;AAAA,IACf,uBAAA,EAAyB,QAAA;AAAA,IACzB,mBAAA,EAAqB,oEAAA;AAAA,IACrB,6BAAA,EAA+B,QAAA;AAAA,IAC/B,cAAA,EAAgB,oEAAA;AAAA,IAChB,qBAAA,EAAuB,oEAAA;AAAA,IACvB,cAAA,EAAgB,oEAAA;AAAA,IAChB,8BAAA,EAAgC,oEAAA;AAAA,IAChC,uBAAA,EAAyB,oEAAA;AAAA,IACzB,wBAAA,EAA0B,QAAA;AAAA,IAC1B,UAAA,EAAY,oEAAA;AAAA,IACZ,sBAAA,EAAwB,oEAAA;AAAA,IACxB,oBAAA,EAAsB,QAAA;AAAA,IACtB,WAAA,EAAa,oEAAA;AAAA,IACb,uBAAA,EAAyB,oEAAA;AAAA,IACzB,WAAA,EAAa,oEAAA;AAAA,IACb,kBAAA,EAAoB,mEAAA;AAAA,IACpB,wBAAA,EAA0B,mEAAA;AAAA,IAC1B,oBAAA,EAAsB,mEAAA;AAAA,IACtB,2BAAA,EAA6B,mEAAA;AAAA,IAC7B,qBAAA,EAAuB,QAAA;AAAA,IACvB,SAAA,EAAW,oEAAA;AAAA,IACX,gBAAA,EAAkB,oEAAA;AAAA,IAClB,2BAAA,EAA6B,oEAAA;AAAA,IAC7B,yBAAA,EAA2B,oEAAA;AAAA,IAC3B,mBAAA,EAAqB,QAAA;AAAA,IACrB,aAAA,EAAe,oEAAA;AAAA,IACf,sBAAA,EAAwB,oEAAA;AAAA,IACxB,yBAAA,EAA2B,oEAAA;AAAA,IAC3B,uBAAA,EAAyB,QAAA;AAAA,IAEzB,aAAA,EAAe,oEAAA;AAAA,IACf,sBAAA,EAAwB,oEAAA;AAAA,IACxB,uBAAA,EAAyB,QAAA;AAAA,IACzB,oBAAA,EAAsB,oEAAA;AAAA,IACtB,WAAA,EAAa;AAAA;AAEjB,CAAA;AASO,SAAS,eACd,KAAA,EAC+E;AAC/E,EAAA,MAAM,CAAA,GAAI,YAAY,KAAK,CAAA;AAC3B,EAAA,IAAI,CAAC,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,CAAA,qCAAA,EAAwC,KAAK,CAAA,CAAA,CAAG,CAAA;AACxE,EAAA,OAAO,CAAA;AACT;AAEO,IAAM,aAAA,GAAuB;AAE7B,SAAS,uBAAuB,KAAA,EAAmC;AACxE,EAAA,IAAI,UAAU,UAAA,EAAY;AACxB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,6CAAA,EAAgD,KAAK,CAAA,EAAA,CAAI,CAAA;AAAA,EAC3E;AACA,EAAA,OAAO,eAAe,UAAU,CAAA;AAClC","file":"chunk-PBJLHXDB.js","sourcesContent":["\n\nexport const CHAINS = [\"STARKNET\", \"ETHEREUM\", \"SOLANA\", \"BASE\", \"STELLAR\", \"BITCOIN\"] as const;\nexport type Chain = (typeof CHAINS)[number];\n\nexport interface StarknetCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721ClassHash?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155ClassHash?: `0x${string}`;\n marketplace1155StartBlock?: number;\n collection721?: `0x${string}`;\n collection721StartBlock?: number;\n dataTokenization721?: `0x${string}`;\n dataTokenization721StartBlock?: number;\n ipNftClassHash?: `0x${string}`;\n ipCollectionClassHash?: `0x${string}`;\n collection1155?: `0x${string}`;\n collection1155FactoryClassHash?: `0x${string}`;\n collection1155ClassHash?: `0x${string}`;\n collection1155StartBlock?: number;\n popFactory?: `0x${string}`;\n popCollectionClassHash?: `0x${string}`;\n popFactoryStartBlock?: number;\n dropFactory?: `0x${string}`;\n dropCollectionClassHash?: `0x${string}`;\n nftComments?: `0x${string}`;\n creatorCoinFactory?: `0x${string}`;\n creatorCoinEkuboLauncher?: `0x${string}`;\n creatorCoinClassHash?: `0x${string}`;\n creatorCoinFactoryClassHash?: `0x${string}`;\n creatorCoinStartBlock?: number;\n ekuboCore?: `0x${string}`;\n ipTicketsFactory?: `0x${string}`;\n ipTicketCollectionClassHash?: `0x${string}`;\n ipTicketsFactoryClassHash?: `0x${string}`;\n ipTicketsStartBlock?: number;\n ipClubFactory?: `0x${string}`;\n ipClubFactoryClassHash?: `0x${string}`;\n ipClubCollectionClassHash?: `0x${string}`;\n ipClubFactoryStartBlock?: number;\n ipSponsorship?: `0x${string}`;\n ipSponsorshipClassHash?: `0x${string}`;\n ipSponsorshipStartBlock?: number;\n mediaWalletClassHash?: `0x${string}`;\n genesisMint?: `0x${string}`;\n}\n\nexport interface EvmCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155StartBlock?: number;\n mipRegistry?: `0x${string}`;\n mipRegistryStartBlock?: number;\n mipEditionsRegistry?: `0x${string}`;\n mipEditionsRegistryStartBlock?: number;\n}\n\nexport interface SolanaCoordinates {\n rpcUrl: string;\n mipCollectionsProgram?: string;\n marketplaceProgram?: string;\n startSlot?: number;\n}\n\nexport interface StellarCoordinates {\n rpcUrl: string;\n mipRegistry?: string;\n marketplace?: string;\n collectionWasmHash?: string;\n startLedger?: number;\n}\n\nexport interface CoordinatesByChain {\n STARKNET?: StarknetCoordinates;\n ETHEREUM?: EvmCoordinates;\n BASE?: EvmCoordinates;\n SOLANA?: SolanaCoordinates;\n STELLAR?: StellarCoordinates;\n BITCOIN?: never;\n}\n\nexport type ChainCoordinates = StarknetCoordinates;\n\nconst COORDINATES: CoordinatesByChain = {\n STARKNET: {\n rpcUrl: \"https://rpc.starknet.lava.build\",\n marketplace721: \"0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc\",\n marketplace721ClassHash: \"0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90\",\n marketplace721StartBlock: 11198146,\n marketplace1155: \"0x07c4ce1c19ea48cc11135ed22b19ff745f5aec508c3828593002e4f76fdb1b38\",\n marketplace1155ClassHash: \"0x0242f5c388da7cee2d99e2a69453c8159bf927fbec4e797a3cfdcbbcb5b68328\",\n marketplace1155StartBlock: 11198267,\n collection721: \"0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea\",\n collection721StartBlock: 11198496,\n dataTokenization721: \"0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2\",\n dataTokenization721StartBlock: 14670294,\n ipNftClassHash: \"0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc\",\n ipCollectionClassHash: \"0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4\",\n collection1155: \"0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551\",\n collection1155FactoryClassHash: \"0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2\",\n collection1155ClassHash: \"0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78\",\n collection1155StartBlock: 11199527,\n popFactory: \"0x06af6ffdde310991a40570716dc3681acc7effc610aeb548ea0baa02d4208d5f\",\n popCollectionClassHash: \"0x076200229933dd10b8d6d41ecb1a53ba1972510a42f4d505dae4f6b54d1b317e\",\n popFactoryStartBlock: 16126169,\n dropFactory: \"0x03587f42e29daee1b193f6cf83bf8627908ed6632d0d83fcb26225c50547d800\",\n dropCollectionClassHash: \"0x00092e72cdb63067521e803aaf7d4101c3e3ce026ae6bc045ec4228027e58282\",\n nftComments: \"0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843\",\n creatorCoinFactory: \"0x50fa807b5274079fb19374673d7bab6d2dc3af7e1032ea43eb6e44bcbde4c3c\",\n creatorCoinEkuboLauncher: \"0x4f7fceb5ac10f12f9544a09580592e5bdf1b7f04f48765eecf12286d8ccb7b4\",\n creatorCoinClassHash: \"0x743e4c8a5b96bb83bbf4af04edbbb482d5ece89eed9b729a79fb7df0cd0b6b6\",\n creatorCoinFactoryClassHash: \"0x51765926b1344c9a20b8cd4b5abe7b7d47375ae97cf6804db3ea5d4b05a9b55\",\n creatorCoinStartBlock: 10474544,\n ekuboCore: \"0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b\",\n ipTicketsFactory: \"0x0767bf5b57e1f812463159b5ed683183e1b0c3f942b74871b5c6cd6a93c15e99\",\n ipTicketCollectionClassHash: \"0x0449e8eb7c117740d07cb8e0157d32c8ba3d19d1cfd2784ed5e139f5a1e04acc\",\n ipTicketsFactoryClassHash: \"0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a\",\n ipTicketsStartBlock: 11933694,\n ipClubFactory: \"0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9\",\n ipClubFactoryClassHash: \"0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266\",\n ipClubCollectionClassHash: \"0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5\",\n ipClubFactoryStartBlock: 11928775,\n\n ipSponsorship: \"0x03729ebe0fedf29ec97fca34db09174772af7f870af26a26e024a61040143e5c\",\n ipSponsorshipClassHash: \"0x0626daac2ed7e2bf630ef5b10104b3202db1559216c0c1a504c0e99be2fbfec3\",\n ipSponsorshipStartBlock: 11896456,\n mediaWalletClassHash: \"0x014b210c7d47392691144bafecdca3c6c7791cc295ea305988da0a724c05ac31\",\n genesisMint: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n },\n};\n\nexport function getCoordinates(chain: \"STARKNET\"): StarknetCoordinates;\nexport function getCoordinates(chain: \"ETHEREUM\" | \"BASE\"): EvmCoordinates;\nexport function getCoordinates(chain: \"SOLANA\"): SolanaCoordinates;\nexport function getCoordinates(chain: \"STELLAR\"): StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates {\n const c = COORDINATES[chain];\n if (!c) throw new Error(`No coordinates configured for chain \"${chain}\"`);\n return c;\n}\n\nexport const DEFAULT_CHAIN: Chain = \"STARKNET\";\n\nexport function getStarknetCoordinates(chain: Chain): StarknetCoordinates {\n if (chain !== \"STARKNET\") {\n throw new Error(`This module is Starknet-only (client chain: \"${chain}\")`);\n }\n return getCoordinates(\"STARKNET\");\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { C as Chain } from './types-CO6YYHVA.js';
2
+ import { C as Chain } from './types-PPshMWr7.cjs';
3
3
  import { Call, TypedData } from 'starknet';
4
4
 
5
5
  interface RetryOptions {
@@ -555,7 +555,6 @@ interface CreateCollectionIntentParams {
555
555
  collectionContract?: string;
556
556
  service?: CollectionServiceId;
557
557
  claimEndTimestamp?: number;
558
- eventType?: PopEventType;
559
558
  maxSupply?: string;
560
559
  conditions?: {
561
560
  startTime: number;
@@ -964,15 +963,6 @@ interface ApiWalletActivity {
964
963
  tokenOutAddress: string | null;
965
964
  amountOut: string | null;
966
965
  }
967
- interface PopClaimStatus {
968
- isEligible: boolean;
969
- hasClaimed: boolean;
970
- tokenId: string | null;
971
- }
972
- interface PopBatchEligibilityItem extends PopClaimStatus {
973
- wallet: string;
974
- }
975
- type PopEventType = "Conference" | "Bootcamp" | "Workshop" | "Hackathon" | "Meetup" | "Course" | "Other";
976
966
  interface DropMintStatus {
977
967
  mintedByWallet: number;
978
968
  totalMinted: number;
@@ -1445,8 +1435,6 @@ declare class ApiClient {
1445
1435
  confirmRemixOffer(id: string, params: ConfirmRemixOfferParams, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>>;
1446
1436
  rejectRemixOffer(id: string, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>>;
1447
1437
  extendRemixOffer(id: string, days: number, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>>;
1448
- getPopEligibility(collection: string, wallet: string): Promise<PopClaimStatus>;
1449
- getPopEligibilityBatch(collection: string, wallets: string[]): Promise<PopBatchEligibilityItem[]>;
1450
1438
  getCoins(opts?: ApiCoinsQuery): Promise<ApiResponse<ApiCoin[]>>;
1451
1439
  getCoin(contract: string): Promise<{
1452
1440
  data: ApiCoin;
@@ -1607,8 +1595,8 @@ interface CreatePopCollectionParams {
1607
1595
  name: string;
1608
1596
  symbol: string;
1609
1597
  baseUri: string;
1598
+ /** Unix seconds; 0 = no deadline. */
1610
1599
  claimEndTime: number;
1611
- eventType: PopEventType;
1612
1600
  }
1613
1601
  interface ClaimConditions {
1614
1602
  startTime: number;
@@ -1679,4 +1667,4 @@ declare class UserFacingError extends Error {
1679
1667
  constructor(message: string);
1680
1668
  }
1681
1669
 
1682
- export { type ApiPlatformStats as $, type AcceptSponsorshipBidIntentParams as A, type ApiCreditPayment as B, type ApiDropConditions as C, type ApiDropInfo as D, type ApiDropState as E, type ApiEmissionCall as F, type ApiEmissionResult as G, type ApiFundingInstructions as H, type ApiFundingIntent as I, type ApiFundingMethod as J, type ApiFundingStatus as K, type ApiFundingSubmit as L, type ApiIntent as M, type ApiIntentCreated as N, type ApiIpNftTokenData as O, type ApiMeta as P, type ApiMetadataSignedUrl as Q, type ResolvedFeeConfig as R, type ServiceDefinition as S, type ApiMetadataUpload as T, type ApiOrder as U, type ApiOrderConsideration as V, type ApiOrderOffer as W, type ApiOrderPrice as X, type ApiOrderTokenMeta as Y, type ApiOrderTxHash as Z, type ApiOrdersQuery as _, type ServiceCapability as a, type CreateSponsorshipOfferParams as a$, type ApiPointEvent as a0, type ApiPortalKey as a1, type ApiPortalKeyCreated as a2, type ApiPortalMe as a3, type ApiPortalSpend as a4, type ApiPricing as a5, type ApiPricingRule as a6, type ApiPublicRemix as a7, type ApiRemixOffer as a8, type ApiRemixOfferPrice as a9, type ApiTxSyncResult as aA, type ApiUserRewards as aB, type ApiUserWallet as aC, type ApiUsernameClaim as aD, type ApiWalletActivity as aE, type AutoRemixOfferParams as aF, type CancelOrderIntentParams as aG, type ChainFilter as aH, type CheckoutIntentItem as aI, type ClaimConditions as aJ, type CollectionServiceId as aK, type CollectionSort as aL, type CollectionTokensSort as aM, type ConfirmRemixOfferParams as aN, type ConfirmSelfRemixParams as aO, type ConsiderationItem as aP, type CreateCheckoutIntentParams as aQ, type CreateCoinIntentParams as aR, type CreateCollectionIntentParams as aS, type CreateCounterOfferIntentParams as aT, type CreateDropParams as aU, type CreateListingIntentParams as aV, type CreateMembershipParams as aW, type CreateMintIntentParams as aX, type CreatePopCollectionParams as aY, type CreateRemixOfferParams as aZ, type CreateSponsorshipOfferIntentParams as a_, type ApiRemixOffersQuery as aa, type ApiReportTargetType as ab, type ApiResponse as ac, type ApiRewardsBadge as ad, type ApiRewardsBatchEntry as ae, type ApiRewardsConfig as af, type ApiRewardsLeaderboardEntry as ag, type ApiRewardsLevel as ah, type ApiSearchCollectionResult as ai, type ApiSearchCreatorResult as aj, type ApiSearchResult as ak, type ApiSearchTokenResult as al, type ApiSpendByAction as am, type ApiSponsorshipBid as an, type ApiSponsorshipLicense as ao, type ApiSponsorshipLicensesQuery as ap, type ApiSponsorshipOffer as aq, type ApiSponsorshipOffersQuery as ar, type ApiSponsorshipProposal as as, type ApiSponsorshipProposalsQuery as at, type ApiSubmitReport as au, type ApiTierOnchain as av, type ApiToken as aw, type ApiTokenBalance as ax, type ApiTokenMetadata as ay, type ApiTokensQuery as az, type AcceptSponsorshipProposalIntentParams as b, parseRecoveryKey as b$, type CreateSponsorshipProposalIntentParams as b0, type CreateTicketParams as b1, type CreateTierIntentParams as b2, type DropMintStatus as b3, type EmissionParams as b4, type EnforcementDeclaration as b5, type FactoryFamilyServiceId as b6, type FeeConfig as b7, FeeConfigSchema as b8, type FulfillOrderIntentParams as b9, type RejectSponsorshipProposalIntentParams as bA, type RemixOfferStatus as bB, type ResolvedConfig as bC, type RetractSponsorshipBidIntentParams as bD, type RetryOptions as bE, type ServiceEventDeclaration as bF, type SetSponsorshipOfferOpenIntentParams as bG, type SortOrder as bH, type TierServiceId as bI, type TxResult as bJ, type UpdateCollectionProfileInput as bK, UserFacingError as bL, type WithdrawSponsorshipProposalIntentParams as bM, resolveConfig as bN, resolveFeeConfig as bO, type SealedOwner as bP, type ReceiptProviderLike as bQ, type WalletExecutor as bR, type ExecutedTransaction as bS, type PasskeyOwner as bT, type CreatedOwner as bU, InvalidRecoveryKeyError as bV, type OwnerSigner as bW, type PasskeyConfig as bX, type RecoveryKey as bY, createPasskeyOwner as bZ, encodeRecoveryKey as b_, type IPType as ba, type IntentCall as bb, type IntentStatus as bc, type IntentType as bd, type IpAttribute as be, type IpNftMetadata as bf, type LaunchCoinIntentParams as bg, type MakeOfferIntentParams as bh, MedialaneApiError as bi, type MedialaneConfig as bj, type MedialaneErrorCode as bk, type MintMembershipsParams as bl, type MintTicketsParams as bm, OPEN_LICENSES as bn, type OfferItem as bo, type OpenLicense as bp, type Order as bq, type OrderDetails as br, type OrderParameters as bs, type OrderStatus as bt, PasskeyCancelledError as bu, type PlaceSponsorshipBidIntentParams as bv, type PopBatchEligibilityItem as bw, type PopClaimStatus as bx, type PopEventType as by, type ProposeSponsorshipParams as bz, type ActivityType as c, type ApiActivitiesQuery as d, type ApiActivity as e, type ApiActivityPrice as f, type ApiAdminCollectionClaim as g, type ApiBusinessProvisioning as h, type ApiChain as i, type ApiCheckoutIntentResult as j, ApiClient as k, type ApiCoin as l, type ApiCoinClaimResult as m, type ApiCoinPrice as n, type ApiCoinPrices as o, type ApiCoinsQuery as p, type ApiCollection as q, type ApiCollectionClaim as r, type ApiCollectionProfile as s, type ApiCollectionSlugClaim as t, type ApiCollectionsListQuery as u, type ApiCollectionsQuery as v, type ApiComment as w, type ApiCounterOffersQuery as x, type ApiCreatorListResult as y, type ApiCreatorProfile as z };
1670
+ export { type ApiPlatformStats as $, type AcceptSponsorshipBidIntentParams as A, type ApiCreditPayment as B, type ApiDropConditions as C, type ApiDropInfo as D, type ApiDropState as E, type ApiEmissionCall as F, type ApiEmissionResult as G, type ApiFundingInstructions as H, type ApiFundingIntent as I, type ApiFundingMethod as J, type ApiFundingStatus as K, type ApiFundingSubmit as L, type ApiIntent as M, type ApiIntentCreated as N, type ApiIpNftTokenData as O, type ApiMeta as P, type ApiMetadataSignedUrl as Q, type ResolvedFeeConfig as R, type ServiceDefinition as S, type ApiMetadataUpload as T, type ApiOrder as U, type ApiOrderConsideration as V, type ApiOrderOffer as W, type ApiOrderPrice as X, type ApiOrderTokenMeta as Y, type ApiOrderTxHash as Z, type ApiOrdersQuery as _, type ServiceCapability as a, type CreateSponsorshipOfferParams as a$, type ApiPointEvent as a0, type ApiPortalKey as a1, type ApiPortalKeyCreated as a2, type ApiPortalMe as a3, type ApiPortalSpend as a4, type ApiPricing as a5, type ApiPricingRule as a6, type ApiPublicRemix as a7, type ApiRemixOffer as a8, type ApiRemixOfferPrice as a9, type ApiTxSyncResult as aA, type ApiUserRewards as aB, type ApiUserWallet as aC, type ApiUsernameClaim as aD, type ApiWalletActivity as aE, type AutoRemixOfferParams as aF, type CancelOrderIntentParams as aG, type ChainFilter as aH, type CheckoutIntentItem as aI, type ClaimConditions as aJ, type CollectionServiceId as aK, type CollectionSort as aL, type CollectionTokensSort as aM, type ConfirmRemixOfferParams as aN, type ConfirmSelfRemixParams as aO, type ConsiderationItem as aP, type CreateCheckoutIntentParams as aQ, type CreateCoinIntentParams as aR, type CreateCollectionIntentParams as aS, type CreateCounterOfferIntentParams as aT, type CreateDropParams as aU, type CreateListingIntentParams as aV, type CreateMembershipParams as aW, type CreateMintIntentParams as aX, type CreatePopCollectionParams as aY, type CreateRemixOfferParams as aZ, type CreateSponsorshipOfferIntentParams as a_, type ApiRemixOffersQuery as aa, type ApiReportTargetType as ab, type ApiResponse as ac, type ApiRewardsBadge as ad, type ApiRewardsBatchEntry as ae, type ApiRewardsConfig as af, type ApiRewardsLeaderboardEntry as ag, type ApiRewardsLevel as ah, type ApiSearchCollectionResult as ai, type ApiSearchCreatorResult as aj, type ApiSearchResult as ak, type ApiSearchTokenResult as al, type ApiSpendByAction as am, type ApiSponsorshipBid as an, type ApiSponsorshipLicense as ao, type ApiSponsorshipLicensesQuery as ap, type ApiSponsorshipOffer as aq, type ApiSponsorshipOffersQuery as ar, type ApiSponsorshipProposal as as, type ApiSponsorshipProposalsQuery as at, type ApiSubmitReport as au, type ApiTierOnchain as av, type ApiToken as aw, type ApiTokenBalance as ax, type ApiTokenMetadata as ay, type ApiTokensQuery as az, type AcceptSponsorshipProposalIntentParams as b, type CreateSponsorshipProposalIntentParams as b0, type CreateTicketParams as b1, type CreateTierIntentParams as b2, type DropMintStatus as b3, type EmissionParams as b4, type EnforcementDeclaration as b5, type FactoryFamilyServiceId as b6, type FeeConfig as b7, FeeConfigSchema as b8, type FulfillOrderIntentParams as b9, type RetractSponsorshipBidIntentParams as bA, type RetryOptions as bB, type ServiceEventDeclaration as bC, type SetSponsorshipOfferOpenIntentParams as bD, type SortOrder as bE, type TierServiceId as bF, type TxResult as bG, type UpdateCollectionProfileInput as bH, UserFacingError as bI, type WithdrawSponsorshipProposalIntentParams as bJ, resolveConfig as bK, resolveFeeConfig as bL, type SealedOwner as bM, type ReceiptProviderLike as bN, type WalletExecutor as bO, type ExecutedTransaction as bP, type PasskeyOwner as bQ, type CreatedOwner as bR, InvalidRecoveryKeyError as bS, type OwnerSigner as bT, type PasskeyConfig as bU, type RecoveryKey as bV, createPasskeyOwner as bW, encodeRecoveryKey as bX, parseRecoveryKey as bY, type IPType as ba, type IntentCall as bb, type IntentStatus as bc, type IntentType as bd, type IpAttribute as be, type IpNftMetadata as bf, type LaunchCoinIntentParams as bg, type MakeOfferIntentParams as bh, MedialaneApiError as bi, type MedialaneConfig as bj, type MedialaneErrorCode as bk, type MintMembershipsParams as bl, type MintTicketsParams as bm, OPEN_LICENSES as bn, type OfferItem as bo, type OpenLicense as bp, type Order as bq, type OrderDetails as br, type OrderParameters as bs, type OrderStatus as bt, PasskeyCancelledError as bu, type PlaceSponsorshipBidIntentParams as bv, type ProposeSponsorshipParams as bw, type RejectSponsorshipProposalIntentParams as bx, type RemixOfferStatus as by, type ResolvedConfig as bz, type ActivityType as c, type ApiActivitiesQuery as d, type ApiActivity as e, type ApiActivityPrice as f, type ApiAdminCollectionClaim as g, type ApiBusinessProvisioning as h, type ApiChain as i, type ApiCheckoutIntentResult as j, ApiClient as k, type ApiCoin as l, type ApiCoinClaimResult as m, type ApiCoinPrice as n, type ApiCoinPrices as o, type ApiCoinsQuery as p, type ApiCollection as q, type ApiCollectionClaim as r, type ApiCollectionProfile as s, type ApiCollectionSlugClaim as t, type ApiCollectionsListQuery as u, type ApiCollectionsQuery as v, type ApiComment as w, type ApiCounterOffersQuery as x, type ApiCreatorListResult as y, type ApiCreatorProfile as z };
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { C as Chain } from './types-CO6YYHVA.cjs';
2
+ import { C as Chain } from './types-PPshMWr7.js';
3
3
  import { Call, TypedData } from 'starknet';
4
4
 
5
5
  interface RetryOptions {
@@ -555,7 +555,6 @@ interface CreateCollectionIntentParams {
555
555
  collectionContract?: string;
556
556
  service?: CollectionServiceId;
557
557
  claimEndTimestamp?: number;
558
- eventType?: PopEventType;
559
558
  maxSupply?: string;
560
559
  conditions?: {
561
560
  startTime: number;
@@ -964,15 +963,6 @@ interface ApiWalletActivity {
964
963
  tokenOutAddress: string | null;
965
964
  amountOut: string | null;
966
965
  }
967
- interface PopClaimStatus {
968
- isEligible: boolean;
969
- hasClaimed: boolean;
970
- tokenId: string | null;
971
- }
972
- interface PopBatchEligibilityItem extends PopClaimStatus {
973
- wallet: string;
974
- }
975
- type PopEventType = "Conference" | "Bootcamp" | "Workshop" | "Hackathon" | "Meetup" | "Course" | "Other";
976
966
  interface DropMintStatus {
977
967
  mintedByWallet: number;
978
968
  totalMinted: number;
@@ -1445,8 +1435,6 @@ declare class ApiClient {
1445
1435
  confirmRemixOffer(id: string, params: ConfirmRemixOfferParams, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>>;
1446
1436
  rejectRemixOffer(id: string, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>>;
1447
1437
  extendRemixOffer(id: string, days: number, siwsToken: string): Promise<ApiResponse<ApiRemixOffer>>;
1448
- getPopEligibility(collection: string, wallet: string): Promise<PopClaimStatus>;
1449
- getPopEligibilityBatch(collection: string, wallets: string[]): Promise<PopBatchEligibilityItem[]>;
1450
1438
  getCoins(opts?: ApiCoinsQuery): Promise<ApiResponse<ApiCoin[]>>;
1451
1439
  getCoin(contract: string): Promise<{
1452
1440
  data: ApiCoin;
@@ -1607,8 +1595,8 @@ interface CreatePopCollectionParams {
1607
1595
  name: string;
1608
1596
  symbol: string;
1609
1597
  baseUri: string;
1598
+ /** Unix seconds; 0 = no deadline. */
1610
1599
  claimEndTime: number;
1611
- eventType: PopEventType;
1612
1600
  }
1613
1601
  interface ClaimConditions {
1614
1602
  startTime: number;
@@ -1679,4 +1667,4 @@ declare class UserFacingError extends Error {
1679
1667
  constructor(message: string);
1680
1668
  }
1681
1669
 
1682
- export { type ApiPlatformStats as $, type AcceptSponsorshipBidIntentParams as A, type ApiCreditPayment as B, type ApiDropConditions as C, type ApiDropInfo as D, type ApiDropState as E, type ApiEmissionCall as F, type ApiEmissionResult as G, type ApiFundingInstructions as H, type ApiFundingIntent as I, type ApiFundingMethod as J, type ApiFundingStatus as K, type ApiFundingSubmit as L, type ApiIntent as M, type ApiIntentCreated as N, type ApiIpNftTokenData as O, type ApiMeta as P, type ApiMetadataSignedUrl as Q, type ResolvedFeeConfig as R, type ServiceDefinition as S, type ApiMetadataUpload as T, type ApiOrder as U, type ApiOrderConsideration as V, type ApiOrderOffer as W, type ApiOrderPrice as X, type ApiOrderTokenMeta as Y, type ApiOrderTxHash as Z, type ApiOrdersQuery as _, type ServiceCapability as a, type CreateSponsorshipOfferParams as a$, type ApiPointEvent as a0, type ApiPortalKey as a1, type ApiPortalKeyCreated as a2, type ApiPortalMe as a3, type ApiPortalSpend as a4, type ApiPricing as a5, type ApiPricingRule as a6, type ApiPublicRemix as a7, type ApiRemixOffer as a8, type ApiRemixOfferPrice as a9, type ApiTxSyncResult as aA, type ApiUserRewards as aB, type ApiUserWallet as aC, type ApiUsernameClaim as aD, type ApiWalletActivity as aE, type AutoRemixOfferParams as aF, type CancelOrderIntentParams as aG, type ChainFilter as aH, type CheckoutIntentItem as aI, type ClaimConditions as aJ, type CollectionServiceId as aK, type CollectionSort as aL, type CollectionTokensSort as aM, type ConfirmRemixOfferParams as aN, type ConfirmSelfRemixParams as aO, type ConsiderationItem as aP, type CreateCheckoutIntentParams as aQ, type CreateCoinIntentParams as aR, type CreateCollectionIntentParams as aS, type CreateCounterOfferIntentParams as aT, type CreateDropParams as aU, type CreateListingIntentParams as aV, type CreateMembershipParams as aW, type CreateMintIntentParams as aX, type CreatePopCollectionParams as aY, type CreateRemixOfferParams as aZ, type CreateSponsorshipOfferIntentParams as a_, type ApiRemixOffersQuery as aa, type ApiReportTargetType as ab, type ApiResponse as ac, type ApiRewardsBadge as ad, type ApiRewardsBatchEntry as ae, type ApiRewardsConfig as af, type ApiRewardsLeaderboardEntry as ag, type ApiRewardsLevel as ah, type ApiSearchCollectionResult as ai, type ApiSearchCreatorResult as aj, type ApiSearchResult as ak, type ApiSearchTokenResult as al, type ApiSpendByAction as am, type ApiSponsorshipBid as an, type ApiSponsorshipLicense as ao, type ApiSponsorshipLicensesQuery as ap, type ApiSponsorshipOffer as aq, type ApiSponsorshipOffersQuery as ar, type ApiSponsorshipProposal as as, type ApiSponsorshipProposalsQuery as at, type ApiSubmitReport as au, type ApiTierOnchain as av, type ApiToken as aw, type ApiTokenBalance as ax, type ApiTokenMetadata as ay, type ApiTokensQuery as az, type AcceptSponsorshipProposalIntentParams as b, parseRecoveryKey as b$, type CreateSponsorshipProposalIntentParams as b0, type CreateTicketParams as b1, type CreateTierIntentParams as b2, type DropMintStatus as b3, type EmissionParams as b4, type EnforcementDeclaration as b5, type FactoryFamilyServiceId as b6, type FeeConfig as b7, FeeConfigSchema as b8, type FulfillOrderIntentParams as b9, type RejectSponsorshipProposalIntentParams as bA, type RemixOfferStatus as bB, type ResolvedConfig as bC, type RetractSponsorshipBidIntentParams as bD, type RetryOptions as bE, type ServiceEventDeclaration as bF, type SetSponsorshipOfferOpenIntentParams as bG, type SortOrder as bH, type TierServiceId as bI, type TxResult as bJ, type UpdateCollectionProfileInput as bK, UserFacingError as bL, type WithdrawSponsorshipProposalIntentParams as bM, resolveConfig as bN, resolveFeeConfig as bO, type SealedOwner as bP, type ReceiptProviderLike as bQ, type WalletExecutor as bR, type ExecutedTransaction as bS, type PasskeyOwner as bT, type CreatedOwner as bU, InvalidRecoveryKeyError as bV, type OwnerSigner as bW, type PasskeyConfig as bX, type RecoveryKey as bY, createPasskeyOwner as bZ, encodeRecoveryKey as b_, type IPType as ba, type IntentCall as bb, type IntentStatus as bc, type IntentType as bd, type IpAttribute as be, type IpNftMetadata as bf, type LaunchCoinIntentParams as bg, type MakeOfferIntentParams as bh, MedialaneApiError as bi, type MedialaneConfig as bj, type MedialaneErrorCode as bk, type MintMembershipsParams as bl, type MintTicketsParams as bm, OPEN_LICENSES as bn, type OfferItem as bo, type OpenLicense as bp, type Order as bq, type OrderDetails as br, type OrderParameters as bs, type OrderStatus as bt, PasskeyCancelledError as bu, type PlaceSponsorshipBidIntentParams as bv, type PopBatchEligibilityItem as bw, type PopClaimStatus as bx, type PopEventType as by, type ProposeSponsorshipParams as bz, type ActivityType as c, type ApiActivitiesQuery as d, type ApiActivity as e, type ApiActivityPrice as f, type ApiAdminCollectionClaim as g, type ApiBusinessProvisioning as h, type ApiChain as i, type ApiCheckoutIntentResult as j, ApiClient as k, type ApiCoin as l, type ApiCoinClaimResult as m, type ApiCoinPrice as n, type ApiCoinPrices as o, type ApiCoinsQuery as p, type ApiCollection as q, type ApiCollectionClaim as r, type ApiCollectionProfile as s, type ApiCollectionSlugClaim as t, type ApiCollectionsListQuery as u, type ApiCollectionsQuery as v, type ApiComment as w, type ApiCounterOffersQuery as x, type ApiCreatorListResult as y, type ApiCreatorProfile as z };
1670
+ export { type ApiPlatformStats as $, type AcceptSponsorshipBidIntentParams as A, type ApiCreditPayment as B, type ApiDropConditions as C, type ApiDropInfo as D, type ApiDropState as E, type ApiEmissionCall as F, type ApiEmissionResult as G, type ApiFundingInstructions as H, type ApiFundingIntent as I, type ApiFundingMethod as J, type ApiFundingStatus as K, type ApiFundingSubmit as L, type ApiIntent as M, type ApiIntentCreated as N, type ApiIpNftTokenData as O, type ApiMeta as P, type ApiMetadataSignedUrl as Q, type ResolvedFeeConfig as R, type ServiceDefinition as S, type ApiMetadataUpload as T, type ApiOrder as U, type ApiOrderConsideration as V, type ApiOrderOffer as W, type ApiOrderPrice as X, type ApiOrderTokenMeta as Y, type ApiOrderTxHash as Z, type ApiOrdersQuery as _, type ServiceCapability as a, type CreateSponsorshipOfferParams as a$, type ApiPointEvent as a0, type ApiPortalKey as a1, type ApiPortalKeyCreated as a2, type ApiPortalMe as a3, type ApiPortalSpend as a4, type ApiPricing as a5, type ApiPricingRule as a6, type ApiPublicRemix as a7, type ApiRemixOffer as a8, type ApiRemixOfferPrice as a9, type ApiTxSyncResult as aA, type ApiUserRewards as aB, type ApiUserWallet as aC, type ApiUsernameClaim as aD, type ApiWalletActivity as aE, type AutoRemixOfferParams as aF, type CancelOrderIntentParams as aG, type ChainFilter as aH, type CheckoutIntentItem as aI, type ClaimConditions as aJ, type CollectionServiceId as aK, type CollectionSort as aL, type CollectionTokensSort as aM, type ConfirmRemixOfferParams as aN, type ConfirmSelfRemixParams as aO, type ConsiderationItem as aP, type CreateCheckoutIntentParams as aQ, type CreateCoinIntentParams as aR, type CreateCollectionIntentParams as aS, type CreateCounterOfferIntentParams as aT, type CreateDropParams as aU, type CreateListingIntentParams as aV, type CreateMembershipParams as aW, type CreateMintIntentParams as aX, type CreatePopCollectionParams as aY, type CreateRemixOfferParams as aZ, type CreateSponsorshipOfferIntentParams as a_, type ApiRemixOffersQuery as aa, type ApiReportTargetType as ab, type ApiResponse as ac, type ApiRewardsBadge as ad, type ApiRewardsBatchEntry as ae, type ApiRewardsConfig as af, type ApiRewardsLeaderboardEntry as ag, type ApiRewardsLevel as ah, type ApiSearchCollectionResult as ai, type ApiSearchCreatorResult as aj, type ApiSearchResult as ak, type ApiSearchTokenResult as al, type ApiSpendByAction as am, type ApiSponsorshipBid as an, type ApiSponsorshipLicense as ao, type ApiSponsorshipLicensesQuery as ap, type ApiSponsorshipOffer as aq, type ApiSponsorshipOffersQuery as ar, type ApiSponsorshipProposal as as, type ApiSponsorshipProposalsQuery as at, type ApiSubmitReport as au, type ApiTierOnchain as av, type ApiToken as aw, type ApiTokenBalance as ax, type ApiTokenMetadata as ay, type ApiTokensQuery as az, type AcceptSponsorshipProposalIntentParams as b, type CreateSponsorshipProposalIntentParams as b0, type CreateTicketParams as b1, type CreateTierIntentParams as b2, type DropMintStatus as b3, type EmissionParams as b4, type EnforcementDeclaration as b5, type FactoryFamilyServiceId as b6, type FeeConfig as b7, FeeConfigSchema as b8, type FulfillOrderIntentParams as b9, type RetractSponsorshipBidIntentParams as bA, type RetryOptions as bB, type ServiceEventDeclaration as bC, type SetSponsorshipOfferOpenIntentParams as bD, type SortOrder as bE, type TierServiceId as bF, type TxResult as bG, type UpdateCollectionProfileInput as bH, UserFacingError as bI, type WithdrawSponsorshipProposalIntentParams as bJ, resolveConfig as bK, resolveFeeConfig as bL, type SealedOwner as bM, type ReceiptProviderLike as bN, type WalletExecutor as bO, type ExecutedTransaction as bP, type PasskeyOwner as bQ, type CreatedOwner as bR, InvalidRecoveryKeyError as bS, type OwnerSigner as bT, type PasskeyConfig as bU, type RecoveryKey as bV, createPasskeyOwner as bW, encodeRecoveryKey as bX, parseRecoveryKey as bY, type IPType as ba, type IntentCall as bb, type IntentStatus as bc, type IntentType as bd, type IpAttribute as be, type IpNftMetadata as bf, type LaunchCoinIntentParams as bg, type MakeOfferIntentParams as bh, MedialaneApiError as bi, type MedialaneConfig as bj, type MedialaneErrorCode as bk, type MintMembershipsParams as bl, type MintTicketsParams as bm, OPEN_LICENSES as bn, type OfferItem as bo, type OpenLicense as bp, type Order as bq, type OrderDetails as br, type OrderParameters as bs, type OrderStatus as bt, PasskeyCancelledError as bu, type PlaceSponsorshipBidIntentParams as bv, type ProposeSponsorshipParams as bw, type RejectSponsorshipProposalIntentParams as bx, type RemixOfferStatus as by, type ResolvedConfig as bz, type ActivityType as c, type ApiActivitiesQuery as d, type ApiActivity as e, type ApiActivityPrice as f, type ApiAdminCollectionClaim as g, type ApiBusinessProvisioning as h, type ApiChain as i, type ApiCheckoutIntentResult as j, ApiClient as k, type ApiCoin as l, type ApiCoinClaimResult as m, type ApiCoinPrice as n, type ApiCoinPrices as o, type ApiCoinsQuery as p, type ApiCollection as q, type ApiCollectionClaim as r, type ApiCollectionProfile as s, type ApiCollectionSlugClaim as t, type ApiCollectionsListQuery as u, type ApiCollectionsQuery as v, type ApiComment as w, type ApiCounterOffersQuery as x, type ApiCreatorListResult as y, type ApiCreatorProfile as z };