{"version":3,"sources":["../../src/chains.ts","../../src/stellar/venue.ts"],"names":["sha256","Contract","nativeToScVal","TransactionBuilder","rpc","scValToNative"],"mappings":"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","file":"index.cjs","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  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  genesisMintLaunch?: `0x${string}`;\n  genesisMintBR?: `0x${string}`;\n  genesisMintGlobal?: `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: \"0x00b32c34b427d8f346b5843ada6a37bd3368d879fc752cd52b68a87287f60111\",\n    popCollectionClassHash: \"0x077c421686f10851872561953ea16898d933364b7f8937a5d7e2b1ba0a36263f\",\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    genesisMintLaunch: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n    genesisMintBR: \"0x01f8b92e3b9e963b8eacb075207e2cc89d4614ff2ac6c2702c7ae10ad19a9db8\",\n    genesisMintGlobal: \"0x06ad4d55ed2d12ad5d6d55587d800874ef807b051bfefe13497e60ec5b019369\",\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","import {\n  Contract,\n  TransactionBuilder,\n  nativeToScVal,\n  scValToNative,\n  type Transaction,\n  rpc,\n} from \"@stellar/stellar-sdk\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type StellarCoordinates } from \"../chains.js\";\nimport type {\n  AdapterTxResult,\n  OrderRef,\n  RegisterOrderParams,\n  VenueAdapter,\n} from \"../adapters/types.js\";\n\nexport interface StellarSigner {\n  publicKey: string;\n  signTransaction(xdr: string, networkPassphrase: string): Promise<string>;\n}\n\nexport interface StellarVenueOptions {\n  server: rpc.Server;\n  networkPassphrase: string;\n\n  contractId?: string;\n  baseFee?: string;\n}\n\nexport function stellarOrderRef(contractId: string, offerer: string, salt: bigint): OrderRef {\n  const payload = new TextEncoder().encode(`${contractId}:${offerer}:${salt.toString()}`);\n  return \"0x\" + Buffer.from(sha256(payload)).toString(\"hex\");\n}\n\nexport class StellarVenue implements VenueAdapter<StellarSigner> {\n  readonly chain: Chain = \"STELLAR\";\n  private readonly server: rpc.Server;\n  private readonly passphrase: string;\n  private readonly contract: Contract;\n  private readonly contractId: string;\n  private readonly baseFee: string;\n\n  constructor(opts: StellarVenueOptions) {\n    this.server = opts.server;\n    this.passphrase = opts.networkPassphrase;\n    const contractId = opts.contractId ?? maybeCoords()?.marketplace;\n    if (!contractId) throw new Error(\"No Stellar venue contract configured\");\n    this.contractId = contractId;\n    this.contract = new Contract(contractId);\n    this.baseFee = opts.baseFee ?? \"100\";\n  }\n\n  async registerOrder(\n    signer: StellarSigner,\n    params: RegisterOrderParams,\n  ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n    const salt = BigInt(params.salt);\n    const counter = await this.getCounter(signer.publicKey);\n    const op = this.contract.call(\n      \"register_order\",\n      nativeToScVal(signer.publicKey, { type: \"address\" }),\n      nativeToScVal(salt, { type: \"u64\" }),\n      nativeToScVal([params.side === \"listing\" ? \"Listing\" : \"Bid\"], { type: \"symbol\" }),\n      nativeToScVal(params.asset.contract, { type: \"address\" }),\n      nativeToScVal(Number(params.asset.tokenId), { type: \"u32\" }),\n      nativeToScVal(params.paymentToken, { type: \"address\" }),\n      nativeToScVal(BigInt(params.amount), { type: \"i128\" }),\n      nativeToScVal(params.royaltyMaxBps, { type: \"u32\" }),\n      nativeToScVal(BigInt(params.startTime), { type: \"u64\" }),\n      nativeToScVal(BigInt(params.endTime), { type: \"u64\" }),\n      nativeToScVal(counter, { type: \"u64\" }),\n    );\n    const txHash = await this.invoke(signer, op);\n    return { txHash, orderRef: stellarOrderRef(this.contractId, signer.publicKey, salt) };\n  }\n\n  async fulfillOrder(\n    signer: StellarSigner,\n    _orderRef: OrderRef,\n    opts?: { offerer?: string; salt?: string },\n  ): Promise<AdapterTxResult> {\n    if (!opts?.offerer || opts.salt === undefined) {\n      throw new Error(\"Stellar fulfillment needs { offerer, salt } (orders are storage-keyed)\");\n    }\n    const op = this.contract.call(\n      \"fulfill_order\",\n      nativeToScVal(signer.publicKey, { type: \"address\" }),\n      nativeToScVal(opts.offerer, { type: \"address\" }),\n      nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n    );\n    return { txHash: await this.invoke(signer, op) };\n  }\n\n  async cancelOrder(\n    signer: StellarSigner,\n    _orderRef: OrderRef,\n    opts?: { salt?: string },\n  ): Promise<AdapterTxResult> {\n    if (opts?.salt === undefined) throw new Error(\"Stellar cancel needs { salt }\");\n    const op = this.contract.call(\n      \"cancel_order\",\n      nativeToScVal(signer.publicKey, { type: \"address\" }),\n      nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n    );\n    return { txHash: await this.invoke(signer, op) };\n  }\n\n  async incrementCounter(signer: StellarSigner): Promise<AdapterTxResult> {\n    const op = this.contract.call(\n      \"increment_counter\",\n      nativeToScVal(signer.publicKey, { type: \"address\" }),\n    );\n    return { txHash: await this.invoke(signer, op) };\n  }\n\n  async getOrderDetails(_orderRef: OrderRef): Promise<unknown> {\n    throw new Error(\"Use getOrder(offerer, salt) — Stellar orders are storage-keyed\");\n  }\n\n  async getOrder(offerer: string, salt: bigint): Promise<unknown> {\n    return this.view(\"get_order\", [\n      nativeToScVal(offerer, { type: \"address\" }),\n      nativeToScVal(salt, { type: \"u64\" }),\n    ]);\n  }\n\n  async getCounter(address: string): Promise<bigint> {\n    const value = await this.view(\"get_counter\", [nativeToScVal(address, { type: \"address\" })]);\n    return BigInt((value as bigint | number | undefined) ?? 0);\n  }\n\n  private async view(method: string, args: Parameters<Contract[\"call\"]>[1][]): Promise<unknown> {\n    const account = await this.server.getAccount(PLACEHOLDER_SOURCE);\n    const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n      .addOperation(this.contract.call(method, ...args))\n      .setTimeout(30)\n      .build();\n    const sim = await this.server.simulateTransaction(tx);\n    if (rpc.Api.isSimulationSuccess(sim) && sim.result?.retval) {\n      return scValToNative(sim.result.retval);\n    }\n    return undefined;\n  }\n\n  private async invoke(\n    signer: StellarSigner,\n    op: ReturnType<Contract[\"call\"]>,\n  ): Promise<string> {\n    const account = await this.server.getAccount(signer.publicKey);\n    const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n      .addOperation(op)\n      .setTimeout(60)\n      .build();\n    const prepared = await this.server.prepareTransaction(tx);\n    const signedXdr = await signer.signTransaction(prepared.toXDR(), this.passphrase);\n    const signed = TransactionBuilder.fromXDR(signedXdr, this.passphrase) as Transaction;\n    const sent = await this.server.sendTransaction(signed);\n    return sent.hash;\n  }\n}\n\nconst PLACEHOLDER_SOURCE = \"GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF\";\n\nfunction maybeCoords(): StellarCoordinates | undefined {\n  try {\n    return getCoordinates(\"STELLAR\");\n  } catch {\n    return undefined;\n  }\n}\n"]}