@medialane/sdk 0.164.0 → 0.166.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/starknet/marketplace/errors.ts","../../src/starknet/marketplace/utils.ts","../../src/starknet/abis/ipMarketplace.ts","../../src/starknet/abis/popCollection.ts","../../src/starknet/abis/popFactory.ts","../../src/starknet/abis/dropCollection.ts","../../src/starknet/abis/dropFactory.ts","../../src/starknet/abis/medialane1155.ts","../../src/starknet/abis/ipCollection1155Factory.ts","../../src/starknet/abis/ipCollection1155.ts","../../src/starknet/abis/ipCollection.ts","../../src/starknet/abis/ipNft.ts","../../src/starknet/abis/creatorCoinFactory.ts","../../src/starknet/abis/ipTicketCollection.ts","../../src/starknet/abis/ipTicketCollectionFactory.ts","../../src/starknet/abis/ipClubFactory.ts","../../src/starknet/abis/ipClubCollection.ts","../../src/starknet/abis/ipSponsorship.ts","../../src/starknet/abis/ipGenesis.ts","../../src/starknet/pop-allowlist.ts","../../src/starknet/pop-claim.ts","../../src/starknet/services/pop.ts","../../src/starknet/fee/build-fee-call.ts","../../src/starknet/services/drop.ts","../../src/starknet/services/erc1155collection.ts","../../src/starknet/services/coinLaunchMath.ts","../../src/starknet/services/creatorCoin.ts","../../src/starknet/services/ticket.ts","../../src/starknet/services/club.ts","../../src/starknet/services/sponsorship.ts","../../src/starknet/client.ts","../../src/starknet/marketplace/orders.ts","../../src/starknet/marketplace1155/orders.ts","../../src/starknet/marketplace/signing.ts","../../src/starknet/marketplace/build.ts","../../src/starknet/marketplace1155/build.ts","../../src/starknet/venue.ts","../../src/starknet/siws/client.ts","../../src/starknet/funding/chain-transfer.ts","../../src/starknet/services/executeIntent.ts","../../src/starknet/services/receipts.ts","../../src/starknet/services/sponsoredExecutor.ts","../../src/starknet/bytearray.ts","../../src/starknet/media-wallet/derive.ts","../../src/starknet/media-wallet/owners.ts","../../src/starknet/media-wallet/deploy.ts","../../src/starknet/media-wallet/guardian.ts","../../src/wallet/store.ts","../../src/wallet/pairing.ts","../../src/wallet/recovery-key.ts","../../src/wallet/guardian-status.ts","../../src/wallet/addresses.ts","../../src/wallet/self-fund-consent.ts","../../src/wallet/executors.ts","../../src/wallet/deployment.ts","../../src/wallet/client.ts","../../src/session/session-wallet.ts"],"names":["cairo","hash","RpcProvider","CairoOption","CairoOptionVariant","_contractCache","contractFor","registerPayload","shortString","num","u256","starknetTypedData","Account","sponsored","selfFunded"],"mappings":"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","file":"index.js","sourcesContent":["import type { MedialaneErrorCode } from \"../../types/errors.js\";\n\nexport class MedialaneError extends Error {\n constructor(\n message: string,\n public readonly code: MedialaneErrorCode = \"UNKNOWN\",\n public readonly cause?: unknown\n ) {\n super(message);\n this.name = \"MedialaneError\";\n }\n}\n","import { Contract, RpcProvider, cairo, constants, num, type Abi } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { SUPPORTED_TOKENS } from \"../../constants.js\";\nimport { MedialaneError } from \"./errors.js\";\nimport { createFailoverFetch } from \"../../utils/rpc.js\";\n\nexport const START_TIME_BUFFER_SECS = 30;\n\nexport function generateSalt(): string {\n const bytes = new Uint8Array(31);\n crypto.getRandomValues(bytes);\n const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n return num.toHex(BigInt(\"0x\" + hex));\n}\n\nexport async function resolveRoyaltyMaxBps(\n provider: RpcProvider,\n nft: string,\n tokenId: string,\n override?: string,\n): Promise<string> {\n if (override !== undefined) return override;\n try {\n const id = cairo.uint256(tokenId);\n const res = await provider.callContract({\n contractAddress: nft,\n entrypoint: \"royalty_info\",\n calldata: [id.low.toString(), id.high.toString(), \"10000\", \"0\"],\n });\n\n return BigInt(res[1] ?? \"0\").toString();\n } catch {\n return \"0\";\n }\n}\n\nexport function toSignatureArray(sig: unknown): string[] {\n if (Array.isArray(sig)) return sig as string[];\n const s = sig as { r: bigint | string; s: bigint | string };\n return [s.r.toString(), s.s.toString()];\n}\n\nexport function newContract(abi: Abi, address: string, providerOrAccount?: unknown): Contract {\n const C = Contract as unknown as { length: number };\n return C.length === 1\n ? new (Contract as unknown as new (opts: unknown) => Contract)({ abi, address, providerOrAccount })\n : new (Contract as unknown as new (a: Abi, addr: string, p?: unknown) => Contract)(\n abi,\n address,\n providerOrAccount,\n );\n}\n\nexport function getChainId(config: ResolvedConfig): constants.StarknetChainId {\n\n if (config.chain !== \"STARKNET\") {\n throw new Error(`SNIP-12 signing is Starknet-only; got chain \"${config.chain}\"`);\n }\n return constants.StarknetChainId.SN_MAIN;\n}\n\nexport function resolveToken(currency: string) {\n const token = SUPPORTED_TOKENS.find(\n (t) => t.symbol === currency.toUpperCase() || t.address.toLowerCase() === currency.toLowerCase()\n );\n if (!token) throw new MedialaneError(`Unsupported currency: ${currency}`, \"INVALID_PARAMS\");\n return token;\n}\n\nconst _providerCache = new WeakMap<ResolvedConfig, RpcProvider>();\n\nexport function getProvider(config: ResolvedConfig): RpcProvider {\n let p = _providerCache.get(config);\n if (!p) {\n\n const urls = [config.rpcUrl];\n p = new RpcProvider({ nodeUrl: urls[0], baseFetch: createFailoverFetch(urls) });\n _providerCache.set(config, p);\n }\n return p;\n}\n","\nexport const IPMarketplaceABI = [\n {\n \"type\": \"impl\",\n \"name\": \"Medialane721Impl\",\n \"interface_name\": \"medialane_marketplace_erc721::core::interface::IMedialane\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OfferItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::ConsiderationItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderParameters\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"marketplace\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc721::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc721::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"salt\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::Order\",\n \"members\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderParameters\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderCancellation\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::CancelRequest\",\n \"members\": [\n {\n \"name\": \"cancelation\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderStatus\",\n \"variants\": [\n {\n \"name\": \"None\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Created\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Filled\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Cancelled\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderDetails\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc721::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc721::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"order_status\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderStatus\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"medialane_marketplace_erc721::core::interface::IMedialane\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"register_order\",\n \"inputs\": [\n {\n \"name\": \"order\",\n \"type\": \"medialane_marketplace_erc721::core::types::Order\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"fulfill_order\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"cancel_order\",\n \"inputs\": [\n {\n \"name\": \"cancel_request\",\n \"type\": \"medialane_marketplace_erc721::core::types::CancelRequest\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"increment_counter\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_details\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"medialane_marketplace_erc721::core::types::OrderDetails\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_hash\",\n \"inputs\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderParameters\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_cancellation_hash\",\n \"inputs\": [\n {\n \"name\": \"cancellation\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_counter\",\n \"inputs\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_native_token_address\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"native_token_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::OrderCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::OrderFulfilled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"fulfiller\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sale_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::OrderCancelled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::CounterIncremented\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_counter\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::medialane::Medialane721::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OrderCreated\",\n \"type\": \"medialane_marketplace_erc721::core::events::OrderCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderFulfilled\",\n \"type\": \"medialane_marketplace_erc721::core::events::OrderFulfilled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderCancelled\",\n \"type\": \"medialane_marketplace_erc721::core::events::OrderCancelled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"CounterIncremented\",\n \"type\": \"medialane_marketplace_erc721::core::events::CounterIncremented\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","// Generated by scripts/gen-starknet-abi.ts from pop_protocol_POPCollection.contract_class.json. Do not edit by hand.\nexport const POPCollectionABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_interfaces::token::erc721::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_interfaces::token::erc721::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataImpl\",\n \"interface_name\": \"openzeppelin_interfaces::token::erc721::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_interfaces::token::erc721::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC5192Impl\",\n \"interface_name\": \"pop_protocol::interfaces::IERC5192\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"pop_protocol::interfaces::IERC5192\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"locked\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"POPCollectionImpl\",\n \"interface_name\": \"pop_protocol::interfaces::IPOPCollection\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"pop_protocol::interfaces::IPOPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"set_allowlist_root\",\n \"inputs\": [\n {\n \"name\": \"root\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claim\",\n \"inputs\": [\n {\n \"name\": \"proof\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"issue\",\n \"inputs\": [\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"burn\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"organizer\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"allowlist_root\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claim_end_time\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"has_claimed\",\n \"inputs\": [\n {\n \"name\": \"address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"total_issued\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_interfaces::introspection::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_interfaces::introspection::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"organizer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"claim_end_time\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::AllowlistRootSet\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"root\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::TokenURISet\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::Locked\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::pop_collection::POPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"AllowlistRootSet\",\n \"type\": \"pop_protocol::events::AllowlistRootSet\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenURISet\",\n \"type\": \"pop_protocol::events::TokenURISet\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Locked\",\n \"type\": \"pop_protocol::events::Locked\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","// Generated by scripts/gen-starknet-abi.ts from pop_protocol_POPFactory.contract_class.json. Do not edit by hand.\nexport const POPFactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"POPFactoryImpl\",\n \"interface_name\": \"pop_protocol::interfaces::IPOPFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"pop_protocol::interfaces::IPOPFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"claim_end_time\",\n \"type\": \"core::integer::u64\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_address\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_collection_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::CollectionCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"organizer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"claim_end_time\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::pop_factory::POPFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"CollectionCreated\",\n \"type\": \"pop_protocol::events::CollectionCreated\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const DropCollectionABI = [\n {\n type: \"struct\",\n name: \"core::byte_array::ByteArray\",\n members: [\n { name: \"data\", type: \"core::array::Array::<core::felt252>\" },\n { name: \"pending_word\", type: \"core::felt252\" },\n { name: \"pending_word_len\", type: \"core::integer::u32\" },\n ],\n },\n {\n type: \"struct\",\n name: \"collection_drop::types::ClaimConditions\",\n members: [\n { name: \"start_time\", type: \"core::integer::u64\" },\n { name: \"end_time\", type: \"core::integer::u64\" },\n { name: \"price\", type: \"core::integer::u256\" },\n { name: \"payment_token\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"max_quantity_per_wallet\", type: \"core::integer::u256\" },\n ],\n },\n {\n type: \"function\",\n name: \"claim\",\n inputs: [{ name: \"quantity\", type: \"core::integer::u256\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"admin_mint\",\n inputs: [\n { name: \"recipient\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"quantity\", type: \"core::integer::u256\" },\n { name: \"custom_uri\", type: \"core::byte_array::ByteArray\" },\n ],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"set_claim_conditions\",\n inputs: [{ name: \"conditions\", type: \"collection_drop::types::ClaimConditions\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"get_claim_conditions\",\n inputs: [],\n outputs: [{ type: \"collection_drop::types::ClaimConditions\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"set_allowlist_enabled\",\n inputs: [{ name: \"enabled\", type: \"core::bool\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"is_allowlist_enabled\",\n inputs: [],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"add_to_allowlist\",\n inputs: [{ name: \"address\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"batch_add_to_allowlist\",\n inputs: [{ name: \"addresses\", type: \"core::array::Array::<core::starknet::contract_address::ContractAddress>\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"remove_from_allowlist\",\n inputs: [{ name: \"address\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"is_allowlisted\",\n inputs: [{ name: \"address\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"set_base_uri\",\n inputs: [{ name: \"new_uri\", type: \"core::byte_array::ByteArray\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"set_token_uri\",\n inputs: [\n { name: \"token_id\", type: \"core::integer::u256\" },\n { name: \"uri\", type: \"core::byte_array::ByteArray\" },\n ],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"set_paused\",\n inputs: [{ name: \"paused\", type: \"core::bool\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"withdraw_payments\",\n inputs: [],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"get_drop_id\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"get_max_supply\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"total_minted\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"remaining_supply\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"minted_by_wallet\",\n inputs: [{ name: \"wallet\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"is_paused\",\n inputs: [],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n] as const;\n\n","export const DropFactoryABI = [\n {\n type: \"struct\",\n name: \"core::byte_array::ByteArray\",\n members: [\n { name: \"data\", type: \"core::array::Array::<core::felt252>\" },\n { name: \"pending_word\", type: \"core::felt252\" },\n { name: \"pending_word_len\", type: \"core::integer::u32\" },\n ],\n },\n {\n type: \"struct\",\n name: \"collection_drop::types::ClaimConditions\",\n members: [\n { name: \"start_time\", type: \"core::integer::u64\" },\n { name: \"end_time\", type: \"core::integer::u64\" },\n { name: \"price\", type: \"core::integer::u256\" },\n { name: \"payment_token\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"max_quantity_per_wallet\", type: \"core::integer::u256\" },\n ],\n },\n {\n type: \"function\",\n name: \"register_organizer\",\n inputs: [\n { name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"name\", type: \"core::byte_array::ByteArray\" },\n ],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"revoke_organizer\",\n inputs: [{ name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"is_active_organizer\",\n inputs: [{ name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"create_drop\",\n inputs: [\n { name: \"name\", type: \"core::byte_array::ByteArray\" },\n { name: \"symbol\", type: \"core::byte_array::ByteArray\" },\n { name: \"base_uri\", type: \"core::byte_array::ByteArray\" },\n { name: \"max_supply\", type: \"core::integer::u256\" },\n { name: \"initial_conditions\", type: \"collection_drop::types::ClaimConditions\" },\n ],\n outputs: [{ type: \"core::starknet::contract_address::ContractAddress\" }],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"get_drop_address\",\n inputs: [{ name: \"drop_id\", type: \"core::integer::u256\" }],\n outputs: [{ type: \"core::starknet::contract_address::ContractAddress\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"get_last_drop_id\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"get_organizer_drop_count\",\n inputs: [{ name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::integer::u32\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"set_drop_collection_class_hash\",\n inputs: [{ name: \"new_class_hash\", type: \"core::starknet::class_hash::ClassHash\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n] as const;\n\n","\nexport const Medialane1155ABI = [\n {\n \"type\": \"impl\",\n \"name\": \"Medialane1155Impl\",\n \"interface_name\": \"medialane_marketplace_erc1155::core::interface::IMedialane1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OfferItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::ConsiderationItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderParameters\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"marketplace\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc1155::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"salt\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::Order\",\n \"members\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderParameters\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderCancellation\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::CancelRequest\",\n \"members\": [\n {\n \"name\": \"cancelation\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderStatus\",\n \"variants\": [\n {\n \"name\": \"None\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Created\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Filled\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Cancelled\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderDetails\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc1155::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"order_status\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderStatus\"\n },\n {\n \"name\": \"remaining_amount\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"medialane_marketplace_erc1155::core::interface::IMedialane1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"register_order\",\n \"inputs\": [\n {\n \"name\": \"order\",\n \"type\": \"medialane_marketplace_erc1155::core::types::Order\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"fulfill_order\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"quantity\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"cancel_order\",\n \"inputs\": [\n {\n \"name\": \"cancel_request\",\n \"type\": \"medialane_marketplace_erc1155::core::types::CancelRequest\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"increment_counter\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_details\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderDetails\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_hash\",\n \"inputs\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderParameters\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_cancellation_hash\",\n \"inputs\": [\n {\n \"name\": \"cancellation\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_counter\",\n \"inputs\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_native_token_address\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"native_token_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::OrderCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::OrderFulfilled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"fulfiller\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"quantity\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"remaining_amount\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"sale_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::OrderCancelled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::CounterIncremented\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_counter\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::medialane::Medialane1155::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OrderCreated\",\n \"type\": \"medialane_marketplace_erc1155::core::events::OrderCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderFulfilled\",\n \"type\": \"medialane_marketplace_erc1155::core::events::OrderFulfilled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderCancelled\",\n \"type\": \"medialane_marketplace_erc1155::core::events::OrderCancelled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"CounterIncremented\",\n \"type\": \"medialane_marketplace_erc1155::core::events::CounterIncremented\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPCollection1155FactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionFactoryImpl\",\n \"interface_name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollectionFactory::IIPCollectionFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollectionFactory::IIPCollectionFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"deploy_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollectionFactory::IPCollectionFactory::CollectionDeployed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollectionFactory::IPCollectionFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"CollectionDeployed\",\n \"type\": \"ip_programmable_erc1155_collections::IPCollectionFactory::IPCollectionFactory::CollectionDeployed\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPCollection1155ABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155MetadataURIImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionImpl\",\n \"interface_name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollection::IIPCollection\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_programmable_erc1155_collections::types::TokenData\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"original_creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollection::IIPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint_edition\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_mint_edition\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"token_uris\",\n \"type\": \"core::array::Array::<core::byte_array::ByteArray>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"add_supply\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_creator\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_creator\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_registered_at\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_data\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_programmable_erc1155_collections::types::TokenData\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"total_editions\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_exists\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"OwnableMixinImpl\",\n \"interface_name\": \"openzeppelin_access::ownable::interface::OwnableABI\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_access::ownable::interface::OwnableABI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_ownership\",\n \"inputs\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounce_ownership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155Impl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balance_of_batch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_batch_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155CamelImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balanceOfBatch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeBatchTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981Impl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981InfoImpl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"default_royalty\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981AdminOwnableImpl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Admin\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Admin\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"set_default_royalty\",\n \"inputs\": [\n {\n \"name\": \"receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"fee_numerator\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"delete_default_royalty\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"fee_numerator\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"reset_token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OwnershipTransferred\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"value\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"TransferSingle\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TransferBatch\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"URI\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollection::IPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OwnableEvent\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC1155Event\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC2981Event\",\n \"type\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"IPMinted\",\n \"type\": \"ip_programmable_erc1155_collections::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPCollectionABI =\n[\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionImpl\",\n \"interface_name\": \"ip_collection_erc_721::interfaces::IIPCollection::IIPCollection\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_collection_erc_721::types::Collection\",\n \"members\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"ip_nft\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_collection_erc_721::types::CollectionStats\",\n \"members\": [\n {\n \"name\": \"total_minted\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"total_archived\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"protocol_routed_transfers\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"last_mint_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"last_archive_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"last_transfer_time\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_collection_erc_721::types::TokenData\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"original_creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_collection_erc_721::interfaces::IIPCollection::IIPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_mint\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"recipients\",\n \"type\": \"core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_uris\",\n \"type\": \"core::array::Array::<core::byte_array::ByteArray>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::array::Array::<core::integer::u128>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_collection_ownership\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"archive\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_archive\",\n \"inputs\": [\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_token\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_transfer\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"list_user_tokens_per_collection\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"user\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"list_user_collections\",\n \"inputs\": [\n {\n \"name\": \"user\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_collection_erc_721::types::Collection\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_count\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_valid_collection\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_stats\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_collection_erc_721::types::CollectionStats\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_collection_owner\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_collection_erc_721::types::TokenData\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_valid_token\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_transferable_token\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"ip_nft_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionOwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u128\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMintedBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"owners\",\n \"type\": \"core::array::Array::<core::starknet::contract_address::ContractAddress>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uris\",\n \"type\": \"core::array::Array::<core::byte_array::ByteArray>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchived\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchivedBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferredBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"CollectionCreated\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"CollectionOwnershipTransferred\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionOwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenMinted\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMinted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenMintedBatch\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMintedBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenArchived\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchived\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenArchivedBatch\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchivedBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenTransferred\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenTransferredBatch\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferredBatch\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPNftABI =\n[\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Metadata\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataCamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"tokenURI\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPNftImpl\",\n \"interface_name\": \"ip_collection_erc_721::interfaces::IIPNFT::IIPNft\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_collection_erc_721::interfaces::IIPNFT::IIPNft\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"archive\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_archived\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_registry\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"all_tokens_of_owner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_exists\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_full_token_data\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::byte_array::ByteArray, core::starknet::contract_address::ContractAddress, core::integer::u64)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_creator\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_registered_at\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721CamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ownerOf\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getApproved\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721EnumerableImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"total_supply\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_by_index\",\n \"inputs\": [\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_of_owner_by_index\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981Impl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981InfoImpl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"default_royalty\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"registry\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPNft::IPNft::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC721EnumerableEvent\",\n \"type\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC2981Event\",\n \"type\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"flat\"\n }\n ]\n }\n] as const;\n","\n\nexport const CreatorCoinFactoryABI = [{\"type\":\"impl\",\"name\":\"FactoryImpl\",\"interface_name\":\"creator_coin::factory::interface::IFactory\"},{\"type\":\"struct\",\"name\":\"core::integer::u256\",\"members\":[{\"name\":\"low\",\"type\":\"core::integer::u128\"},{\"name\":\"high\",\"type\":\"core::integer::u128\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<core::integer::u256>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<core::integer::u256>\"}]},{\"type\":\"struct\",\"name\":\"creator_coin::factory::LaunchParameters\",\"members\":[{\"name\":\"creator_coin_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"transfer_restriction_delay\",\"type\":\"core::integer::u64\"},{\"name\":\"max_percentage_buy_launch\",\"type\":\"core::integer::u16\"},{\"name\":\"quote_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"initial_holders\",\"type\":\"core::array::Span::<core::starknet::contract_address::ContractAddress>\"},{\"name\":\"initial_holders_amounts\",\"type\":\"core::array::Span::<core::integer::u256>\"}]},{\"type\":\"enum\",\"name\":\"core::bool\",\"variants\":[{\"name\":\"False\",\"type\":\"()\"},{\"name\":\"True\",\"type\":\"()\"}]},{\"type\":\"struct\",\"name\":\"ekubo::types::i129::i129\",\"members\":[{\"name\":\"mag\",\"type\":\"core::integer::u128\"},{\"name\":\"sign\",\"type\":\"core::bool\"}]},{\"type\":\"struct\",\"name\":\"creator_coin::exchanges::ekubo::ekubo_adapter::EkuboPoolParameters\",\"members\":[{\"name\":\"fee\",\"type\":\"core::integer::u128\"},{\"name\":\"tick_spacing\",\"type\":\"core::integer::u128\"},{\"name\":\"starting_price\",\"type\":\"ekubo::types::i129::i129\"},{\"name\":\"bound\",\"type\":\"core::integer::u128\"}]},{\"type\":\"struct\",\"name\":\"ekubo::types::keys::PoolKey\",\"members\":[{\"name\":\"token0\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"token1\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"fee\",\"type\":\"core::integer::u128\"},{\"name\":\"tick_spacing\",\"type\":\"core::integer::u128\"},{\"name\":\"extension\",\"type\":\"core::starknet::contract_address::ContractAddress\"}]},{\"type\":\"struct\",\"name\":\"ekubo::types::bounds::Bounds\",\"members\":[{\"name\":\"lower\",\"type\":\"ekubo::types::i129::i129\"},{\"name\":\"upper\",\"type\":\"ekubo::types::i129::i129\"}]},{\"type\":\"struct\",\"name\":\"creator_coin::exchanges::ekubo::launcher::EkuboLP\",\"members\":[{\"name\":\"owner\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"quote_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"pool_key\",\"type\":\"ekubo::types::keys::PoolKey\"},{\"name\":\"bounds\",\"type\":\"ekubo::types::bounds::Bounds\"}]},{\"type\":\"enum\",\"name\":\"creator_coin::exchanges::SupportedExchanges\",\"variants\":[{\"name\":\"Jediswap\",\"type\":\"()\"},{\"name\":\"Ekubo\",\"type\":\"()\"},{\"name\":\"Starkdefi\",\"type\":\"()\"}]},{\"type\":\"enum\",\"name\":\"creator_coin::token::creator_coin::LiquidityType\",\"variants\":[{\"name\":\"JediERC20\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"StarkDeFiERC20\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"EkuboNFT\",\"type\":\"core::integer::u64\"}]},{\"type\":\"enum\",\"name\":\"core::option::Option::<(core::starknet::contract_address::ContractAddress, creator_coin::token::creator_coin::LiquidityType)>\",\"variants\":[{\"name\":\"Some\",\"type\":\"(core::starknet::contract_address::ContractAddress, creator_coin::token::creator_coin::LiquidityType)\"},{\"name\":\"None\",\"type\":\"()\"}]},{\"type\":\"interface\",\"name\":\"creator_coin::factory::interface::IFactory\",\"items\":[{\"type\":\"function\",\"name\":\"create_creator_coin\",\"inputs\":[{\"name\":\"owner\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"name\",\"type\":\"core::felt252\"},{\"name\":\"symbol\",\"type\":\"core::felt252\"},{\"name\":\"initial_supply\",\"type\":\"core::integer::u256\"},{\"name\":\"contract_address_salt\",\"type\":\"core::felt252\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"launch_on_jediswap\",\"inputs\":[{\"name\":\"launch_parameters\",\"type\":\"creator_coin::factory::LaunchParameters\"},{\"name\":\"quote_amount\",\"type\":\"core::integer::u256\"},{\"name\":\"unlock_time\",\"type\":\"core::integer::u64\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"launch_on_ekubo\",\"inputs\":[{\"name\":\"launch_parameters\",\"type\":\"creator_coin::factory::LaunchParameters\"},{\"name\":\"ekubo_parameters\",\"type\":\"creator_coin::exchanges::ekubo::ekubo_adapter::EkuboPoolParameters\"}],\"outputs\":[{\"type\":\"(core::integer::u64, creator_coin::exchanges::ekubo::launcher::EkuboLP)\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"launch_on_starkdefi\",\"inputs\":[{\"name\":\"launch_parameters\",\"type\":\"creator_coin::factory::LaunchParameters\"},{\"name\":\"quote_amount\",\"type\":\"core::integer::u256\"},{\"name\":\"unlock_time\",\"type\":\"core::integer::u64\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"exchange_address\",\"inputs\":[{\"name\":\"exchange\",\"type\":\"creator_coin::exchanges::SupportedExchanges\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"lock_manager_address\",\"inputs\":[],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"locked_liquidity\",\"inputs\":[{\"name\":\"token\",\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"outputs\":[{\"type\":\"core::option::Option::<(core::starknet::contract_address::ContractAddress, creator_coin::token::creator_coin::LiquidityType)>\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"is_creator_coin\",\"inputs\":[{\"name\":\"address\",\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"outputs\":[{\"type\":\"core::bool\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"ekubo_core_address\",\"inputs\":[],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"view\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<(creator_coin::exchanges::SupportedExchanges, core::starknet::contract_address::ContractAddress)>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<(creator_coin::exchanges::SupportedExchanges, core::starknet::contract_address::ContractAddress)>\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<(core::starknet::contract_address::ContractAddress, core::starknet::contract_address::ContractAddress)>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<(core::starknet::contract_address::ContractAddress, core::starknet::contract_address::ContractAddress)>\"}]},{\"type\":\"constructor\",\"name\":\"constructor\",\"inputs\":[{\"name\":\"creator_coin_class_hash\",\"type\":\"core::starknet::class_hash::ClassHash\"},{\"name\":\"lock_manager_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"exchanges\",\"type\":\"core::array::Span::<(creator_coin::exchanges::SupportedExchanges, core::starknet::contract_address::ContractAddress)>\"},{\"name\":\"migrated_tokens\",\"type\":\"core::array::Span::<(core::starknet::contract_address::ContractAddress, core::starknet::contract_address::ContractAddress)>\"}]},{\"type\":\"event\",\"name\":\"creator_coin::factory::factory::Factory::CreatorCoinCreated\",\"kind\":\"struct\",\"members\":[{\"name\":\"owner\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"},{\"name\":\"name\",\"type\":\"core::felt252\",\"kind\":\"data\"},{\"name\":\"symbol\",\"type\":\"core::felt252\",\"kind\":\"data\"},{\"name\":\"initial_supply\",\"type\":\"core::integer::u256\",\"kind\":\"data\"},{\"name\":\"creator_coin_address\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"}]},{\"type\":\"event\",\"name\":\"creator_coin::factory::factory::Factory::CreatorCoinLaunched\",\"kind\":\"struct\",\"members\":[{\"name\":\"creator_coin_address\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"},{\"name\":\"quote_token\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"},{\"name\":\"exchange_name\",\"type\":\"core::felt252\",\"kind\":\"data\"}]},{\"type\":\"event\",\"name\":\"creator_coin::factory::factory::Factory::Event\",\"kind\":\"enum\",\"variants\":[{\"name\":\"CreatorCoinCreated\",\"type\":\"creator_coin::factory::factory::Factory::CreatorCoinCreated\",\"kind\":\"nested\"},{\"name\":\"CreatorCoinLaunched\",\"type\":\"creator_coin::factory::factory::Factory::CreatorCoinLaunched\",\"kind\":\"nested\"}]}] as const;\n","export const IPTicketCollectionABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155MetadataURIImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPTicketCollectionImpl\",\n \"interface_name\": \"ip_ticket::interface::IIPTicketCollection\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::option::Option::<core::integer::u64>\",\n \"variants\": [\n {\n \"name\": \"Some\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"None\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_ticket::types::Ticket\",\n \"members\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"minted\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_ticket::interface::IIPTicketCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_ticket\",\n \"inputs\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_valid\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"holder\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_ticket\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_ticket::types::Ticket\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ticket_count\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royaltyInfo\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155Impl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balance_of_batch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_batch_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155CamelImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balanceOfBatch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeBatchTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"OwnableMixinImpl\",\n \"interface_name\": \"openzeppelin_access::ownable::interface::OwnableABI\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_access::ownable::interface::OwnableABI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_ownership\",\n \"inputs\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounce_ownership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"value\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"TransferSingle\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TransferBatch\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"URI\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OwnershipTransferred\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollection::IPTicketCollection::TicketCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollection::IPTicketCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC1155Event\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OwnableEvent\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"TicketCreated\",\n \"type\": \"ip_ticket::IPTicketCollection::IPTicketCollection::TicketCreated\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPTicketCollectionFactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"IPTicketCollectionFactoryImpl\",\n \"interface_name\": \"ip_ticket::interface::IIPTicketCollectionFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_ticket::interface::IIPTicketCollectionFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"deploy_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollectionFactory::IPTicketCollectionFactory::CollectionDeployed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollectionFactory::IPTicketCollectionFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"CollectionDeployed\",\n \"type\": \"ip_ticket::IPTicketCollectionFactory::IPTicketCollectionFactory::CollectionDeployed\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPClubFactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"IPClubCollectionFactoryImpl\",\n \"interface_name\": \"ip_club::interface::IIPClubCollectionFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_club::interface::IIPClubCollectionFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"deploy_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollectionFactory::IPClubCollectionFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ClubDeployed\",\n \"type\": \"ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPClubCollectionABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155MetadataURIImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPClubCollectionImpl\",\n \"interface_name\": \"ip_club::interface::IIPClubCollection\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::option::Option::<core::integer::u64>\",\n \"variants\": [\n {\n \"name\": \"Some\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"None\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_club::types::Membership\",\n \"members\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"minted\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_club::interface::IIPClubCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_membership\",\n \"inputs\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_member\",\n \"inputs\": [\n {\n \"name\": \"holder\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_member_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"holder\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_membership\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_club::types::Membership\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royaltyInfo\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155Impl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balance_of_batch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_batch_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155CamelImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balanceOfBatch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeBatchTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"OwnableMixinImpl\",\n \"interface_name\": \"openzeppelin_access::ownable::interface::OwnableABI\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_access::ownable::interface::OwnableABI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_ownership\",\n \"inputs\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounce_ownership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"value\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"TransferSingle\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TransferBatch\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"URI\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OwnershipTransferred\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollection::IPClubCollection::MembershipCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollection::IPClubCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC1155Event\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OwnableEvent\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"MembershipCreated\",\n \"type\": \"ip_club::IPClubCollection::IPClubCollection::MembershipCreated\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPSponsorshipABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataCamelOnlyImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"tokenURI\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPSponsorshipImpl\",\n \"interface_name\": \"ip_sponsorship::interface::IIPSponsorship\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\",\n \"variants\": [\n {\n \"name\": \"Some\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"None\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_sponsorship::types::SponsorshipOffer\",\n \"members\": [\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"min_amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"specific_sponsor\",\n \"type\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_sponsorship::types::SponsorshipProposal\",\n \"members\": [\n {\n \"name\": \"proposer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_sponsorship::interface::IIPSponsorship\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_offer\",\n \"inputs\": [\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"min_amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"specific_sponsor\",\n \"type\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_offer_open\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"place_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"retract_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"accept_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_offer\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_sponsorship::types::SponsorshipOffer\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_offer_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_license_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"propose_sponsorship\",\n \"inputs\": [\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdraw_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"accept_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"reject_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_sponsorship::types::SponsorshipProposal\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_proposal_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royaltyInfo\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721CamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ownerOf\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getApproved\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"min_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"specific_sponsor\",\n \"type\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"updated_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"bid_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"retracted_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"license_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"expires_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalClosed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"accepted\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"closed_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalAccepted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"license_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"expires_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::LicenseMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"asset_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"asset_token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"expires_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"minted_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OfferCreated\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OfferStatusUpdated\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"BidPlaced\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"BidRetracted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"SponsorshipAccepted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ProposalCreated\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ProposalClosed\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalClosed\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ProposalAccepted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalAccepted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"LicenseMinted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::LicenseMinted\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPGenesisABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::integer::u32\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataCamelOnlyImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"tokenURI\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionImpl\",\n \"interface_name\": \"ip_programmable_erc_721::interfaces::IIPCollection::IIPCollection\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_programmable_erc_721::types::TokenData\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"original_creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_programmable_erc_721::interfaces::IIPCollection::IIPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"mint_item\",\n \"inputs\": [\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_creator\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_creator\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_registered_at\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_data\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_programmable_erc_721::types::TokenData\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721CamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ownerOf\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getApproved\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721EnumerableImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"total_supply\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_by_index\",\n \"inputs\": [\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_of_owner_by_index\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc_721::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc_721::IPCollection::IPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC721EnumerableEvent\",\n \"type\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"IPMinted\",\n \"type\": \"ip_programmable_erc_721::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","import { hash } from \"starknet\";\nimport { normalizeAddress } from \"../utils/address.js\";\n\nexport interface PopAllowlist {\n /** Merkle root to publish with `set_allowlist_root`. */\n root: string;\n /** Proof per address, keyed by normalized Starknet address. */\n proofs: Record<string, string[]>;\n}\n\nconst FRAGMENT_KEY = \"pop-proof\";\n\nconst toHex = (x: bigint) => \"0x\" + x.toString(16).padStart(64, \"0\");\nconst poseidon = (xs: bigint[]) =>\n BigInt(hash.computePoseidonHashOnElements(xs.map((x) => \"0x\" + x.toString(16))));\nconst nodeHash = (a: bigint, b: bigint) => (a < b ? poseidon([a, b]) : poseidon([b, a]));\n\n/** Leaf for an address: poseidon([poseidon([address])]), as the collection computes it. */\nexport function popLeafHash(address: string): bigint {\n return poseidon([poseidon([BigInt(address)])]);\n}\n\n/** OpenZeppelin standard tree over leaf hashes (sorted leaves, sorted-pair Poseidon nodes). */\nexport function merkleTree(leafHashes: bigint[]) {\n const leaves = [...leafHashes].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));\n const tree: bigint[] = new Array(2 * leaves.length - 1);\n leaves.forEach((leaf, i) => (tree[tree.length - 1 - i] = leaf));\n for (let i = tree.length - 1 - leaves.length; i >= 0; i--) {\n tree[i] = nodeHash(tree[2 * i + 1]!, tree[2 * i + 2]!);\n }\n return {\n root: tree[0]!,\n proof(leaf: bigint): bigint[] {\n let i = tree.lastIndexOf(leaf);\n if (i < tree.length - leaves.length) throw new Error(\"Not a leaf of this tree\");\n const proof: bigint[] = [];\n while (i > 0) {\n proof.push(tree[i % 2 === 1 ? i + 1 : i - 1]!);\n i = Math.floor((i - 1) / 2);\n }\n return proof;\n },\n };\n}\n\nexport function buildPopAllowlist(addresses: string[]): PopAllowlist {\n const unique = [...new Set(addresses.map((a) => normalizeAddress(\"STARKNET\", a)))];\n if (unique.length === 0) throw new Error(\"An allowlist needs at least one address\");\n const leaves = unique.map((address) => ({ address, leaf: popLeafHash(address) }));\n const tree = merkleTree(leaves.map((l) => l.leaf));\n const proofs: Record<string, string[]> = {};\n for (const { address, leaf } of leaves) proofs[address] = tree.proof(leaf).map(toHex);\n return { root: toHex(tree.root), proofs };\n}\n\n/** True when `proof` places `address` under `root` — checked before sending a claim. */\nexport function verifyPopProof(root: string, address: string, proof: string[]): boolean {\n let computed = popLeafHash(address);\n for (const sibling of proof) computed = nodeHash(computed, BigInt(sibling));\n return computed === BigInt(root);\n}\n\nexport function encodePopClaimFragment(proof: string[]): string {\n return `#${FRAGMENT_KEY}=${proof.join(\",\")}`;\n}\n\n/** The proof in a claim link's fragment; `null` when absent or malformed. */\nexport function decodePopClaimFragment(fragment: string): string[] | null {\n const raw = new URLSearchParams(fragment.replace(/^#/, \"\")).get(FRAGMENT_KEY);\n if (raw === null) return null;\n if (raw === \"\") return [];\n const parts = raw.split(\",\");\n return parts.every((p) => /^0x[0-9a-fA-F]{1,64}$/.test(p)) ? parts : null;\n}\n","import { CallData, byteArray, cairo, type Call, type ProviderInterface } from \"starknet\";\nimport { collectionHref } from \"../routes.js\";\nimport { normalizeAddress } from \"../utils/address.js\";\nimport { encodePopClaimFragment, verifyPopProof, type PopAllowlist } from \"./pop-allowlist.js\";\n\nexport interface PopClaimLink {\n address: string;\n url: string;\n}\n\n/** One claim link per allowlisted address: the collection page with the proof in its fragment. */\nexport function popClaimLinks(origin: string, collection: string, list: PopAllowlist): PopClaimLink[] {\n const base = `${origin}${collectionHref(\"STARKNET\", collection)}`;\n return Object.entries(list.proofs).map(([address, proof]) => ({\n address,\n url: `${base}${encodePopClaimFragment(proof)}`,\n }));\n}\n\nexport function popClaimLinksCsv(links: PopClaimLink[]): string {\n return [\"address,claim_link\", ...links.map((l) => `${l.address},${l.url}`)].join(\"\\n\");\n}\n\nexport interface PopClaimInfo {\n /** Allowlist Merkle root; 0 when claims are closed. */\n root: string;\n /** Unix seconds; 0 = no deadline. */\n claimEndTime: number;\n}\n\n/** Reads a collection's allowlist root and claim deadline from chain. */\nexport async function popClaimInfo(\n provider: Pick<ProviderInterface, \"callContract\">,\n collection: string,\n): Promise<PopClaimInfo> {\n const contractAddress = normalizeAddress(\"STARKNET\", collection);\n const [root, end] = await Promise.all([\n provider.callContract({ contractAddress, entrypoint: \"allowlist_root\", calldata: [] }),\n provider.callContract({ contractAddress, entrypoint: \"claim_end_time\", calldata: [] }),\n ]);\n return { root: root[0] ?? \"0x0\", claimEndTime: Number(BigInt(end[0] ?? \"0x0\")) };\n}\n\nexport type PopClaimState = \"loading\" | \"claimed\" | \"closed\" | \"ended\" | \"no-link\" | \"wrong-wallet\" | \"ready\";\n\n/** What a claim page should show, decided before any transaction is sent. */\nexport function popClaimState(input: {\n hasClaimed: boolean | null;\n proof: string[] | null;\n wallet: string | null;\n /** The collection's claim settings, with `now` in Unix seconds. */\n info: (PopClaimInfo & { now: number }) | null;\n}): PopClaimState {\n const { hasClaimed, proof, wallet, info } = input;\n if (hasClaimed === true) return \"claimed\";\n if (hasClaimed === null || info === null) return \"loading\";\n if (BigInt(info.root) === 0n) return \"closed\";\n if (info.claimEndTime !== 0 && info.now > info.claimEndTime) return \"ended\";\n if (proof === null) return \"no-link\";\n if (!wallet || !verifyPopProof(info.root, wallet, proof)) return \"wrong-wallet\";\n return \"ready\";\n}\n\nconst addr = (a: string) => normalizeAddress(\"STARKNET\", a);\nconst byteArrayFelts = (s: string) => CallData.compile([byteArray.byteArrayFromString(s)]);\n\n/** Calls on a POP collection, ready for `account.execute` or a sponsored transaction. */\nexport const popCalls = {\n claim(collection: string, proof: string[]): Call {\n return { contractAddress: addr(collection), entrypoint: \"claim\", calldata: [String(proof.length), ...proof] };\n },\n /** An empty `tokenUri` uses the collection's URI. */\n issue(collection: string, recipient: string, tokenUri = \"\"): Call {\n return { contractAddress: addr(collection), entrypoint: \"issue\", calldata: [addr(recipient), ...byteArrayFelts(tokenUri)] };\n },\n /** Only the token's holder can burn it. */\n burn(collection: string, tokenId: string | bigint): Call {\n const id = cairo.uint256(BigInt(tokenId));\n return { contractAddress: addr(collection), entrypoint: \"burn\", calldata: [String(id.low), String(id.high)] };\n },\n setAllowlistRoot(collection: string, root: string): Call {\n return { contractAddress: addr(collection), entrypoint: \"set_allowlist_root\", calldata: [root] };\n },\n};\n","import { newContract } from \"../marketplace/utils.js\";\nimport { type AccountInterface, type ProviderInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { POPFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreatePopCollectionParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\nimport { popCalls } from \"../pop-claim.js\";\n\nexport type { CreatePopCollectionParams };\n\nexport class PopService {\n private readonly factoryAddress: string;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = getStarknetCoordinates(config.chain).popFactory!;\n }\n\n async createCollection(account: AccountInterface, params: CreatePopCollectionParams): Promise<TxResult> {\n const factory = newContract(POPFactoryABI as any, this.factoryAddress, account as any);\n const call = factory.populate(\"create_collection\", [params.name, params.symbol, params.baseUri, params.claimEndTime]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setAllowlistRoot(account: AccountInterface, params: { collection: string; root: string }): Promise<TxResult> {\n const call = popCalls.setAllowlistRoot(params.collection, params.root);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async claim(account: AccountInterface, params: { collection: string; proof: string[] }): Promise<TxResult> {\n const call = popCalls.claim(params.collection, params.proof);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async issue(\n account: AccountInterface,\n params: { collection: string; recipient: string; tokenUri?: string },\n ): Promise<TxResult> {\n const call = popCalls.issue(params.collection, params.recipient, params.tokenUri);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n /** Destroys the caller's own credential; the address cannot receive another from this collection. */\n async burn(account: AccountInterface, params: { collection: string; tokenId: string | bigint }): Promise<TxResult> {\n const call = popCalls.burn(params.collection, params.tokenId);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n}\n\n/** Whether `address` already holds this collection's credential (read from chain). */\nexport async function popHasClaimed(\n provider: Pick<ProviderInterface, \"callContract\">,\n collection: string,\n address: string,\n): Promise<boolean> {\n const res = await provider.callContract({\n contractAddress: normalizeAddress(\"STARKNET\", collection),\n entrypoint: \"has_claimed\",\n calldata: [normalizeAddress(\"STARKNET\", address)],\n });\n return BigInt(res[0] ?? \"0x0\") !== 0n;\n}\n","import { cairo, type Call } from \"starknet\";\nimport type { ResolvedFeeConfig } from \"../../fee/config.js\";\n\nexport type FeeSurface = \"marketplace\" | \"launchpad\" | \"sponsorship\";\n\nexport interface BuildFeeCallParams {\n surface: FeeSurface;\n\n token: string;\n\n grossAmount: bigint;\n}\n\nexport function buildFeeCall(\n p: BuildFeeCallParams,\n cfg: ResolvedFeeConfig\n): Call | null {\n if (!cfg.enabled || !cfg.fundAddress) return null;\n const bps = p.surface === \"marketplace\" ? cfg.marketplaceBps\n : p.surface === \"launchpad\" ? cfg.launchpadBps\n : cfg.sponsorshipBps;\n if (bps <= 0) return null;\n const fee = (p.grossAmount * BigInt(bps)) / 10000n;\n if (fee <= 0n) return null;\n const u = cairo.uint256(fee.toString());\n return {\n contractAddress: p.token,\n entrypoint: \"transfer\",\n calldata: [cfg.fundAddress, u.low.toString(), u.high.toString()],\n };\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { DropCollectionABI, DropFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { ClaimConditions, CreateDropParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\nimport { buildFeeCall } from \"../fee/index.js\";\n\nexport type { ClaimConditions, CreateDropParams };\n\nexport function toContractConditions(c: ClaimConditions) {\n return {\n start_time: c.startTime,\n end_time: c.endTime,\n price: BigInt(c.price),\n payment_token: c.paymentToken,\n max_quantity_per_wallet: BigInt(c.maxQuantityPerWallet),\n };\n}\n\nexport class DropService {\n private readonly factoryAddress: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = getStarknetCoordinates(config.chain).dropFactory!;\n this.config = config;\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(DropCollectionABI as any, normalizeAddress(\"STARKNET\",address), account as any);\n }\n\n async claim(\n account: AccountInterface,\n collectionAddress: string,\n quantity: bigint | string | number = 1\n ): Promise<TxResult> {\n const collection = this._collection(collectionAddress, account);\n const qty = BigInt(quantity);\n const claimCall = collection.populate(\"claim\", [qty]);\n\n const conditions = (await collection.get_claim_conditions()) as {\n price: bigint;\n payment_token: bigint | string;\n };\n const price = BigInt(conditions.price);\n const paymentToken =\n typeof conditions.payment_token === \"bigint\"\n ? \"0x\" + conditions.payment_token.toString(16)\n : conditions.payment_token;\n\n const feeCall =\n price > 0n\n ? buildFeeCall(\n { surface: \"launchpad\", token: paymentToken, grossAmount: price * qty },\n this.config.feeConfig\n )\n : null;\n\n const calls = feeCall ? [claimCall, feeCall] : [claimCall];\n const res = await account.execute(calls);\n return { txHash: res.transaction_hash };\n }\n\n async adminMint(\n account: AccountInterface,\n params: { collection: string; recipient: string; quantity?: bigint | string | number; customUri?: string }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"admin_mint\", [\n params.recipient,\n BigInt(params.quantity ?? 1),\n params.customUri ?? \"\",\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setClaimConditions(\n account: AccountInterface,\n params: { collection: string; conditions: ClaimConditions }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"set_claim_conditions\", [\n toContractConditions(params.conditions),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setAllowlistEnabled(\n account: AccountInterface,\n params: { collection: string; enabled: boolean }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"set_allowlist_enabled\", [params.enabled]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async addToAllowlist(\n account: AccountInterface,\n params: { collection: string; address: string }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"add_to_allowlist\", [params.address]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async batchAddToAllowlist(\n account: AccountInterface,\n params: { collection: string; addresses: string[] }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const CHUNK = 200;\n const calls = [];\n for (let i = 0; i < params.addresses.length; i += CHUNK) {\n calls.push(collection.populate(\"batch_add_to_allowlist\", [params.addresses.slice(i, i + CHUNK)]));\n }\n const res = await account.execute(calls);\n return { txHash: res.transaction_hash };\n }\n\n async setPaused(\n account: AccountInterface,\n params: { collection: string; paused: boolean }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"set_paused\", [params.paused]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async withdrawPayments(\n account: AccountInterface,\n params: { collection: string }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"withdraw_payments\", []);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async createDrop(account: AccountInterface, params: CreateDropParams): Promise<TxResult> {\n const factory = newContract(DropFactoryABI as any, this.factoryAddress, account as any);\n const call = factory.populate(\"create_drop\", [\n params.name,\n params.symbol,\n params.baseUri,\n BigInt(params.maxSupply),\n toContractConditions(params.initialConditions),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPCollection1155FactoryABI, IPCollection1155ABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport interface DeployCollectionParams {\n\n name: string;\n\n symbol: string;\n\n baseUri: string;\n}\n\nexport interface MintEditionParams {\n\n collection: string;\n\n to: string;\n\n value: bigint | string;\n\n tokenUri: string;\n}\n\nexport interface BatchMintEditionParams {\n\n collection: string;\n\n to: string;\n\n items: Array<{\n value: bigint | string;\n tokenUri: string;\n }>;\n}\n\nexport interface AddSupplyParams {\n\n collection: string;\n\n to: string;\n\n tokenId: bigint | string;\n\n value: bigint | string;\n}\n\nexport class ERC1155CollectionService {\n private readonly factoryAddress: string;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = config.collection1155Contract ?? getStarknetCoordinates(config.chain).collection1155!;\n }\n\n private _factory(account: AccountInterface) {\n return newContract(\n IPCollection1155FactoryABI as any,\n normalizeAddress(\"STARKNET\",this.factoryAddress),\n account as any\n );\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(\n IPCollection1155ABI as any,\n normalizeAddress(\"STARKNET\",address),\n account as any\n );\n }\n\n async deployCollection(\n account: AccountInterface,\n params: DeployCollectionParams\n ): Promise<TxResult> {\n const factory = this._factory(account);\n const call = factory.populate(\"deploy_collection\", [params.name, params.symbol, params.baseUri]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async mintEdition(\n account: AccountInterface,\n params: MintEditionParams\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"mint_edition\", [\n params.to,\n BigInt(params.value),\n params.tokenUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async batchMintEdition(\n account: AccountInterface,\n params: BatchMintEditionParams\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const values = params.items.map((i) => BigInt(i.value));\n const tokenUris = params.items.map((i) => i.tokenUri);\n const call = collection.populate(\"batch_mint_edition\", [\n params.to,\n values,\n tokenUris,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async addSupply(\n account: AccountInterface,\n params: AddSupplyParams\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"add_supply\", [\n params.to,\n BigInt(params.tokenId),\n BigInt(params.value),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setDefaultRoyalty(\n account: AccountInterface,\n params: { collection: string; receiver: string; feeNumerator: number }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"set_default_royalty\", [\n params.receiver,\n BigInt(params.feeNumerator),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setTokenRoyalty(\n account: AccountInterface,\n params: { collection: string; tokenId: bigint | string; receiver: string; feeNumerator: number }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"set_token_royalty\", [\n BigInt(params.tokenId),\n params.receiver,\n BigInt(params.feeNumerator),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setApprovalForAll(\n account: AccountInterface,\n params: { collection: string; operator: string; approved: boolean }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"set_approval_for_all\", [\n params.operator,\n params.approved,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n}\n","\n\nexport const COIN_DECIMALS = 18;\n\nexport const SUGGESTED_DEFAULT_PRICE = 0.01;\nexport const MIN_SUPPLY = 1_000n;\nexport const MAX_SUPPLY = 1_000_000_000_000n;\nexport const MAX_FELT_BYTES = 31;\n\nfunction byteLen(s: string): number {\n return new TextEncoder().encode(s).length;\n}\n\nexport function validateName(s: string): string | null {\n if (!s.trim()) return \"Name is required\";\n if (byteLen(s) > MAX_FELT_BYTES) return `Name must be at most ${MAX_FELT_BYTES} bytes`;\n return null;\n}\n\nexport function validateSymbol(s: string): string | null {\n if (!s.trim()) return \"Symbol is required\";\n if (byteLen(s) > MAX_FELT_BYTES) return `Symbol must be at most ${MAX_FELT_BYTES} bytes`;\n return null;\n}\n\nexport function validateSupply(human: string): string | null {\n if (!/^\\d+$/.test(human.trim())) return \"Supply must be a whole number\";\n const v = BigInt(human.trim());\n if (v < MIN_SUPPLY) return `Supply must be at least ${MIN_SUPPLY.toString()}`;\n if (v > MAX_SUPPLY) return `Supply must be at most ${MAX_SUPPLY.toString()}`;\n return null;\n}\n\nexport function toRaw(human: bigint, decimals = COIN_DECIMALS): bigint {\n return human * 10n ** BigInt(decimals);\n}\n\nexport function teamCoinsRaw(supplyRaw: bigint, pct: number): bigint {\n const bps = BigInt(Math.round(pct * 100));\n return (supplyRaw * bps) / 10_000n;\n}\n\nconst PRICE_SCALE = 1_000_000_000_000n;\n\nexport function buybackQuoteRaw(teamCoinsRawValue: bigint, price: number, quoteDecimals: number): bigint {\n const priceScaled = BigInt(Math.round(price * Number(PRICE_SCALE)));\n return (teamCoinsRawValue * priceScaled * 10n ** BigInt(quoteDecimals)) / (PRICE_SCALE * 10n ** BigInt(COIN_DECIMALS));\n}\n\nexport function fdvHuman(supplyHuman: number, price: number): number {\n return supplyHuman * price;\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { RpcProvider, hash, uint256, type AccountInterface, type Call, type Contract, type ProviderInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { CreatorCoinFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\nimport { SUGGESTED_DEFAULT_PRICE, COIN_DECIMALS } from \"./coinLaunchMath.js\";\n\nexport interface CreateCreatorCoinParams {\n\n owner: string;\n name: string;\n symbol: string;\n\n initialSupply: bigint | string;\n\n salt?: bigint | string;\n}\n\nexport interface EkuboPoolParams {\n fee: bigint | string;\n tickSpacing: bigint | string;\n startingPrice: { mag: bigint | string; sign: boolean };\n bound: bigint | string;\n}\n\nexport interface EkuboLaunchParams {\n creatorCoin: string;\n\n quoteToken: string;\n\n initialHolders: string[];\n initialHoldersAmounts: (bigint | string)[];\n\n transferRestrictionDelay?: number;\n\n maxPercentageBuyLaunch?: number;\n\n ekubo: EkuboPoolParams;\n\n quoteFundAmount?: bigint | string;\n}\n\nexport const VALIDATED_EKUBO_PARAMS: EkuboPoolParams = {\n fee: \"0xc49ba5e353f7d00000000000000000\",\n tickSpacing: 5982n,\n startingPrice: { mag: 4600158n, sign: true },\n bound: 88719042n,\n};\n\nconst TICK_BASE = 1.000001;\n\nexport function priceToEkuboParams(\n quoteDecimals: number,\n price: number = SUGGESTED_DEFAULT_PRICE,\n): EkuboPoolParams {\n const decAdj = 10 ** (COIN_DECIMALS - quoteDecimals);\n const rawRatio = price / decAdj;\n\n const tickSpacing = Number(VALIDATED_EKUBO_PARAMS.tickSpacing);\n const rawTick = Math.log(rawRatio) / Math.log(TICK_BASE);\n const roundedTick = Math.trunc(rawTick / tickSpacing) * tickSpacing;\n\n return {\n fee: VALIDATED_EKUBO_PARAMS.fee,\n tickSpacing: VALIDATED_EKUBO_PARAMS.tickSpacing,\n startingPrice: { mag: BigInt(Math.abs(roundedTick)), sign: roundedTick < 0 },\n bound: VALIDATED_EKUBO_PARAMS.bound,\n };\n}\n\nexport function validatePrice(quoteDecimals: number, price: number): string | null {\n if (!isFinite(price) || price <= 0) return \"Price must be a positive number\";\n const decAdj = 10 ** (COIN_DECIMALS - quoteDecimals);\n const rawRatio = price / decAdj;\n if (!isFinite(rawRatio) || rawRatio <= 0) return \"Price must be a positive number\";\n const rawTick = Math.log(rawRatio) / Math.log(TICK_BASE);\n if (!isFinite(rawTick)) return \"Price is outside the supported range\";\n const bound = Number(VALIDATED_EKUBO_PARAMS.bound);\n if (Math.abs(rawTick) >= bound) return \"Price is outside the supported range\";\n return null;\n}\n\nexport const MAX_TEAM_ALLOCATION_PERCENT = 10;\n\nexport const MAX_HOLDERS_AT_LAUNCH = 10;\n\nexport interface CreatorCoinGuarantees {\n isLaunched: boolean;\n\n launchedAtBlock: number | null;\n\n totalSupplyRaw: string;\n\n teamAllocationRaw: string;\n\n teamAllocationPercent: number | null;\n\n liquidityPositionId: string | null;\n}\n\nfunction u256(parts: string[], offset = 0): bigint {\n return BigInt(parts[offset] ?? \"0x0\") + (BigInt(parts[offset + 1] ?? \"0x0\") << 128n);\n}\n\nexport async function getCreatorCoinGuarantees(\n coinAddress: string,\n provider: ProviderInterface,\n): Promise<CreatorCoinGuarantees | null> {\n const call = (entrypoint: string) =>\n provider.callContract({ contractAddress: coinAddress, entrypoint, calldata: [] });\n\n const [launchedRes, allocRes] = await Promise.all([\n call(\"is_launched\").catch(() => null),\n call(\"get_team_allocation\").catch(() => null),\n ]);\n\n if (!launchedRes || !allocRes) return null;\n\n const [supplyRes, blockRes, liquidityRes] = await Promise.all([\n call(\"total_supply\"),\n call(\"launched_at_block_number\").catch(() => null),\n call(\"liquidity_type\").catch(() => null),\n ]);\n\n const isLaunched = BigInt(launchedRes[0] ?? \"0x0\") !== 0n;\n const totalSupply = u256(supplyRes);\n const teamAllocation = u256(allocRes);\n\n const teamAllocationPercent =\n totalSupply > 0n ? Number((teamAllocation * 10_000n) / totalSupply) / 100 : null;\n\n const launchedAtBlock =\n isLaunched && blockRes?.[0] != null ? Number(BigInt(blockRes[0])) : null;\n\n const liquidityPositionId =\n liquidityRes && BigInt(liquidityRes[0] ?? \"0x1\") === 0n && liquidityRes[2] != null\n ? BigInt(liquidityRes[2]).toString()\n : null;\n\n return {\n isLaunched,\n launchedAtBlock,\n totalSupplyRaw: totalSupply.toString(),\n teamAllocationRaw: teamAllocation.toString(),\n teamAllocationPercent,\n liquidityPositionId,\n };\n}\n\nlet _factoryContract: Contract | null = null;\nfunction factoryContract(): Contract {\n if (!_factoryContract) {\n _factoryContract = newContract(\n CreatorCoinFactoryABI as any,\n getStarknetCoordinates(\"STARKNET\").creatorCoinFactory!,\n );\n }\n return _factoryContract;\n}\n\nexport function buildCreateCreatorCoinCall(params: CreateCreatorCoinParams): Call {\n const salt = params.salt ?? BigInt(\"0x\" + Date.now().toString(16));\n return factoryContract().populate(\"create_creator_coin\", [\n params.owner,\n params.name,\n params.symbol,\n BigInt(params.initialSupply),\n BigInt(salt),\n ]);\n}\n\nexport function buildLaunchOnEkuboCalls(params: EkuboLaunchParams): Call[] {\n const ek = params.ekubo;\n\n const launchParameters = {\n creator_coin_address: params.creatorCoin,\n transfer_restriction_delay: params.transferRestrictionDelay ?? 0,\n max_percentage_buy_launch: params.maxPercentageBuyLaunch ?? 200,\n quote_address: params.quoteToken,\n initial_holders: params.initialHolders,\n initial_holders_amounts: params.initialHoldersAmounts.map((a) => BigInt(a)),\n };\n const ekuboParameters = {\n fee: BigInt(ek.fee),\n tick_spacing: BigInt(ek.tickSpacing),\n starting_price: { mag: BigInt(ek.startingPrice.mag), sign: ek.startingPrice.sign },\n bound: BigInt(ek.bound),\n };\n\n const calls: Call[] = [];\n if (params.quoteFundAmount !== undefined) {\n const amt = uint256.bnToUint256(BigInt(params.quoteFundAmount));\n calls.push({\n contractAddress: params.quoteToken,\n entrypoint: \"transfer\",\n calldata: [getStarknetCoordinates(\"STARKNET\").creatorCoinFactory!, amt.low, amt.high],\n });\n }\n calls.push(factoryContract().populate(\"launch_on_ekubo\", [launchParameters, ekuboParameters]));\n return calls;\n}\n\nexport interface CreatorCoinReceiptLike {\n events?: Array<{ from_address?: string; keys?: string[]; data?: string[] }>;\n}\n\nconst CREATOR_COIN_CREATED_SELECTOR = hash.getSelectorFromName(\"CreatorCoinCreated\");\n\nexport function parseCreatorCoinCreated(receipt: CreatorCoinReceiptLike): string {\n const factory = normalizeAddress(\"STARKNET\",getStarknetCoordinates(\"STARKNET\").creatorCoinFactory!);\n for (const ev of receipt?.events ?? []) {\n let from: string;\n try {\n from = normalizeAddress(\"STARKNET\",ev.from_address ?? \"\");\n } catch {\n continue;\n }\n if (from !== factory) continue;\n const k0 = ev.keys?.[0];\n if (!k0 || normalizeAddress(\"STARKNET\",k0) !== normalizeAddress(\"STARKNET\",CREATOR_COIN_CREATED_SELECTOR)) continue;\n const data = ev.data ?? [];\n if (data.length < 1) continue;\n return normalizeAddress(\"STARKNET\",data[data.length - 1]);\n }\n throw new Error(\"Coin deployed but the coin address could not be read from the receipt\");\n}\n\nexport class CreatorCoinService {\n private readonly factoryAddress: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = getStarknetCoordinates(config.chain).creatorCoinFactory!;\n this.config = config;\n }\n\n private _factory(account: AccountInterface) {\n return newContract(CreatorCoinFactoryABI as any, this.factoryAddress, account as any);\n }\n\n async createCreatorCoin(\n account: AccountInterface,\n params: CreateCreatorCoinParams\n ): Promise<TxResult> {\n const res = await account.execute([buildCreateCreatorCoinCall(params)]);\n return { txHash: res.transaction_hash };\n }\n\n async launchOnEkubo(account: AccountInterface, params: EkuboLaunchParams): Promise<TxResult> {\n const res = await account.execute(buildLaunchOnEkuboCalls(params));\n return { txHash: res.transaction_hash };\n }\n\n async isCreatorCoin(address: string, account: AccountInterface): Promise<boolean> {\n const r = await this._factory(account).is_creator_coin(address);\n return BigInt(r as any) === 1n;\n }\n\n async getGuarantees(coinAddress: string): Promise<CreatorCoinGuarantees | null> {\n return getCreatorCoinGuarantees(coinAddress, new RpcProvider({ nodeUrl: this.config.rpcUrl }));\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { CairoOption, CairoOptionVariant, RpcProvider, cairo, type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPTicketCollectionABI, IPTicketCollectionFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreateTicketParams, MintTicketsParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport type { CreateTicketParams, MintTicketsParams };\n\nexport interface TicketRecord {\n maxSupply: bigint;\n minted: bigint;\n startTime: number | null;\n endTime: number | null;\n royaltyBps: number;\n metadataUri: string;\n}\n\nexport class TicketService {\n private readonly factoryAddress?: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.config = config;\n this.factoryAddress = getStarknetCoordinates(config.chain).ipTicketsFactory;\n }\n\n private _factory(account: AccountInterface, factoryAddress?: string) {\n const address = factoryAddress ?? this.factoryAddress;\n if (!address) throw new Error(\"IP-Tickets factory address not configured for this chain\");\n return newContract(IPTicketCollectionFactoryABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(IPTicketCollectionABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collectionRead(address: string) {\n const provider = new RpcProvider({ nodeUrl: this.config.rpcUrl });\n return newContract(IPTicketCollectionABI as any, normalizeAddress(\"STARKNET\", address), provider);\n }\n\n async deployCollection(\n account: AccountInterface,\n params: { name: string; symbol: string; baseUri: string; factoryAddress?: string }\n ): Promise<TxResult> {\n const call = this._factory(account, params.factoryAddress).populate(\"deploy_collection\", [\n params.name,\n params.symbol,\n params.baseUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async createTicket(account: AccountInterface, params: CreateTicketParams): Promise<TxResult> {\n const startTime = params.startTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.startTime)\n : new CairoOption(CairoOptionVariant.None);\n const endTime = params.endTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.endTime)\n : new CairoOption(CairoOptionVariant.None);\n const call = this._collection(params.collection, account).populate(\"create_ticket\", [\n cairo.uint256(params.maxSupply),\n startTime,\n endTime,\n params.royaltyBps,\n params.metadataUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async mint(account: AccountInterface, params: MintTicketsParams): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"mint\", [\n params.to,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.amount),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async isValid(params: { collection: string; tokenId: bigint | string; holder: string }): Promise<boolean> {\n const result = await this._collectionRead(params.collection).call(\"is_valid\", [\n cairo.uint256(params.tokenId),\n params.holder,\n ]);\n return Boolean(result);\n }\n\n async getTicketCount(params: { collection: string }): Promise<bigint> {\n const result = await this._collectionRead(params.collection).call(\"ticket_count\", []);\n return BigInt(result as any);\n }\n\n async getTicket(params: {\n collection: string;\n tokenId: bigint | string;\n }): Promise<TicketRecord> {\n const t = await this._collectionRead(params.collection).call(\"get_ticket\", [\n cairo.uint256(params.tokenId),\n ]) as any;\n return {\n maxSupply: BigInt(t.max_supply),\n minted: BigInt(t.minted),\n startTime: t.start_time?.variant === \"Some\" ? Number(t.start_time.values[0] ?? t.start_time.value) : null,\n endTime: t.end_time?.variant === \"Some\" ? Number(t.end_time.values[0] ?? t.end_time.value) : null,\n royaltyBps: Number(t.royalty_bps),\n metadataUri: t.metadata_uri as string,\n };\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { CairoOption, CairoOptionVariant, RpcProvider, cairo, type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPClubCollectionABI, IPClubFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreateMembershipParams, MintMembershipsParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport type { CreateMembershipParams, MintMembershipsParams };\n\nexport interface MembershipRecord {\n maxSupply: bigint;\n minted: bigint;\n startTime: number | null;\n endTime: number | null;\n royaltyBps: number;\n metadataUri: string;\n}\n\nexport class ClubService {\n private readonly factoryAddress?: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.config = config;\n this.factoryAddress = getStarknetCoordinates(config.chain).ipClubFactory;\n }\n\n private _factory(account: AccountInterface, factoryAddress?: string) {\n const address = factoryAddress ?? this.factoryAddress;\n if (!address) throw new Error(\"IP-Club factory address not configured for this chain\");\n return newContract(IPClubFactoryABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(IPClubCollectionABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collectionRead(address: string) {\n const provider = new RpcProvider({ nodeUrl: this.config.rpcUrl });\n return newContract(IPClubCollectionABI as any, normalizeAddress(\"STARKNET\", address), provider);\n }\n\n async deployCollection(\n account: AccountInterface,\n params: { name: string; symbol: string; baseUri: string; factoryAddress?: string }\n ): Promise<TxResult> {\n const call = this._factory(account, params.factoryAddress).populate(\"deploy_collection\", [\n params.name,\n params.symbol,\n params.baseUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async createMembership(account: AccountInterface, params: CreateMembershipParams): Promise<TxResult> {\n const startTime = params.startTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.startTime)\n : new CairoOption(CairoOptionVariant.None);\n const endTime = params.endTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.endTime)\n : new CairoOption(CairoOptionVariant.None);\n const call = this._collection(params.collection, account).populate(\"create_membership\", [\n cairo.uint256(params.maxSupply),\n startTime,\n endTime,\n params.royaltyBps,\n params.metadataUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async mint(account: AccountInterface, params: MintMembershipsParams): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"mint\", [\n params.to,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.amount),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async isMember(params: { collection: string; holder: string }): Promise<boolean> {\n const result = await this._collectionRead(params.collection).call(\"is_member\", [\n params.holder,\n ]);\n return Boolean(result);\n }\n\n async isMemberOf(params: { collection: string; tokenId: bigint | string; holder: string }): Promise<boolean> {\n const result = await this._collectionRead(params.collection).call(\"is_member_of\", [\n cairo.uint256(params.tokenId),\n params.holder,\n ]);\n return Boolean(result);\n }\n\n async getMembership(params: {\n collection: string;\n tokenId: bigint | string;\n }): Promise<MembershipRecord> {\n const m = await this._collectionRead(params.collection).call(\"get_membership\", [\n cairo.uint256(params.tokenId),\n ]) as any;\n return {\n maxSupply: BigInt(m.max_supply),\n minted: BigInt(m.minted),\n startTime: m.start_time?.variant === \"Some\" ? Number(m.start_time.values[0] ?? m.start_time.value) : null,\n endTime: m.end_time?.variant === \"Some\" ? Number(m.end_time.values[0] ?? m.end_time.value) : null,\n royaltyBps: Number(m.royalty_bps),\n metadataUri: m.metadata_uri as string,\n };\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { CairoOption, CairoOptionVariant, RpcProvider, cairo, type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPSponsorshipABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreateSponsorshipOfferParams, ProposeSponsorshipParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport type { CreateSponsorshipOfferParams, ProposeSponsorshipParams };\n\nexport interface SponsorshipOfferRecord {\n author: string;\n nftContract: string;\n tokenId: bigint;\n minAmount: bigint;\n duration: number;\n paymentToken: string;\n licenseTermsUri: string;\n transferable: boolean;\n specificSponsor: string | null;\n open: boolean;\n royaltyBps: bigint;\n}\n\nexport interface SponsorshipProposalRecord {\n proposer: string;\n nftContract: string;\n tokenId: bigint;\n amount: bigint;\n duration: number;\n\n validUntil: number;\n paymentToken: string;\n licenseTermsUri: string;\n transferable: boolean;\n open: boolean;\n royaltyBps: bigint;\n}\n\nexport class SponsorshipService {\n private readonly sponsorshipAddress?: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.config = config;\n this.sponsorshipAddress = getStarknetCoordinates(config.chain).ipSponsorship;\n }\n\n private _contract(account: AccountInterface, address?: string) {\n const resolved = address ?? this.sponsorshipAddress;\n if (!resolved) {\n throw new Error(\"IP-Sponsorship address not configured for this chain\");\n }\n return newContract(IPSponsorshipABI as any, normalizeAddress(\"STARKNET\", resolved), account as any);\n }\n\n private _contractRead(address?: string) {\n const resolved = address ?? this.sponsorshipAddress;\n if (!resolved) {\n throw new Error(\"IP-Sponsorship address not configured for this chain\");\n }\n const provider = new RpcProvider({ nodeUrl: this.config.rpcUrl });\n return newContract(IPSponsorshipABI as any, normalizeAddress(\"STARKNET\", resolved), provider);\n }\n\n async createOffer(\n account: AccountInterface,\n params: CreateSponsorshipOfferParams & { sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const specificSponsor = params.specificSponsor\n ? new CairoOption(CairoOptionVariant.Some, params.specificSponsor)\n : new CairoOption(CairoOptionVariant.None);\n\n const call = this._contract(account, params.sponsorshipAddress).populate(\"create_offer\", [\n params.nftContract,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.minAmount),\n params.duration,\n params.paymentToken,\n params.licenseTermsUri,\n params.transferable,\n cairo.uint256(params.royaltyBps),\n specificSponsor,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setOfferOpen(\n account: AccountInterface,\n params: { offerId: bigint | string; open: boolean; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"set_offer_open\", [\n cairo.uint256(params.offerId),\n params.open,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async placeBid(\n account: AccountInterface,\n params: { offerId: bigint | string; amount: bigint | string; paymentToken: string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const sponsorshipAddress = params.sponsorshipAddress ?? this.sponsorshipAddress;\n if (!sponsorshipAddress) {\n throw new Error(\"IP-Sponsorship address not configured for this chain\");\n }\n const amount = cairo.uint256(params.amount);\n const approveCall = {\n contractAddress: params.paymentToken,\n entrypoint: \"approve\",\n calldata: [normalizeAddress(\"STARKNET\", sponsorshipAddress), amount.low.toString(), amount.high.toString()],\n };\n const bidCall = this._contract(account, sponsorshipAddress).populate(\"place_bid\", [\n cairo.uint256(params.offerId),\n amount,\n ]);\n const res = await account.execute([approveCall, bidCall]);\n return { txHash: res.transaction_hash };\n }\n\n async retractBid(\n account: AccountInterface,\n params: { offerId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"retract_bid\", [\n cairo.uint256(params.offerId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async acceptBid(\n account: AccountInterface,\n params: { offerId: bigint | string; sponsor: string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"accept_bid\", [\n cairo.uint256(params.offerId),\n params.sponsor,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async proposeSponsorship(\n account: AccountInterface,\n params: ProposeSponsorshipParams & { sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"propose_sponsorship\", [\n params.nftContract,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.amount),\n params.duration,\n params.validUntil ?? 0,\n params.paymentToken,\n params.licenseTermsUri,\n params.transferable,\n cairo.uint256(params.royaltyBps),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async withdrawProposal(\n account: AccountInterface,\n params: { proposalId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"withdraw_proposal\", [\n cairo.uint256(params.proposalId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async acceptProposal(\n account: AccountInterface,\n params: { proposalId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"accept_proposal\", [\n cairo.uint256(params.proposalId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async rejectProposal(\n account: AccountInterface,\n params: { proposalId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"reject_proposal\", [\n cairo.uint256(params.proposalId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async getOffer(params: { offerId: bigint | string; sponsorshipAddress?: string }): Promise<SponsorshipOfferRecord> {\n const o = await this._contractRead(params.sponsorshipAddress).call(\"get_offer\", [\n cairo.uint256(params.offerId),\n ]) as any;\n return {\n author: o.author as string,\n nftContract: o.nft_contract as string,\n tokenId: BigInt(o.token_id),\n minAmount: BigInt(o.min_amount),\n duration: Number(o.duration),\n paymentToken: o.payment_token as string,\n licenseTermsUri: o.license_terms_uri as string,\n transferable: Boolean(o.transferable),\n specificSponsor: o.specific_sponsor?.variant === \"Some\"\n ? (o.specific_sponsor.values?.[0] ?? o.specific_sponsor.value)\n : null,\n open: Boolean(o.open),\n royaltyBps: BigInt(o.royalty_bps),\n };\n }\n\n async getBid(params: { offerId: bigint | string; sponsor: string; sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params.sponsorshipAddress).call(\"get_bid\", [\n cairo.uint256(params.offerId),\n params.sponsor,\n ]);\n return BigInt(result as any);\n }\n\n async getProposal(params: { proposalId: bigint | string; sponsorshipAddress?: string }): Promise<SponsorshipProposalRecord> {\n const p = await this._contractRead(params.sponsorshipAddress).call(\"get_proposal\", [\n cairo.uint256(params.proposalId),\n ]) as any;\n return {\n proposer: p.proposer as string,\n nftContract: p.nft_contract as string,\n tokenId: BigInt(p.token_id),\n amount: BigInt(p.amount),\n duration: Number(p.duration),\n validUntil: Number(p.valid_until),\n paymentToken: p.payment_token as string,\n licenseTermsUri: p.license_terms_uri as string,\n transferable: Boolean(p.transferable),\n open: Boolean(p.open),\n royaltyBps: BigInt(p.royalty_bps),\n };\n }\n\n async getLastOfferId(params?: { sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params?.sponsorshipAddress).call(\"get_last_offer_id\", []);\n return BigInt(result as any);\n }\n\n async getLastProposalId(params?: { sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params?.sponsorshipAddress).call(\"get_last_proposal_id\", []);\n return BigInt(result as any);\n }\n\n async getLastLicenseId(params?: { sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params?.sponsorshipAddress).call(\"get_last_license_id\", []);\n return BigInt(result as any);\n }\n\n async royaltyInfo(params: {\n licenseId: bigint | string;\n salePrice: bigint | string;\n sponsorshipAddress?: string;\n }): Promise<{ recipient: string; amount: bigint }> {\n const [recipient, amount] = await this._contractRead(params.sponsorshipAddress).call(\"royalty_info\", [\n cairo.uint256(params.licenseId),\n cairo.uint256(params.salePrice),\n ]) as any;\n return { recipient: recipient as string, amount: BigInt(amount) };\n }\n}\n","import { type MedialaneConfig, resolveConfig, type ResolvedConfig } from \"../config.js\";\nimport { ApiClient } from \"../api/client.js\";\nimport { PopService } from \"./services/pop.js\";\nimport { DropService } from \"./services/drop.js\";\nimport { ERC1155CollectionService } from \"./services/erc1155collection.js\";\nimport { CreatorCoinService } from \"./services/creatorCoin.js\";\nimport { TicketService } from \"./services/ticket.js\";\nimport { ClubService } from \"./services/club.js\";\nimport { SponsorshipService } from \"./services/sponsorship.js\";\n\nexport class MedialaneClient {\n\n readonly api: ApiClient;\n\n readonly services: {\n readonly pop: PopService;\n readonly drop: DropService;\n readonly erc1155Collection: ERC1155CollectionService;\n readonly creatorCoin: CreatorCoinService;\n readonly ticket: TicketService;\n readonly club: ClubService;\n readonly sponsorship: SponsorshipService;\n };\n\n private readonly config: ResolvedConfig;\n\n constructor(rawConfig: MedialaneConfig = {}) {\n this.config = resolveConfig(rawConfig);\n\n this.services = {\n pop: new PopService(this.config),\n drop: new DropService(this.config),\n erc1155Collection: new ERC1155CollectionService(this.config),\n creatorCoin: new CreatorCoinService(this.config),\n ticket: new TicketService(this.config),\n club: new ClubService(this.config),\n sponsorship: new SponsorshipService(this.config),\n };\n\n if (!this.config.backendUrl) {\n\n const sentinel = new ApiClient(\"https://medialane-sdk-no-backend.invalid\", this.config.apiKey);\n const apiMethodNames = new Set<string | symbol>(\n Object.getOwnPropertyNames(ApiClient.prototype).filter(\n (k) => k !== \"constructor\" && typeof (sentinel as unknown as Record<string, unknown>)[k] === \"function\",\n ),\n );\n this.api = new Proxy(sentinel, {\n get(target, prop, receiver) {\n if (typeof prop === \"symbol\" || !apiMethodNames.has(prop)) {\n return Reflect.get(target, prop, receiver);\n }\n return () => {\n throw new Error(\n `backendUrl not configured. Pass backendUrl to MedialaneClient to use .api.${String(prop)}()`,\n );\n };\n },\n });\n } else {\n this.api = new ApiClient(this.config.backendUrl, this.config.apiKey, this.config.retryOptions, this.config.chain);\n }\n }\n\n get chain() {\n return this.config.chain;\n }\n\n get rpcUrl() {\n return this.config.rpcUrl;\n }\n\n get marketplaceContract() {\n return this.config.marketplaceContract;\n }\n}\n","\n\nimport { type Abi, Contract } from \"starknet\";\nimport { IPMarketplaceABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport type { OrderDetails } from \"../../types/marketplace.js\";\nimport { getProvider, newContract } from \"./utils.js\";\n\nconst _contractCache = new WeakMap<ResolvedConfig, { contract: Contract }>();\n\nfunction makeContract(config: ResolvedConfig): { contract: Contract } {\n const cached = _contractCache.get(config);\n if (cached) return cached;\n const contract = newContract(\n IPMarketplaceABI as unknown as Abi,\n config.marketplaceContract,\n getProvider(config)\n );\n const entry = { contract };\n _contractCache.set(config, entry);\n return entry;\n}\n\nexport async function getOrderDetails(\n orderHash: string,\n config: ResolvedConfig\n): Promise<OrderDetails> {\n const { contract } = makeContract(config);\n return contract.get_order_details(orderHash) as Promise<OrderDetails>;\n}\n\nexport async function getCounter(\n address: string,\n config: ResolvedConfig\n): Promise<bigint> {\n const { contract } = makeContract(config);\n return BigInt((await contract.get_counter(address)).toString());\n}\n","\n\nimport { type Abi, Contract } from \"starknet\";\nimport { Medialane1155ABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport type { OrderDetails } from \"../../types/marketplace.js\";\nimport { getProvider, newContract } from \"../marketplace/utils.js\";\n\nconst _contractCache = new WeakMap<ResolvedConfig, Contract>();\n\nfunction getContract(config: ResolvedConfig): Contract {\n let c = _contractCache.get(config);\n if (!c) {\n c = newContract(Medialane1155ABI as unknown as Abi, config.marketplace1155Contract, getProvider(config));\n _contractCache.set(config, c);\n }\n return c;\n}\n\nexport async function getOrderDetails1155(\n orderHash: string,\n config: ResolvedConfig\n): Promise<OrderDetails> {\n const contract = getContract(config);\n return contract.get_order_details(orderHash) as Promise<OrderDetails>;\n}\n\nexport async function getCounter1155(\n address: string,\n config: ResolvedConfig\n): Promise<bigint> {\n const contract = getContract(config);\n return BigInt((await contract.get_counter(address)).toString());\n}\n","import { type TypedData, TypedDataRevision, constants } from \"starknet\";\n\nconst STARKNET_DOMAIN = [\n { name: \"name\", type: \"shortstring\" },\n { name: \"version\", type: \"shortstring\" },\n { name: \"chainId\", type: \"shortstring\" },\n { name: \"revision\", type: \"shortstring\" },\n];\n\nconst OFFER_ITEM = [\n { name: \"item_type\", type: \"shortstring\" },\n { name: \"token\", type: \"ContractAddress\" },\n { name: \"identifier_or_criteria\", type: \"felt\" },\n { name: \"amount\", type: \"felt\" },\n];\n\nconst CONSIDERATION_ITEM = [\n { name: \"item_type\", type: \"shortstring\" },\n { name: \"token\", type: \"ContractAddress\" },\n { name: \"identifier_or_criteria\", type: \"felt\" },\n { name: \"amount\", type: \"felt\" },\n { name: \"recipient\", type: \"ContractAddress\" },\n];\n\nconst ORDER_PARAMETERS = [\n { name: \"offerer\", type: \"ContractAddress\" },\n { name: \"marketplace\", type: \"ContractAddress\" },\n { name: \"offer\", type: \"OfferItem\" },\n { name: \"consideration\", type: \"ConsiderationItem\" },\n { name: \"royalty_max_bps\", type: \"felt\" },\n { name: \"start_time\", type: \"felt\" },\n { name: \"end_time\", type: \"felt\" },\n { name: \"salt\", type: \"felt\" },\n { name: \"counter\", type: \"felt\" },\n];\n\nconst ORDER_CANCELLATION = [\n { name: \"order_hash\", type: \"felt\" },\n { name: \"offerer\", type: \"ContractAddress\" },\n];\n\nconst DOMAIN_VERSION: Record<\"erc721\" | \"erc1155\", string> = {\n erc721: \"5\",\n erc1155: \"4\",\n};\n\nfunction buildDomain(standard: \"erc721\" | \"erc1155\", chainId: constants.StarknetChainId | string) {\n return {\n name: \"Medialane\",\n version: DOMAIN_VERSION[standard],\n chainId,\n revision: TypedDataRevision.ACTIVE,\n };\n}\n\nexport function buildOrderTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc721\", chainId),\n primaryType: \"OrderParameters\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderParameters: ORDER_PARAMETERS,\n OfferItem: OFFER_ITEM,\n ConsiderationItem: CONSIDERATION_ITEM,\n },\n message,\n };\n}\n\nexport function build1155OrderTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc1155\", chainId),\n primaryType: \"OrderParameters\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderParameters: ORDER_PARAMETERS,\n OfferItem: OFFER_ITEM,\n ConsiderationItem: CONSIDERATION_ITEM,\n },\n message,\n };\n}\n\nexport function buildCancellationTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc721\", chainId),\n primaryType: \"OrderCancellation\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderCancellation: ORDER_CANCELLATION,\n },\n message,\n };\n}\n\nexport function build1155CancellationTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc1155\", chainId),\n primaryType: \"OrderCancellation\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderCancellation: ORDER_CANCELLATION,\n },\n message,\n };\n}\n","import { type Abi, type Call, type TypedData, Contract, cairo, shortString } from \"starknet\";\nimport { IPMarketplaceABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { stringifyBigInts } from \"../../utils/bigint.js\";\nimport { buildOrderTypedData, buildCancellationTypedData } from \"./signing.js\";\nimport { buildFeeCall } from \"../fee/index.js\";\nimport { getChainId, getProvider, newContract } from \"./utils.js\";\n\nexport interface OrderLeg {\n item_type: string;\n token: string;\n identifier_or_criteria: string;\n amount: string;\n recipient?: string;\n}\n\nexport interface OrderParams {\n offerer: string;\n marketplace: string;\n offer: OrderLeg;\n consideration: OrderLeg;\n royalty_max_bps: string;\n start_time: string;\n end_time: string;\n salt: string;\n counter: string;\n}\n\nexport interface BuildListingInput {\n offerer: string;\n nftContract: string;\n tokenId: string;\n\n priceWei: string;\n paymentTokenAddress: string;\n royaltyMaxBps: string;\n startTime: number;\n endTime: number;\n salt: string;\n counter: string;\n}\n\nexport type BuildOfferInput = BuildListingInput;\n\nfunction contractFor(cfg: ResolvedConfig): Contract {\n return newContract(IPMarketplaceABI as unknown as Abi, cfg.marketplaceContract, getProvider(cfg));\n}\n\nexport function buildListingOrder(\n i: BuildListingInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplaceContract,\n offer: { item_type: \"ERC721\", token: i.nftContract, identifier_or_criteria: i.tokenId, amount: \"1\" },\n consideration: {\n item_type: \"ERC20\",\n token: i.paymentTokenAddress,\n identifier_or_criteria: \"0\",\n amount: i.priceWei,\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(buildOrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg))) as TypedData;\n return { orderParams, typedData };\n}\n\nexport function buildOfferOrder(\n i: BuildOfferInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplaceContract,\n offer: { item_type: \"ERC20\", token: i.paymentTokenAddress, identifier_or_criteria: \"0\", amount: i.priceWei },\n consideration: {\n item_type: \"ERC721\",\n token: i.nftContract,\n identifier_or_criteria: i.tokenId,\n amount: \"1\",\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(buildOrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg))) as TypedData;\n return { orderParams, typedData };\n}\n\nfunction registerPayload(orderParams: OrderParams, signature: string[]) {\n return stringifyBigInts({\n parameters: {\n ...orderParams,\n offer: { ...orderParams.offer, item_type: shortString.encodeShortString(orderParams.offer.item_type) },\n consideration: {\n ...orderParams.consideration,\n item_type: shortString.encodeShortString(orderParams.consideration.item_type),\n },\n },\n signature,\n }) as Record<string, unknown>;\n}\n\nexport function buildRegisterCalls(\n a: { orderParams: OrderParams; signature: string[]; approvalNeeded: boolean; approve: Call },\n cfg: ResolvedConfig,\n): Call[] {\n const registerCall = contractFor(cfg).populate(\"register_order\", [registerPayload(a.orderParams, a.signature)]);\n return a.approvalNeeded ? [a.approve, registerCall] : [registerCall];\n}\n\nexport function buildFulfillCalls(\n a: { orderHash: string; paymentToken: string; totalPrice: string },\n cfg: ResolvedConfig,\n): Call[] {\n const u = cairo.uint256(a.totalPrice);\n const approve: Call = {\n contractAddress: a.paymentToken,\n entrypoint: \"approve\",\n calldata: [cfg.marketplaceContract, u.low.toString(), u.high.toString()],\n };\n const fulfill = contractFor(cfg).populate(\"fulfill_order\", [a.orderHash]);\n const fee = buildFeeCall(\n { surface: \"marketplace\", token: a.paymentToken, grossAmount: BigInt(a.totalPrice) },\n cfg.feeConfig,\n );\n return fee ? [approve, fulfill, fee] : [approve, fulfill];\n}\n\nexport function buildCancelCalls(\n a: { orderHash: string; offerer: string; signature: string[] },\n cfg: ResolvedConfig,\n): Call[] {\n const cancelRequest = stringifyBigInts({\n cancelation: { order_hash: a.orderHash, offerer: a.offerer },\n signature: a.signature,\n }) as Record<string, unknown>;\n return [contractFor(cfg).populate(\"cancel_order\", [cancelRequest])];\n}\n\nexport function buildCancelTypedData(orderHash: string, offerer: string, cfg: ResolvedConfig): TypedData {\n return stringifyBigInts(buildCancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg))) as TypedData;\n}\n","import { type Abi, type Call, type TypedData, Contract, cairo, shortString } from \"starknet\";\nimport { Medialane1155ABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { stringifyBigInts } from \"../../utils/bigint.js\";\nimport { build1155OrderTypedData, build1155CancellationTypedData } from \"../marketplace/signing.js\";\nimport { buildFeeCall } from \"../fee/index.js\";\nimport { getChainId, getProvider, newContract } from \"../marketplace/utils.js\";\nimport type { OrderParams } from \"../marketplace/build.js\";\n\nexport interface Build1155ListingInput {\n offerer: string;\n nftContract: string;\n tokenId: string;\n\n quantity: string;\n\n priceWeiPerUnit: string;\n paymentTokenAddress: string;\n royaltyMaxBps: string;\n startTime: number;\n endTime: number;\n salt: string;\n counter: string;\n}\n\nexport type Build1155OfferInput = Build1155ListingInput;\n\nfunction contractFor(cfg: ResolvedConfig): Contract {\n return newContract(Medialane1155ABI as unknown as Abi, cfg.marketplace1155Contract, getProvider(cfg));\n}\n\nexport function buildListing1155Order(\n i: Build1155ListingInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplace1155Contract,\n offer: { item_type: \"ERC1155\", token: i.nftContract, identifier_or_criteria: i.tokenId, amount: i.quantity },\n consideration: {\n item_type: \"ERC20\",\n token: i.paymentTokenAddress,\n identifier_or_criteria: \"0\",\n amount: i.priceWeiPerUnit,\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(\n build1155OrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg)),\n ) as TypedData;\n return { orderParams, typedData };\n}\n\nexport function buildOffer1155Order(\n i: Build1155OfferInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplace1155Contract,\n offer: { item_type: \"ERC20\", token: i.paymentTokenAddress, identifier_or_criteria: \"0\", amount: i.priceWeiPerUnit },\n consideration: {\n item_type: \"ERC1155\",\n token: i.nftContract,\n identifier_or_criteria: i.tokenId,\n amount: i.quantity,\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(\n build1155OrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg)),\n ) as TypedData;\n return { orderParams, typedData };\n}\n\nfunction registerPayload(orderParams: OrderParams, signature: string[]) {\n return stringifyBigInts({\n parameters: {\n ...orderParams,\n offer: { ...orderParams.offer, item_type: shortString.encodeShortString(orderParams.offer.item_type) },\n consideration: {\n ...orderParams.consideration,\n item_type: shortString.encodeShortString(orderParams.consideration.item_type),\n },\n },\n signature,\n }) as Record<string, unknown>;\n}\n\nexport function buildRegister1155Calls(\n a: { orderParams: OrderParams; signature: string[]; approvalNeeded: boolean; approve: Call },\n cfg: ResolvedConfig,\n): Call[] {\n const registerCall = contractFor(cfg).populate(\"register_order\", [registerPayload(a.orderParams, a.signature)]);\n return a.approvalNeeded ? [a.approve, registerCall] : [registerCall];\n}\n\nexport function buildFulfill1155Calls(\n a: { orderHash: string; paymentToken: string; totalPrice: string; quantity: string },\n cfg: ResolvedConfig,\n): Call[] {\n const u = cairo.uint256(a.totalPrice);\n const approve: Call = {\n contractAddress: a.paymentToken,\n entrypoint: \"approve\",\n calldata: [cfg.marketplace1155Contract, u.low.toString(), u.high.toString()],\n };\n const fulfill = contractFor(cfg).populate(\"fulfill_order\", [a.orderHash, a.quantity]);\n const fee = buildFeeCall(\n { surface: \"marketplace\", token: a.paymentToken, grossAmount: BigInt(a.totalPrice) },\n cfg.feeConfig,\n );\n return fee ? [approve, fulfill, fee] : [approve, fulfill];\n}\n\nexport function buildCancel1155Calls(\n a: { orderHash: string; offerer: string; signature: string[] },\n cfg: ResolvedConfig,\n): Call[] {\n const cancelPayload = stringifyBigInts({\n cancelation: { order_hash: a.orderHash, offerer: a.offerer },\n signature: a.signature,\n }) as Record<string, unknown>;\n return [contractFor(cfg).populate(\"cancel_order\", [cancelPayload])];\n}\n\nexport function buildCancel1155TypedData(orderHash: string, offerer: string, cfg: ResolvedConfig): TypedData {\n return stringifyBigInts(\n build1155CancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg)),\n ) as TypedData;\n}\n","import { type Call, cairo, hash, num, type ProviderInterface } from \"starknet\";\nimport type {\n VenueAdapter,\n RegisterOrderParams,\n OrderRef,\n AdapterTxResult,\n} from \"../adapters/types.js\";\nimport type { StarknetVenueSigner } from \"./index.js\";\nimport type { ResolvedConfig } from \"../config.js\";\nimport { getOrderDetails } from \"./marketplace/orders.js\";\nimport { resolveToken, START_TIME_BUFFER_SECS } from \"./marketplace/utils.js\";\nimport {\n buildListingOrder,\n buildOfferOrder,\n buildRegisterCalls,\n buildFulfillCalls,\n buildCancelCalls,\n buildCancelTypedData,\n} from \"./marketplace/build.js\";\nimport {\n buildListing1155Order,\n buildOffer1155Order,\n buildRegister1155Calls,\n buildFulfill1155Calls,\n buildCancel1155Calls,\n buildCancel1155TypedData,\n} from \"./marketplace1155/build.js\";\n\nconst NO_EXPIRY_SECONDS = 100 * 365 * 24 * 3600;\n\nexport interface ResolvedOrder {\n\n paymentToken: string;\n\n unitPrice: string;\n\n standard: \"ERC721\" | \"ERC1155\";\n}\n\nexport interface StarknetVenueDeps {\n config: ResolvedConfig;\n\n provider: ProviderInterface;\n\n resolveOrder: (orderRef: OrderRef) => Promise<ResolvedOrder>;\n\n resolveStandard: (contract: string) => Promise<\"ERC721\" | \"ERC1155\">;\n}\n\nexport class StarknetVenue implements VenueAdapter<StarknetVenueSigner> {\n readonly chain = \"STARKNET\" as const;\n\n constructor(private readonly deps: StarknetVenueDeps) {}\n\n async incrementCounter(signer: StarknetVenueSigner): Promise<AdapterTxResult> {\n return signer.execute([\n { contractAddress: this.deps.config.marketplaceContract, entrypoint: \"increment_counter\", calldata: [] },\n ]);\n }\n\n getOrderDetails(orderRef: OrderRef): Promise<unknown> {\n return getOrderDetails(orderRef, this.deps.config);\n }\n\n async getCounter(address: string): Promise<bigint> {\n return this.readCounter(this.deps.config.marketplaceContract, address);\n }\n\n async fulfillOrder(\n signer: StarknetVenueSigner,\n orderRef: OrderRef,\n opts?: { quantity?: string } & Record<string, string | undefined>,\n ): Promise<AdapterTxResult> {\n const o = await this.deps.resolveOrder(orderRef);\n const quantity = opts?.quantity ?? \"1\";\n\n const totalPrice = (BigInt(o.unitPrice) * BigInt(quantity)).toString();\n const calls =\n o.standard === \"ERC1155\"\n ? buildFulfill1155Calls({ orderHash: orderRef, paymentToken: o.paymentToken, totalPrice, quantity }, this.deps.config)\n : buildFulfillCalls({ orderHash: orderRef, paymentToken: o.paymentToken, totalPrice }, this.deps.config);\n return signer.execute(calls);\n }\n\n async cancelOrder(signer: StarknetVenueSigner, orderRef: OrderRef): Promise<AdapterTxResult> {\n const o = await this.deps.resolveOrder(orderRef);\n const typedData =\n o.standard === \"ERC1155\"\n ? buildCancel1155TypedData(orderRef, signer.address, this.deps.config)\n : buildCancelTypedData(orderRef, signer.address, this.deps.config);\n const signature = await signer.signTypedData(typedData);\n const calls =\n o.standard === \"ERC1155\"\n ? buildCancel1155Calls({ orderHash: orderRef, offerer: signer.address, signature }, this.deps.config)\n : buildCancelCalls({ orderHash: orderRef, offerer: signer.address, signature }, this.deps.config);\n return signer.execute(calls);\n }\n\n async registerOrder(\n signer: StarknetVenueSigner,\n p: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const standard = await this.deps.resolveStandard(p.asset.contract);\n const paymentTokenAddress = resolveToken(p.paymentToken).address;\n const royaltyMaxBps = String(p.royaltyMaxBps);\n const startTime = Math.floor(Date.now() / 1000) + START_TIME_BUFFER_SECS;\n const endTime = p.endTime && p.endTime > 0 ? p.endTime : startTime + NO_EXPIRY_SECONDS;\n const quantity = p.quantity ?? \"1\";\n const marketplace =\n standard === \"ERC1155\" ? this.deps.config.marketplace1155Contract : this.deps.config.marketplaceContract;\n const counter = String(await this.readCounter(marketplace, signer.address));\n\n let typedData;\n let buildCalls: (sig: string[]) => Call[];\n\n if (standard === \"ERC1155\") {\n\n const built = (p.side === \"listing\" ? buildListing1155Order : buildOffer1155Order)(\n {\n offerer: signer.address,\n nftContract: p.asset.contract,\n tokenId: p.asset.tokenId,\n quantity,\n priceWeiPerUnit: p.amount,\n paymentTokenAddress,\n royaltyMaxBps,\n startTime,\n endTime,\n salt: p.salt,\n counter,\n },\n this.deps.config,\n );\n typedData = built.typedData;\n const approval =\n p.side === \"listing\"\n ? await this.approval1155ForListing(signer.address, p.asset.contract)\n : this.approvalForErc20(paymentTokenAddress, (BigInt(p.amount) * BigInt(quantity)).toString(), marketplace);\n buildCalls = (sig) =>\n buildRegister1155Calls({ orderParams: built.orderParams, signature: sig, ...approval }, this.deps.config);\n } else {\n const built = (p.side === \"listing\" ? buildListingOrder : buildOfferOrder)(\n {\n offerer: signer.address,\n nftContract: p.asset.contract,\n tokenId: p.asset.tokenId,\n priceWei: p.amount,\n paymentTokenAddress,\n royaltyMaxBps,\n startTime,\n endTime,\n salt: p.salt,\n counter,\n },\n this.deps.config,\n );\n typedData = built.typedData;\n const approval =\n p.side === \"listing\"\n ? await this.approval721ForListing(signer.address, p.asset.contract, p.asset.tokenId)\n : this.approvalForErc20(paymentTokenAddress, p.amount, marketplace);\n buildCalls = (sig) =>\n buildRegisterCalls({ orderParams: built.orderParams, signature: sig, ...approval }, this.deps.config);\n }\n\n const signature = await signer.signTypedData(typedData);\n const { txHash } = await signer.execute(buildCalls(signature));\n const orderRef = await this.orderRefFromReceipt(txHash);\n return { txHash, orderRef };\n }\n\n private async readCounter(marketplace: string, address: string): Promise<bigint> {\n const res = await this.deps.provider.callContract({\n contractAddress: marketplace,\n entrypoint: \"get_counter\",\n calldata: [address],\n });\n return BigInt(res[0] ?? \"0\");\n }\n\n private async approval721ForListing(\n _owner: string,\n nftContract: string,\n tokenId: string,\n ): Promise<{ approvalNeeded: boolean; approve: Call }> {\n const id = cairo.uint256(tokenId);\n const approve: Call = {\n contractAddress: nftContract,\n entrypoint: \"approve\",\n calldata: [this.deps.config.marketplaceContract, id.low.toString(), id.high.toString()],\n };\n let approved = false;\n try {\n const res = await this.deps.provider.callContract({\n contractAddress: nftContract,\n entrypoint: \"get_approved\",\n calldata: [id.low.toString(), id.high.toString()],\n });\n approved = BigInt(res[0]).toString() === BigInt(this.deps.config.marketplaceContract).toString();\n } catch {\n\n }\n return { approvalNeeded: !approved, approve };\n }\n\n private async approval1155ForListing(\n owner: string,\n nftContract: string,\n ): Promise<{ approvalNeeded: boolean; approve: Call }> {\n const approve: Call = {\n contractAddress: nftContract,\n entrypoint: \"set_approval_for_all\",\n calldata: [this.deps.config.marketplace1155Contract, \"1\"],\n };\n let approved = false;\n try {\n const res = await this.deps.provider.callContract({\n contractAddress: nftContract,\n entrypoint: \"is_approved_for_all\",\n calldata: [owner, this.deps.config.marketplace1155Contract],\n });\n approved = BigInt(res[0]) === 1n;\n } catch {\n\n }\n return { approvalNeeded: !approved, approve };\n }\n\n private approvalForErc20(\n token: string,\n amountWei: string,\n marketplace: string,\n ): { approvalNeeded: boolean; approve: Call } {\n const u = cairo.uint256(amountWei);\n return {\n approvalNeeded: true,\n approve: {\n contractAddress: token,\n entrypoint: \"approve\",\n calldata: [marketplace, u.low.toString(), u.high.toString()],\n },\n };\n }\n\n private async orderRefFromReceipt(txHash: string): Promise<OrderRef> {\n const receipt = (await this.deps.provider.getTransactionReceipt(txHash)) as {\n events?: { from_address?: string; keys?: string[] }[];\n };\n const selector = hash.getSelectorFromName(\"OrderCreated\");\n for (const ev of receipt.events ?? []) {\n if (ev.keys?.[0] && BigInt(ev.keys[0]) === BigInt(selector)) {\n return num.toHex(ev.keys[1]);\n }\n }\n throw new Error(\"StarknetVenue.registerOrder: OrderCreated event not found in receipt\");\n }\n}\n","import type { TypedData } from \"starknet\";\nimport type { RequestSiwsTokenArgs } from \"./types.js\";\n\nconst STORAGE_PREFIX = \"ml_siws_\";\n\nfunction decodeBase64url(str: string): string {\n const base64 = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return atob(base64 + padding);\n}\n\nfunction readTokenExpiry(token: string): number | null {\n try {\n if (!token.startsWith(\"siws_\")) return null;\n const inner = token.slice(5);\n const dot = inner.lastIndexOf(\".\");\n if (dot === -1) return null;\n const data = JSON.parse(decodeBase64url(inner.slice(0, dot))) as { exp?: number };\n return typeof data.exp === \"number\" ? data.exp : null;\n } catch {\n return null;\n }\n}\n\nexport function getSiwsStorageKey(address: string): string {\n return `${STORAGE_PREFIX}${address.toLowerCase()}`;\n}\n\nexport function isSiwsTokenValid(token: string | null | undefined): token is string {\n if (!token?.startsWith(\"siws_\")) return false;\n const expiry = readTokenExpiry(token);\n return Boolean(expiry && expiry > Math.floor(Date.now() / 1000));\n}\n\nexport function getStoredSiwsToken(address: string): string | null {\n if (typeof window === \"undefined\") return null;\n const key = getSiwsStorageKey(address);\n const token = localStorage.getItem(key);\n if (isSiwsTokenValid(token)) return token;\n localStorage.removeItem(key);\n return null;\n}\n\nexport function storeSiwsToken(address: string, token: string): void {\n if (typeof window === \"undefined\") return;\n localStorage.setItem(getSiwsStorageKey(address), token);\n}\n\nexport function normalizeSiwsSignature(signature: unknown): string[] {\n if (Array.isArray(signature)) {\n return signature.map(String);\n }\n\n if (signature && typeof signature === \"object\") {\n const { r, s } = signature as { r?: unknown; s?: unknown };\n if (r !== undefined && s !== undefined) {\n return [String(r), String(s)];\n }\n }\n\n return [String(signature)];\n}\n\nexport async function requestSiwsToken({\n backendUrl,\n walletAddress,\n signer,\n appSource,\n}: RequestSiwsTokenArgs): Promise<string> {\n const base = backendUrl.replace(/\\/$/, \"\");\n\n const nonceRes = await fetch(`${base}/v1/auth/siws/nonce`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ walletAddress }),\n });\n\n if (!nonceRes.ok) {\n throw new Error(\"Failed to prepare wallet sign-in\");\n }\n\n const { nonce, typedData } = await nonceRes.json() as {\n nonce: string;\n typedData: TypedData;\n };\n\n const signature = normalizeSiwsSignature(await signer.signMessage(typedData));\n const verifyRes = await fetch(`${base}/v1/auth/siws/verify`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ walletAddress, nonce, signature, ...(appSource ? { appSource } : {}) }),\n });\n\n if (!verifyRes.ok) {\n\n let backendMessage: string | undefined;\n try {\n const body = await verifyRes.json() as { error?: string; message?: string };\n if (body?.message) backendMessage = body.message;\n } catch {\n\n }\n throw new Error(backendMessage ?? \"Wallet sign-in failed\");\n }\n\n const { token } = await verifyRes.json() as { token?: string };\n if (!isSiwsTokenValid(token)) {\n throw new Error(\"Wallet sign-in returned an invalid token\");\n }\n\n storeSiwsToken(walletAddress, token);\n return token;\n}\n","import type { TypedData } from \"starknet\";\nimport type { ApiClient } from \"../../api/client.js\";\nimport type { ApiFundingInstructions, ApiFundingIntent, ApiFundingSubmit } from \"../../types/api.js\";\n\nexport interface FundingTransferCall {\n contractAddress: string;\n entrypoint: \"transfer\";\n calldata: string[];\n}\n\nexport interface FundingWallet {\n address: string;\n signTypedData(typedData: TypedData): Promise<string[]>;\n sendTransfer(call: FundingTransferCall): Promise<{ txHash: string }>;\n}\n\nexport class FundingTransferNotSentError extends Error {\n constructor(message = \"The transfer was not sent.\") {\n super(message);\n this.name = \"FundingTransferNotSentError\";\n }\n}\n\ntype Res<T> = Promise<{ data: T }>;\n\nexport interface FundingApi {\n createFunding(input: { method: string; params: Record<string, unknown> }): Res<ApiFundingIntent>;\n getFundingChallenge(id: string, payer: string): Res<{ typedData: unknown }>;\n authorizeFunding(id: string, input: { payer: string; signature: string[] }): Res<{ instructions: ApiFundingInstructions }>;\n submitFunding(id: string, txHash: string): Res<ApiFundingSubmit>;\n cancelFunding(id: string): Res<{ status: string }>;\n}\n\nexport function fundingApiFor(client: ApiClient, siwsToken?: string): FundingApi {\n return {\n createFunding: (input) => client.createFunding(input, siwsToken),\n getFundingChallenge: (id, payer) => client.getFundingChallenge(id, payer, siwsToken),\n authorizeFunding: (id, input) => client.authorizeFunding(id, input, siwsToken),\n submitFunding: (id, txHash) => client.submitFunding(id, txHash, siwsToken),\n cancelFunding: (id) => client.cancelFunding(id, siwsToken),\n };\n}\n\nexport function buildFundingTransferCall(instructions: ApiFundingInstructions): FundingTransferCall {\n const amount = BigInt(instructions.amountAtomic);\n const mask = (1n << 128n) - 1n;\n return {\n contractAddress: instructions.asset,\n entrypoint: \"transfer\",\n calldata: [instructions.payTo, (amount & mask).toString(), (amount >> 128n).toString()],\n };\n}\n\nexport type FundingStep = \"creating\" | \"signing\" | \"authorizing\" | \"paying\" | \"confirming\";\n\nexport type FundingResult =\n | { status: \"SETTLED\"; intentId: string; credited?: number }\n | { status: \"PENDING\"; intentId: string; reason: string };\n\nexport interface FundWithTransferOptions {\n amountUsdc: string;\n onStep?: (step: FundingStep) => void;\n pollMs?: number;\n maxPolls?: number;\n sleep?: (ms: number) => Promise<void>;\n}\n\nexport async function fundWithChainTransfer(\n api: FundingApi,\n wallet: FundingWallet,\n options: FundWithTransferOptions,\n): Promise<FundingResult> {\n const step = options.onStep ?? (() => {});\n const sleep = options.sleep ?? ((ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms)));\n const pollMs = options.pollMs ?? 3000;\n const maxPolls = options.maxPolls ?? 20;\n\n step(\"creating\");\n const { data: intent } = await api.createFunding({ method: \"chain-transfer\", params: { amountUsdc: options.amountUsdc } });\n\n let txHash: string;\n let transferStarted = false;\n try {\n step(\"signing\");\n const challenge = await api.getFundingChallenge(intent.id, wallet.address);\n const signature = await wallet.signTypedData(challenge.data.typedData as TypedData);\n\n step(\"authorizing\");\n const authorized = await api.authorizeFunding(intent.id, { payer: wallet.address, signature });\n\n step(\"paying\");\n transferStarted = true;\n ({ txHash } = await wallet.sendTransfer(buildFundingTransferCall(authorized.data.instructions)));\n } catch (err) {\n if (!transferStarted || err instanceof FundingTransferNotSentError) {\n await api.cancelFunding(intent.id).catch(() => undefined);\n }\n throw err;\n }\n\n step(\"confirming\");\n let reason = \"waiting for the transfer to confirm\";\n for (let attempt = 0; attempt < maxPolls; attempt++) {\n const res = await api.submitFunding(intent.id, txHash);\n if (res.data.status === \"SETTLED\") {\n return { status: \"SETTLED\", intentId: intent.id, credited: res.data.credited };\n }\n reason = res.data.reason;\n await sleep(pollMs);\n }\n return { status: \"PENDING\", intentId: intent.id, reason };\n}\n","import { UserFacingError } from \"../../errors.js\";\nimport type { Call, TypedData } from \"starknet\";\nimport type { StarknetVenueSigner } from \"../index.js\";\nimport type { MedialaneClient } from \"../client.js\";\nimport type { ApiIntentCreated } from \"../../types/api.js\";\nimport type { ReceiptLike } from \"./receipts.js\";\n\nexport interface ReceiptProvider {\n getTransactionReceipt(txHash: string): Promise<unknown>;\n}\n\nexport async function confirmIntentBestEffort(\n client: MedialaneClient,\n intentId: string,\n txHash: string,\n): Promise<void> {\n await client.api.confirmIntent(intentId, txHash).catch(() => {});\n}\n\nconst SYNC_TIMEOUT_MS = 6000;\n\nexport async function syncTransactionBestEffort(\n client: MedialaneClient,\n txHash: string,\n timeoutMs = SYNC_TIMEOUT_MS,\n): Promise<void> {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const timeout = new Promise<void>((resolve) => {\n timer = setTimeout(() => resolve(), timeoutMs);\n });\n const sync = client.api.syncTransaction(txHash).then(() => {}, () => {});\n try {\n await Promise.race([sync, timeout]);\n } finally {\n if (timer) clearTimeout(timer);\n }\n}\n\nconst RECEIPT_RETRY_DELAYS_MS = [0, 3000, 5000, 7000, 10000];\n\ninterface ReceiptStatusShape extends ReceiptLike {\n execution_status?: string;\n finality_status?: string;\n status?: string;\n}\n\nexport async function assertTransactionSucceeded(\n provider: ReceiptProvider,\n txHash: string,\n retryDelaysMs: readonly number[] = RECEIPT_RETRY_DELAYS_MS,\n): Promise<ReceiptLike> {\n for (let attempt = 0; attempt < retryDelaysMs.length; attempt++) {\n const delay = retryDelaysMs[attempt];\n if (delay) await new Promise<void>((r) => setTimeout(r, delay));\n try {\n const receipt = (await provider.getTransactionReceipt(txHash)) as ReceiptStatusShape;\n const status = receipt.execution_status ?? receipt.status;\n if (status === \"REVERTED\" || status === \"REJECTED\") {\n throw new UserFacingError(\"Transaction was submitted but reverted onchain. Please check your balance and try again.\");\n }\n if (status) return receipt;\n } catch (err) {\n if (err instanceof Error && err.message.includes(\"reverted onchain\")) throw err;\n }\n }\n throw new UserFacingError(\"Verification timed out. Check your account for the transaction status.\");\n}\n\nexport interface ExecuteIntentOpts {\n confirm?: boolean;\n}\n\nexport async function executeIntent(\n provider: ReceiptProvider,\n signer: StarknetVenueSigner,\n client: MedialaneClient,\n intent: ApiIntentCreated,\n opts: ExecuteIntentOpts = {},\n): Promise<{ txHash: string; receipt: ReceiptLike }> {\n let calls: Call[];\n if (intent.requiresSignature) {\n const signature = await signer.signTypedData(intent.typedData as TypedData);\n const signed = await client.api.submitIntentSignature(intent.id, signature);\n calls = signed.data.calls as Call[];\n } else {\n calls = intent.calls as Call[];\n }\n\n const { txHash } = await signer.execute(calls);\n const receipt = await assertTransactionSucceeded(provider, txHash);\n await Promise.all([\n syncTransactionBestEffort(client, txHash),\n opts.confirm !== false ? confirmIntentBestEffort(client, intent.id, txHash) : undefined,\n ]);\n return { txHash, receipt };\n}\n\nexport async function executeIntents(\n provider: ReceiptProvider,\n signer: StarknetVenueSigner,\n client: MedialaneClient,\n intents: ApiIntentCreated[],\n opts: ExecuteIntentOpts = {},\n): Promise<{ txHash: string; receipt: ReceiptLike }> {\n if (intents.some((i) => i.requiresSignature)) {\n throw new Error(\"Expected prebuilt intents (requiresSignature=false)\");\n }\n const calls = intents.flatMap((i) => (i as Extract<ApiIntentCreated, { requiresSignature: false }>).calls) as Call[];\n const { txHash } = await signer.execute(calls);\n const receipt = await assertTransactionSucceeded(provider, txHash);\n await Promise.all([\n syncTransactionBestEffort(client, txHash),\n ...(opts.confirm !== false ? intents.map((i) => confirmIntentBestEffort(client, i.id, txHash)) : []),\n ]);\n return { txHash, receipt };\n}\n","import { hash } from \"starknet\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { getService } from \"../../services/registry.js\";\n\nexport interface ReceiptLike {\n events?: Array<{ from_address?: string; keys?: string[]; data?: string[] }>;\n}\n\ntype ReceiptEvent = NonNullable<ReceiptLike[\"events\"]>[number];\n\nexport type DeployingServiceId = \"mip-erc1155\" | \"ip-tickets\" | \"ip-ticketing\" | \"ip-club\" | \"drop-collection\";\n\nconst DEPLOY_EVENTS: Record<DeployingServiceId, { event: string; address: (e: ReceiptEvent) => string | undefined }> = {\n \"mip-erc1155\": { event: \"CollectionDeployed\", address: (e) => e.keys?.[1] },\n \"ip-tickets\": { event: \"CollectionDeployed\", address: (e) => e.keys?.[1] },\n \"ip-ticketing\": { event: \"CollectionDeployed\", address: (e) => e.keys?.[1] },\n \"ip-club\": { event: \"ClubDeployed\", address: (e) => e.keys?.[1] },\n \"drop-collection\": { event: \"DropCreated\", address: (e) => e.data?.[0] },\n};\n\nconst IP_MINTED_SELECTOR = BigInt(hash.getSelectorFromName(\"IPMinted\"));\nconst TRANSFER_SELECTOR = BigInt(hash.getSelectorFromName(\"Transfer\"));\n\nfunction sameFelt(a: string | undefined, b: string | bigint): boolean {\n if (a === undefined) return false;\n try {\n return BigInt(a) === BigInt(b);\n } catch {\n return false;\n }\n}\n\nfunction u256(low: string | undefined, high: string | undefined): string {\n return (BigInt(low ?? 0) + (BigInt(high ?? 0) << 128n)).toString();\n}\n\nexport function deployedCollectionFromReceipt(receipt: ReceiptLike, service: DeployingServiceId): string | null {\n const factory = getService(service)?.onchain?.STARKNET?.factoryAddress;\n const { event, address } = DEPLOY_EVENTS[service];\n const selector = BigInt(hash.getSelectorFromName(event));\n for (const e of receipt.events ?? []) {\n if (factory && !sameFelt(e.from_address, factory)) continue;\n if (!sameFelt(e.keys?.[0], selector)) continue;\n const value = address(e);\n if (value) return normalizeAddress(\"STARKNET\", value);\n }\n return null;\n}\n\nexport function mintedTokenIdFromReceipt(receipt: ReceiptLike, contract: string): string | null {\n for (const e of receipt.events ?? []) {\n if (!sameFelt(e.from_address, contract)) continue;\n const keys = e.keys ?? [];\n if (sameFelt(keys[0], IP_MINTED_SELECTOR) && keys.length >= 3) return u256(keys[1], keys[2]);\n if (sameFelt(keys[0], TRANSFER_SELECTOR) && keys.length === 5 && sameFelt(keys[1], 0n)) return u256(keys[3], keys[4]);\n }\n return null;\n}\n","import type { Call, TypedData } from \"starknet\";\n\nexport interface TypedDataSigner {\n address: string;\n signTypedData(typedData: TypedData): Promise<string[]>;\n}\n\nexport interface SponsoredExecuteConfig {\n proxyUrl: string;\n fetchImpl?: typeof fetch;\n}\n\nexport type SponsoredExecuteResult =\n | { status: \"sponsored\"; transactionHash: string }\n | { status: \"unavailable\"; reason: string };\n\nexport class SponsoredCallRejectedError extends Error {}\n\nexport type SponsorshipFailureCode =\n | \"sponsor_unavailable\"\n | \"credits_exhausted\"\n | \"account_not_deployed\"\n | \"not_executable\"\n | \"invalid_request\"\n | \"not_authorized\"\n | \"rate_limited\"\n | \"may_have_broadcast\";\n\nconst FALLBACK_FUNDING_FAILURES: ReadonlySet<string> = new Set([\"sponsor_unavailable\", \"credits_exhausted\"]);\n\nexport function allowsFallbackFunding(code: string | undefined, status: number, stage: \"build\" | \"execute\"): boolean {\n if (code) return FALLBACK_FUNDING_FAILURES.has(code);\n return stage === \"build\" ? status >= 500 : status === 503;\n}\n\nasync function failureOf(res: Response, fallback: string): Promise<{ reason: string; code?: string }> {\n const body = (await res.json().catch(() => null)) as { error?: string; code?: string } | null;\n return { reason: body?.error || fallback, code: typeof body?.code === \"string\" ? body.code : undefined };\n}\n\nexport async function executeSponsored(\n config: SponsoredExecuteConfig,\n signer: TypedDataSigner,\n calls: Call[],\n): Promise<SponsoredExecuteResult> {\n const doFetch = config.fetchImpl ?? fetch;\n const base = config.proxyUrl.replace(/\\/$/, \"\");\n const headers = { \"Content-Type\": \"application/json\" };\n\n const buildRes = await doFetch(`${base}/build`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ userAddress: signer.address, calls }),\n });\n if (!buildRes.ok) {\n const { reason, code } = await failureOf(buildRes, \"We couldn't prepare this transaction.\");\n if (allowsFallbackFunding(code, buildRes.status, \"build\")) return { status: \"unavailable\", reason };\n throw new SponsoredCallRejectedError(reason);\n }\n const { typedData } = (await buildRes.json()) as { typedData: TypedData };\n\n const signature = await signer.signTypedData(typedData);\n\n const executeRes = await doFetch(`${base}/execute`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ userAddress: signer.address, typedData, signature, calls }),\n });\n if (!executeRes.ok) {\n const { reason, code } = await failureOf(executeRes, \"We couldn't submit this transaction.\");\n if (allowsFallbackFunding(code, executeRes.status, \"execute\")) {\n return { status: \"unavailable\", reason };\n }\n throw new SponsoredCallRejectedError(reason);\n }\n const { transactionHash } = (await executeRes.json()) as { transactionHash: string };\n return { status: \"sponsored\", transactionHash };\n}\n","import { num } from \"starknet\";\n\nexport function encodeByteArray(str: string): string[] {\n const bytes = new TextEncoder().encode(str);\n const fullChunks: string[] = [];\n\n let i = 0;\n while (i + 31 <= bytes.length) {\n let val = 0n;\n for (const b of bytes.slice(i, i + 31)) {\n val = (val << 8n) | BigInt(b);\n }\n fullChunks.push(num.toHex(val));\n i += 31;\n }\n\n const remaining = bytes.slice(i);\n let pendingVal = 0n;\n for (const b of remaining) {\n pendingVal = (pendingVal << 8n) | BigInt(b);\n }\n\n return [\n fullChunks.length.toString(),\n ...fullChunks,\n num.toHex(pendingVal),\n remaining.length.toString(),\n ];\n}\n","import { extract, expand } from \"@noble/hashes/hkdf.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { ec, num } from \"starknet\";\n\nconst STARK_ORDER = 3618502788666131213697322783095070105526743751716087489154079457884512865583n;\n\nexport function deriveOwnerKeyPair(\n secret: Uint8Array,\n recipientId: string,\n): { privateKey: string; publicKey: string } {\n const prk = extract(sha256, secret);\n const okm = expand(sha256, prk, new TextEncoder().encode(recipientId), 32);\n let scalar = BigInt(\"0x\" + Buffer.from(okm).toString(\"hex\")) % STARK_ORDER;\n if (scalar === 0n) scalar = 1n;\n const privateKey = num.toHex(scalar);\n const publicKey = ec.starkCurve.getStarkKey(privateKey);\n return { privateKey, publicKey };\n}\n","import { hash, num, type BigNumberish, type Call } from \"starknet\";\n\nconst STARKNET_SIGNER_TYPE = \"0x537461726b6e6574205369676e6572\";\nconst OPTION_NONE = \"0x1\";\nconst SIGNER_STARKNET = \"0x0\";\n\nexport function computeOwnerGuid(ownerPubkey: BigNumberish): string {\n return hash.computePoseidonHash(STARKNET_SIGNER_TYPE, num.toHex(ownerPubkey));\n}\n\nfunction changeOwners(accountAddress: string, guidsToRemove: string[], pubkeysToAdd: BigNumberish[]): Call {\n return {\n contractAddress: accountAddress,\n entrypoint: \"change_owners\",\n calldata: [\n num.toHex(guidsToRemove.length),\n ...guidsToRemove,\n num.toHex(pubkeysToAdd.length),\n ...pubkeysToAdd.flatMap((p) => [SIGNER_STARKNET, num.toHex(p)]),\n OPTION_NONE,\n ],\n };\n}\n\nexport function buildAddOwnerCall(accountAddress: string, addOwnerPubkey: BigNumberish): Call {\n return changeOwners(accountAddress, [], [addOwnerPubkey]);\n}\n\nexport function buildRemoveOwnerCall(accountAddress: string, removeOwnerPubkey: BigNumberish): Call {\n return changeOwners(accountAddress, [computeOwnerGuid(removeOwnerPubkey)], []);\n}\n\nexport function buildRemoveOwnerByGuidCall(accountAddress: string, ownerGuid: BigNumberish): Call {\n return changeOwners(accountAddress, [num.toHex(ownerGuid)], []);\n}\n","import { num, type BigNumberish, type DeployAccountContractPayload } from \"starknet\";\nimport { STARKNET_MEDIAWALLET_CLASS_HASH } from \"../../constants.js\";\nimport { ownerConstructorCalldata, computeAccountAddress } from \"./account.js\";\n\nexport function buildDeployAccountParams(\n ownerPubkey: BigNumberish,\n salt: BigNumberish = 0,\n): DeployAccountContractPayload {\n return {\n classHash: STARKNET_MEDIAWALLET_CLASS_HASH,\n constructorCalldata: ownerConstructorCalldata(ownerPubkey),\n addressSalt: num.toHex(salt),\n contractAddress: computeAccountAddress(ownerPubkey, salt),\n };\n}\n","import { num, type Call, type ProviderInterface } from \"starknet\";\nimport { normalizeAddress } from \"../../utils/address.js\";\n\nconst norm = (address: string): string => normalizeAddress(\"STARKNET\", address);\n\nconst SIGNER_TYPE_NAMES = [\"Starknet\", \"Secp256k1\", \"Secp256r1\"] as const;\ntype SignerTypeName = (typeof SIGNER_TYPE_NAMES)[number];\n\nexport interface GuardianInfo {\n type: SignerTypeName;\n guid: string;\n storedValue: string;\n}\n\nfunction encodeFeltArray(items: string[]): string[] {\n return [num.toHex(items.length), ...items];\n}\n\nfunction encodeStarknetSigner(pubkey: string): string[] {\n return [\"0x0\", num.toHex(pubkey)];\n}\n\nfunction encodeStarknetSignerArray(pubkeys: string[]): string[] {\n return [num.toHex(pubkeys.length), ...pubkeys.flatMap(encodeStarknetSigner)];\n}\n\nexport function buildSetFirstGuardianCall(address: string, guardianPubkey: string): Call {\n return {\n contractAddress: norm(address),\n entrypoint: \"change_guardians\",\n calldata: [...encodeFeltArray([]), ...encodeStarknetSignerArray([guardianPubkey])],\n };\n}\n\nexport function buildTriggerEscapeOwnerCall(targetAddress: string, newOwnerPubkey: string): Call {\n return {\n contractAddress: norm(targetAddress),\n entrypoint: \"trigger_escape_owner\",\n calldata: encodeStarknetSigner(newOwnerPubkey),\n };\n}\n\nexport function buildCompleteEscapeOwnerCall(targetAddress: string): Call {\n return { contractAddress: norm(targetAddress), entrypoint: \"escape_owner\", calldata: [] };\n}\n\nexport function buildCancelEscapeCall(address: string): Call {\n return { contractAddress: norm(address), entrypoint: \"cancel_escape\", calldata: [] };\n}\n\nexport function decodeGuardiansInfo(res: string[]): GuardianInfo[] {\n const len = Number(res[0]);\n const out: GuardianInfo[] = [];\n for (let i = 0; i < len; i++) {\n const base = 1 + i * 3;\n out.push({\n type: SIGNER_TYPE_NAMES[Number(res[base])] ?? \"Starknet\",\n guid: res[base + 1],\n storedValue: res[base + 2],\n });\n }\n return out;\n}\n\nexport type EscapeTypeName = \"None\" | \"Guardian\" | \"Owner\";\nexport type EscapeStatusName = \"None\" | \"NotReady\" | \"Ready\" | \"Expired\";\nconst ESCAPE_TYPE_NAMES: EscapeTypeName[] = [\"None\", \"Guardian\", \"Owner\"];\nconst ESCAPE_STATUS_NAMES: EscapeStatusName[] = [\"None\", \"NotReady\", \"Ready\", \"Expired\"];\n\nexport interface EscapeInfo {\n readyAt: number;\n escapeType: EscapeTypeName;\n status: EscapeStatusName;\n}\n\nexport function decodeEscapeAndStatus(res: string[]): EscapeInfo {\n\n const readyAt = Number(res[0]);\n const escapeType = ESCAPE_TYPE_NAMES[Number(res[1])] ?? \"None\";\n const optionTag = Number(res[2]);\n const statusIndex = optionTag === 0 ? 5 : 3;\n const status = ESCAPE_STATUS_NAMES[Number(res[statusIndex])] ?? \"None\";\n return { readyAt, escapeType, status };\n}\n\nexport async function getGuardians(provider: ProviderInterface, address: string): Promise<GuardianInfo[]> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_guardians_info\",\n calldata: [],\n });\n return decodeGuardiansInfo(res as unknown as string[]);\n}\n\nexport async function getOwners(provider: ProviderInterface, address: string): Promise<GuardianInfo[]> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_owners_info\",\n calldata: [],\n });\n return decodeGuardiansInfo(res as unknown as string[]);\n}\n\nexport async function getEscape(provider: ProviderInterface, address: string): Promise<EscapeInfo> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_escape_and_status\",\n calldata: [],\n });\n return decodeEscapeAndStatus(res as unknown as string[]);\n}\n\nexport async function getEscapeSecurityPeriod(provider: ProviderInterface, address: string): Promise<number> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_escape_security_period\",\n calldata: [],\n });\n return Number((res as unknown as string[])[0]);\n}\n","import type { SealedOwner } from \"./types.js\";\n\nexport interface OwnerStore {\n load(): SealedOwner | null;\n loadAddress(): string | null;\n save(sealed: SealedOwner): void;\n clear(): void;\n notifyChange(): void;\n onChange(listener: () => void): () => void;\n}\n\nexport function createOwnerStore(config: { storeKey: string; changeEvent: string }): OwnerStore {\n const { storeKey, changeEvent } = config;\n const announce = (): void => {\n if (typeof window === \"undefined\") return;\n window.dispatchEvent(new Event(changeEvent));\n };\n return {\n load() {\n if (typeof window === \"undefined\") return null;\n try {\n const raw = localStorage.getItem(storeKey);\n return raw ? (JSON.parse(raw) as SealedOwner) : null;\n } catch {\n return null;\n }\n },\n loadAddress() {\n return this.load()?.address ?? null;\n },\n save(sealed) {\n const previous = this.load();\n if (previous && previous.address !== sealed.address) {\n localStorage.setItem(`${storeKey}:${previous.address}`, JSON.stringify(previous));\n }\n localStorage.setItem(storeKey, JSON.stringify(sealed));\n announce();\n },\n clear() {\n localStorage.removeItem(storeKey);\n announce();\n },\n notifyChange: announce,\n onChange(listener) {\n window.addEventListener(changeEvent, listener);\n return () => window.removeEventListener(changeEvent, listener);\n },\n };\n}\n","const SCHEME = \"medialane-device\";\nconst VERSION = 1;\nconst LABEL_MAX = 32;\nconst STARK_PRIME = (1n << 251n) + 17n * (1n << 192n) + 1n;\n\nexport class InvalidPairingPayloadError extends Error {\n constructor(message = \"This code is not a Medialane device request.\") {\n super(message);\n this.name = \"InvalidPairingPayloadError\";\n }\n}\n\nexport interface PairingPayload {\n publicKey: string;\n label: string;\n}\n\nfunction normalisePublicKey(input: unknown): string {\n if (typeof input !== \"string\" || !/^0x[0-9a-fA-F]+$/.test(input)) {\n throw new InvalidPairingPayloadError(\"That device key is not valid.\");\n }\n const value = BigInt(input);\n if (value === 0n || value >= STARK_PRIME) {\n throw new InvalidPairingPayloadError(\"That device key is not valid.\");\n }\n return `0x${value.toString(16)}`;\n}\n\nfunction sanitiseLabel(input: unknown): string {\n const raw = typeof input === \"string\" ? input : \"\";\n return raw.replace(/\\s+/g, \" \").trim().slice(0, LABEL_MAX);\n}\n\nexport function encodePairingPayload(payload: PairingPayload): string {\n return JSON.stringify({\n scheme: SCHEME,\n version: VERSION,\n publicKey: normalisePublicKey(payload.publicKey),\n label: sanitiseLabel(payload.label),\n });\n}\n\nexport function parsePairingPayload(encoded: string): PairingPayload {\n let data: Record<string, unknown>;\n try {\n data = JSON.parse(encoded) as Record<string, unknown>;\n } catch {\n throw new InvalidPairingPayloadError();\n }\n if (data === null || typeof data !== \"object\") throw new InvalidPairingPayloadError();\n if (data.scheme !== SCHEME || data.version !== VERSION) throw new InvalidPairingPayloadError();\n return {\n publicKey: normalisePublicKey(data.publicKey),\n label: sanitiseLabel(data.label),\n };\n}\n\nexport function parseAccountAddress(input: string): string {\n const trimmed = typeof input === \"string\" ? input.trim() : \"\";\n if (!/^0x[0-9a-fA-F]{50,64}$/.test(trimmed)) {\n throw new InvalidPairingPayloadError(\"That does not look like an account address.\");\n }\n if (BigInt(trimmed) === 0n) {\n throw new InvalidPairingPayloadError(\"That does not look like an account address.\");\n }\n return trimmed;\n}\n","import { computeAccountAddress } from \"../starknet/media-wallet/account.js\";\nimport { starkKeyPairFromPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\n\nconst PREFIX = \"medialane-recovery:v1:\";\nconst ADDRESS = /^0x[0-9a-fA-F]{1,64}$/;\n\nexport class InvalidRecoveryKeyError extends Error {\n constructor(message = \"This is not a valid recovery key.\") {\n super(message);\n this.name = \"InvalidRecoveryKeyError\";\n }\n}\n\nexport interface RecoveryKey {\n walletAddress: string;\n privateKey: string;\n}\n\nconst canonicalAddress = (address: string) => `0x${BigInt(address).toString(16).padStart(64, \"0\")}`;\n\nfunction keyPair(privateKey: string) {\n try {\n return starkKeyPairFromPrivateKey(privateKey);\n } catch {\n throw new InvalidRecoveryKeyError();\n }\n}\n\nexport function encodeRecoveryKey(key: RecoveryKey): string {\n if (!ADDRESS.test(key.walletAddress) || BigInt(key.walletAddress) === 0n) throw new InvalidRecoveryKeyError();\n return `${PREFIX}${canonicalAddress(key.walletAddress)}:${keyPair(key.privateKey).privateKeyHex}`;\n}\n\nexport function parseRecoveryKey(input: string): RecoveryKey {\n const trimmed = input.trim();\n if (!trimmed.startsWith(PREFIX)) {\n const { privateKeyHex, publicKeyHex } = keyPair(trimmed);\n return { walletAddress: computeAccountAddress(publicKeyHex, 0), privateKey: privateKeyHex };\n }\n const parts = trimmed.slice(PREFIX.length).split(\":\");\n const [walletAddress, privateKey] = parts;\n if (parts.length !== 2 || !walletAddress || !privateKey || !ADDRESS.test(walletAddress) || BigInt(walletAddress) === 0n) {\n throw new InvalidRecoveryKeyError();\n }\n return { walletAddress: canonicalAddress(walletAddress), privateKey: keyPair(privateKey).privateKeyHex };\n}\n","import type { GuardianInfo, EscapeInfo } from \"../starknet/media-wallet/guardian.js\";\n\nexport type GuardianStatus = { kind: \"none\" } | { kind: \"active\"; guardian: GuardianInfo };\n\nexport function describeGuardianStatus(guardians: GuardianInfo[]): GuardianStatus {\n if (guardians.length === 0) return { kind: \"none\" };\n return { kind: \"active\", guardian: guardians[0] };\n}\n\nexport type RecoveryAction = \"start\" | \"complete\" | \"none\";\n\nexport function describeRecoveryAction(escape: EscapeInfo): RecoveryAction {\n if (escape.escapeType !== \"Owner\") return \"none\";\n if (escape.status === \"Ready\") return \"complete\";\n if (escape.status === \"Expired\") return \"start\";\n return \"none\";\n}\n","import { validateAndParseAddress } from \"starknet\";\nimport { normalizeAddress } from \"../utils/address.js\";\nimport type { ReceiptProviderLike } from \"./types.js\";\n\nexport function normalizeWalletAddress(address: string): string {\n return normalizeAddress(\"STARKNET\", address);\n}\n\nexport function isValidStarknetAddress(address: string): boolean {\n try {\n validateAndParseAddress(address.trim());\n return true;\n } catch {\n return false;\n }\n}\n\nconst CONTRACT_NOT_FOUND = 20;\n\nexport async function isDeployed(provider: ReceiptProviderLike, address: string): Promise<boolean> {\n try {\n await provider.getClassHashAt(normalizeWalletAddress(address));\n return true;\n } catch (err) {\n if ((err as { code?: unknown } | null)?.code === CONTRACT_NOT_FOUND) return false;\n throw err;\n }\n}\n","import type { Call } from \"starknet\";\n\nexport interface SelfFundFeeEstimate {\n feeRaw: bigint;\n unit: string;\n balanceRaw: bigint | null;\n}\n\nexport type SelfFundConsentHandler = (\n feeEstimate: Promise<SelfFundFeeEstimate | null>,\n) => Promise<boolean>;\n\nexport interface SelfFundConsent {\n registerHandler(handler: SelfFundConsentHandler | null): void;\n request(input: { address?: string; calls?: Call[] }): Promise<boolean>;\n}\n\nexport function createSelfFundConsent(\n estimateFee: (address: string, calls: Call[]) => Promise<SelfFundFeeEstimate>,\n): SelfFundConsent {\n let handler: SelfFundConsentHandler | null = null;\n return {\n registerHandler(next) {\n handler = next;\n },\n async request({ address, calls }) {\n if (!handler) return false;\n const feeEstimate =\n address && calls ? estimateFee(address, calls).catch(() => null) : Promise.resolve(null);\n return handler(feeEstimate);\n },\n };\n}\n","import { Account, typedData as starknetTypedData, type Call, type ProviderInterface } from \"starknet\";\nimport { signWithPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\nimport { executeSponsored, SponsoredCallRejectedError } from \"../starknet/services/sponsoredExecutor.js\";\nimport type { SelfFundConsent, SelfFundFeeEstimate } from \"./self-fund-consent.js\";\nimport type { ExecutedTransaction, WalletExecutor } from \"./types.js\";\nimport { getTokenBySymbol } from \"../utils/token.js\";\n\nexport interface SelfFundedDeps {\n provider: () => ProviderInterface;\n}\n\nexport function accountFor(\n provider: ProviderInterface,\n address: string,\n privateKeyHex: string,\n): Account {\n return new Account({ provider, address, signer: privateKeyHex, cairoVersion: \"1\" });\n}\n\nexport async function estimateSelfFundedFee(\n provider: ProviderInterface,\n address: string,\n calls: Call[],\n): Promise<SelfFundFeeEstimate> {\n const account = new Account({ provider, address, signer: \"0x1\", cairoVersion: \"1\" });\n const estimate = await account.estimateInvokeFee(calls);\n const balanceRaw = await feeTokenBalance(provider, address, estimate.unit).catch(() => null);\n return { feeRaw: estimate.overall_fee, unit: estimate.unit, balanceRaw };\n}\n\nasync function feeTokenBalance(provider: ProviderInterface, address: string, unit: string): Promise<bigint> {\n const token = getTokenBySymbol(unit === \"FRI\" ? \"STRK\" : \"ETH\");\n if (!token) throw new Error(`No fee token for unit ${unit}`);\n const [low = \"0x0\", high = \"0x0\"] = await provider.callContract({\n contractAddress: token.address,\n entrypoint: \"balance_of\",\n calldata: [address],\n });\n return BigInt(low) + (BigInt(high) << 128n);\n}\n\nexport function selfFundedExecutor(deps: SelfFundedDeps): WalletExecutor {\n return {\n async execute({ userAddress, privateKeyHex, calls }): Promise<ExecutedTransaction> {\n const account = accountFor(deps.provider(), userAddress, privateKeyHex);\n const { transaction_hash } = await account.execute(calls);\n return { transactionHash: transaction_hash };\n },\n };\n}\n\nexport interface SponsoredDeps extends SelfFundedDeps {\n proxyUrl: string;\n consent: SelfFundConsent;\n fetchImpl?: typeof fetch;\n fallback?: WalletExecutor;\n}\n\nexport function sponsoredExecutor(deps: SponsoredDeps): WalletExecutor {\n const fallback = deps.fallback ?? selfFundedExecutor(deps);\n return {\n async execute(input): Promise<ExecutedTransaction> {\n const { userAddress, privateKeyHex, calls } = input;\n const result = await executeSponsored(\n { proxyUrl: deps.proxyUrl, fetchImpl: deps.fetchImpl },\n {\n address: userAddress,\n signTypedData: async (data) =>\n signWithPrivateKey(privateKeyHex, starknetTypedData.getMessageHash(data, userAddress)),\n },\n calls,\n );\n if (result.status === \"sponsored\") return { transactionHash: result.transactionHash };\n\n const consented = await deps.consent.request({ address: userAddress, calls });\n if (!consented) throw new SponsoredCallRejectedError(result.reason);\n return fallback.execute(input);\n },\n };\n}\n","import { Account, stark, typedData as starknetTypedData, type ProviderInterface } from \"starknet\";\nimport { getCoordinates } from \"../chains.js\";\nimport { signWithPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\nimport { ownerConstructorCalldata } from \"../starknet/media-wallet/account.js\";\nimport { requestSiwsToken } from \"../starknet/siws/client.js\";\nimport { isDeployed } from \"./addresses.js\";\nimport type { ExecutedTransaction, SealedOwner } from \"./types.js\";\n\nexport type DeploymentStep = \"creating-passkey\" | \"deploying\" | \"signing-in\";\n\nexport interface DeploymentResult {\n sealed: SealedOwner;\n siwsToken: string;\n}\n\nasync function describeFailure(res: Response, fallback: string): Promise<never> {\n const body = (await res.json().catch(() => null)) as { error?: string } | null;\n throw new Error(body?.error || fallback);\n}\n\nexport async function deploySponsored(input: {\n proxyUrl: string;\n provider: ProviderInterface;\n ownerAddress: string;\n ownerPubKey: string;\n privateKeyHex: string;\n salt?: string;\n fetchImpl?: typeof fetch;\n}): Promise<ExecutedTransaction> {\n const doFetch = input.fetchImpl ?? fetch;\n const base = input.proxyUrl.replace(/\\/$/, \"\");\n\n const buildRes = await doFetch(`${base}/build`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n ownerPubkey: input.ownerPubKey,\n ownerAddress: input.ownerAddress,\n salt: input.salt ?? \"0x0\",\n }),\n });\n if (!buildRes.ok) {\n await describeFailure(buildRes, \"We couldn't prepare your wallet deployment. Please try again.\");\n }\n const { typedData, deployment, calls } = (await buildRes.json()) as {\n typedData: object;\n deployment: object;\n calls: object[];\n };\n\n const account = new Account({\n provider: input.provider,\n address: input.ownerAddress,\n signer: input.privateKeyHex,\n cairoVersion: \"1\",\n });\n const signature = stark.signatureToHexArray(await account.signMessage(typedData as never));\n\n const executeRes = await doFetch(`${base}/execute`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ ownerAddress: input.ownerAddress, typedData, signature, deployment, calls }),\n });\n if (!executeRes.ok) {\n await describeFailure(executeRes, \"We couldn't complete your wallet deployment. Please try again.\");\n }\n const { transactionHash } = (await executeRes.json()) as { transactionHash: string };\n return { transactionHash };\n}\n\nexport async function deploySelfFunded(input: {\n provider: ProviderInterface;\n ownerAddress: string;\n ownerPubKey: string;\n privateKeyHex: string;\n}): Promise<ExecutedTransaction> {\n const classHash = getCoordinates(\"STARKNET\").mediaWalletClassHash;\n if (!classHash) throw new Error(\"Media Wallet class hash is not configured\");\n const account = new Account({\n provider: input.provider,\n address: input.ownerAddress,\n signer: input.privateKeyHex,\n cairoVersion: \"1\",\n });\n const { transaction_hash } = await account.deployAccount({\n classHash,\n constructorCalldata: ownerConstructorCalldata(input.ownerPubKey),\n addressSalt: 0,\n contractAddress: input.ownerAddress,\n });\n return { transactionHash: transaction_hash };\n}\n\nexport async function waitUntilDeployed(\n provider: ProviderInterface,\n address: string,\n timeoutMs = 90_000,\n sleep: (ms: number) => Promise<void> = (ms) => new Promise((resolve) => setTimeout(resolve, ms)),\n): Promise<void> {\n const deadline = Date.now() + timeoutMs;\n let wait = 1_000;\n for (;;) {\n if (await isDeployed(provider, address).catch(() => false)) return;\n if (Date.now() >= deadline) {\n throw new Error(\n \"Your wallet was submitted but has not appeared on Starknet yet. Please try again in a moment.\",\n );\n }\n await sleep(wait);\n wait = Math.min(Math.round(wait * 1.5), 5_000);\n }\n}\n\nexport interface DeploymentDeps {\n store: { load(): SealedOwner | null; save(sealed: SealedOwner): void; notifyChange(): void };\n passkey: {\n createOwnerKey(): Promise<{ sealed: SealedOwner; privateKeyHex: string }>;\n unlockOwnerKey(sealed: SealedOwner): Promise<string>;\n };\n provider: () => ProviderInterface;\n backendUrl: string;\n deployProxyUrl?: string;\n fetchImpl?: typeof fetch;\n deploySponsoredImpl?: typeof deploySponsored;\n deploySelfFundedImpl?: typeof deploySelfFunded;\n requestSiwsTokenImpl?: typeof requestSiwsToken;\n waitUntilDeployedImpl?: typeof waitUntilDeployed;\n isDeployedImpl?: typeof isDeployed;\n}\n\nasync function deployWallet(\n deps: DeploymentDeps,\n wallet: { ownerAddress: string; ownerPubKey: string; privateKeyHex: string },\n): Promise<void> {\n const sponsored = deps.deploySponsoredImpl ?? deploySponsored;\n const selfFunded = deps.deploySelfFundedImpl ?? deploySelfFunded;\n\n if (deps.deployProxyUrl) {\n try {\n await sponsored({\n proxyUrl: deps.deployProxyUrl,\n provider: deps.provider(),\n fetchImpl: deps.fetchImpl,\n ...wallet,\n });\n } catch (sponsoredErr) {\n try {\n await selfFunded({ provider: deps.provider(), ...wallet });\n } catch (selfFundedErr) {\n const sponsored = sponsoredErr instanceof Error ? sponsoredErr.message : String(sponsoredErr);\n const selfFunded = selfFundedErr instanceof Error ? selfFundedErr.message : String(selfFundedErr);\n throw new Error(`Sponsored deploy failed: ${sponsored}. Self-funded fallback failed: ${selfFunded}`);\n }\n }\n } else {\n await selfFunded({ provider: deps.provider(), ...wallet });\n }\n\n await (deps.waitUntilDeployedImpl ?? waitUntilDeployed)(deps.provider(), wallet.ownerAddress);\n}\n\nexport async function completeDeployment(\n deps: DeploymentDeps,\n onStep: (step: DeploymentStep) => void,\n options: { forceNew?: boolean } = {},\n): Promise<DeploymentResult> {\n let sealed = options.forceNew ? null : deps.store.load();\n if (sealed && (await (deps.isDeployedImpl ?? isDeployed)(deps.provider(), sealed.address).catch(() => false))) {\n sealed = null;\n }\n let privateKeyHex: string;\n\n if (!sealed) {\n onStep(\"creating-passkey\");\n const created = await deps.passkey.createOwnerKey();\n sealed = created.sealed;\n privateKeyHex = created.privateKeyHex;\n deps.store.save(sealed);\n } else {\n privateKeyHex = await deps.passkey.unlockOwnerKey(sealed);\n }\n\n onStep(\"deploying\");\n await deployWallet(deps, { ownerAddress: sealed.address, ownerPubKey: sealed.ownerPubKey, privateKeyHex });\n\n onStep(\"signing-in\");\n const address = sealed.address;\n const siwsToken = await (deps.requestSiwsTokenImpl ?? requestSiwsToken)({\n backendUrl: deps.backendUrl,\n walletAddress: address,\n signer: {\n signMessage: async (td) =>\n signWithPrivateKey(privateKeyHex, starknetTypedData.getMessageHash(td as never, address)),\n },\n });\n\n deps.store.notifyChange();\n return { sealed, siwsToken };\n}\n\nexport interface DeploymentCoordinator {\n run(onStep: (step: DeploymentStep) => void, options?: { forceNew?: boolean }): Promise<DeploymentResult>;\n isDeploying(): boolean;\n}\n\nexport function createDeploymentCoordinator(\n execute: (onStep: (step: DeploymentStep) => void, options: { forceNew?: boolean }) => Promise<DeploymentResult>,\n): DeploymentCoordinator {\n let inFlight: Promise<DeploymentResult> | null = null;\n let currentStep: DeploymentStep | null = null;\n const listeners = new Set<(step: DeploymentStep) => void>();\n\n return {\n run(onStep, options = {}) {\n if (inFlight) {\n if (options.forceNew) {\n return Promise.reject(new Error(\"A wallet setup is already in progress.\"));\n }\n if (currentStep) onStep(currentStep);\n listeners.add(onStep);\n return inFlight.finally(() => listeners.delete(onStep));\n }\n listeners.add(onStep);\n let started: Promise<DeploymentResult>;\n try {\n started = execute((step) => {\n currentStep = step;\n for (const listener of listeners) listener(step);\n }, options);\n } catch (err) {\n listeners.clear();\n return Promise.reject(err);\n }\n const run = started.finally(() => {\n inFlight = null;\n currentStep = null;\n listeners.clear();\n });\n inFlight = run;\n return run;\n },\n isDeploying: () => inFlight !== null,\n };\n}\n","import { typedData as starknetTypedData, type Call, type ProviderInterface, type TypedData } from \"starknet\";\nimport { signWithPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\nimport {\n buildCancelEscapeCall,\n buildCompleteEscapeOwnerCall,\n buildSetFirstGuardianCall,\n buildTriggerEscapeOwnerCall,\n getEscape,\n getEscapeSecurityPeriod,\n getGuardians,\n getOwners,\n type EscapeInfo,\n type GuardianInfo,\n} from \"../starknet/media-wallet/guardian.js\";\nimport {\n buildAddOwnerCall,\n buildRemoveOwnerByGuidCall,\n computeOwnerGuid,\n} from \"../starknet/media-wallet/owners.js\";\nimport { normalizeWalletAddress } from \"./addresses.js\";\nimport {\n completeDeployment,\n createDeploymentCoordinator,\n type DeploymentDeps,\n type DeploymentResult,\n type DeploymentStep,\n} from \"./deployment.js\";\nimport type { OwnerStore } from \"./store.js\";\nimport type { PasskeyOwner } from \"./passkey.js\";\nimport type { ExecutedTransaction, SealedOwner, WalletExecutor } from \"./types.js\";\n\nexport interface DeviceEntry {\n guid: string;\n type: GuardianInfo[\"type\"];\n isThisDevice: boolean;\n}\n\nexport function describeDevices(owners: GuardianInfo[], thisDevicePubkey: string): DeviceEntry[] {\n const mine = computeOwnerGuid(thisDevicePubkey);\n return owners.map((owner) => ({\n guid: owner.guid,\n type: owner.type,\n isThisDevice: BigInt(owner.guid) === BigInt(mine),\n }));\n}\n\nexport function canRemoveDevice(devices: DeviceEntry[], guid: string): boolean {\n if (devices.length <= 1) return false;\n return devices.some((device) => BigInt(device.guid) === BigInt(guid));\n}\n\nexport interface MediaWalletConfig {\n store: OwnerStore;\n passkey: PasskeyOwner;\n executor: WalletExecutor;\n provider: () => ProviderInterface;\n unlockTtlMs?: number;\n backendUrl?: string;\n deployProxyUrl?: string;\n fetchImpl?: typeof fetch;\n}\n\nexport interface MediaWallet {\n store: OwnerStore;\n passkey: PasskeyOwner;\n lock(address: string): void;\n signerFor(sealed: SealedOwner): {\n address: string;\n signTypedData(data: TypedData): Promise<string[]>;\n execute(calls: Call[]): Promise<{ txHash: string }>;\n };\n run(sealed: SealedOwner, calls: Call[], userAddress?: string): Promise<ExecutedTransaction>;\n getGuardians(address: string): Promise<GuardianInfo[]>;\n getEscape(address: string): Promise<EscapeInfo>;\n getEscapeSecurityPeriod(address: string): Promise<number>;\n setFirstGuardian(sealed: SealedOwner, guardianPubkey: string): Promise<string>;\n triggerEscapeOwner(guardianSealed: SealedOwner, targetAddress: string, newOwnerPubkey: string): Promise<string>;\n completeEscapeOwner(guardianSealed: SealedOwner, targetAddress: string): Promise<string>;\n cancelEscape(sealed: SealedOwner): Promise<string>;\n getOwners(address: string): Promise<GuardianInfo[]>;\n isOwnerOf(accountAddress: string, devicePubkey: string): Promise<boolean>;\n addDevice(sealed: SealedOwner, devicePubkey: string): Promise<string>;\n removeDevice(sealed: SealedOwner, ownerGuid: string): Promise<string>;\n completeDeployment(\n onStep: (step: DeploymentStep) => void,\n options?: { forceNew?: boolean },\n ): Promise<DeploymentResult>;\n isDeploying(): boolean;\n}\n\nexport function createMediaWallet(config: MediaWalletConfig): MediaWallet {\n const ttl = config.unlockTtlMs ?? 20_000;\n const deployments = createDeploymentCoordinator((onStep, options) => {\n if (!config.backendUrl) throw new Error(\"This wallet has no backend url configured for sign-in\");\n const deps: DeploymentDeps = {\n store: config.store,\n passkey: config.passkey,\n provider: config.provider,\n backendUrl: config.backendUrl,\n deployProxyUrl: config.deployProxyUrl,\n fetchImpl: config.fetchImpl,\n };\n return completeDeployment(deps, onStep, options);\n });\n const unlockCache = new Map<string, { promise: Promise<string>; timer: ReturnType<typeof setTimeout> }>();\n\n const lock = (address: string): void => {\n const entry = unlockCache.get(address);\n if (!entry) return;\n clearTimeout(entry.timer);\n unlockCache.delete(address);\n };\n\n const unlockOnce = (sealed: SealedOwner): Promise<string> => {\n const existing = unlockCache.get(sealed.address);\n if (existing) return existing.promise;\n const promise = config.passkey.unlockOwnerKey(sealed).catch((err) => {\n lock(sealed.address);\n throw err;\n });\n const timer = setTimeout(() => lock(sealed.address), ttl);\n unlockCache.set(sealed.address, { promise, timer });\n return promise;\n };\n\n const run = async (sealed: SealedOwner, calls: Call[], userAddress?: string): Promise<ExecutedTransaction> => {\n const privateKeyHex = await unlockOnce(sealed);\n return config.executor.execute({\n userAddress: userAddress ?? sealed.address,\n privateKeyHex,\n calls,\n });\n };\n\n return {\n store: config.store,\n passkey: config.passkey,\n lock,\n\n signerFor(sealed) {\n return {\n address: sealed.address,\n signTypedData: async (data) => {\n const privateKeyHex = await unlockOnce(sealed);\n return signWithPrivateKey(privateKeyHex, starknetTypedData.getMessageHash(data, sealed.address));\n },\n execute: async (calls) => {\n const { transactionHash } = await run(sealed, calls);\n return { txHash: transactionHash };\n },\n };\n },\n\n run,\n\n getGuardians: (address) => getGuardians(config.provider(), address),\n getEscape: (address) => getEscape(config.provider(), address),\n getEscapeSecurityPeriod: (address) => getEscapeSecurityPeriod(config.provider(), address),\n getOwners: (address) => getOwners(config.provider(), address),\n\n async isOwnerOf(accountAddress, devicePubkey) {\n const owners = await getOwners(config.provider(), accountAddress);\n const guid = BigInt(computeOwnerGuid(devicePubkey));\n return owners.some((owner) => BigInt(owner.guid) === guid);\n },\n\n async setFirstGuardian(sealed, guardianPubkey) {\n const { transactionHash } = await run(sealed, [buildSetFirstGuardianCall(sealed.address, guardianPubkey)]);\n return transactionHash;\n },\n\n async triggerEscapeOwner(guardianSealed, targetAddress, newOwnerPubkey) {\n const { transactionHash } = await run(\n guardianSealed,\n [buildTriggerEscapeOwnerCall(targetAddress, newOwnerPubkey)],\n normalizeWalletAddress(targetAddress),\n );\n return transactionHash;\n },\n\n async completeEscapeOwner(guardianSealed, targetAddress) {\n const { transactionHash } = await run(\n guardianSealed,\n [buildCompleteEscapeOwnerCall(targetAddress)],\n normalizeWalletAddress(targetAddress),\n );\n return transactionHash;\n },\n\n async cancelEscape(sealed) {\n const { transactionHash } = await run(sealed, [buildCancelEscapeCall(sealed.address)]);\n return transactionHash;\n },\n\n async addDevice(sealed, devicePubkey) {\n const { transactionHash } = await run(sealed, [buildAddOwnerCall(sealed.address, devicePubkey)]);\n return transactionHash;\n },\n\n async removeDevice(sealed, ownerGuid) {\n const { transactionHash } = await run(sealed, [buildRemoveOwnerByGuidCall(sealed.address, ownerGuid)]);\n return transactionHash;\n },\n\n completeDeployment: (onStep, options) => deployments.run(onStep, options),\n isDeploying: () => deployments.isDeploying(),\n };\n}\n","import type { ApiClient } from \"../api/client.js\";\nimport type { CreatedOwner } from \"../wallet/passkey.js\";\nimport type { SealedOwner } from \"../wallet/types.js\";\nimport { normalizeWalletAddress } from \"../wallet/addresses.js\";\n\nexport interface SessionWallet {\n walletAddress: string;\n needsKeySetup: boolean;\n}\n\nexport async function adoptSessionWallet(\n api: Pick<ApiClient, \"getSessionWallet\">,\n saveAddress: (walletAddress: string) => void,\n): Promise<SessionWallet | null> {\n const wallet = await api.getSessionWallet();\n if (wallet) saveAddress(wallet.walletAddress);\n return wallet;\n}\n\nexport interface SessionWalletClaimDeps {\n createOwnerKey(): Promise<CreatedOwner>;\n loadOwner(): SealedOwner | null;\n saveOwner(sealed: SealedOwner): void;\n removeOwner(sealed: SealedOwner, ownerGuid: string): Promise<unknown>;\n}\n\nexport async function claimSessionWallet(\n api: Pick<ApiClient, \"setupWalletKey\">,\n walletAddress: string,\n deps: SessionWalletClaimDeps,\n): Promise<void> {\n const saved = deps.loadOwner();\n const resuming = saved !== null && normalizeWalletAddress(saved.address) === normalizeWalletAddress(walletAddress);\n const sealed = resuming ? saved : { ...(await deps.createOwnerKey()).sealed, address: walletAddress };\n if (!resuming) deps.saveOwner(sealed);\n\n const { removeOwnerGuid } = await api.setupWalletKey({ newOwnerPubkey: sealed.ownerPubKey });\n if (removeOwnerGuid) await deps.removeOwner(sealed, removeOwnerGuid);\n}\n"]}
1
+ {"version":3,"sources":["../../src/starknet/marketplace/errors.ts","../../src/starknet/marketplace/utils.ts","../../src/starknet/abis/ipMarketplace.ts","../../src/starknet/abis/popCollection.ts","../../src/starknet/abis/popFactory.ts","../../src/starknet/abis/dropCollection.ts","../../src/starknet/abis/dropFactory.ts","../../src/starknet/abis/medialane1155.ts","../../src/starknet/abis/ipCollection1155Factory.ts","../../src/starknet/abis/ipCollection1155.ts","../../src/starknet/abis/ipCollection.ts","../../src/starknet/abis/ipNft.ts","../../src/starknet/abis/creatorCoinFactory.ts","../../src/starknet/abis/ipTicketCollection.ts","../../src/starknet/abis/ipTicketCollectionFactory.ts","../../src/starknet/abis/ipClubFactory.ts","../../src/starknet/abis/ipClubCollection.ts","../../src/starknet/abis/ipSponsorship.ts","../../src/starknet/abis/ipGenesis.ts","../../src/starknet/pop-allowlist.ts","../../src/starknet/pop-claim.ts","../../src/starknet/services/pop.ts","../../src/starknet/fee/build-fee-call.ts","../../src/starknet/services/drop.ts","../../src/starknet/services/erc1155collection.ts","../../src/starknet/services/coinLaunchMath.ts","../../src/starknet/services/creatorCoin.ts","../../src/starknet/services/ticket.ts","../../src/starknet/services/club.ts","../../src/starknet/services/sponsorship.ts","../../src/starknet/client.ts","../../src/starknet/marketplace/orders.ts","../../src/starknet/marketplace1155/orders.ts","../../src/starknet/marketplace/signing.ts","../../src/starknet/marketplace/build.ts","../../src/starknet/marketplace1155/build.ts","../../src/starknet/venue.ts","../../src/starknet/siws/client.ts","../../src/starknet/funding/chain-transfer.ts","../../src/starknet/services/executeIntent.ts","../../src/starknet/services/receipts.ts","../../src/starknet/services/sponsoredExecutor.ts","../../src/starknet/bytearray.ts","../../src/starknet/media-wallet/derive.ts","../../src/starknet/media-wallet/owners.ts","../../src/starknet/media-wallet/deploy.ts","../../src/starknet/media-wallet/guardian.ts","../../src/wallet/store.ts","../../src/wallet/pairing.ts","../../src/wallet/recovery-key.ts","../../src/wallet/guardian-status.ts","../../src/wallet/addresses.ts","../../src/wallet/self-fund-consent.ts","../../src/wallet/executors.ts","../../src/wallet/deployment.ts","../../src/wallet/client.ts","../../src/session/session-wallet.ts"],"names":["cairo","hash","RpcProvider","CairoOption","CairoOptionVariant","_contractCache","contractFor","registerPayload","shortString","num","u256","starknetTypedData","Account","sponsored","selfFunded"],"mappings":"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","file":"index.js","sourcesContent":["import type { MedialaneErrorCode } from \"../../types/errors.js\";\n\nexport class MedialaneError extends Error {\n constructor(\n message: string,\n public readonly code: MedialaneErrorCode = \"UNKNOWN\",\n public readonly cause?: unknown\n ) {\n super(message);\n this.name = \"MedialaneError\";\n }\n}\n","import { Contract, RpcProvider, cairo, constants, num, type Abi } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { SUPPORTED_TOKENS } from \"../../constants.js\";\nimport { MedialaneError } from \"./errors.js\";\nimport { createFailoverFetch } from \"../../utils/rpc.js\";\n\nexport const START_TIME_BUFFER_SECS = 30;\n\nexport function generateSalt(): string {\n const bytes = new Uint8Array(31);\n crypto.getRandomValues(bytes);\n const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n return num.toHex(BigInt(\"0x\" + hex));\n}\n\nexport async function resolveRoyaltyMaxBps(\n provider: RpcProvider,\n nft: string,\n tokenId: string,\n override?: string,\n): Promise<string> {\n if (override !== undefined) return override;\n try {\n const id = cairo.uint256(tokenId);\n const res = await provider.callContract({\n contractAddress: nft,\n entrypoint: \"royalty_info\",\n calldata: [id.low.toString(), id.high.toString(), \"10000\", \"0\"],\n });\n\n return BigInt(res[1] ?? \"0\").toString();\n } catch {\n return \"0\";\n }\n}\n\nexport function toSignatureArray(sig: unknown): string[] {\n if (Array.isArray(sig)) return sig as string[];\n const s = sig as { r: bigint | string; s: bigint | string };\n return [s.r.toString(), s.s.toString()];\n}\n\nexport function newContract(abi: Abi, address: string, providerOrAccount?: unknown): Contract {\n const C = Contract as unknown as { length: number };\n return C.length === 1\n ? new (Contract as unknown as new (opts: unknown) => Contract)({ abi, address, providerOrAccount })\n : new (Contract as unknown as new (a: Abi, addr: string, p?: unknown) => Contract)(\n abi,\n address,\n providerOrAccount,\n );\n}\n\nexport function getChainId(config: ResolvedConfig): constants.StarknetChainId {\n\n if (config.chain !== \"STARKNET\") {\n throw new Error(`SNIP-12 signing is Starknet-only; got chain \"${config.chain}\"`);\n }\n return constants.StarknetChainId.SN_MAIN;\n}\n\nexport function resolveToken(currency: string) {\n const token = SUPPORTED_TOKENS.find(\n (t) => t.symbol === currency.toUpperCase() || t.address.toLowerCase() === currency.toLowerCase()\n );\n if (!token) throw new MedialaneError(`Unsupported currency: ${currency}`, \"INVALID_PARAMS\");\n return token;\n}\n\nconst _providerCache = new WeakMap<ResolvedConfig, RpcProvider>();\n\nexport function getProvider(config: ResolvedConfig): RpcProvider {\n let p = _providerCache.get(config);\n if (!p) {\n\n const urls = [config.rpcUrl];\n p = new RpcProvider({ nodeUrl: urls[0], baseFetch: createFailoverFetch(urls) });\n _providerCache.set(config, p);\n }\n return p;\n}\n","\nexport const IPMarketplaceABI = [\n {\n \"type\": \"impl\",\n \"name\": \"Medialane721Impl\",\n \"interface_name\": \"medialane_marketplace_erc721::core::interface::IMedialane\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OfferItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::ConsiderationItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderParameters\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"marketplace\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc721::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc721::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"salt\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::Order\",\n \"members\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderParameters\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderCancellation\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::CancelRequest\",\n \"members\": [\n {\n \"name\": \"cancelation\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderStatus\",\n \"variants\": [\n {\n \"name\": \"None\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Created\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Filled\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Cancelled\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc721::core::types::OrderDetails\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc721::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc721::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"order_status\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderStatus\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"medialane_marketplace_erc721::core::interface::IMedialane\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"register_order\",\n \"inputs\": [\n {\n \"name\": \"order\",\n \"type\": \"medialane_marketplace_erc721::core::types::Order\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"fulfill_order\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"cancel_order\",\n \"inputs\": [\n {\n \"name\": \"cancel_request\",\n \"type\": \"medialane_marketplace_erc721::core::types::CancelRequest\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"increment_counter\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_details\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"medialane_marketplace_erc721::core::types::OrderDetails\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_hash\",\n \"inputs\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderParameters\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_cancellation_hash\",\n \"inputs\": [\n {\n \"name\": \"cancellation\",\n \"type\": \"medialane_marketplace_erc721::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_counter\",\n \"inputs\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_native_token_address\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"native_token_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::OrderCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::OrderFulfilled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"fulfiller\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sale_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::OrderCancelled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::events::CounterIncremented\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_counter\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc721::core::medialane::Medialane721::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OrderCreated\",\n \"type\": \"medialane_marketplace_erc721::core::events::OrderCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderFulfilled\",\n \"type\": \"medialane_marketplace_erc721::core::events::OrderFulfilled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderCancelled\",\n \"type\": \"medialane_marketplace_erc721::core::events::OrderCancelled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"CounterIncremented\",\n \"type\": \"medialane_marketplace_erc721::core::events::CounterIncremented\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","// Generated by scripts/gen-starknet-abi.ts from pop_protocol_POPCollection.contract_class.json. Do not edit by hand.\nexport const POPCollectionABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_interfaces::token::erc721::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_interfaces::token::erc721::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataImpl\",\n \"interface_name\": \"openzeppelin_interfaces::token::erc721::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_interfaces::token::erc721::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC5192Impl\",\n \"interface_name\": \"pop_protocol::interfaces::IERC5192\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"pop_protocol::interfaces::IERC5192\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"locked\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"POPCollectionImpl\",\n \"interface_name\": \"pop_protocol::interfaces::IPOPCollection\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"pop_protocol::interfaces::IPOPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"set_allowlist_root\",\n \"inputs\": [\n {\n \"name\": \"root\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claim\",\n \"inputs\": [\n {\n \"name\": \"proof\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"issue\",\n \"inputs\": [\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"burn\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"organizer\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"allowlist_root\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claim_end_time\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"has_claimed\",\n \"inputs\": [\n {\n \"name\": \"address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"total_issued\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_interfaces::introspection::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_interfaces::introspection::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"organizer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"claim_end_time\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::AllowlistRootSet\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"root\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::TokenURISet\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::Locked\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::pop_collection::POPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"AllowlistRootSet\",\n \"type\": \"pop_protocol::events::AllowlistRootSet\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenURISet\",\n \"type\": \"pop_protocol::events::TokenURISet\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Locked\",\n \"type\": \"pop_protocol::events::Locked\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","// Generated by scripts/gen-starknet-abi.ts from pop_protocol_POPFactory.contract_class.json. Do not edit by hand.\nexport const POPFactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"POPFactoryImpl\",\n \"interface_name\": \"pop_protocol::interfaces::IPOPFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"pop_protocol::interfaces::IPOPFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"claim_end_time\",\n \"type\": \"core::integer::u64\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_address\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_collection_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::events::CollectionCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"organizer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"claim_end_time\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"pop_protocol::pop_factory::POPFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"CollectionCreated\",\n \"type\": \"pop_protocol::events::CollectionCreated\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const DropCollectionABI = [\n {\n type: \"struct\",\n name: \"core::byte_array::ByteArray\",\n members: [\n { name: \"data\", type: \"core::array::Array::<core::felt252>\" },\n { name: \"pending_word\", type: \"core::felt252\" },\n { name: \"pending_word_len\", type: \"core::integer::u32\" },\n ],\n },\n {\n type: \"struct\",\n name: \"collection_drop::types::ClaimConditions\",\n members: [\n { name: \"start_time\", type: \"core::integer::u64\" },\n { name: \"end_time\", type: \"core::integer::u64\" },\n { name: \"price\", type: \"core::integer::u256\" },\n { name: \"payment_token\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"max_quantity_per_wallet\", type: \"core::integer::u256\" },\n ],\n },\n {\n type: \"function\",\n name: \"claim\",\n inputs: [{ name: \"quantity\", type: \"core::integer::u256\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"admin_mint\",\n inputs: [\n { name: \"recipient\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"quantity\", type: \"core::integer::u256\" },\n { name: \"custom_uri\", type: \"core::byte_array::ByteArray\" },\n ],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"set_claim_conditions\",\n inputs: [{ name: \"conditions\", type: \"collection_drop::types::ClaimConditions\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"get_claim_conditions\",\n inputs: [],\n outputs: [{ type: \"collection_drop::types::ClaimConditions\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"set_allowlist_enabled\",\n inputs: [{ name: \"enabled\", type: \"core::bool\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"is_allowlist_enabled\",\n inputs: [],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"add_to_allowlist\",\n inputs: [{ name: \"address\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"batch_add_to_allowlist\",\n inputs: [{ name: \"addresses\", type: \"core::array::Array::<core::starknet::contract_address::ContractAddress>\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"remove_from_allowlist\",\n inputs: [{ name: \"address\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"is_allowlisted\",\n inputs: [{ name: \"address\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"set_base_uri\",\n inputs: [{ name: \"new_uri\", type: \"core::byte_array::ByteArray\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"set_token_uri\",\n inputs: [\n { name: \"token_id\", type: \"core::integer::u256\" },\n { name: \"uri\", type: \"core::byte_array::ByteArray\" },\n ],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"set_paused\",\n inputs: [{ name: \"paused\", type: \"core::bool\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"withdraw_payments\",\n inputs: [],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"get_drop_id\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"get_max_supply\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"total_minted\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"remaining_supply\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"minted_by_wallet\",\n inputs: [{ name: \"wallet\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"is_paused\",\n inputs: [],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n] as const;\n\n","export const DropFactoryABI = [\n {\n type: \"struct\",\n name: \"core::byte_array::ByteArray\",\n members: [\n { name: \"data\", type: \"core::array::Array::<core::felt252>\" },\n { name: \"pending_word\", type: \"core::felt252\" },\n { name: \"pending_word_len\", type: \"core::integer::u32\" },\n ],\n },\n {\n type: \"struct\",\n name: \"collection_drop::types::ClaimConditions\",\n members: [\n { name: \"start_time\", type: \"core::integer::u64\" },\n { name: \"end_time\", type: \"core::integer::u64\" },\n { name: \"price\", type: \"core::integer::u256\" },\n { name: \"payment_token\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"max_quantity_per_wallet\", type: \"core::integer::u256\" },\n ],\n },\n {\n type: \"function\",\n name: \"register_organizer\",\n inputs: [\n { name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" },\n { name: \"name\", type: \"core::byte_array::ByteArray\" },\n ],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"revoke_organizer\",\n inputs: [{ name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"is_active_organizer\",\n inputs: [{ name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::bool\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"create_drop\",\n inputs: [\n { name: \"name\", type: \"core::byte_array::ByteArray\" },\n { name: \"symbol\", type: \"core::byte_array::ByteArray\" },\n { name: \"base_uri\", type: \"core::byte_array::ByteArray\" },\n { name: \"max_supply\", type: \"core::integer::u256\" },\n { name: \"initial_conditions\", type: \"collection_drop::types::ClaimConditions\" },\n ],\n outputs: [{ type: \"core::starknet::contract_address::ContractAddress\" }],\n state_mutability: \"external\",\n },\n {\n type: \"function\",\n name: \"get_drop_address\",\n inputs: [{ name: \"drop_id\", type: \"core::integer::u256\" }],\n outputs: [{ type: \"core::starknet::contract_address::ContractAddress\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"get_last_drop_id\",\n inputs: [],\n outputs: [{ type: \"core::integer::u256\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"get_organizer_drop_count\",\n inputs: [{ name: \"organizer\", type: \"core::starknet::contract_address::ContractAddress\" }],\n outputs: [{ type: \"core::integer::u32\" }],\n state_mutability: \"view\",\n },\n {\n type: \"function\",\n name: \"set_drop_collection_class_hash\",\n inputs: [{ name: \"new_class_hash\", type: \"core::starknet::class_hash::ClassHash\" }],\n outputs: [],\n state_mutability: \"external\",\n },\n] as const;\n\n","\nexport const Medialane1155ABI = [\n {\n \"type\": \"impl\",\n \"name\": \"Medialane1155Impl\",\n \"interface_name\": \"medialane_marketplace_erc1155::core::interface::IMedialane1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OfferItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::ConsiderationItem\",\n \"members\": [\n {\n \"name\": \"item_type\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"identifier_or_criteria\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderParameters\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"marketplace\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc1155::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"salt\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::Order\",\n \"members\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderParameters\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderCancellation\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::CancelRequest\",\n \"members\": [\n {\n \"name\": \"cancelation\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderStatus\",\n \"variants\": [\n {\n \"name\": \"None\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Created\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Filled\",\n \"type\": \"()\"\n },\n {\n \"name\": \"Cancelled\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"medialane_marketplace_erc1155::core::types::OrderDetails\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"offer\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OfferItem\"\n },\n {\n \"name\": \"consideration\",\n \"type\": \"medialane_marketplace_erc1155::core::types::ConsiderationItem\"\n },\n {\n \"name\": \"royalty_max_bps\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"order_status\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderStatus\"\n },\n {\n \"name\": \"remaining_amount\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"counter\",\n \"type\": \"core::felt252\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"medialane_marketplace_erc1155::core::interface::IMedialane1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"register_order\",\n \"inputs\": [\n {\n \"name\": \"order\",\n \"type\": \"medialane_marketplace_erc1155::core::types::Order\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"fulfill_order\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"quantity\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"cancel_order\",\n \"inputs\": [\n {\n \"name\": \"cancel_request\",\n \"type\": \"medialane_marketplace_erc1155::core::types::CancelRequest\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"increment_counter\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_details\",\n \"inputs\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderDetails\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_order_hash\",\n \"inputs\": [\n {\n \"name\": \"parameters\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderParameters\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_cancellation_hash\",\n \"inputs\": [\n {\n \"name\": \"cancellation\",\n \"type\": \"medialane_marketplace_erc1155::core::types::OrderCancellation\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_counter\",\n \"inputs\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::felt252\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_native_token_address\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"native_token_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::OrderCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::OrderFulfilled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"fulfiller\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"quantity\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"remaining_amount\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"sale_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::OrderCancelled\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"order_hash\",\n \"type\": \"core::felt252\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::events::CounterIncremented\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offerer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_counter\",\n \"type\": \"core::felt252\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"medialane_marketplace_erc1155::core::medialane::Medialane1155::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OrderCreated\",\n \"type\": \"medialane_marketplace_erc1155::core::events::OrderCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderFulfilled\",\n \"type\": \"medialane_marketplace_erc1155::core::events::OrderFulfilled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OrderCancelled\",\n \"type\": \"medialane_marketplace_erc1155::core::events::OrderCancelled\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"CounterIncremented\",\n \"type\": \"medialane_marketplace_erc1155::core::events::CounterIncremented\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPCollection1155FactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionFactoryImpl\",\n \"interface_name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollectionFactory::IIPCollectionFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollectionFactory::IIPCollectionFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"deploy_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollectionFactory::IPCollectionFactory::CollectionDeployed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollectionFactory::IPCollectionFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"CollectionDeployed\",\n \"type\": \"ip_programmable_erc1155_collections::IPCollectionFactory::IPCollectionFactory::CollectionDeployed\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPCollection1155ABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155MetadataURIImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionImpl\",\n \"interface_name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollection::IIPCollection\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_programmable_erc1155_collections::types::TokenData\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"original_creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_programmable_erc1155_collections::interfaces::IIPCollection::IIPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint_edition\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_mint_edition\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"token_uris\",\n \"type\": \"core::array::Array::<core::byte_array::ByteArray>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"add_supply\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_creator\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_creator\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_registered_at\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_data\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_programmable_erc1155_collections::types::TokenData\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"total_editions\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_exists\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"OwnableMixinImpl\",\n \"interface_name\": \"openzeppelin_access::ownable::interface::OwnableABI\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_access::ownable::interface::OwnableABI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_ownership\",\n \"inputs\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounce_ownership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155Impl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balance_of_batch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_batch_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155CamelImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balanceOfBatch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeBatchTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981Impl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981InfoImpl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"default_royalty\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981AdminOwnableImpl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Admin\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Admin\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"set_default_royalty\",\n \"inputs\": [\n {\n \"name\": \"receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"fee_numerator\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"delete_default_royalty\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"receiver\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"fee_numerator\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"reset_token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OwnershipTransferred\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"value\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"TransferSingle\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TransferBatch\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"URI\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc1155_collections::IPCollection::IPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OwnableEvent\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC1155Event\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC2981Event\",\n \"type\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"IPMinted\",\n \"type\": \"ip_programmable_erc1155_collections::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPCollectionABI =\n[\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionImpl\",\n \"interface_name\": \"ip_collection_erc_721::interfaces::IIPCollection::IIPCollection\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_collection_erc_721::types::Collection\",\n \"members\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"ip_nft\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_collection_erc_721::types::CollectionStats\",\n \"members\": [\n {\n \"name\": \"total_minted\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"total_archived\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"protocol_routed_transfers\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"last_mint_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"last_archive_time\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"last_transfer_time\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_collection_erc_721::types::TokenData\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"original_creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_collection_erc_721::interfaces::IIPCollection::IIPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_mint\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"recipients\",\n \"type\": \"core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_uris\",\n \"type\": \"core::array::Array::<core::byte_array::ByteArray>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::array::Array::<core::integer::u128>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_collection_ownership\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"archive\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_archive\",\n \"inputs\": [\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_token\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"batch_transfer\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Array::<core::integer::u256>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"list_user_tokens_per_collection\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"user\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"list_user_collections\",\n \"inputs\": [\n {\n \"name\": \"user\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_collection_erc_721::types::Collection\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_count\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_valid_collection\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_stats\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_collection_erc_721::types::CollectionStats\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_collection_owner\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_collection_erc_721::types::TokenData\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_valid_token\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_transferable_token\",\n \"inputs\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"ip_nft_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionOwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u128\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMintedBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"owners\",\n \"type\": \"core::array::Array::<core::starknet::contract_address::ContractAddress>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uris\",\n \"type\": \"core::array::Array::<core::byte_array::ByteArray>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchived\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchivedBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferredBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"collection_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPCollection::IPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"CollectionCreated\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"CollectionOwnershipTransferred\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::CollectionOwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenMinted\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMinted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenMintedBatch\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenMintedBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenArchived\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchived\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenArchivedBatch\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenArchivedBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenTransferred\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TokenTransferredBatch\",\n \"type\": \"ip_collection_erc_721::IPCollection::IPCollection::TokenTransferredBatch\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPNftABI =\n[\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Metadata\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataCamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"tokenURI\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPNftImpl\",\n \"interface_name\": \"ip_collection_erc_721::interfaces::IIPNFT::IIPNft\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_collection_erc_721::interfaces::IIPNFT::IIPNft\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u128\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"archive\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_archived\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_registry\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"all_tokens_of_owner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_exists\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_full_token_data\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::byte_array::ByteArray, core::starknet::contract_address::ContractAddress, core::integer::u64)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_creator\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_registered_at\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721CamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ownerOf\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getApproved\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721EnumerableImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"total_supply\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_by_index\",\n \"inputs\": [\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_of_owner_by_index\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981Impl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC2981InfoImpl\",\n \"interface_name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::common::erc2981::interface::IERC2981Info\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"default_royalty\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_royalty\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u128, core::integer::u128)\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"collection_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"registry\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_collection_erc_721::IPNft::IPNft::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC721EnumerableEvent\",\n \"type\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC2981Event\",\n \"type\": \"openzeppelin_token::common::erc2981::erc2981::ERC2981Component::Event\",\n \"kind\": \"flat\"\n }\n ]\n }\n] as const;\n","\n\nexport const CreatorCoinFactoryABI = [{\"type\":\"impl\",\"name\":\"FactoryImpl\",\"interface_name\":\"creator_coin::factory::interface::IFactory\"},{\"type\":\"struct\",\"name\":\"core::integer::u256\",\"members\":[{\"name\":\"low\",\"type\":\"core::integer::u128\"},{\"name\":\"high\",\"type\":\"core::integer::u128\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<core::integer::u256>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<core::integer::u256>\"}]},{\"type\":\"struct\",\"name\":\"creator_coin::factory::LaunchParameters\",\"members\":[{\"name\":\"creator_coin_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"transfer_restriction_delay\",\"type\":\"core::integer::u64\"},{\"name\":\"max_percentage_buy_launch\",\"type\":\"core::integer::u16\"},{\"name\":\"quote_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"initial_holders\",\"type\":\"core::array::Span::<core::starknet::contract_address::ContractAddress>\"},{\"name\":\"initial_holders_amounts\",\"type\":\"core::array::Span::<core::integer::u256>\"}]},{\"type\":\"enum\",\"name\":\"core::bool\",\"variants\":[{\"name\":\"False\",\"type\":\"()\"},{\"name\":\"True\",\"type\":\"()\"}]},{\"type\":\"struct\",\"name\":\"ekubo::types::i129::i129\",\"members\":[{\"name\":\"mag\",\"type\":\"core::integer::u128\"},{\"name\":\"sign\",\"type\":\"core::bool\"}]},{\"type\":\"struct\",\"name\":\"creator_coin::exchanges::ekubo::ekubo_adapter::EkuboPoolParameters\",\"members\":[{\"name\":\"fee\",\"type\":\"core::integer::u128\"},{\"name\":\"tick_spacing\",\"type\":\"core::integer::u128\"},{\"name\":\"starting_price\",\"type\":\"ekubo::types::i129::i129\"},{\"name\":\"bound\",\"type\":\"core::integer::u128\"}]},{\"type\":\"struct\",\"name\":\"ekubo::types::keys::PoolKey\",\"members\":[{\"name\":\"token0\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"token1\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"fee\",\"type\":\"core::integer::u128\"},{\"name\":\"tick_spacing\",\"type\":\"core::integer::u128\"},{\"name\":\"extension\",\"type\":\"core::starknet::contract_address::ContractAddress\"}]},{\"type\":\"struct\",\"name\":\"ekubo::types::bounds::Bounds\",\"members\":[{\"name\":\"lower\",\"type\":\"ekubo::types::i129::i129\"},{\"name\":\"upper\",\"type\":\"ekubo::types::i129::i129\"}]},{\"type\":\"struct\",\"name\":\"creator_coin::exchanges::ekubo::launcher::EkuboLP\",\"members\":[{\"name\":\"owner\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"quote_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"pool_key\",\"type\":\"ekubo::types::keys::PoolKey\"},{\"name\":\"bounds\",\"type\":\"ekubo::types::bounds::Bounds\"}]},{\"type\":\"enum\",\"name\":\"creator_coin::exchanges::SupportedExchanges\",\"variants\":[{\"name\":\"Jediswap\",\"type\":\"()\"},{\"name\":\"Ekubo\",\"type\":\"()\"},{\"name\":\"Starkdefi\",\"type\":\"()\"}]},{\"type\":\"enum\",\"name\":\"creator_coin::token::creator_coin::LiquidityType\",\"variants\":[{\"name\":\"JediERC20\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"StarkDeFiERC20\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"EkuboNFT\",\"type\":\"core::integer::u64\"}]},{\"type\":\"enum\",\"name\":\"core::option::Option::<(core::starknet::contract_address::ContractAddress, creator_coin::token::creator_coin::LiquidityType)>\",\"variants\":[{\"name\":\"Some\",\"type\":\"(core::starknet::contract_address::ContractAddress, creator_coin::token::creator_coin::LiquidityType)\"},{\"name\":\"None\",\"type\":\"()\"}]},{\"type\":\"interface\",\"name\":\"creator_coin::factory::interface::IFactory\",\"items\":[{\"type\":\"function\",\"name\":\"create_creator_coin\",\"inputs\":[{\"name\":\"owner\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"name\",\"type\":\"core::felt252\"},{\"name\":\"symbol\",\"type\":\"core::felt252\"},{\"name\":\"initial_supply\",\"type\":\"core::integer::u256\"},{\"name\":\"contract_address_salt\",\"type\":\"core::felt252\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"launch_on_jediswap\",\"inputs\":[{\"name\":\"launch_parameters\",\"type\":\"creator_coin::factory::LaunchParameters\"},{\"name\":\"quote_amount\",\"type\":\"core::integer::u256\"},{\"name\":\"unlock_time\",\"type\":\"core::integer::u64\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"launch_on_ekubo\",\"inputs\":[{\"name\":\"launch_parameters\",\"type\":\"creator_coin::factory::LaunchParameters\"},{\"name\":\"ekubo_parameters\",\"type\":\"creator_coin::exchanges::ekubo::ekubo_adapter::EkuboPoolParameters\"}],\"outputs\":[{\"type\":\"(core::integer::u64, creator_coin::exchanges::ekubo::launcher::EkuboLP)\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"launch_on_starkdefi\",\"inputs\":[{\"name\":\"launch_parameters\",\"type\":\"creator_coin::factory::LaunchParameters\"},{\"name\":\"quote_amount\",\"type\":\"core::integer::u256\"},{\"name\":\"unlock_time\",\"type\":\"core::integer::u64\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"exchange_address\",\"inputs\":[{\"name\":\"exchange\",\"type\":\"creator_coin::exchanges::SupportedExchanges\"}],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"lock_manager_address\",\"inputs\":[],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"locked_liquidity\",\"inputs\":[{\"name\":\"token\",\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"outputs\":[{\"type\":\"core::option::Option::<(core::starknet::contract_address::ContractAddress, creator_coin::token::creator_coin::LiquidityType)>\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"is_creator_coin\",\"inputs\":[{\"name\":\"address\",\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"outputs\":[{\"type\":\"core::bool\"}],\"state_mutability\":\"view\"},{\"type\":\"function\",\"name\":\"ekubo_core_address\",\"inputs\":[],\"outputs\":[{\"type\":\"core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"view\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<(creator_coin::exchanges::SupportedExchanges, core::starknet::contract_address::ContractAddress)>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<(creator_coin::exchanges::SupportedExchanges, core::starknet::contract_address::ContractAddress)>\"}]},{\"type\":\"struct\",\"name\":\"core::array::Span::<(core::starknet::contract_address::ContractAddress, core::starknet::contract_address::ContractAddress)>\",\"members\":[{\"name\":\"snapshot\",\"type\":\"@core::array::Array::<(core::starknet::contract_address::ContractAddress, core::starknet::contract_address::ContractAddress)>\"}]},{\"type\":\"constructor\",\"name\":\"constructor\",\"inputs\":[{\"name\":\"creator_coin_class_hash\",\"type\":\"core::starknet::class_hash::ClassHash\"},{\"name\":\"lock_manager_address\",\"type\":\"core::starknet::contract_address::ContractAddress\"},{\"name\":\"exchanges\",\"type\":\"core::array::Span::<(creator_coin::exchanges::SupportedExchanges, core::starknet::contract_address::ContractAddress)>\"},{\"name\":\"migrated_tokens\",\"type\":\"core::array::Span::<(core::starknet::contract_address::ContractAddress, core::starknet::contract_address::ContractAddress)>\"}]},{\"type\":\"event\",\"name\":\"creator_coin::factory::factory::Factory::CreatorCoinCreated\",\"kind\":\"struct\",\"members\":[{\"name\":\"owner\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"},{\"name\":\"name\",\"type\":\"core::felt252\",\"kind\":\"data\"},{\"name\":\"symbol\",\"type\":\"core::felt252\",\"kind\":\"data\"},{\"name\":\"initial_supply\",\"type\":\"core::integer::u256\",\"kind\":\"data\"},{\"name\":\"creator_coin_address\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"}]},{\"type\":\"event\",\"name\":\"creator_coin::factory::factory::Factory::CreatorCoinLaunched\",\"kind\":\"struct\",\"members\":[{\"name\":\"creator_coin_address\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"},{\"name\":\"quote_token\",\"type\":\"core::starknet::contract_address::ContractAddress\",\"kind\":\"data\"},{\"name\":\"exchange_name\",\"type\":\"core::felt252\",\"kind\":\"data\"}]},{\"type\":\"event\",\"name\":\"creator_coin::factory::factory::Factory::Event\",\"kind\":\"enum\",\"variants\":[{\"name\":\"CreatorCoinCreated\",\"type\":\"creator_coin::factory::factory::Factory::CreatorCoinCreated\",\"kind\":\"nested\"},{\"name\":\"CreatorCoinLaunched\",\"type\":\"creator_coin::factory::factory::Factory::CreatorCoinLaunched\",\"kind\":\"nested\"}]}] as const;\n","export const IPTicketCollectionABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155MetadataURIImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPTicketCollectionImpl\",\n \"interface_name\": \"ip_ticket::interface::IIPTicketCollection\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::option::Option::<core::integer::u64>\",\n \"variants\": [\n {\n \"name\": \"Some\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"None\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_ticket::types::Ticket\",\n \"members\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"minted\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_ticket::interface::IIPTicketCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_ticket\",\n \"inputs\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_valid\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"holder\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_ticket\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_ticket::types::Ticket\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ticket_count\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royaltyInfo\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155Impl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balance_of_batch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_batch_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155CamelImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balanceOfBatch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeBatchTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"OwnableMixinImpl\",\n \"interface_name\": \"openzeppelin_access::ownable::interface::OwnableABI\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_access::ownable::interface::OwnableABI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_ownership\",\n \"inputs\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounce_ownership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"value\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"TransferSingle\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TransferBatch\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"URI\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OwnershipTransferred\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollection::IPTicketCollection::TicketCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollection::IPTicketCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC1155Event\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OwnableEvent\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"TicketCreated\",\n \"type\": \"ip_ticket::IPTicketCollection::IPTicketCollection::TicketCreated\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPTicketCollectionFactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"IPTicketCollectionFactoryImpl\",\n \"interface_name\": \"ip_ticket::interface::IIPTicketCollectionFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_ticket::interface::IIPTicketCollectionFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"deploy_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollectionFactory::IPTicketCollectionFactory::CollectionDeployed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_ticket::IPTicketCollectionFactory::IPTicketCollectionFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"CollectionDeployed\",\n \"type\": \"ip_ticket::IPTicketCollectionFactory::IPTicketCollectionFactory::CollectionDeployed\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPClubFactoryABI = [\n {\n \"type\": \"impl\",\n \"name\": \"IPClubCollectionFactoryImpl\",\n \"interface_name\": \"ip_club::interface::IIPClubCollectionFactory\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_club::interface::IIPClubCollectionFactory\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"collection_class_hash\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"deploy_collection\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"collection_class_hash\",\n \"type\": \"core::starknet::class_hash::ClassHash\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"collection_address\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollectionFactory::IPClubCollectionFactory::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ClubDeployed\",\n \"type\": \"ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPClubCollectionABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155MetadataURIImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155MetadataURI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPClubCollectionImpl\",\n \"interface_name\": \"ip_club::interface::IIPClubCollection\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::option::Option::<core::integer::u64>\",\n \"variants\": [\n {\n \"name\": \"Some\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"None\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_club::types::Membership\",\n \"members\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"minted\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_club::interface::IIPClubCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_membership\",\n \"inputs\": [\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u16\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_member\",\n \"inputs\": [\n {\n \"name\": \"holder\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_member_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"holder\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_membership\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_club::types::Membership\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"base_uri\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royaltyInfo\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155Impl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::starknet::contract_address::ContractAddress>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::integer::u256>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::integer::u256>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balance_of_batch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_batch_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC1155CamelImpl\",\n \"interface_name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc1155::interface::IERC1155Camel\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"balanceOfBatch\",\n \"inputs\": [\n {\n \"name\": \"accounts\",\n \"type\": \"core::array::Span::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::array::Span::<core::integer::u256>\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeBatchTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenIds\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"OwnableMixinImpl\",\n \"interface_name\": \"openzeppelin_access::ownable::interface::OwnableABI\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_access::ownable::interface::OwnableABI\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_ownership\",\n \"inputs\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounce_ownership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"base_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"value\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"ids\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"values\",\n \"type\": \"core::array::Span::<core::integer::u256>\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"value\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"TransferSingle\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"TransferBatch\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"URI\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::URI\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"previous_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"new_owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"OwnershipTransferred\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollection::IPClubCollection::MembershipCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"max_supply\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"start_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"end_time\",\n \"type\": \"core::option::Option::<core::integer::u64>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_club::IPClubCollection::IPClubCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC1155Event\",\n \"type\": \"openzeppelin_token::erc1155::erc1155::ERC1155Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OwnableEvent\",\n \"type\": \"openzeppelin_access::ownable::ownable::OwnableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"MembershipCreated\",\n \"type\": \"ip_club::IPClubCollection::IPClubCollection::MembershipCreated\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPSponsorshipABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::internal::bounded_int::BoundedInt::<0, 30>\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataCamelOnlyImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"tokenURI\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPSponsorshipImpl\",\n \"interface_name\": \"ip_sponsorship::interface::IIPSponsorship\"\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\",\n \"variants\": [\n {\n \"name\": \"Some\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"None\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_sponsorship::types::SponsorshipOffer\",\n \"members\": [\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"min_amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"specific_sponsor\",\n \"type\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_sponsorship::types::SponsorshipProposal\",\n \"members\": [\n {\n \"name\": \"proposer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_sponsorship::interface::IIPSponsorship\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"create_offer\",\n \"inputs\": [\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"min_amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"specific_sponsor\",\n \"type\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_offer_open\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"place_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"retract_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"accept_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_offer\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_sponsorship::types::SponsorshipOffer\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_bid\",\n \"inputs\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_offer_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_license_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"propose_sponsorship\",\n \"inputs\": [\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"core::integer::u64\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdraw_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"accept_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"reject_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_proposal\",\n \"inputs\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_sponsorship::types::SponsorshipProposal\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_last_proposal_id\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royalty_info\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"royaltyInfo\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"sale_price\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"(core::starknet::contract_address::ContractAddress, core::integer::u256)\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"version\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721CamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ownerOf\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getApproved\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"min_amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"specific_sponsor\",\n \"type\": \"core::option::Option::<core::starknet::contract_address::ContractAddress>\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"open\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"updated_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"bid_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"retracted_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"offer_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"license_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"expires_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalCreated\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"nft_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"valid_until\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"payment_token\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"created_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalClosed\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"accepted\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"closed_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalAccepted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"proposal_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"license_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"sponsor\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"expires_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::LicenseMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"author\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"asset_contract\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"asset_token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"expires_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"transferable\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"royalty_bps\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"license_terms_uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"minted_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_sponsorship::IPSponsorship::IPSponsorship::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"OfferCreated\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"OfferStatusUpdated\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"BidPlaced\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"BidRetracted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"SponsorshipAccepted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ProposalCreated\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalCreated\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ProposalClosed\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalClosed\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ProposalAccepted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::ProposalAccepted\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"LicenseMinted\",\n \"type\": \"ip_sponsorship::IPSponsorship::IPSponsorship::LicenseMinted\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","export const IPGenesisABI = [\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::byte_array::ByteArray\",\n \"members\": [\n {\n \"name\": \"data\",\n \"type\": \"core::array::Array::<core::bytes_31::bytes31>\"\n },\n {\n \"name\": \"pending_word\",\n \"type\": \"core::felt252\"\n },\n {\n \"name\": \"pending_word_len\",\n \"type\": \"core::integer::u32\"\n }\n ]\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::integer::u256\",\n \"members\": [\n {\n \"name\": \"low\",\n \"type\": \"core::integer::u128\"\n },\n {\n \"name\": \"high\",\n \"type\": \"core::integer::u128\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721Metadata\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_uri\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721MetadataCamelOnlyImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"tokenURI\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"IPCollectionImpl\",\n \"interface_name\": \"ip_programmable_erc_721::interfaces::IIPCollection::IIPCollection\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"ip_programmable_erc_721::types::TokenData\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"metadata_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"original_creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"ip_programmable_erc_721::interfaces::IIPCollection::IIPCollection\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"mint_item\",\n \"inputs\": [\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_uri\",\n \"type\": \"core::byte_array::ByteArray\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_collection_creator\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_creator\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_registered_at\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u64\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_token_data\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"ip_programmable_erc_721::types::TokenData\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721Impl\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721\"\n },\n {\n \"type\": \"struct\",\n \"name\": \"core::array::Span::<core::felt252>\",\n \"members\": [\n {\n \"name\": \"snapshot\",\n \"type\": \"@core::array::Array::<core::felt252>\"\n }\n ]\n },\n {\n \"type\": \"enum\",\n \"name\": \"core::bool\",\n \"variants\": [\n {\n \"name\": \"False\",\n \"type\": \"()\"\n },\n {\n \"name\": \"True\",\n \"type\": \"()\"\n }\n ]\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balance_of\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner_of\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safe_transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transfer_from\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"set_approval_for_all\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"get_approved\",\n \"inputs\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"is_approved_for_all\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721CamelOnly\",\n \"interface_name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::interface::IERC721CamelOnly\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"ownerOf\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"safeTransferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n },\n {\n \"name\": \"data\",\n \"type\": \"core::array::Span::<core::felt252>\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferFrom\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setApprovalForAll\",\n \"inputs\": [\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\"\n }\n ],\n \"outputs\": [],\n \"state_mutability\": \"external\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getApproved\",\n \"inputs\": [\n {\n \"name\": \"tokenId\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isApprovedForAll\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"ERC721EnumerableImpl\",\n \"interface_name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::interface::IERC721Enumerable\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"total_supply\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_by_index\",\n \"inputs\": [\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"token_of_owner_by_index\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n },\n {\n \"name\": \"index\",\n \"type\": \"core::integer::u256\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::integer::u256\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"impl\",\n \"name\": \"SRC5Impl\",\n \"interface_name\": \"openzeppelin_introspection::interface::ISRC5\"\n },\n {\n \"type\": \"interface\",\n \"name\": \"openzeppelin_introspection::interface::ISRC5\",\n \"items\": [\n {\n \"type\": \"function\",\n \"name\": \"supports_interface\",\n \"inputs\": [\n {\n \"name\": \"interface_id\",\n \"type\": \"core::felt252\"\n }\n ],\n \"outputs\": [\n {\n \"type\": \"core::bool\"\n }\n ],\n \"state_mutability\": \"view\"\n }\n ]\n },\n {\n \"type\": \"constructor\",\n \"name\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"core::byte_array::ByteArray\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"from\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"to\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"owner\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"approved\",\n \"type\": \"core::bool\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Transfer\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Transfer\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"Approval\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Approval\",\n \"kind\": \"nested\"\n },\n {\n \"name\": \"ApprovalForAll\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll\",\n \"kind\": \"nested\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"enum\",\n \"variants\": []\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc_721::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"struct\",\n \"members\": [\n {\n \"name\": \"token_id\",\n \"type\": \"core::integer::u256\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"recipient\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"key\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"core::byte_array::ByteArray\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"core::starknet::contract_address::ContractAddress\",\n \"kind\": \"data\"\n },\n {\n \"name\": \"registered_at\",\n \"type\": \"core::integer::u64\",\n \"kind\": \"data\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"ip_programmable_erc_721::IPCollection::IPCollection::Event\",\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"ERC721Event\",\n \"type\": \"openzeppelin_token::erc721::erc721::ERC721Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"SRC5Event\",\n \"type\": \"openzeppelin_introspection::src5::SRC5Component::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"ERC721EnumerableEvent\",\n \"type\": \"openzeppelin_token::erc721::extensions::erc721_enumerable::erc721_enumerable::ERC721EnumerableComponent::Event\",\n \"kind\": \"flat\"\n },\n {\n \"name\": \"IPMinted\",\n \"type\": \"ip_programmable_erc_721::IPCollection::IPCollection::IPMinted\",\n \"kind\": \"nested\"\n }\n ]\n }\n] as const;\n","import { hash } from \"starknet\";\nimport { normalizeAddress } from \"../utils/address.js\";\n\nexport interface PopAllowlist {\n /** Merkle root to publish with `set_allowlist_root`. */\n root: string;\n /** Proof per address, keyed by normalized Starknet address. */\n proofs: Record<string, string[]>;\n}\n\nconst FRAGMENT_KEY = \"pop-proof\";\n\nconst toHex = (x: bigint) => \"0x\" + x.toString(16).padStart(64, \"0\");\nconst poseidon = (xs: bigint[]) =>\n BigInt(hash.computePoseidonHashOnElements(xs.map((x) => \"0x\" + x.toString(16))));\nconst nodeHash = (a: bigint, b: bigint) => (a < b ? poseidon([a, b]) : poseidon([b, a]));\n\n/** Leaf for an address: poseidon([poseidon([address])]), as the collection computes it. */\nexport function popLeafHash(address: string): bigint {\n return poseidon([poseidon([BigInt(address)])]);\n}\n\n/** OpenZeppelin standard tree over leaf hashes (sorted leaves, sorted-pair Poseidon nodes). */\nexport function merkleTree(leafHashes: bigint[]) {\n const leaves = [...leafHashes].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));\n const tree: bigint[] = new Array(2 * leaves.length - 1);\n leaves.forEach((leaf, i) => (tree[tree.length - 1 - i] = leaf));\n for (let i = tree.length - 1 - leaves.length; i >= 0; i--) {\n tree[i] = nodeHash(tree[2 * i + 1]!, tree[2 * i + 2]!);\n }\n return {\n root: tree[0]!,\n proof(leaf: bigint): bigint[] {\n let i = tree.lastIndexOf(leaf);\n if (i < tree.length - leaves.length) throw new Error(\"Not a leaf of this tree\");\n const proof: bigint[] = [];\n while (i > 0) {\n proof.push(tree[i % 2 === 1 ? i + 1 : i - 1]!);\n i = Math.floor((i - 1) / 2);\n }\n return proof;\n },\n };\n}\n\nexport function buildPopAllowlist(addresses: string[]): PopAllowlist {\n const unique = [...new Set(addresses.map((a) => normalizeAddress(\"STARKNET\", a)))];\n if (unique.length === 0) throw new Error(\"An allowlist needs at least one address\");\n const leaves = unique.map((address) => ({ address, leaf: popLeafHash(address) }));\n const tree = merkleTree(leaves.map((l) => l.leaf));\n const proofs: Record<string, string[]> = {};\n for (const { address, leaf } of leaves) proofs[address] = tree.proof(leaf).map(toHex);\n return { root: toHex(tree.root), proofs };\n}\n\n/** True when `proof` places `address` under `root` — checked before sending a claim. */\nexport function verifyPopProof(root: string, address: string, proof: string[]): boolean {\n let computed = popLeafHash(address);\n for (const sibling of proof) computed = nodeHash(computed, BigInt(sibling));\n return computed === BigInt(root);\n}\n\nexport function encodePopClaimFragment(proof: string[]): string {\n return `#${FRAGMENT_KEY}=${proof.join(\",\")}`;\n}\n\n/** The proof in a claim link's fragment; `null` when absent or malformed. */\nexport function decodePopClaimFragment(fragment: string): string[] | null {\n const raw = new URLSearchParams(fragment.replace(/^#/, \"\")).get(FRAGMENT_KEY);\n if (raw === null) return null;\n if (raw === \"\") return [];\n const parts = raw.split(\",\");\n return parts.every((p) => /^0x[0-9a-fA-F]{1,64}$/.test(p)) ? parts : null;\n}\n","import { CallData, byteArray, cairo, type Call, type ProviderInterface } from \"starknet\";\nimport { collectionHref } from \"../routes.js\";\nimport { normalizeAddress } from \"../utils/address.js\";\nimport { encodePopClaimFragment, verifyPopProof, type PopAllowlist } from \"./pop-allowlist.js\";\n\nexport interface PopClaimLink {\n address: string;\n url: string;\n}\n\n/** One claim link per allowlisted address: the collection page with the proof in its fragment. */\nexport function popClaimLinks(origin: string, collection: string, list: PopAllowlist): PopClaimLink[] {\n const base = `${origin}${collectionHref(\"STARKNET\", collection)}`;\n return Object.entries(list.proofs).map(([address, proof]) => ({\n address,\n url: `${base}${encodePopClaimFragment(proof)}`,\n }));\n}\n\nexport function popClaimLinksCsv(links: PopClaimLink[]): string {\n return [\"address,claim_link\", ...links.map((l) => `${l.address},${l.url}`)].join(\"\\n\");\n}\n\nexport interface PopClaimInfo {\n /** Allowlist Merkle root; 0 when claims are closed. */\n root: string;\n /** Unix seconds; 0 = no deadline. */\n claimEndTime: number;\n}\n\n/** Reads a collection's allowlist root and claim deadline from chain. */\nexport async function popClaimInfo(\n provider: Pick<ProviderInterface, \"callContract\">,\n collection: string,\n): Promise<PopClaimInfo> {\n const contractAddress = normalizeAddress(\"STARKNET\", collection);\n const [root, end] = await Promise.all([\n provider.callContract({ contractAddress, entrypoint: \"allowlist_root\", calldata: [] }),\n provider.callContract({ contractAddress, entrypoint: \"claim_end_time\", calldata: [] }),\n ]);\n return { root: root[0] ?? \"0x0\", claimEndTime: Number(BigInt(end[0] ?? \"0x0\")) };\n}\n\nexport type PopClaimState = \"loading\" | \"claimed\" | \"closed\" | \"ended\" | \"no-link\" | \"wrong-wallet\" | \"ready\";\n\n/** What a claim page should show, decided before any transaction is sent. */\nexport function popClaimState(input: {\n hasClaimed: boolean | null;\n proof: string[] | null;\n wallet: string | null;\n /** The collection's claim settings, with `now` in Unix seconds. */\n info: (PopClaimInfo & { now: number }) | null;\n}): PopClaimState {\n const { hasClaimed, proof, wallet, info } = input;\n if (hasClaimed === true) return \"claimed\";\n if (hasClaimed === null || info === null) return \"loading\";\n if (BigInt(info.root) === 0n) return \"closed\";\n if (info.claimEndTime !== 0 && info.now > info.claimEndTime) return \"ended\";\n if (proof === null) return \"no-link\";\n if (!wallet || !verifyPopProof(info.root, wallet, proof)) return \"wrong-wallet\";\n return \"ready\";\n}\n\nconst addr = (a: string) => normalizeAddress(\"STARKNET\", a);\nconst byteArrayFelts = (s: string) => CallData.compile([byteArray.byteArrayFromString(s)]);\n\n/** Calls on a POP collection, ready for `account.execute` or a sponsored transaction. */\nexport const popCalls = {\n claim(collection: string, proof: string[]): Call {\n return { contractAddress: addr(collection), entrypoint: \"claim\", calldata: [String(proof.length), ...proof] };\n },\n /** An empty `tokenUri` uses the collection's URI. */\n issue(collection: string, recipient: string, tokenUri = \"\"): Call {\n return { contractAddress: addr(collection), entrypoint: \"issue\", calldata: [addr(recipient), ...byteArrayFelts(tokenUri)] };\n },\n /** Only the token's holder can burn it. */\n burn(collection: string, tokenId: string | bigint): Call {\n const id = cairo.uint256(BigInt(tokenId));\n return { contractAddress: addr(collection), entrypoint: \"burn\", calldata: [String(id.low), String(id.high)] };\n },\n setAllowlistRoot(collection: string, root: string): Call {\n return { contractAddress: addr(collection), entrypoint: \"set_allowlist_root\", calldata: [root] };\n },\n};\n","import { newContract } from \"../marketplace/utils.js\";\nimport { type AccountInterface, type ProviderInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { POPFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreatePopCollectionParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\nimport { popCalls } from \"../pop-claim.js\";\n\nexport type { CreatePopCollectionParams };\n\nexport class PopService {\n private readonly factoryAddress: string;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = getStarknetCoordinates(config.chain).popFactory!;\n }\n\n async createCollection(account: AccountInterface, params: CreatePopCollectionParams): Promise<TxResult> {\n const factory = newContract(POPFactoryABI as any, this.factoryAddress, account as any);\n const call = factory.populate(\"create_collection\", [params.name, params.symbol, params.baseUri, params.claimEndTime]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setAllowlistRoot(account: AccountInterface, params: { collection: string; root: string }): Promise<TxResult> {\n const call = popCalls.setAllowlistRoot(params.collection, params.root);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async claim(account: AccountInterface, params: { collection: string; proof: string[] }): Promise<TxResult> {\n const call = popCalls.claim(params.collection, params.proof);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async issue(\n account: AccountInterface,\n params: { collection: string; recipient: string; tokenUri?: string },\n ): Promise<TxResult> {\n const call = popCalls.issue(params.collection, params.recipient, params.tokenUri);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n /** Destroys the caller's own credential; the address cannot receive another from this collection. */\n async burn(account: AccountInterface, params: { collection: string; tokenId: string | bigint }): Promise<TxResult> {\n const call = popCalls.burn(params.collection, params.tokenId);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n}\n\n/** Whether `address` already holds this collection's credential (read from chain). */\nexport async function popHasClaimed(\n provider: Pick<ProviderInterface, \"callContract\">,\n collection: string,\n address: string,\n): Promise<boolean> {\n const res = await provider.callContract({\n contractAddress: normalizeAddress(\"STARKNET\", collection),\n entrypoint: \"has_claimed\",\n calldata: [normalizeAddress(\"STARKNET\", address)],\n });\n return BigInt(res[0] ?? \"0x0\") !== 0n;\n}\n","import { cairo, type Call } from \"starknet\";\nimport type { ResolvedFeeConfig } from \"../../fee/config.js\";\n\nexport type FeeSurface = \"marketplace\" | \"launchpad\" | \"sponsorship\";\n\nexport interface BuildFeeCallParams {\n surface: FeeSurface;\n\n token: string;\n\n grossAmount: bigint;\n}\n\nexport function buildFeeCall(\n p: BuildFeeCallParams,\n cfg: ResolvedFeeConfig\n): Call | null {\n if (!cfg.enabled || !cfg.fundAddress) return null;\n const bps = p.surface === \"marketplace\" ? cfg.marketplaceBps\n : p.surface === \"launchpad\" ? cfg.launchpadBps\n : cfg.sponsorshipBps;\n if (bps <= 0) return null;\n const fee = (p.grossAmount * BigInt(bps)) / 10000n;\n if (fee <= 0n) return null;\n const u = cairo.uint256(fee.toString());\n return {\n contractAddress: p.token,\n entrypoint: \"transfer\",\n calldata: [cfg.fundAddress, u.low.toString(), u.high.toString()],\n };\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { DropCollectionABI, DropFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { ClaimConditions, CreateDropParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\nimport { buildFeeCall } from \"../fee/index.js\";\n\nexport type { ClaimConditions, CreateDropParams };\n\nexport function toContractConditions(c: ClaimConditions) {\n return {\n start_time: c.startTime,\n end_time: c.endTime,\n price: BigInt(c.price),\n payment_token: c.paymentToken,\n max_quantity_per_wallet: BigInt(c.maxQuantityPerWallet),\n };\n}\n\nexport class DropService {\n private readonly factoryAddress: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = getStarknetCoordinates(config.chain).dropFactory!;\n this.config = config;\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(DropCollectionABI as any, normalizeAddress(\"STARKNET\",address), account as any);\n }\n\n async claim(\n account: AccountInterface,\n collectionAddress: string,\n quantity: bigint | string | number = 1\n ): Promise<TxResult> {\n const collection = this._collection(collectionAddress, account);\n const qty = BigInt(quantity);\n const claimCall = collection.populate(\"claim\", [qty]);\n\n const conditions = (await collection.get_claim_conditions()) as {\n price: bigint;\n payment_token: bigint | string;\n };\n const price = BigInt(conditions.price);\n const paymentToken =\n typeof conditions.payment_token === \"bigint\"\n ? \"0x\" + conditions.payment_token.toString(16)\n : conditions.payment_token;\n\n const feeCall =\n price > 0n\n ? buildFeeCall(\n { surface: \"launchpad\", token: paymentToken, grossAmount: price * qty },\n this.config.feeConfig\n )\n : null;\n\n const calls = feeCall ? [claimCall, feeCall] : [claimCall];\n const res = await account.execute(calls);\n return { txHash: res.transaction_hash };\n }\n\n async adminMint(\n account: AccountInterface,\n params: { collection: string; recipient: string; quantity?: bigint | string | number; customUri?: string }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"admin_mint\", [\n params.recipient,\n BigInt(params.quantity ?? 1),\n params.customUri ?? \"\",\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setClaimConditions(\n account: AccountInterface,\n params: { collection: string; conditions: ClaimConditions }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"set_claim_conditions\", [\n toContractConditions(params.conditions),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setAllowlistEnabled(\n account: AccountInterface,\n params: { collection: string; enabled: boolean }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"set_allowlist_enabled\", [params.enabled]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async addToAllowlist(\n account: AccountInterface,\n params: { collection: string; address: string }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"add_to_allowlist\", [params.address]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async batchAddToAllowlist(\n account: AccountInterface,\n params: { collection: string; addresses: string[] }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const CHUNK = 200;\n const calls = [];\n for (let i = 0; i < params.addresses.length; i += CHUNK) {\n calls.push(collection.populate(\"batch_add_to_allowlist\", [params.addresses.slice(i, i + CHUNK)]));\n }\n const res = await account.execute(calls);\n return { txHash: res.transaction_hash };\n }\n\n async setPaused(\n account: AccountInterface,\n params: { collection: string; paused: boolean }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"set_paused\", [params.paused]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async withdrawPayments(\n account: AccountInterface,\n params: { collection: string }\n ): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"withdraw_payments\", []);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async createDrop(account: AccountInterface, params: CreateDropParams): Promise<TxResult> {\n const factory = newContract(DropFactoryABI as any, this.factoryAddress, account as any);\n const call = factory.populate(\"create_drop\", [\n params.name,\n params.symbol,\n params.baseUri,\n BigInt(params.maxSupply),\n toContractConditions(params.initialConditions),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPCollection1155FactoryABI, IPCollection1155ABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport interface DeployCollectionParams {\n\n name: string;\n\n symbol: string;\n\n baseUri: string;\n}\n\nexport interface MintEditionParams {\n\n collection: string;\n\n to: string;\n\n value: bigint | string;\n\n tokenUri: string;\n}\n\nexport interface BatchMintEditionParams {\n\n collection: string;\n\n to: string;\n\n items: Array<{\n value: bigint | string;\n tokenUri: string;\n }>;\n}\n\nexport interface AddSupplyParams {\n\n collection: string;\n\n to: string;\n\n tokenId: bigint | string;\n\n value: bigint | string;\n}\n\nexport class ERC1155CollectionService {\n private readonly factoryAddress: string;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = config.collection1155Contract ?? getStarknetCoordinates(config.chain).collection1155!;\n }\n\n private _factory(account: AccountInterface) {\n return newContract(\n IPCollection1155FactoryABI as any,\n normalizeAddress(\"STARKNET\",this.factoryAddress),\n account as any\n );\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(\n IPCollection1155ABI as any,\n normalizeAddress(\"STARKNET\",address),\n account as any\n );\n }\n\n async deployCollection(\n account: AccountInterface,\n params: DeployCollectionParams\n ): Promise<TxResult> {\n const factory = this._factory(account);\n const call = factory.populate(\"deploy_collection\", [params.name, params.symbol, params.baseUri]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async mintEdition(\n account: AccountInterface,\n params: MintEditionParams\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"mint_edition\", [\n params.to,\n BigInt(params.value),\n params.tokenUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async batchMintEdition(\n account: AccountInterface,\n params: BatchMintEditionParams\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const values = params.items.map((i) => BigInt(i.value));\n const tokenUris = params.items.map((i) => i.tokenUri);\n const call = collection.populate(\"batch_mint_edition\", [\n params.to,\n values,\n tokenUris,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async addSupply(\n account: AccountInterface,\n params: AddSupplyParams\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"add_supply\", [\n params.to,\n BigInt(params.tokenId),\n BigInt(params.value),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setDefaultRoyalty(\n account: AccountInterface,\n params: { collection: string; receiver: string; feeNumerator: number }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"set_default_royalty\", [\n params.receiver,\n BigInt(params.feeNumerator),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setTokenRoyalty(\n account: AccountInterface,\n params: { collection: string; tokenId: bigint | string; receiver: string; feeNumerator: number }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"set_token_royalty\", [\n BigInt(params.tokenId),\n params.receiver,\n BigInt(params.feeNumerator),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setApprovalForAll(\n account: AccountInterface,\n params: { collection: string; operator: string; approved: boolean }\n ): Promise<TxResult> {\n const collection = this._collection(params.collection, account);\n const call = collection.populate(\"set_approval_for_all\", [\n params.operator,\n params.approved,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n}\n","\n\nexport const COIN_DECIMALS = 18;\n\nexport const SUGGESTED_DEFAULT_PRICE = 0.01;\nexport const MIN_SUPPLY = 1_000n;\nexport const MAX_SUPPLY = 1_000_000_000_000n;\nexport const MAX_FELT_BYTES = 31;\n\nfunction byteLen(s: string): number {\n return new TextEncoder().encode(s).length;\n}\n\nexport function validateName(s: string): string | null {\n if (!s.trim()) return \"Name is required\";\n if (byteLen(s) > MAX_FELT_BYTES) return `Name must be at most ${MAX_FELT_BYTES} bytes`;\n return null;\n}\n\nexport function validateSymbol(s: string): string | null {\n if (!s.trim()) return \"Symbol is required\";\n if (byteLen(s) > MAX_FELT_BYTES) return `Symbol must be at most ${MAX_FELT_BYTES} bytes`;\n return null;\n}\n\nexport function validateSupply(human: string): string | null {\n if (!/^\\d+$/.test(human.trim())) return \"Supply must be a whole number\";\n const v = BigInt(human.trim());\n if (v < MIN_SUPPLY) return `Supply must be at least ${MIN_SUPPLY.toString()}`;\n if (v > MAX_SUPPLY) return `Supply must be at most ${MAX_SUPPLY.toString()}`;\n return null;\n}\n\nexport function toRaw(human: bigint, decimals = COIN_DECIMALS): bigint {\n return human * 10n ** BigInt(decimals);\n}\n\nexport function teamCoinsRaw(supplyRaw: bigint, pct: number): bigint {\n const bps = BigInt(Math.round(pct * 100));\n return (supplyRaw * bps) / 10_000n;\n}\n\nconst PRICE_SCALE = 1_000_000_000_000n;\n\nexport function buybackQuoteRaw(teamCoinsRawValue: bigint, price: number, quoteDecimals: number): bigint {\n const priceScaled = BigInt(Math.round(price * Number(PRICE_SCALE)));\n return (teamCoinsRawValue * priceScaled * 10n ** BigInt(quoteDecimals)) / (PRICE_SCALE * 10n ** BigInt(COIN_DECIMALS));\n}\n\nexport function fdvHuman(supplyHuman: number, price: number): number {\n return supplyHuman * price;\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { RpcProvider, hash, uint256, type AccountInterface, type Call, type Contract, type ProviderInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { CreatorCoinFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\nimport { SUGGESTED_DEFAULT_PRICE, COIN_DECIMALS } from \"./coinLaunchMath.js\";\n\nexport interface CreateCreatorCoinParams {\n\n owner: string;\n name: string;\n symbol: string;\n\n initialSupply: bigint | string;\n\n salt?: bigint | string;\n}\n\nexport interface EkuboPoolParams {\n fee: bigint | string;\n tickSpacing: bigint | string;\n startingPrice: { mag: bigint | string; sign: boolean };\n bound: bigint | string;\n}\n\nexport interface EkuboLaunchParams {\n creatorCoin: string;\n\n quoteToken: string;\n\n initialHolders: string[];\n initialHoldersAmounts: (bigint | string)[];\n\n transferRestrictionDelay?: number;\n\n maxPercentageBuyLaunch?: number;\n\n ekubo: EkuboPoolParams;\n\n quoteFundAmount?: bigint | string;\n}\n\nexport const VALIDATED_EKUBO_PARAMS: EkuboPoolParams = {\n fee: \"0xc49ba5e353f7d00000000000000000\",\n tickSpacing: 5982n,\n startingPrice: { mag: 4600158n, sign: true },\n bound: 88719042n,\n};\n\nconst TICK_BASE = 1.000001;\n\nexport function priceToEkuboParams(\n quoteDecimals: number,\n price: number = SUGGESTED_DEFAULT_PRICE,\n): EkuboPoolParams {\n const decAdj = 10 ** (COIN_DECIMALS - quoteDecimals);\n const rawRatio = price / decAdj;\n\n const tickSpacing = Number(VALIDATED_EKUBO_PARAMS.tickSpacing);\n const rawTick = Math.log(rawRatio) / Math.log(TICK_BASE);\n const roundedTick = Math.trunc(rawTick / tickSpacing) * tickSpacing;\n\n return {\n fee: VALIDATED_EKUBO_PARAMS.fee,\n tickSpacing: VALIDATED_EKUBO_PARAMS.tickSpacing,\n startingPrice: { mag: BigInt(Math.abs(roundedTick)), sign: roundedTick < 0 },\n bound: VALIDATED_EKUBO_PARAMS.bound,\n };\n}\n\nexport function validatePrice(quoteDecimals: number, price: number): string | null {\n if (!isFinite(price) || price <= 0) return \"Price must be a positive number\";\n const decAdj = 10 ** (COIN_DECIMALS - quoteDecimals);\n const rawRatio = price / decAdj;\n if (!isFinite(rawRatio) || rawRatio <= 0) return \"Price must be a positive number\";\n const rawTick = Math.log(rawRatio) / Math.log(TICK_BASE);\n if (!isFinite(rawTick)) return \"Price is outside the supported range\";\n const bound = Number(VALIDATED_EKUBO_PARAMS.bound);\n if (Math.abs(rawTick) >= bound) return \"Price is outside the supported range\";\n return null;\n}\n\nexport const MAX_TEAM_ALLOCATION_PERCENT = 10;\n\nexport const MAX_HOLDERS_AT_LAUNCH = 10;\n\nexport interface CreatorCoinGuarantees {\n isLaunched: boolean;\n\n launchedAtBlock: number | null;\n\n totalSupplyRaw: string;\n\n teamAllocationRaw: string;\n\n teamAllocationPercent: number | null;\n\n liquidityPositionId: string | null;\n}\n\nfunction u256(parts: string[], offset = 0): bigint {\n return BigInt(parts[offset] ?? \"0x0\") + (BigInt(parts[offset + 1] ?? \"0x0\") << 128n);\n}\n\nexport async function getCreatorCoinGuarantees(\n coinAddress: string,\n provider: ProviderInterface,\n): Promise<CreatorCoinGuarantees | null> {\n const call = (entrypoint: string) =>\n provider.callContract({ contractAddress: coinAddress, entrypoint, calldata: [] });\n\n const [launchedRes, allocRes] = await Promise.all([\n call(\"is_launched\").catch(() => null),\n call(\"get_team_allocation\").catch(() => null),\n ]);\n\n if (!launchedRes || !allocRes) return null;\n\n const [supplyRes, blockRes, liquidityRes] = await Promise.all([\n call(\"total_supply\"),\n call(\"launched_at_block_number\").catch(() => null),\n call(\"liquidity_type\").catch(() => null),\n ]);\n\n const isLaunched = BigInt(launchedRes[0] ?? \"0x0\") !== 0n;\n const totalSupply = u256(supplyRes);\n const teamAllocation = u256(allocRes);\n\n const teamAllocationPercent =\n totalSupply > 0n ? Number((teamAllocation * 10_000n) / totalSupply) / 100 : null;\n\n const launchedAtBlock =\n isLaunched && blockRes?.[0] != null ? Number(BigInt(blockRes[0])) : null;\n\n const liquidityPositionId =\n liquidityRes && BigInt(liquidityRes[0] ?? \"0x1\") === 0n && liquidityRes[2] != null\n ? BigInt(liquidityRes[2]).toString()\n : null;\n\n return {\n isLaunched,\n launchedAtBlock,\n totalSupplyRaw: totalSupply.toString(),\n teamAllocationRaw: teamAllocation.toString(),\n teamAllocationPercent,\n liquidityPositionId,\n };\n}\n\nlet _factoryContract: Contract | null = null;\nfunction factoryContract(): Contract {\n if (!_factoryContract) {\n _factoryContract = newContract(\n CreatorCoinFactoryABI as any,\n getStarknetCoordinates(\"STARKNET\").creatorCoinFactory!,\n );\n }\n return _factoryContract;\n}\n\nexport function buildCreateCreatorCoinCall(params: CreateCreatorCoinParams): Call {\n const salt = params.salt ?? BigInt(\"0x\" + Date.now().toString(16));\n return factoryContract().populate(\"create_creator_coin\", [\n params.owner,\n params.name,\n params.symbol,\n BigInt(params.initialSupply),\n BigInt(salt),\n ]);\n}\n\nexport function buildLaunchOnEkuboCalls(params: EkuboLaunchParams): Call[] {\n const ek = params.ekubo;\n\n const launchParameters = {\n creator_coin_address: params.creatorCoin,\n transfer_restriction_delay: params.transferRestrictionDelay ?? 0,\n max_percentage_buy_launch: params.maxPercentageBuyLaunch ?? 200,\n quote_address: params.quoteToken,\n initial_holders: params.initialHolders,\n initial_holders_amounts: params.initialHoldersAmounts.map((a) => BigInt(a)),\n };\n const ekuboParameters = {\n fee: BigInt(ek.fee),\n tick_spacing: BigInt(ek.tickSpacing),\n starting_price: { mag: BigInt(ek.startingPrice.mag), sign: ek.startingPrice.sign },\n bound: BigInt(ek.bound),\n };\n\n const calls: Call[] = [];\n if (params.quoteFundAmount !== undefined) {\n const amt = uint256.bnToUint256(BigInt(params.quoteFundAmount));\n calls.push({\n contractAddress: params.quoteToken,\n entrypoint: \"transfer\",\n calldata: [getStarknetCoordinates(\"STARKNET\").creatorCoinFactory!, amt.low, amt.high],\n });\n }\n calls.push(factoryContract().populate(\"launch_on_ekubo\", [launchParameters, ekuboParameters]));\n return calls;\n}\n\nexport interface CreatorCoinReceiptLike {\n events?: Array<{ from_address?: string; keys?: string[]; data?: string[] }>;\n}\n\nconst CREATOR_COIN_CREATED_SELECTOR = hash.getSelectorFromName(\"CreatorCoinCreated\");\n\nexport function parseCreatorCoinCreated(receipt: CreatorCoinReceiptLike): string {\n const factory = normalizeAddress(\"STARKNET\",getStarknetCoordinates(\"STARKNET\").creatorCoinFactory!);\n for (const ev of receipt?.events ?? []) {\n let from: string;\n try {\n from = normalizeAddress(\"STARKNET\",ev.from_address ?? \"\");\n } catch {\n continue;\n }\n if (from !== factory) continue;\n const k0 = ev.keys?.[0];\n if (!k0 || normalizeAddress(\"STARKNET\",k0) !== normalizeAddress(\"STARKNET\",CREATOR_COIN_CREATED_SELECTOR)) continue;\n const data = ev.data ?? [];\n if (data.length < 1) continue;\n return normalizeAddress(\"STARKNET\",data[data.length - 1]);\n }\n throw new Error(\"Coin deployed but the coin address could not be read from the receipt\");\n}\n\nexport class CreatorCoinService {\n private readonly factoryAddress: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.factoryAddress = getStarknetCoordinates(config.chain).creatorCoinFactory!;\n this.config = config;\n }\n\n private _factory(account: AccountInterface) {\n return newContract(CreatorCoinFactoryABI as any, this.factoryAddress, account as any);\n }\n\n async createCreatorCoin(\n account: AccountInterface,\n params: CreateCreatorCoinParams\n ): Promise<TxResult> {\n const res = await account.execute([buildCreateCreatorCoinCall(params)]);\n return { txHash: res.transaction_hash };\n }\n\n async launchOnEkubo(account: AccountInterface, params: EkuboLaunchParams): Promise<TxResult> {\n const res = await account.execute(buildLaunchOnEkuboCalls(params));\n return { txHash: res.transaction_hash };\n }\n\n async isCreatorCoin(address: string, account: AccountInterface): Promise<boolean> {\n const r = await this._factory(account).is_creator_coin(address);\n return BigInt(r as any) === 1n;\n }\n\n async getGuarantees(coinAddress: string): Promise<CreatorCoinGuarantees | null> {\n return getCreatorCoinGuarantees(coinAddress, new RpcProvider({ nodeUrl: this.config.rpcUrl }));\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { CairoOption, CairoOptionVariant, RpcProvider, cairo, type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPTicketCollectionABI, IPTicketCollectionFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreateTicketParams, MintTicketsParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport type { CreateTicketParams, MintTicketsParams };\n\nexport interface TicketRecord {\n maxSupply: bigint;\n minted: bigint;\n startTime: number | null;\n endTime: number | null;\n royaltyBps: number;\n metadataUri: string;\n}\n\nexport class TicketService {\n private readonly factoryAddress?: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.config = config;\n this.factoryAddress = getStarknetCoordinates(config.chain).ipTicketsFactory;\n }\n\n private _factory(account: AccountInterface, factoryAddress?: string) {\n const address = factoryAddress ?? this.factoryAddress;\n if (!address) throw new Error(\"IP-Tickets factory address not configured for this chain\");\n return newContract(IPTicketCollectionFactoryABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(IPTicketCollectionABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collectionRead(address: string) {\n const provider = new RpcProvider({ nodeUrl: this.config.rpcUrl });\n return newContract(IPTicketCollectionABI as any, normalizeAddress(\"STARKNET\", address), provider);\n }\n\n async deployCollection(\n account: AccountInterface,\n params: { name: string; symbol: string; baseUri: string; factoryAddress?: string }\n ): Promise<TxResult> {\n const call = this._factory(account, params.factoryAddress).populate(\"deploy_collection\", [\n params.name,\n params.symbol,\n params.baseUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async createTicket(account: AccountInterface, params: CreateTicketParams): Promise<TxResult> {\n const startTime = params.startTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.startTime)\n : new CairoOption(CairoOptionVariant.None);\n const endTime = params.endTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.endTime)\n : new CairoOption(CairoOptionVariant.None);\n const call = this._collection(params.collection, account).populate(\"create_ticket\", [\n cairo.uint256(params.maxSupply),\n startTime,\n endTime,\n params.royaltyBps,\n params.metadataUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async mint(account: AccountInterface, params: MintTicketsParams): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"mint\", [\n params.to,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.amount),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async isValid(params: { collection: string; tokenId: bigint | string; holder: string }): Promise<boolean> {\n const result = await this._collectionRead(params.collection).call(\"is_valid\", [\n cairo.uint256(params.tokenId),\n params.holder,\n ]);\n return Boolean(result);\n }\n\n async getTicketCount(params: { collection: string }): Promise<bigint> {\n const result = await this._collectionRead(params.collection).call(\"ticket_count\", []);\n return BigInt(result as any);\n }\n\n async getTicket(params: {\n collection: string;\n tokenId: bigint | string;\n }): Promise<TicketRecord> {\n const t = await this._collectionRead(params.collection).call(\"get_ticket\", [\n cairo.uint256(params.tokenId),\n ]) as any;\n return {\n maxSupply: BigInt(t.max_supply),\n minted: BigInt(t.minted),\n startTime: t.start_time?.variant === \"Some\" ? Number(t.start_time.values[0] ?? t.start_time.value) : null,\n endTime: t.end_time?.variant === \"Some\" ? Number(t.end_time.values[0] ?? t.end_time.value) : null,\n royaltyBps: Number(t.royalty_bps),\n metadataUri: t.metadata_uri as string,\n };\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { CairoOption, CairoOptionVariant, RpcProvider, cairo, type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPClubCollectionABI, IPClubFactoryABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreateMembershipParams, MintMembershipsParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport type { CreateMembershipParams, MintMembershipsParams };\n\nexport interface MembershipRecord {\n maxSupply: bigint;\n minted: bigint;\n startTime: number | null;\n endTime: number | null;\n royaltyBps: number;\n metadataUri: string;\n}\n\nexport class ClubService {\n private readonly factoryAddress?: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.config = config;\n this.factoryAddress = getStarknetCoordinates(config.chain).ipClubFactory;\n }\n\n private _factory(account: AccountInterface, factoryAddress?: string) {\n const address = factoryAddress ?? this.factoryAddress;\n if (!address) throw new Error(\"IP-Club factory address not configured for this chain\");\n return newContract(IPClubFactoryABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collection(address: string, account: AccountInterface) {\n return newContract(IPClubCollectionABI as any, normalizeAddress(\"STARKNET\", address), account as any);\n }\n\n private _collectionRead(address: string) {\n const provider = new RpcProvider({ nodeUrl: this.config.rpcUrl });\n return newContract(IPClubCollectionABI as any, normalizeAddress(\"STARKNET\", address), provider);\n }\n\n async deployCollection(\n account: AccountInterface,\n params: { name: string; symbol: string; baseUri: string; factoryAddress?: string }\n ): Promise<TxResult> {\n const call = this._factory(account, params.factoryAddress).populate(\"deploy_collection\", [\n params.name,\n params.symbol,\n params.baseUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async createMembership(account: AccountInterface, params: CreateMembershipParams): Promise<TxResult> {\n const startTime = params.startTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.startTime)\n : new CairoOption(CairoOptionVariant.None);\n const endTime = params.endTime != null\n ? new CairoOption(CairoOptionVariant.Some, params.endTime)\n : new CairoOption(CairoOptionVariant.None);\n const call = this._collection(params.collection, account).populate(\"create_membership\", [\n cairo.uint256(params.maxSupply),\n startTime,\n endTime,\n params.royaltyBps,\n params.metadataUri,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async mint(account: AccountInterface, params: MintMembershipsParams): Promise<TxResult> {\n const call = this._collection(params.collection, account).populate(\"mint\", [\n params.to,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.amount),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async isMember(params: { collection: string; holder: string }): Promise<boolean> {\n const result = await this._collectionRead(params.collection).call(\"is_member\", [\n params.holder,\n ]);\n return Boolean(result);\n }\n\n async isMemberOf(params: { collection: string; tokenId: bigint | string; holder: string }): Promise<boolean> {\n const result = await this._collectionRead(params.collection).call(\"is_member_of\", [\n cairo.uint256(params.tokenId),\n params.holder,\n ]);\n return Boolean(result);\n }\n\n async getMembership(params: {\n collection: string;\n tokenId: bigint | string;\n }): Promise<MembershipRecord> {\n const m = await this._collectionRead(params.collection).call(\"get_membership\", [\n cairo.uint256(params.tokenId),\n ]) as any;\n return {\n maxSupply: BigInt(m.max_supply),\n minted: BigInt(m.minted),\n startTime: m.start_time?.variant === \"Some\" ? Number(m.start_time.values[0] ?? m.start_time.value) : null,\n endTime: m.end_time?.variant === \"Some\" ? Number(m.end_time.values[0] ?? m.end_time.value) : null,\n royaltyBps: Number(m.royalty_bps),\n metadataUri: m.metadata_uri as string,\n };\n }\n}\n","import { newContract } from \"../marketplace/utils.js\";\nimport { CairoOption, CairoOptionVariant, RpcProvider, cairo, type AccountInterface } from \"starknet\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { IPSponsorshipABI } from \"../abis/index.js\";\nimport { getStarknetCoordinates } from \"../../chains.js\";\nimport type { CreateSponsorshipOfferParams, ProposeSponsorshipParams } from \"../../types/services.js\";\nimport type { TxResult } from \"../../types/marketplace.js\";\n\nexport type { CreateSponsorshipOfferParams, ProposeSponsorshipParams };\n\nexport interface SponsorshipOfferRecord {\n author: string;\n nftContract: string;\n tokenId: bigint;\n minAmount: bigint;\n duration: number;\n paymentToken: string;\n licenseTermsUri: string;\n transferable: boolean;\n specificSponsor: string | null;\n open: boolean;\n royaltyBps: bigint;\n}\n\nexport interface SponsorshipProposalRecord {\n proposer: string;\n nftContract: string;\n tokenId: bigint;\n amount: bigint;\n duration: number;\n\n validUntil: number;\n paymentToken: string;\n licenseTermsUri: string;\n transferable: boolean;\n open: boolean;\n royaltyBps: bigint;\n}\n\nexport class SponsorshipService {\n private readonly sponsorshipAddress?: string;\n private readonly config: ResolvedConfig;\n\n constructor(config: ResolvedConfig) {\n this.config = config;\n this.sponsorshipAddress = getStarknetCoordinates(config.chain).ipSponsorship;\n }\n\n private _contract(account: AccountInterface, address?: string) {\n const resolved = address ?? this.sponsorshipAddress;\n if (!resolved) {\n throw new Error(\"IP-Sponsorship address not configured for this chain\");\n }\n return newContract(IPSponsorshipABI as any, normalizeAddress(\"STARKNET\", resolved), account as any);\n }\n\n private _contractRead(address?: string) {\n const resolved = address ?? this.sponsorshipAddress;\n if (!resolved) {\n throw new Error(\"IP-Sponsorship address not configured for this chain\");\n }\n const provider = new RpcProvider({ nodeUrl: this.config.rpcUrl });\n return newContract(IPSponsorshipABI as any, normalizeAddress(\"STARKNET\", resolved), provider);\n }\n\n async createOffer(\n account: AccountInterface,\n params: CreateSponsorshipOfferParams & { sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const specificSponsor = params.specificSponsor\n ? new CairoOption(CairoOptionVariant.Some, params.specificSponsor)\n : new CairoOption(CairoOptionVariant.None);\n\n const call = this._contract(account, params.sponsorshipAddress).populate(\"create_offer\", [\n params.nftContract,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.minAmount),\n params.duration,\n params.paymentToken,\n params.licenseTermsUri,\n params.transferable,\n cairo.uint256(params.royaltyBps),\n specificSponsor,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async setOfferOpen(\n account: AccountInterface,\n params: { offerId: bigint | string; open: boolean; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"set_offer_open\", [\n cairo.uint256(params.offerId),\n params.open,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async placeBid(\n account: AccountInterface,\n params: { offerId: bigint | string; amount: bigint | string; paymentToken: string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const sponsorshipAddress = params.sponsorshipAddress ?? this.sponsorshipAddress;\n if (!sponsorshipAddress) {\n throw new Error(\"IP-Sponsorship address not configured for this chain\");\n }\n const amount = cairo.uint256(params.amount);\n const approveCall = {\n contractAddress: params.paymentToken,\n entrypoint: \"approve\",\n calldata: [normalizeAddress(\"STARKNET\", sponsorshipAddress), amount.low.toString(), amount.high.toString()],\n };\n const bidCall = this._contract(account, sponsorshipAddress).populate(\"place_bid\", [\n cairo.uint256(params.offerId),\n amount,\n ]);\n const res = await account.execute([approveCall, bidCall]);\n return { txHash: res.transaction_hash };\n }\n\n async retractBid(\n account: AccountInterface,\n params: { offerId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"retract_bid\", [\n cairo.uint256(params.offerId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async acceptBid(\n account: AccountInterface,\n params: { offerId: bigint | string; sponsor: string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"accept_bid\", [\n cairo.uint256(params.offerId),\n params.sponsor,\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async proposeSponsorship(\n account: AccountInterface,\n params: ProposeSponsorshipParams & { sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"propose_sponsorship\", [\n params.nftContract,\n cairo.uint256(params.tokenId),\n cairo.uint256(params.amount),\n params.duration,\n params.validUntil ?? 0,\n params.paymentToken,\n params.licenseTermsUri,\n params.transferable,\n cairo.uint256(params.royaltyBps),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async withdrawProposal(\n account: AccountInterface,\n params: { proposalId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"withdraw_proposal\", [\n cairo.uint256(params.proposalId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async acceptProposal(\n account: AccountInterface,\n params: { proposalId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"accept_proposal\", [\n cairo.uint256(params.proposalId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async rejectProposal(\n account: AccountInterface,\n params: { proposalId: bigint | string; sponsorshipAddress?: string }\n ): Promise<TxResult> {\n const call = this._contract(account, params.sponsorshipAddress).populate(\"reject_proposal\", [\n cairo.uint256(params.proposalId),\n ]);\n const res = await account.execute([call]);\n return { txHash: res.transaction_hash };\n }\n\n async getOffer(params: { offerId: bigint | string; sponsorshipAddress?: string }): Promise<SponsorshipOfferRecord> {\n const o = await this._contractRead(params.sponsorshipAddress).call(\"get_offer\", [\n cairo.uint256(params.offerId),\n ]) as any;\n return {\n author: o.author as string,\n nftContract: o.nft_contract as string,\n tokenId: BigInt(o.token_id),\n minAmount: BigInt(o.min_amount),\n duration: Number(o.duration),\n paymentToken: o.payment_token as string,\n licenseTermsUri: o.license_terms_uri as string,\n transferable: Boolean(o.transferable),\n specificSponsor: o.specific_sponsor?.variant === \"Some\"\n ? (o.specific_sponsor.values?.[0] ?? o.specific_sponsor.value)\n : null,\n open: Boolean(o.open),\n royaltyBps: BigInt(o.royalty_bps),\n };\n }\n\n async getBid(params: { offerId: bigint | string; sponsor: string; sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params.sponsorshipAddress).call(\"get_bid\", [\n cairo.uint256(params.offerId),\n params.sponsor,\n ]);\n return BigInt(result as any);\n }\n\n async getProposal(params: { proposalId: bigint | string; sponsorshipAddress?: string }): Promise<SponsorshipProposalRecord> {\n const p = await this._contractRead(params.sponsorshipAddress).call(\"get_proposal\", [\n cairo.uint256(params.proposalId),\n ]) as any;\n return {\n proposer: p.proposer as string,\n nftContract: p.nft_contract as string,\n tokenId: BigInt(p.token_id),\n amount: BigInt(p.amount),\n duration: Number(p.duration),\n validUntil: Number(p.valid_until),\n paymentToken: p.payment_token as string,\n licenseTermsUri: p.license_terms_uri as string,\n transferable: Boolean(p.transferable),\n open: Boolean(p.open),\n royaltyBps: BigInt(p.royalty_bps),\n };\n }\n\n async getLastOfferId(params?: { sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params?.sponsorshipAddress).call(\"get_last_offer_id\", []);\n return BigInt(result as any);\n }\n\n async getLastProposalId(params?: { sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params?.sponsorshipAddress).call(\"get_last_proposal_id\", []);\n return BigInt(result as any);\n }\n\n async getLastLicenseId(params?: { sponsorshipAddress?: string }): Promise<bigint> {\n const result = await this._contractRead(params?.sponsorshipAddress).call(\"get_last_license_id\", []);\n return BigInt(result as any);\n }\n\n async royaltyInfo(params: {\n licenseId: bigint | string;\n salePrice: bigint | string;\n sponsorshipAddress?: string;\n }): Promise<{ recipient: string; amount: bigint }> {\n const [recipient, amount] = await this._contractRead(params.sponsorshipAddress).call(\"royalty_info\", [\n cairo.uint256(params.licenseId),\n cairo.uint256(params.salePrice),\n ]) as any;\n return { recipient: recipient as string, amount: BigInt(amount) };\n }\n}\n","import { type MedialaneConfig, resolveConfig, type ResolvedConfig } from \"../config.js\";\nimport { ApiClient } from \"../api/client.js\";\nimport { PopService } from \"./services/pop.js\";\nimport { DropService } from \"./services/drop.js\";\nimport { ERC1155CollectionService } from \"./services/erc1155collection.js\";\nimport { CreatorCoinService } from \"./services/creatorCoin.js\";\nimport { TicketService } from \"./services/ticket.js\";\nimport { ClubService } from \"./services/club.js\";\nimport { SponsorshipService } from \"./services/sponsorship.js\";\n\nexport class MedialaneClient {\n\n readonly api: ApiClient;\n\n readonly services: {\n readonly pop: PopService;\n readonly drop: DropService;\n readonly erc1155Collection: ERC1155CollectionService;\n readonly creatorCoin: CreatorCoinService;\n readonly ticket: TicketService;\n readonly club: ClubService;\n readonly sponsorship: SponsorshipService;\n };\n\n private readonly config: ResolvedConfig;\n\n constructor(rawConfig: MedialaneConfig = {}) {\n this.config = resolveConfig(rawConfig);\n\n this.services = {\n pop: new PopService(this.config),\n drop: new DropService(this.config),\n erc1155Collection: new ERC1155CollectionService(this.config),\n creatorCoin: new CreatorCoinService(this.config),\n ticket: new TicketService(this.config),\n club: new ClubService(this.config),\n sponsorship: new SponsorshipService(this.config),\n };\n\n if (!this.config.backendUrl) {\n\n const sentinel = new ApiClient(\"https://medialane-sdk-no-backend.invalid\", this.config.apiKey);\n const apiMethodNames = new Set<string | symbol>(\n Object.getOwnPropertyNames(ApiClient.prototype).filter(\n (k) => k !== \"constructor\" && typeof (sentinel as unknown as Record<string, unknown>)[k] === \"function\",\n ),\n );\n this.api = new Proxy(sentinel, {\n get(target, prop, receiver) {\n if (typeof prop === \"symbol\" || !apiMethodNames.has(prop)) {\n return Reflect.get(target, prop, receiver);\n }\n return () => {\n throw new Error(\n `backendUrl not configured. Pass backendUrl to MedialaneClient to use .api.${String(prop)}()`,\n );\n };\n },\n });\n } else {\n this.api = new ApiClient(this.config.backendUrl, this.config.apiKey, this.config.retryOptions, this.config.chain);\n }\n }\n\n get chain() {\n return this.config.chain;\n }\n\n get rpcUrl() {\n return this.config.rpcUrl;\n }\n\n get marketplaceContract() {\n return this.config.marketplaceContract;\n }\n}\n","\n\nimport { type Abi, Contract } from \"starknet\";\nimport { IPMarketplaceABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport type { OrderDetails } from \"../../types/marketplace.js\";\nimport { getProvider, newContract } from \"./utils.js\";\n\nconst _contractCache = new WeakMap<ResolvedConfig, { contract: Contract }>();\n\nfunction makeContract(config: ResolvedConfig): { contract: Contract } {\n const cached = _contractCache.get(config);\n if (cached) return cached;\n const contract = newContract(\n IPMarketplaceABI as unknown as Abi,\n config.marketplaceContract,\n getProvider(config)\n );\n const entry = { contract };\n _contractCache.set(config, entry);\n return entry;\n}\n\nexport async function getOrderDetails(\n orderHash: string,\n config: ResolvedConfig\n): Promise<OrderDetails> {\n const { contract } = makeContract(config);\n return contract.get_order_details(orderHash) as Promise<OrderDetails>;\n}\n\nexport async function getCounter(\n address: string,\n config: ResolvedConfig\n): Promise<bigint> {\n const { contract } = makeContract(config);\n return BigInt((await contract.get_counter(address)).toString());\n}\n","\n\nimport { type Abi, Contract } from \"starknet\";\nimport { Medialane1155ABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport type { OrderDetails } from \"../../types/marketplace.js\";\nimport { getProvider, newContract } from \"../marketplace/utils.js\";\n\nconst _contractCache = new WeakMap<ResolvedConfig, Contract>();\n\nfunction getContract(config: ResolvedConfig): Contract {\n let c = _contractCache.get(config);\n if (!c) {\n c = newContract(Medialane1155ABI as unknown as Abi, config.marketplace1155Contract, getProvider(config));\n _contractCache.set(config, c);\n }\n return c;\n}\n\nexport async function getOrderDetails1155(\n orderHash: string,\n config: ResolvedConfig\n): Promise<OrderDetails> {\n const contract = getContract(config);\n return contract.get_order_details(orderHash) as Promise<OrderDetails>;\n}\n\nexport async function getCounter1155(\n address: string,\n config: ResolvedConfig\n): Promise<bigint> {\n const contract = getContract(config);\n return BigInt((await contract.get_counter(address)).toString());\n}\n","import { type TypedData, TypedDataRevision, constants } from \"starknet\";\n\nconst STARKNET_DOMAIN = [\n { name: \"name\", type: \"shortstring\" },\n { name: \"version\", type: \"shortstring\" },\n { name: \"chainId\", type: \"shortstring\" },\n { name: \"revision\", type: \"shortstring\" },\n];\n\nconst OFFER_ITEM = [\n { name: \"item_type\", type: \"shortstring\" },\n { name: \"token\", type: \"ContractAddress\" },\n { name: \"identifier_or_criteria\", type: \"felt\" },\n { name: \"amount\", type: \"felt\" },\n];\n\nconst CONSIDERATION_ITEM = [\n { name: \"item_type\", type: \"shortstring\" },\n { name: \"token\", type: \"ContractAddress\" },\n { name: \"identifier_or_criteria\", type: \"felt\" },\n { name: \"amount\", type: \"felt\" },\n { name: \"recipient\", type: \"ContractAddress\" },\n];\n\nconst ORDER_PARAMETERS = [\n { name: \"offerer\", type: \"ContractAddress\" },\n { name: \"marketplace\", type: \"ContractAddress\" },\n { name: \"offer\", type: \"OfferItem\" },\n { name: \"consideration\", type: \"ConsiderationItem\" },\n { name: \"royalty_max_bps\", type: \"felt\" },\n { name: \"start_time\", type: \"felt\" },\n { name: \"end_time\", type: \"felt\" },\n { name: \"salt\", type: \"felt\" },\n { name: \"counter\", type: \"felt\" },\n];\n\nconst ORDER_CANCELLATION = [\n { name: \"order_hash\", type: \"felt\" },\n { name: \"offerer\", type: \"ContractAddress\" },\n];\n\nconst DOMAIN_VERSION: Record<\"erc721\" | \"erc1155\", string> = {\n erc721: \"5\",\n erc1155: \"4\",\n};\n\nfunction buildDomain(standard: \"erc721\" | \"erc1155\", chainId: constants.StarknetChainId | string) {\n return {\n name: \"Medialane\",\n version: DOMAIN_VERSION[standard],\n chainId,\n revision: TypedDataRevision.ACTIVE,\n };\n}\n\nexport function buildOrderTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc721\", chainId),\n primaryType: \"OrderParameters\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderParameters: ORDER_PARAMETERS,\n OfferItem: OFFER_ITEM,\n ConsiderationItem: CONSIDERATION_ITEM,\n },\n message,\n };\n}\n\nexport function build1155OrderTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc1155\", chainId),\n primaryType: \"OrderParameters\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderParameters: ORDER_PARAMETERS,\n OfferItem: OFFER_ITEM,\n ConsiderationItem: CONSIDERATION_ITEM,\n },\n message,\n };\n}\n\nexport function buildCancellationTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc721\", chainId),\n primaryType: \"OrderCancellation\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderCancellation: ORDER_CANCELLATION,\n },\n message,\n };\n}\n\nexport function build1155CancellationTypedData(\n message: Record<string, unknown>,\n chainId: constants.StarknetChainId | string,\n): TypedData {\n return {\n domain: buildDomain(\"erc1155\", chainId),\n primaryType: \"OrderCancellation\",\n types: {\n StarknetDomain: STARKNET_DOMAIN,\n OrderCancellation: ORDER_CANCELLATION,\n },\n message,\n };\n}\n","import { type Abi, type Call, type TypedData, Contract, cairo, shortString } from \"starknet\";\nimport { IPMarketplaceABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { stringifyBigInts } from \"../../utils/bigint.js\";\nimport { buildOrderTypedData, buildCancellationTypedData } from \"./signing.js\";\nimport { buildFeeCall } from \"../fee/index.js\";\nimport { getChainId, getProvider, newContract } from \"./utils.js\";\n\nexport interface OrderLeg {\n item_type: string;\n token: string;\n identifier_or_criteria: string;\n amount: string;\n recipient?: string;\n}\n\nexport interface OrderParams {\n offerer: string;\n marketplace: string;\n offer: OrderLeg;\n consideration: OrderLeg;\n royalty_max_bps: string;\n start_time: string;\n end_time: string;\n salt: string;\n counter: string;\n}\n\nexport interface BuildListingInput {\n offerer: string;\n nftContract: string;\n tokenId: string;\n\n priceWei: string;\n paymentTokenAddress: string;\n royaltyMaxBps: string;\n startTime: number;\n endTime: number;\n salt: string;\n counter: string;\n}\n\nexport type BuildOfferInput = BuildListingInput;\n\nfunction contractFor(cfg: ResolvedConfig): Contract {\n return newContract(IPMarketplaceABI as unknown as Abi, cfg.marketplaceContract, getProvider(cfg));\n}\n\nexport function buildListingOrder(\n i: BuildListingInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplaceContract,\n offer: { item_type: \"ERC721\", token: i.nftContract, identifier_or_criteria: i.tokenId, amount: \"1\" },\n consideration: {\n item_type: \"ERC20\",\n token: i.paymentTokenAddress,\n identifier_or_criteria: \"0\",\n amount: i.priceWei,\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(buildOrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg))) as TypedData;\n return { orderParams, typedData };\n}\n\nexport function buildOfferOrder(\n i: BuildOfferInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplaceContract,\n offer: { item_type: \"ERC20\", token: i.paymentTokenAddress, identifier_or_criteria: \"0\", amount: i.priceWei },\n consideration: {\n item_type: \"ERC721\",\n token: i.nftContract,\n identifier_or_criteria: i.tokenId,\n amount: \"1\",\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(buildOrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg))) as TypedData;\n return { orderParams, typedData };\n}\n\nfunction registerPayload(orderParams: OrderParams, signature: string[]) {\n return stringifyBigInts({\n parameters: {\n ...orderParams,\n offer: { ...orderParams.offer, item_type: shortString.encodeShortString(orderParams.offer.item_type) },\n consideration: {\n ...orderParams.consideration,\n item_type: shortString.encodeShortString(orderParams.consideration.item_type),\n },\n },\n signature,\n }) as Record<string, unknown>;\n}\n\nexport function buildRegisterCalls(\n a: { orderParams: OrderParams; signature: string[]; approvalNeeded: boolean; approve: Call },\n cfg: ResolvedConfig,\n): Call[] {\n const registerCall = contractFor(cfg).populate(\"register_order\", [registerPayload(a.orderParams, a.signature)]);\n return a.approvalNeeded ? [a.approve, registerCall] : [registerCall];\n}\n\nexport function buildFulfillCalls(\n a: { orderHash: string; paymentToken: string; totalPrice: string },\n cfg: ResolvedConfig,\n): Call[] {\n const u = cairo.uint256(a.totalPrice);\n const approve: Call = {\n contractAddress: a.paymentToken,\n entrypoint: \"approve\",\n calldata: [cfg.marketplaceContract, u.low.toString(), u.high.toString()],\n };\n const fulfill = contractFor(cfg).populate(\"fulfill_order\", [a.orderHash]);\n const fee = buildFeeCall(\n { surface: \"marketplace\", token: a.paymentToken, grossAmount: BigInt(a.totalPrice) },\n cfg.feeConfig,\n );\n return fee ? [approve, fulfill, fee] : [approve, fulfill];\n}\n\nexport function buildCancelCalls(\n a: { orderHash: string; offerer: string; signature: string[] },\n cfg: ResolvedConfig,\n): Call[] {\n const cancelRequest = stringifyBigInts({\n cancelation: { order_hash: a.orderHash, offerer: a.offerer },\n signature: a.signature,\n }) as Record<string, unknown>;\n return [contractFor(cfg).populate(\"cancel_order\", [cancelRequest])];\n}\n\nexport function buildCancelTypedData(orderHash: string, offerer: string, cfg: ResolvedConfig): TypedData {\n return stringifyBigInts(buildCancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg))) as TypedData;\n}\n","import { type Abi, type Call, type TypedData, Contract, cairo, shortString } from \"starknet\";\nimport { Medialane1155ABI } from \"../abis/index.js\";\nimport type { ResolvedConfig } from \"../../config.js\";\nimport { stringifyBigInts } from \"../../utils/bigint.js\";\nimport { build1155OrderTypedData, build1155CancellationTypedData } from \"../marketplace/signing.js\";\nimport { buildFeeCall } from \"../fee/index.js\";\nimport { getChainId, getProvider, newContract } from \"../marketplace/utils.js\";\nimport type { OrderParams } from \"../marketplace/build.js\";\n\nexport interface Build1155ListingInput {\n offerer: string;\n nftContract: string;\n tokenId: string;\n\n quantity: string;\n\n priceWeiPerUnit: string;\n paymentTokenAddress: string;\n royaltyMaxBps: string;\n startTime: number;\n endTime: number;\n salt: string;\n counter: string;\n}\n\nexport type Build1155OfferInput = Build1155ListingInput;\n\nfunction contractFor(cfg: ResolvedConfig): Contract {\n return newContract(Medialane1155ABI as unknown as Abi, cfg.marketplace1155Contract, getProvider(cfg));\n}\n\nexport function buildListing1155Order(\n i: Build1155ListingInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplace1155Contract,\n offer: { item_type: \"ERC1155\", token: i.nftContract, identifier_or_criteria: i.tokenId, amount: i.quantity },\n consideration: {\n item_type: \"ERC20\",\n token: i.paymentTokenAddress,\n identifier_or_criteria: \"0\",\n amount: i.priceWeiPerUnit,\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(\n build1155OrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg)),\n ) as TypedData;\n return { orderParams, typedData };\n}\n\nexport function buildOffer1155Order(\n i: Build1155OfferInput,\n cfg: ResolvedConfig,\n): { orderParams: OrderParams; typedData: TypedData } {\n const orderParams: OrderParams = {\n offerer: i.offerer,\n marketplace: cfg.marketplace1155Contract,\n offer: { item_type: \"ERC20\", token: i.paymentTokenAddress, identifier_or_criteria: \"0\", amount: i.priceWeiPerUnit },\n consideration: {\n item_type: \"ERC1155\",\n token: i.nftContract,\n identifier_or_criteria: i.tokenId,\n amount: i.quantity,\n recipient: i.offerer,\n },\n royalty_max_bps: i.royaltyMaxBps,\n start_time: String(i.startTime),\n end_time: String(i.endTime),\n salt: i.salt,\n counter: i.counter,\n };\n const typedData = stringifyBigInts(\n build1155OrderTypedData(orderParams as unknown as Record<string, unknown>, getChainId(cfg)),\n ) as TypedData;\n return { orderParams, typedData };\n}\n\nfunction registerPayload(orderParams: OrderParams, signature: string[]) {\n return stringifyBigInts({\n parameters: {\n ...orderParams,\n offer: { ...orderParams.offer, item_type: shortString.encodeShortString(orderParams.offer.item_type) },\n consideration: {\n ...orderParams.consideration,\n item_type: shortString.encodeShortString(orderParams.consideration.item_type),\n },\n },\n signature,\n }) as Record<string, unknown>;\n}\n\nexport function buildRegister1155Calls(\n a: { orderParams: OrderParams; signature: string[]; approvalNeeded: boolean; approve: Call },\n cfg: ResolvedConfig,\n): Call[] {\n const registerCall = contractFor(cfg).populate(\"register_order\", [registerPayload(a.orderParams, a.signature)]);\n return a.approvalNeeded ? [a.approve, registerCall] : [registerCall];\n}\n\nexport function buildFulfill1155Calls(\n a: { orderHash: string; paymentToken: string; totalPrice: string; quantity: string },\n cfg: ResolvedConfig,\n): Call[] {\n const u = cairo.uint256(a.totalPrice);\n const approve: Call = {\n contractAddress: a.paymentToken,\n entrypoint: \"approve\",\n calldata: [cfg.marketplace1155Contract, u.low.toString(), u.high.toString()],\n };\n const fulfill = contractFor(cfg).populate(\"fulfill_order\", [a.orderHash, a.quantity]);\n const fee = buildFeeCall(\n { surface: \"marketplace\", token: a.paymentToken, grossAmount: BigInt(a.totalPrice) },\n cfg.feeConfig,\n );\n return fee ? [approve, fulfill, fee] : [approve, fulfill];\n}\n\nexport function buildCancel1155Calls(\n a: { orderHash: string; offerer: string; signature: string[] },\n cfg: ResolvedConfig,\n): Call[] {\n const cancelPayload = stringifyBigInts({\n cancelation: { order_hash: a.orderHash, offerer: a.offerer },\n signature: a.signature,\n }) as Record<string, unknown>;\n return [contractFor(cfg).populate(\"cancel_order\", [cancelPayload])];\n}\n\nexport function buildCancel1155TypedData(orderHash: string, offerer: string, cfg: ResolvedConfig): TypedData {\n return stringifyBigInts(\n build1155CancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg)),\n ) as TypedData;\n}\n","import { type Call, cairo, hash, num, type ProviderInterface } from \"starknet\";\nimport type {\n VenueAdapter,\n RegisterOrderParams,\n OrderRef,\n AdapterTxResult,\n} from \"../adapters/types.js\";\nimport type { StarknetVenueSigner } from \"./index.js\";\nimport type { ResolvedConfig } from \"../config.js\";\nimport { getOrderDetails } from \"./marketplace/orders.js\";\nimport { resolveToken, START_TIME_BUFFER_SECS } from \"./marketplace/utils.js\";\nimport {\n buildListingOrder,\n buildOfferOrder,\n buildRegisterCalls,\n buildFulfillCalls,\n buildCancelCalls,\n buildCancelTypedData,\n} from \"./marketplace/build.js\";\nimport {\n buildListing1155Order,\n buildOffer1155Order,\n buildRegister1155Calls,\n buildFulfill1155Calls,\n buildCancel1155Calls,\n buildCancel1155TypedData,\n} from \"./marketplace1155/build.js\";\n\nconst NO_EXPIRY_SECONDS = 100 * 365 * 24 * 3600;\n\nexport interface ResolvedOrder {\n\n paymentToken: string;\n\n unitPrice: string;\n\n standard: \"ERC721\" | \"ERC1155\";\n}\n\nexport interface StarknetVenueDeps {\n config: ResolvedConfig;\n\n provider: ProviderInterface;\n\n resolveOrder: (orderRef: OrderRef) => Promise<ResolvedOrder>;\n\n resolveStandard: (contract: string) => Promise<\"ERC721\" | \"ERC1155\">;\n}\n\nexport class StarknetVenue implements VenueAdapter<StarknetVenueSigner> {\n readonly chain = \"STARKNET\" as const;\n\n constructor(private readonly deps: StarknetVenueDeps) {}\n\n async incrementCounter(signer: StarknetVenueSigner): Promise<AdapterTxResult> {\n return signer.execute([\n { contractAddress: this.deps.config.marketplaceContract, entrypoint: \"increment_counter\", calldata: [] },\n ]);\n }\n\n getOrderDetails(orderRef: OrderRef): Promise<unknown> {\n return getOrderDetails(orderRef, this.deps.config);\n }\n\n async getCounter(address: string): Promise<bigint> {\n return this.readCounter(this.deps.config.marketplaceContract, address);\n }\n\n async fulfillOrder(\n signer: StarknetVenueSigner,\n orderRef: OrderRef,\n opts?: { quantity?: string } & Record<string, string | undefined>,\n ): Promise<AdapterTxResult> {\n const o = await this.deps.resolveOrder(orderRef);\n const quantity = opts?.quantity ?? \"1\";\n\n const totalPrice = (BigInt(o.unitPrice) * BigInt(quantity)).toString();\n const calls =\n o.standard === \"ERC1155\"\n ? buildFulfill1155Calls({ orderHash: orderRef, paymentToken: o.paymentToken, totalPrice, quantity }, this.deps.config)\n : buildFulfillCalls({ orderHash: orderRef, paymentToken: o.paymentToken, totalPrice }, this.deps.config);\n return signer.execute(calls);\n }\n\n async cancelOrder(signer: StarknetVenueSigner, orderRef: OrderRef): Promise<AdapterTxResult> {\n const o = await this.deps.resolveOrder(orderRef);\n const typedData =\n o.standard === \"ERC1155\"\n ? buildCancel1155TypedData(orderRef, signer.address, this.deps.config)\n : buildCancelTypedData(orderRef, signer.address, this.deps.config);\n const signature = await signer.signTypedData(typedData);\n const calls =\n o.standard === \"ERC1155\"\n ? buildCancel1155Calls({ orderHash: orderRef, offerer: signer.address, signature }, this.deps.config)\n : buildCancelCalls({ orderHash: orderRef, offerer: signer.address, signature }, this.deps.config);\n return signer.execute(calls);\n }\n\n async registerOrder(\n signer: StarknetVenueSigner,\n p: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const standard = await this.deps.resolveStandard(p.asset.contract);\n const paymentTokenAddress = resolveToken(p.paymentToken).address;\n const royaltyMaxBps = String(p.royaltyMaxBps);\n const startTime = Math.floor(Date.now() / 1000) + START_TIME_BUFFER_SECS;\n const endTime = p.endTime && p.endTime > 0 ? p.endTime : startTime + NO_EXPIRY_SECONDS;\n const quantity = p.quantity ?? \"1\";\n const marketplace =\n standard === \"ERC1155\" ? this.deps.config.marketplace1155Contract : this.deps.config.marketplaceContract;\n const counter = String(await this.readCounter(marketplace, signer.address));\n\n let typedData;\n let buildCalls: (sig: string[]) => Call[];\n\n if (standard === \"ERC1155\") {\n\n const built = (p.side === \"listing\" ? buildListing1155Order : buildOffer1155Order)(\n {\n offerer: signer.address,\n nftContract: p.asset.contract,\n tokenId: p.asset.tokenId,\n quantity,\n priceWeiPerUnit: p.amount,\n paymentTokenAddress,\n royaltyMaxBps,\n startTime,\n endTime,\n salt: p.salt,\n counter,\n },\n this.deps.config,\n );\n typedData = built.typedData;\n const approval =\n p.side === \"listing\"\n ? await this.approval1155ForListing(signer.address, p.asset.contract)\n : this.approvalForErc20(paymentTokenAddress, (BigInt(p.amount) * BigInt(quantity)).toString(), marketplace);\n buildCalls = (sig) =>\n buildRegister1155Calls({ orderParams: built.orderParams, signature: sig, ...approval }, this.deps.config);\n } else {\n const built = (p.side === \"listing\" ? buildListingOrder : buildOfferOrder)(\n {\n offerer: signer.address,\n nftContract: p.asset.contract,\n tokenId: p.asset.tokenId,\n priceWei: p.amount,\n paymentTokenAddress,\n royaltyMaxBps,\n startTime,\n endTime,\n salt: p.salt,\n counter,\n },\n this.deps.config,\n );\n typedData = built.typedData;\n const approval =\n p.side === \"listing\"\n ? await this.approval721ForListing(signer.address, p.asset.contract, p.asset.tokenId)\n : this.approvalForErc20(paymentTokenAddress, p.amount, marketplace);\n buildCalls = (sig) =>\n buildRegisterCalls({ orderParams: built.orderParams, signature: sig, ...approval }, this.deps.config);\n }\n\n const signature = await signer.signTypedData(typedData);\n const { txHash } = await signer.execute(buildCalls(signature));\n const orderRef = await this.orderRefFromReceipt(txHash);\n return { txHash, orderRef };\n }\n\n private async readCounter(marketplace: string, address: string): Promise<bigint> {\n const res = await this.deps.provider.callContract({\n contractAddress: marketplace,\n entrypoint: \"get_counter\",\n calldata: [address],\n });\n return BigInt(res[0] ?? \"0\");\n }\n\n private async approval721ForListing(\n _owner: string,\n nftContract: string,\n tokenId: string,\n ): Promise<{ approvalNeeded: boolean; approve: Call }> {\n const id = cairo.uint256(tokenId);\n const approve: Call = {\n contractAddress: nftContract,\n entrypoint: \"approve\",\n calldata: [this.deps.config.marketplaceContract, id.low.toString(), id.high.toString()],\n };\n let approved = false;\n try {\n const res = await this.deps.provider.callContract({\n contractAddress: nftContract,\n entrypoint: \"get_approved\",\n calldata: [id.low.toString(), id.high.toString()],\n });\n approved = BigInt(res[0]).toString() === BigInt(this.deps.config.marketplaceContract).toString();\n } catch {\n\n }\n return { approvalNeeded: !approved, approve };\n }\n\n private async approval1155ForListing(\n owner: string,\n nftContract: string,\n ): Promise<{ approvalNeeded: boolean; approve: Call }> {\n const approve: Call = {\n contractAddress: nftContract,\n entrypoint: \"set_approval_for_all\",\n calldata: [this.deps.config.marketplace1155Contract, \"1\"],\n };\n let approved = false;\n try {\n const res = await this.deps.provider.callContract({\n contractAddress: nftContract,\n entrypoint: \"is_approved_for_all\",\n calldata: [owner, this.deps.config.marketplace1155Contract],\n });\n approved = BigInt(res[0]) === 1n;\n } catch {\n\n }\n return { approvalNeeded: !approved, approve };\n }\n\n private approvalForErc20(\n token: string,\n amountWei: string,\n marketplace: string,\n ): { approvalNeeded: boolean; approve: Call } {\n const u = cairo.uint256(amountWei);\n return {\n approvalNeeded: true,\n approve: {\n contractAddress: token,\n entrypoint: \"approve\",\n calldata: [marketplace, u.low.toString(), u.high.toString()],\n },\n };\n }\n\n private async orderRefFromReceipt(txHash: string): Promise<OrderRef> {\n const receipt = (await this.deps.provider.getTransactionReceipt(txHash)) as {\n events?: { from_address?: string; keys?: string[] }[];\n };\n const selector = hash.getSelectorFromName(\"OrderCreated\");\n for (const ev of receipt.events ?? []) {\n if (ev.keys?.[0] && BigInt(ev.keys[0]) === BigInt(selector)) {\n return num.toHex(ev.keys[1]);\n }\n }\n throw new Error(\"StarknetVenue.registerOrder: OrderCreated event not found in receipt\");\n }\n}\n","import type { TypedData } from \"starknet\";\nimport type { RequestSiwsTokenArgs } from \"./types.js\";\n\nconst STORAGE_PREFIX = \"ml_siws_\";\n\nfunction decodeBase64url(str: string): string {\n const base64 = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return atob(base64 + padding);\n}\n\nfunction readTokenExpiry(token: string): number | null {\n try {\n if (!token.startsWith(\"siws_\")) return null;\n const inner = token.slice(5);\n const dot = inner.lastIndexOf(\".\");\n if (dot === -1) return null;\n const data = JSON.parse(decodeBase64url(inner.slice(0, dot))) as { exp?: number };\n return typeof data.exp === \"number\" ? data.exp : null;\n } catch {\n return null;\n }\n}\n\nexport function getSiwsStorageKey(address: string): string {\n return `${STORAGE_PREFIX}${address.toLowerCase()}`;\n}\n\nexport function isSiwsTokenValid(token: string | null | undefined): token is string {\n if (!token?.startsWith(\"siws_\")) return false;\n const expiry = readTokenExpiry(token);\n return Boolean(expiry && expiry > Math.floor(Date.now() / 1000));\n}\n\nexport function getStoredSiwsToken(address: string): string | null {\n if (typeof window === \"undefined\") return null;\n const key = getSiwsStorageKey(address);\n const token = localStorage.getItem(key);\n if (isSiwsTokenValid(token)) return token;\n localStorage.removeItem(key);\n return null;\n}\n\nexport function storeSiwsToken(address: string, token: string): void {\n if (typeof window === \"undefined\") return;\n localStorage.setItem(getSiwsStorageKey(address), token);\n}\n\nexport function normalizeSiwsSignature(signature: unknown): string[] {\n if (Array.isArray(signature)) {\n return signature.map(String);\n }\n\n if (signature && typeof signature === \"object\") {\n const { r, s } = signature as { r?: unknown; s?: unknown };\n if (r !== undefined && s !== undefined) {\n return [String(r), String(s)];\n }\n }\n\n return [String(signature)];\n}\n\nexport async function requestSiwsToken({\n backendUrl,\n walletAddress,\n signer,\n appSource,\n}: RequestSiwsTokenArgs): Promise<string> {\n const base = backendUrl.replace(/\\/$/, \"\");\n\n const nonceRes = await fetch(`${base}/v1/auth/siws/nonce`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ walletAddress }),\n });\n\n if (!nonceRes.ok) {\n throw new Error(\"Failed to prepare wallet sign-in\");\n }\n\n const { nonce, typedData } = await nonceRes.json() as {\n nonce: string;\n typedData: TypedData;\n };\n\n const signature = normalizeSiwsSignature(await signer.signMessage(typedData));\n const verifyRes = await fetch(`${base}/v1/auth/siws/verify`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ walletAddress, nonce, signature, ...(appSource ? { appSource } : {}) }),\n });\n\n if (!verifyRes.ok) {\n\n let backendMessage: string | undefined;\n try {\n const body = await verifyRes.json() as { error?: string; message?: string };\n if (body?.message) backendMessage = body.message;\n } catch {\n\n }\n throw new Error(backendMessage ?? \"Wallet sign-in failed\");\n }\n\n const { token } = await verifyRes.json() as { token?: string };\n if (!isSiwsTokenValid(token)) {\n throw new Error(\"Wallet sign-in returned an invalid token\");\n }\n\n storeSiwsToken(walletAddress, token);\n return token;\n}\n","import type { TypedData } from \"starknet\";\nimport type { ApiClient } from \"../../api/client.js\";\nimport type { ApiFundingInstructions, ApiFundingIntent, ApiFundingSubmit } from \"../../types/api.js\";\n\nexport interface FundingTransferCall {\n contractAddress: string;\n entrypoint: \"transfer\";\n calldata: string[];\n}\n\nexport interface FundingWallet {\n address: string;\n signTypedData(typedData: TypedData): Promise<string[]>;\n sendTransfer(call: FundingTransferCall): Promise<{ txHash: string }>;\n}\n\nexport class FundingTransferNotSentError extends Error {\n constructor(message = \"The transfer was not sent.\") {\n super(message);\n this.name = \"FundingTransferNotSentError\";\n }\n}\n\ntype Res<T> = Promise<{ data: T }>;\n\nexport interface FundingApi {\n createFunding(input: { method: string; params: Record<string, unknown> }): Res<ApiFundingIntent>;\n getFundingChallenge(id: string, payer: string): Res<{ typedData: unknown }>;\n authorizeFunding(id: string, input: { payer: string; signature: string[] }): Res<{ instructions: ApiFundingInstructions }>;\n submitFunding(id: string, txHash: string): Res<ApiFundingSubmit>;\n cancelFunding(id: string): Res<{ status: string }>;\n}\n\nexport function fundingApiFor(client: ApiClient, siwsToken?: string): FundingApi {\n return {\n createFunding: (input) => client.createFunding(input, siwsToken),\n getFundingChallenge: (id, payer) => client.getFundingChallenge(id, payer, siwsToken),\n authorizeFunding: (id, input) => client.authorizeFunding(id, input, siwsToken),\n submitFunding: (id, txHash) => client.submitFunding(id, txHash, siwsToken),\n cancelFunding: (id) => client.cancelFunding(id, siwsToken),\n };\n}\n\nexport function buildFundingTransferCall(instructions: ApiFundingInstructions): FundingTransferCall {\n const amount = BigInt(instructions.amountAtomic);\n const mask = (1n << 128n) - 1n;\n return {\n contractAddress: instructions.asset,\n entrypoint: \"transfer\",\n calldata: [instructions.payTo, (amount & mask).toString(), (amount >> 128n).toString()],\n };\n}\n\nexport type FundingStep = \"creating\" | \"signing\" | \"authorizing\" | \"paying\" | \"confirming\";\n\nexport type FundingResult =\n | { status: \"SETTLED\"; intentId: string; credited?: number }\n | { status: \"PENDING\"; intentId: string; reason: string };\n\nexport interface FundWithTransferOptions {\n amountUsdc: string;\n onStep?: (step: FundingStep) => void;\n pollMs?: number;\n maxPolls?: number;\n sleep?: (ms: number) => Promise<void>;\n}\n\nexport async function fundWithChainTransfer(\n api: FundingApi,\n wallet: FundingWallet,\n options: FundWithTransferOptions,\n): Promise<FundingResult> {\n const step = options.onStep ?? (() => {});\n const sleep = options.sleep ?? ((ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms)));\n const pollMs = options.pollMs ?? 3000;\n const maxPolls = options.maxPolls ?? 20;\n\n step(\"creating\");\n const { data: intent } = await api.createFunding({ method: \"chain-transfer\", params: { amountUsdc: options.amountUsdc } });\n\n let txHash: string;\n let transferStarted = false;\n try {\n step(\"signing\");\n const challenge = await api.getFundingChallenge(intent.id, wallet.address);\n const signature = await wallet.signTypedData(challenge.data.typedData as TypedData);\n\n step(\"authorizing\");\n const authorized = await api.authorizeFunding(intent.id, { payer: wallet.address, signature });\n\n step(\"paying\");\n transferStarted = true;\n ({ txHash } = await wallet.sendTransfer(buildFundingTransferCall(authorized.data.instructions)));\n } catch (err) {\n if (!transferStarted || err instanceof FundingTransferNotSentError) {\n await api.cancelFunding(intent.id).catch(() => undefined);\n }\n throw err;\n }\n\n step(\"confirming\");\n let reason = \"waiting for the transfer to confirm\";\n for (let attempt = 0; attempt < maxPolls; attempt++) {\n const res = await api.submitFunding(intent.id, txHash);\n if (res.data.status === \"SETTLED\") {\n return { status: \"SETTLED\", intentId: intent.id, credited: res.data.credited };\n }\n reason = res.data.reason;\n await sleep(pollMs);\n }\n return { status: \"PENDING\", intentId: intent.id, reason };\n}\n","import { UserFacingError } from \"../../errors.js\";\nimport type { Call, TypedData } from \"starknet\";\nimport type { StarknetVenueSigner } from \"../index.js\";\nimport type { MedialaneClient } from \"../client.js\";\nimport type { ApiIntentCreated } from \"../../types/api.js\";\nimport type { ReceiptLike } from \"./receipts.js\";\n\nexport interface ReceiptProvider {\n getTransactionReceipt(txHash: string): Promise<unknown>;\n}\n\nexport async function confirmIntentBestEffort(\n client: MedialaneClient,\n intentId: string,\n txHash: string,\n): Promise<void> {\n await client.api.confirmIntent(intentId, txHash).catch(() => {});\n}\n\nconst SYNC_TIMEOUT_MS = 6000;\n\nexport async function syncTransactionBestEffort(\n client: MedialaneClient,\n txHash: string,\n timeoutMs = SYNC_TIMEOUT_MS,\n): Promise<void> {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const timeout = new Promise<void>((resolve) => {\n timer = setTimeout(() => resolve(), timeoutMs);\n });\n const sync = client.api.syncTransaction(txHash).then(() => {}, () => {});\n try {\n await Promise.race([sync, timeout]);\n } finally {\n if (timer) clearTimeout(timer);\n }\n}\n\nconst RECEIPT_RETRY_DELAYS_MS = [0, 3000, 5000, 7000, 10000];\n\ninterface ReceiptStatusShape extends ReceiptLike {\n execution_status?: string;\n finality_status?: string;\n status?: string;\n}\n\nexport async function assertTransactionSucceeded(\n provider: ReceiptProvider,\n txHash: string,\n retryDelaysMs: readonly number[] = RECEIPT_RETRY_DELAYS_MS,\n): Promise<ReceiptLike> {\n for (let attempt = 0; attempt < retryDelaysMs.length; attempt++) {\n const delay = retryDelaysMs[attempt];\n if (delay) await new Promise<void>((r) => setTimeout(r, delay));\n try {\n const receipt = (await provider.getTransactionReceipt(txHash)) as ReceiptStatusShape;\n const status = receipt.execution_status ?? receipt.status;\n if (status === \"REVERTED\" || status === \"REJECTED\") {\n throw new UserFacingError(\"Transaction was submitted but reverted onchain. Please check your balance and try again.\");\n }\n if (status) return receipt;\n } catch (err) {\n if (err instanceof Error && err.message.includes(\"reverted onchain\")) throw err;\n }\n }\n throw new UserFacingError(\"Verification timed out. Check your account for the transaction status.\");\n}\n\nexport interface ExecuteIntentOpts {\n confirm?: boolean;\n}\n\nexport async function executeIntent(\n provider: ReceiptProvider,\n signer: StarknetVenueSigner,\n client: MedialaneClient,\n intent: ApiIntentCreated,\n opts: ExecuteIntentOpts = {},\n): Promise<{ txHash: string; receipt: ReceiptLike }> {\n let calls: Call[];\n if (intent.requiresSignature) {\n const signature = await signer.signTypedData(intent.typedData as TypedData);\n const signed = await client.api.submitIntentSignature(intent.id, signature);\n calls = signed.data.calls as Call[];\n } else {\n calls = intent.calls as Call[];\n }\n\n const { txHash } = await signer.execute(calls);\n const receipt = await assertTransactionSucceeded(provider, txHash);\n await Promise.all([\n syncTransactionBestEffort(client, txHash),\n opts.confirm !== false ? confirmIntentBestEffort(client, intent.id, txHash) : undefined,\n ]);\n return { txHash, receipt };\n}\n\nexport async function executeIntents(\n provider: ReceiptProvider,\n signer: StarknetVenueSigner,\n client: MedialaneClient,\n intents: ApiIntentCreated[],\n opts: ExecuteIntentOpts = {},\n): Promise<{ txHash: string; receipt: ReceiptLike }> {\n if (intents.some((i) => i.requiresSignature)) {\n throw new Error(\"Expected prebuilt intents (requiresSignature=false)\");\n }\n const calls = intents.flatMap((i) => (i as Extract<ApiIntentCreated, { requiresSignature: false }>).calls) as Call[];\n const { txHash } = await signer.execute(calls);\n const receipt = await assertTransactionSucceeded(provider, txHash);\n await Promise.all([\n syncTransactionBestEffort(client, txHash),\n ...(opts.confirm !== false ? intents.map((i) => confirmIntentBestEffort(client, i.id, txHash)) : []),\n ]);\n return { txHash, receipt };\n}\n","import { hash } from \"starknet\";\nimport { normalizeAddress } from \"../../utils/address.js\";\nimport { getService } from \"../../services/registry.js\";\n\nexport interface ReceiptLike {\n events?: Array<{ from_address?: string; keys?: string[]; data?: string[] }>;\n}\n\ntype ReceiptEvent = NonNullable<ReceiptLike[\"events\"]>[number];\n\nexport type DeployingServiceId = \"mip-erc1155\" | \"ip-tickets\" | \"ip-ticketing\" | \"ip-club\" | \"drop-collection\";\n\nconst DEPLOY_EVENTS: Record<DeployingServiceId, { event: string; address: (e: ReceiptEvent) => string | undefined }> = {\n \"mip-erc1155\": { event: \"CollectionDeployed\", address: (e) => e.keys?.[1] },\n \"ip-tickets\": { event: \"CollectionDeployed\", address: (e) => e.keys?.[1] },\n \"ip-ticketing\": { event: \"CollectionDeployed\", address: (e) => e.keys?.[1] },\n \"ip-club\": { event: \"ClubDeployed\", address: (e) => e.keys?.[1] },\n \"drop-collection\": { event: \"DropCreated\", address: (e) => e.data?.[0] },\n};\n\nconst IP_MINTED_SELECTOR = BigInt(hash.getSelectorFromName(\"IPMinted\"));\nconst TRANSFER_SELECTOR = BigInt(hash.getSelectorFromName(\"Transfer\"));\n\nfunction sameFelt(a: string | undefined, b: string | bigint): boolean {\n if (a === undefined) return false;\n try {\n return BigInt(a) === BigInt(b);\n } catch {\n return false;\n }\n}\n\nfunction u256(low: string | undefined, high: string | undefined): string {\n return (BigInt(low ?? 0) + (BigInt(high ?? 0) << 128n)).toString();\n}\n\nexport function deployedCollectionFromReceipt(receipt: ReceiptLike, service: DeployingServiceId): string | null {\n const factory = getService(service)?.onchain?.STARKNET?.factoryAddress;\n const { event, address } = DEPLOY_EVENTS[service];\n const selector = BigInt(hash.getSelectorFromName(event));\n for (const e of receipt.events ?? []) {\n if (factory && !sameFelt(e.from_address, factory)) continue;\n if (!sameFelt(e.keys?.[0], selector)) continue;\n const value = address(e);\n if (value) return normalizeAddress(\"STARKNET\", value);\n }\n return null;\n}\n\nexport function mintedTokenIdFromReceipt(receipt: ReceiptLike, contract: string): string | null {\n for (const e of receipt.events ?? []) {\n if (!sameFelt(e.from_address, contract)) continue;\n const keys = e.keys ?? [];\n if (sameFelt(keys[0], IP_MINTED_SELECTOR) && keys.length >= 3) return u256(keys[1], keys[2]);\n if (sameFelt(keys[0], TRANSFER_SELECTOR) && keys.length === 5 && sameFelt(keys[1], 0n)) return u256(keys[3], keys[4]);\n }\n return null;\n}\n","import type { Call, TypedData } from \"starknet\";\n\nexport interface TypedDataSigner {\n address: string;\n signTypedData(typedData: TypedData): Promise<string[]>;\n}\n\nexport interface SponsoredExecuteConfig {\n proxyUrl: string;\n fetchImpl?: typeof fetch;\n}\n\nexport type SponsoredExecuteResult =\n | { status: \"sponsored\"; transactionHash: string }\n | { status: \"unavailable\"; reason: string };\n\nexport class SponsoredCallRejectedError extends Error {}\n\nexport type SponsorshipFailureCode =\n | \"sponsor_unavailable\"\n | \"credits_exhausted\"\n | \"account_not_deployed\"\n | \"not_executable\"\n | \"invalid_request\"\n | \"not_authorized\"\n | \"rate_limited\"\n | \"may_have_broadcast\";\n\nconst FALLBACK_FUNDING_FAILURES: ReadonlySet<string> = new Set([\"sponsor_unavailable\", \"credits_exhausted\"]);\n\nexport function allowsFallbackFunding(code: string | undefined, status: number, stage: \"build\" | \"execute\"): boolean {\n if (code) return FALLBACK_FUNDING_FAILURES.has(code);\n return stage === \"build\" ? status >= 500 : status === 503;\n}\n\nasync function failureOf(res: Response, fallback: string): Promise<{ reason: string; code?: string }> {\n const body = (await res.json().catch(() => null)) as { error?: string; code?: string } | null;\n return { reason: body?.error || fallback, code: typeof body?.code === \"string\" ? body.code : undefined };\n}\n\nexport async function executeSponsored(\n config: SponsoredExecuteConfig,\n signer: TypedDataSigner,\n calls: Call[],\n): Promise<SponsoredExecuteResult> {\n const doFetch = config.fetchImpl ?? fetch;\n const base = config.proxyUrl.replace(/\\/$/, \"\");\n const headers = { \"Content-Type\": \"application/json\" };\n\n const buildRes = await doFetch(`${base}/build`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ userAddress: signer.address, calls }),\n });\n if (!buildRes.ok) {\n const { reason, code } = await failureOf(buildRes, \"We couldn't prepare this transaction.\");\n if (allowsFallbackFunding(code, buildRes.status, \"build\")) return { status: \"unavailable\", reason };\n throw new SponsoredCallRejectedError(reason);\n }\n const { typedData } = (await buildRes.json()) as { typedData: TypedData };\n\n const signature = await signer.signTypedData(typedData);\n\n const executeRes = await doFetch(`${base}/execute`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ userAddress: signer.address, typedData, signature, calls }),\n });\n if (!executeRes.ok) {\n const { reason, code } = await failureOf(executeRes, \"We couldn't submit this transaction.\");\n if (allowsFallbackFunding(code, executeRes.status, \"execute\")) {\n return { status: \"unavailable\", reason };\n }\n throw new SponsoredCallRejectedError(reason);\n }\n const { transactionHash } = (await executeRes.json()) as { transactionHash: string };\n return { status: \"sponsored\", transactionHash };\n}\n","import { num } from \"starknet\";\n\nexport function encodeByteArray(str: string): string[] {\n const bytes = new TextEncoder().encode(str);\n const fullChunks: string[] = [];\n\n let i = 0;\n while (i + 31 <= bytes.length) {\n let val = 0n;\n for (const b of bytes.slice(i, i + 31)) {\n val = (val << 8n) | BigInt(b);\n }\n fullChunks.push(num.toHex(val));\n i += 31;\n }\n\n const remaining = bytes.slice(i);\n let pendingVal = 0n;\n for (const b of remaining) {\n pendingVal = (pendingVal << 8n) | BigInt(b);\n }\n\n return [\n fullChunks.length.toString(),\n ...fullChunks,\n num.toHex(pendingVal),\n remaining.length.toString(),\n ];\n}\n","import { extract, expand } from \"@noble/hashes/hkdf.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { ec, num } from \"starknet\";\n\nconst STARK_ORDER = 3618502788666131213697322783095070105526743751716087489154079457884512865583n;\n\nexport function deriveOwnerKeyPair(\n secret: Uint8Array,\n recipientId: string,\n): { privateKey: string; publicKey: string } {\n const prk = extract(sha256, secret);\n const okm = expand(sha256, prk, new TextEncoder().encode(recipientId), 32);\n let scalar = BigInt(\"0x\" + Buffer.from(okm).toString(\"hex\")) % STARK_ORDER;\n if (scalar === 0n) scalar = 1n;\n const privateKey = num.toHex(scalar);\n const publicKey = ec.starkCurve.getStarkKey(privateKey);\n return { privateKey, publicKey };\n}\n","import { hash, num, type BigNumberish, type Call } from \"starknet\";\n\nconst STARKNET_SIGNER_TYPE = \"0x537461726b6e6574205369676e6572\";\nconst OPTION_NONE = \"0x1\";\nconst SIGNER_STARKNET = \"0x0\";\n\nexport function computeOwnerGuid(ownerPubkey: BigNumberish): string {\n return hash.computePoseidonHash(STARKNET_SIGNER_TYPE, num.toHex(ownerPubkey));\n}\n\nfunction changeOwners(accountAddress: string, guidsToRemove: string[], pubkeysToAdd: BigNumberish[]): Call {\n return {\n contractAddress: accountAddress,\n entrypoint: \"change_owners\",\n calldata: [\n num.toHex(guidsToRemove.length),\n ...guidsToRemove,\n num.toHex(pubkeysToAdd.length),\n ...pubkeysToAdd.flatMap((p) => [SIGNER_STARKNET, num.toHex(p)]),\n OPTION_NONE,\n ],\n };\n}\n\nexport function buildAddOwnerCall(accountAddress: string, addOwnerPubkey: BigNumberish): Call {\n return changeOwners(accountAddress, [], [addOwnerPubkey]);\n}\n\nexport function buildRemoveOwnerCall(accountAddress: string, removeOwnerPubkey: BigNumberish): Call {\n return changeOwners(accountAddress, [computeOwnerGuid(removeOwnerPubkey)], []);\n}\n\nexport function buildRemoveOwnerByGuidCall(accountAddress: string, ownerGuid: BigNumberish): Call {\n return changeOwners(accountAddress, [num.toHex(ownerGuid)], []);\n}\n","import { num, type BigNumberish, type DeployAccountContractPayload } from \"starknet\";\nimport { STARKNET_MEDIAWALLET_CLASS_HASH } from \"../../constants.js\";\nimport { ownerConstructorCalldata, computeAccountAddress } from \"./account.js\";\n\nexport function buildDeployAccountParams(\n ownerPubkey: BigNumberish,\n salt: BigNumberish = 0,\n): DeployAccountContractPayload {\n return {\n classHash: STARKNET_MEDIAWALLET_CLASS_HASH,\n constructorCalldata: ownerConstructorCalldata(ownerPubkey),\n addressSalt: num.toHex(salt),\n contractAddress: computeAccountAddress(ownerPubkey, salt),\n };\n}\n","import { num, type Call, type ProviderInterface } from \"starknet\";\nimport { normalizeAddress } from \"../../utils/address.js\";\n\nconst norm = (address: string): string => normalizeAddress(\"STARKNET\", address);\n\nconst SIGNER_TYPE_NAMES = [\"Starknet\", \"Secp256k1\", \"Secp256r1\"] as const;\ntype SignerTypeName = (typeof SIGNER_TYPE_NAMES)[number];\n\nexport interface GuardianInfo {\n type: SignerTypeName;\n guid: string;\n storedValue: string;\n}\n\nfunction encodeFeltArray(items: string[]): string[] {\n return [num.toHex(items.length), ...items];\n}\n\nfunction encodeStarknetSigner(pubkey: string): string[] {\n return [\"0x0\", num.toHex(pubkey)];\n}\n\nfunction encodeStarknetSignerArray(pubkeys: string[]): string[] {\n return [num.toHex(pubkeys.length), ...pubkeys.flatMap(encodeStarknetSigner)];\n}\n\nexport function buildSetFirstGuardianCall(address: string, guardianPubkey: string): Call {\n return {\n contractAddress: norm(address),\n entrypoint: \"change_guardians\",\n calldata: [...encodeFeltArray([]), ...encodeStarknetSignerArray([guardianPubkey])],\n };\n}\n\nexport function buildTriggerEscapeOwnerCall(targetAddress: string, newOwnerPubkey: string): Call {\n return {\n contractAddress: norm(targetAddress),\n entrypoint: \"trigger_escape_owner\",\n calldata: encodeStarknetSigner(newOwnerPubkey),\n };\n}\n\nexport function buildCompleteEscapeOwnerCall(targetAddress: string): Call {\n return { contractAddress: norm(targetAddress), entrypoint: \"escape_owner\", calldata: [] };\n}\n\nexport function buildCancelEscapeCall(address: string): Call {\n return { contractAddress: norm(address), entrypoint: \"cancel_escape\", calldata: [] };\n}\n\nexport function decodeGuardiansInfo(res: string[]): GuardianInfo[] {\n const len = Number(res[0]);\n const out: GuardianInfo[] = [];\n for (let i = 0; i < len; i++) {\n const base = 1 + i * 3;\n out.push({\n type: SIGNER_TYPE_NAMES[Number(res[base])] ?? \"Starknet\",\n guid: res[base + 1],\n storedValue: res[base + 2],\n });\n }\n return out;\n}\n\nexport type EscapeTypeName = \"None\" | \"Guardian\" | \"Owner\";\nexport type EscapeStatusName = \"None\" | \"NotReady\" | \"Ready\" | \"Expired\";\nconst ESCAPE_TYPE_NAMES: EscapeTypeName[] = [\"None\", \"Guardian\", \"Owner\"];\nconst ESCAPE_STATUS_NAMES: EscapeStatusName[] = [\"None\", \"NotReady\", \"Ready\", \"Expired\"];\n\nexport interface EscapeInfo {\n readyAt: number;\n escapeType: EscapeTypeName;\n status: EscapeStatusName;\n}\n\nexport function decodeEscapeAndStatus(res: string[]): EscapeInfo {\n\n const readyAt = Number(res[0]);\n const escapeType = ESCAPE_TYPE_NAMES[Number(res[1])] ?? \"None\";\n const optionTag = Number(res[2]);\n const statusIndex = optionTag === 0 ? 5 : 3;\n const status = ESCAPE_STATUS_NAMES[Number(res[statusIndex])] ?? \"None\";\n return { readyAt, escapeType, status };\n}\n\nexport async function getGuardians(provider: ProviderInterface, address: string): Promise<GuardianInfo[]> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_guardians_info\",\n calldata: [],\n });\n return decodeGuardiansInfo(res as unknown as string[]);\n}\n\nexport async function getOwners(provider: ProviderInterface, address: string): Promise<GuardianInfo[]> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_owners_info\",\n calldata: [],\n });\n return decodeGuardiansInfo(res as unknown as string[]);\n}\n\nexport async function getEscape(provider: ProviderInterface, address: string): Promise<EscapeInfo> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_escape_and_status\",\n calldata: [],\n });\n return decodeEscapeAndStatus(res as unknown as string[]);\n}\n\nexport async function getEscapeSecurityPeriod(provider: ProviderInterface, address: string): Promise<number> {\n const res = await provider.callContract({\n contractAddress: norm(address),\n entrypoint: \"get_escape_security_period\",\n calldata: [],\n });\n return Number((res as unknown as string[])[0]);\n}\n","import type { SealedOwner } from \"./types.js\";\n\nexport interface OwnerStore {\n load(): SealedOwner | null;\n loadAddress(): string | null;\n save(sealed: SealedOwner): void;\n clear(): void;\n notifyChange(): void;\n onChange(listener: () => void): () => void;\n}\n\nexport function createOwnerStore(config: { storeKey: string; changeEvent: string }): OwnerStore {\n const { storeKey, changeEvent } = config;\n const announce = (): void => {\n if (typeof window === \"undefined\") return;\n window.dispatchEvent(new Event(changeEvent));\n };\n return {\n load() {\n if (typeof window === \"undefined\") return null;\n try {\n const raw = localStorage.getItem(storeKey);\n return raw ? (JSON.parse(raw) as SealedOwner) : null;\n } catch {\n return null;\n }\n },\n loadAddress() {\n return this.load()?.address ?? null;\n },\n save(sealed) {\n const previous = this.load();\n if (previous && previous.address !== sealed.address) {\n localStorage.setItem(`${storeKey}:${previous.address}`, JSON.stringify(previous));\n }\n localStorage.setItem(storeKey, JSON.stringify(sealed));\n announce();\n },\n clear() {\n localStorage.removeItem(storeKey);\n announce();\n },\n notifyChange: announce,\n onChange(listener) {\n window.addEventListener(changeEvent, listener);\n return () => window.removeEventListener(changeEvent, listener);\n },\n };\n}\n","const SCHEME = \"medialane-device\";\nconst VERSION = 1;\nconst LABEL_MAX = 32;\nconst STARK_PRIME = (1n << 251n) + 17n * (1n << 192n) + 1n;\n\nexport class InvalidPairingPayloadError extends Error {\n constructor(message = \"This code is not a Medialane device request.\") {\n super(message);\n this.name = \"InvalidPairingPayloadError\";\n }\n}\n\nexport interface PairingPayload {\n publicKey: string;\n label: string;\n}\n\nfunction normalisePublicKey(input: unknown): string {\n if (typeof input !== \"string\" || !/^0x[0-9a-fA-F]+$/.test(input)) {\n throw new InvalidPairingPayloadError(\"That device key is not valid.\");\n }\n const value = BigInt(input);\n if (value === 0n || value >= STARK_PRIME) {\n throw new InvalidPairingPayloadError(\"That device key is not valid.\");\n }\n return `0x${value.toString(16)}`;\n}\n\nfunction sanitiseLabel(input: unknown): string {\n const raw = typeof input === \"string\" ? input : \"\";\n return raw.replace(/\\s+/g, \" \").trim().slice(0, LABEL_MAX);\n}\n\nexport function encodePairingPayload(payload: PairingPayload): string {\n return JSON.stringify({\n scheme: SCHEME,\n version: VERSION,\n publicKey: normalisePublicKey(payload.publicKey),\n label: sanitiseLabel(payload.label),\n });\n}\n\nexport function parsePairingPayload(encoded: string): PairingPayload {\n let data: Record<string, unknown>;\n try {\n data = JSON.parse(encoded) as Record<string, unknown>;\n } catch {\n throw new InvalidPairingPayloadError();\n }\n if (data === null || typeof data !== \"object\") throw new InvalidPairingPayloadError();\n if (data.scheme !== SCHEME || data.version !== VERSION) throw new InvalidPairingPayloadError();\n return {\n publicKey: normalisePublicKey(data.publicKey),\n label: sanitiseLabel(data.label),\n };\n}\n\nexport function parseAccountAddress(input: string): string {\n const trimmed = typeof input === \"string\" ? input.trim() : \"\";\n if (!/^0x[0-9a-fA-F]{50,64}$/.test(trimmed)) {\n throw new InvalidPairingPayloadError(\"That does not look like an account address.\");\n }\n if (BigInt(trimmed) === 0n) {\n throw new InvalidPairingPayloadError(\"That does not look like an account address.\");\n }\n return trimmed;\n}\n","import { computeAccountAddress } from \"../starknet/media-wallet/account.js\";\nimport { starkKeyPairFromPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\n\nconst PREFIX = \"medialane-recovery:v1:\";\nconst ADDRESS = /^0x[0-9a-fA-F]{1,64}$/;\n\nexport class InvalidRecoveryKeyError extends Error {\n constructor(message = \"This is not a valid recovery key.\") {\n super(message);\n this.name = \"InvalidRecoveryKeyError\";\n }\n}\n\nexport interface RecoveryKey {\n walletAddress: string;\n privateKey: string;\n}\n\nconst canonicalAddress = (address: string) => `0x${BigInt(address).toString(16).padStart(64, \"0\")}`;\n\nfunction keyPair(privateKey: string) {\n try {\n return starkKeyPairFromPrivateKey(privateKey);\n } catch {\n throw new InvalidRecoveryKeyError();\n }\n}\n\nexport function encodeRecoveryKey(key: RecoveryKey): string {\n if (!ADDRESS.test(key.walletAddress) || BigInt(key.walletAddress) === 0n) throw new InvalidRecoveryKeyError();\n return `${PREFIX}${canonicalAddress(key.walletAddress)}:${keyPair(key.privateKey).privateKeyHex}`;\n}\n\nexport function parseRecoveryKey(input: string): RecoveryKey {\n const trimmed = input.trim();\n if (!trimmed.startsWith(PREFIX)) {\n const { privateKeyHex, publicKeyHex } = keyPair(trimmed);\n return { walletAddress: computeAccountAddress(publicKeyHex, 0), privateKey: privateKeyHex };\n }\n const parts = trimmed.slice(PREFIX.length).split(\":\");\n const [walletAddress, privateKey] = parts;\n if (parts.length !== 2 || !walletAddress || !privateKey || !ADDRESS.test(walletAddress) || BigInt(walletAddress) === 0n) {\n throw new InvalidRecoveryKeyError();\n }\n return { walletAddress: canonicalAddress(walletAddress), privateKey: keyPair(privateKey).privateKeyHex };\n}\n","import type { GuardianInfo, EscapeInfo } from \"../starknet/media-wallet/guardian.js\";\n\nexport type GuardianStatus = { kind: \"none\" } | { kind: \"active\"; guardian: GuardianInfo };\n\nexport function describeGuardianStatus(guardians: GuardianInfo[]): GuardianStatus {\n if (guardians.length === 0) return { kind: \"none\" };\n return { kind: \"active\", guardian: guardians[0] };\n}\n\nexport type RecoveryAction = \"start\" | \"complete\" | \"none\";\n\nexport function describeRecoveryAction(escape: EscapeInfo): RecoveryAction {\n if (escape.escapeType !== \"Owner\") return \"none\";\n if (escape.status === \"Ready\") return \"complete\";\n if (escape.status === \"Expired\") return \"start\";\n return \"none\";\n}\n","import { validateAndParseAddress } from \"starknet\";\nimport { normalizeAddress } from \"../utils/address.js\";\nimport type { ReceiptProviderLike } from \"./types.js\";\n\nexport function normalizeWalletAddress(address: string): string {\n return normalizeAddress(\"STARKNET\", address);\n}\n\nexport function isValidStarknetAddress(address: string): boolean {\n try {\n validateAndParseAddress(address.trim());\n return true;\n } catch {\n return false;\n }\n}\n\nconst CONTRACT_NOT_FOUND = 20;\n\nexport async function isDeployed(provider: ReceiptProviderLike, address: string): Promise<boolean> {\n try {\n await provider.getClassHashAt(normalizeWalletAddress(address));\n return true;\n } catch (err) {\n if ((err as { code?: unknown } | null)?.code === CONTRACT_NOT_FOUND) return false;\n throw err;\n }\n}\n","import type { Call } from \"starknet\";\n\nexport interface SelfFundFeeEstimate {\n feeRaw: bigint;\n unit: string;\n balanceRaw: bigint | null;\n}\n\nexport type SelfFundConsentHandler = (\n feeEstimate: Promise<SelfFundFeeEstimate | null>,\n) => Promise<boolean>;\n\nexport interface SelfFundConsent {\n registerHandler(handler: SelfFundConsentHandler | null): void;\n request(input: { address?: string; calls?: Call[] }): Promise<boolean>;\n}\n\nexport function createSelfFundConsent(\n estimateFee: (address: string, calls: Call[]) => Promise<SelfFundFeeEstimate>,\n): SelfFundConsent {\n let handler: SelfFundConsentHandler | null = null;\n return {\n registerHandler(next) {\n handler = next;\n },\n async request({ address, calls }) {\n if (!handler) return false;\n const feeEstimate =\n address && calls ? estimateFee(address, calls).catch(() => null) : Promise.resolve(null);\n return handler(feeEstimate);\n },\n };\n}\n","import { Account, typedData as starknetTypedData, type Call, type ProviderInterface } from \"starknet\";\nimport { signWithPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\nimport { executeSponsored, SponsoredCallRejectedError } from \"../starknet/services/sponsoredExecutor.js\";\nimport type { SelfFundConsent, SelfFundFeeEstimate } from \"./self-fund-consent.js\";\nimport type { ExecutedTransaction, WalletExecutor } from \"./types.js\";\nimport { getTokenBySymbol } from \"../utils/token.js\";\n\nexport interface SelfFundedDeps {\n provider: () => ProviderInterface;\n}\n\nexport function accountFor(\n provider: ProviderInterface,\n address: string,\n privateKeyHex: string,\n): Account {\n return new Account({ provider, address, signer: privateKeyHex, cairoVersion: \"1\" });\n}\n\nexport async function estimateSelfFundedFee(\n provider: ProviderInterface,\n address: string,\n calls: Call[],\n): Promise<SelfFundFeeEstimate> {\n const account = new Account({ provider, address, signer: \"0x1\", cairoVersion: \"1\" });\n const estimate = await account.estimateInvokeFee(calls);\n const balanceRaw = await feeTokenBalance(provider, address, estimate.unit).catch(() => null);\n return { feeRaw: estimate.overall_fee, unit: estimate.unit, balanceRaw };\n}\n\nasync function feeTokenBalance(provider: ProviderInterface, address: string, unit: string): Promise<bigint> {\n const token = getTokenBySymbol(unit === \"FRI\" ? \"STRK\" : \"ETH\");\n if (!token) throw new Error(`No fee token for unit ${unit}`);\n const [low = \"0x0\", high = \"0x0\"] = await provider.callContract({\n contractAddress: token.address,\n entrypoint: \"balance_of\",\n calldata: [address],\n });\n return BigInt(low) + (BigInt(high) << 128n);\n}\n\nexport function selfFundedExecutor(deps: SelfFundedDeps): WalletExecutor {\n return {\n async execute({ userAddress, privateKeyHex, calls }): Promise<ExecutedTransaction> {\n const account = accountFor(deps.provider(), userAddress, privateKeyHex);\n const { transaction_hash } = await account.execute(calls);\n return { transactionHash: transaction_hash };\n },\n };\n}\n\nexport interface SponsoredDeps extends SelfFundedDeps {\n proxyUrl: string;\n consent: SelfFundConsent;\n fetchImpl?: typeof fetch;\n fallback?: WalletExecutor;\n}\n\nexport function sponsoredExecutor(deps: SponsoredDeps): WalletExecutor {\n const fallback = deps.fallback ?? selfFundedExecutor(deps);\n return {\n async execute(input): Promise<ExecutedTransaction> {\n const { userAddress, privateKeyHex, calls } = input;\n const result = await executeSponsored(\n { proxyUrl: deps.proxyUrl, fetchImpl: deps.fetchImpl },\n {\n address: userAddress,\n signTypedData: async (data) =>\n signWithPrivateKey(privateKeyHex, starknetTypedData.getMessageHash(data, userAddress)),\n },\n calls,\n );\n if (result.status === \"sponsored\") return { transactionHash: result.transactionHash };\n\n const consented = await deps.consent.request({ address: userAddress, calls });\n if (!consented) throw new SponsoredCallRejectedError(result.reason);\n return fallback.execute(input);\n },\n };\n}\n","import { Account, stark, typedData as starknetTypedData, type ProviderInterface } from \"starknet\";\nimport { getCoordinates } from \"../chains.js\";\nimport { signWithPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\nimport { ownerConstructorCalldata } from \"../starknet/media-wallet/account.js\";\nimport { requestSiwsToken } from \"../starknet/siws/client.js\";\nimport { isDeployed } from \"./addresses.js\";\nimport type { ExecutedTransaction, SealedOwner } from \"./types.js\";\n\nexport type DeploymentStep = \"creating-passkey\" | \"deploying\" | \"signing-in\";\n\nexport interface DeploymentResult {\n sealed: SealedOwner;\n siwsToken: string;\n}\n\nasync function describeFailure(res: Response, fallback: string): Promise<never> {\n const body = (await res.json().catch(() => null)) as { error?: string } | null;\n throw new Error(body?.error || fallback);\n}\n\nexport async function deploySponsored(input: {\n proxyUrl: string;\n provider: ProviderInterface;\n ownerAddress: string;\n ownerPubKey: string;\n privateKeyHex: string;\n salt?: string;\n fetchImpl?: typeof fetch;\n}): Promise<ExecutedTransaction> {\n const doFetch = input.fetchImpl ?? fetch;\n const base = input.proxyUrl.replace(/\\/$/, \"\");\n\n const buildRes = await doFetch(`${base}/build`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n ownerPubkey: input.ownerPubKey,\n ownerAddress: input.ownerAddress,\n salt: input.salt ?? \"0x0\",\n }),\n });\n if (!buildRes.ok) {\n await describeFailure(buildRes, \"We couldn't prepare your wallet deployment. Please try again.\");\n }\n const { typedData, deployment, calls } = (await buildRes.json()) as {\n typedData: object;\n deployment: object;\n calls: object[];\n };\n\n const account = new Account({\n provider: input.provider,\n address: input.ownerAddress,\n signer: input.privateKeyHex,\n cairoVersion: \"1\",\n });\n const signature = stark.signatureToHexArray(await account.signMessage(typedData as never));\n\n const executeRes = await doFetch(`${base}/execute`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ ownerAddress: input.ownerAddress, typedData, signature, deployment, calls }),\n });\n if (!executeRes.ok) {\n await describeFailure(executeRes, \"We couldn't complete your wallet deployment. Please try again.\");\n }\n const { transactionHash } = (await executeRes.json()) as { transactionHash: string };\n return { transactionHash };\n}\n\nexport async function deploySelfFunded(input: {\n provider: ProviderInterface;\n ownerAddress: string;\n ownerPubKey: string;\n privateKeyHex: string;\n}): Promise<ExecutedTransaction> {\n const classHash = getCoordinates(\"STARKNET\").mediaWalletClassHash;\n if (!classHash) throw new Error(\"Media Wallet class hash is not configured\");\n const account = new Account({\n provider: input.provider,\n address: input.ownerAddress,\n signer: input.privateKeyHex,\n cairoVersion: \"1\",\n });\n const { transaction_hash } = await account.deployAccount({\n classHash,\n constructorCalldata: ownerConstructorCalldata(input.ownerPubKey),\n addressSalt: 0,\n contractAddress: input.ownerAddress,\n });\n return { transactionHash: transaction_hash };\n}\n\nexport async function waitUntilDeployed(\n provider: ProviderInterface,\n address: string,\n timeoutMs = 90_000,\n sleep: (ms: number) => Promise<void> = (ms) => new Promise((resolve) => setTimeout(resolve, ms)),\n): Promise<void> {\n const deadline = Date.now() + timeoutMs;\n let wait = 1_000;\n for (;;) {\n if (await isDeployed(provider, address).catch(() => false)) return;\n if (Date.now() >= deadline) {\n throw new Error(\n \"Your wallet was submitted but has not appeared on Starknet yet. Please try again in a moment.\",\n );\n }\n await sleep(wait);\n wait = Math.min(Math.round(wait * 1.5), 5_000);\n }\n}\n\nexport interface DeploymentDeps {\n store: { load(): SealedOwner | null; save(sealed: SealedOwner): void; notifyChange(): void };\n passkey: {\n createOwnerKey(): Promise<{ sealed: SealedOwner; privateKeyHex: string }>;\n unlockOwnerKey(sealed: SealedOwner): Promise<string>;\n };\n provider: () => ProviderInterface;\n backendUrl: string;\n deployProxyUrl?: string;\n fetchImpl?: typeof fetch;\n deploySponsoredImpl?: typeof deploySponsored;\n deploySelfFundedImpl?: typeof deploySelfFunded;\n requestSiwsTokenImpl?: typeof requestSiwsToken;\n waitUntilDeployedImpl?: typeof waitUntilDeployed;\n isDeployedImpl?: typeof isDeployed;\n}\n\nasync function deployWallet(\n deps: DeploymentDeps,\n wallet: { ownerAddress: string; ownerPubKey: string; privateKeyHex: string },\n): Promise<void> {\n const sponsored = deps.deploySponsoredImpl ?? deploySponsored;\n const selfFunded = deps.deploySelfFundedImpl ?? deploySelfFunded;\n\n if (deps.deployProxyUrl) {\n try {\n await sponsored({\n proxyUrl: deps.deployProxyUrl,\n provider: deps.provider(),\n fetchImpl: deps.fetchImpl,\n ...wallet,\n });\n } catch (sponsoredErr) {\n try {\n await selfFunded({ provider: deps.provider(), ...wallet });\n } catch (selfFundedErr) {\n const sponsored = sponsoredErr instanceof Error ? sponsoredErr.message : String(sponsoredErr);\n const selfFunded = selfFundedErr instanceof Error ? selfFundedErr.message : String(selfFundedErr);\n throw new Error(`Sponsored deploy failed: ${sponsored}. Self-funded fallback failed: ${selfFunded}`);\n }\n }\n } else {\n await selfFunded({ provider: deps.provider(), ...wallet });\n }\n\n await (deps.waitUntilDeployedImpl ?? waitUntilDeployed)(deps.provider(), wallet.ownerAddress);\n}\n\nexport async function completeDeployment(\n deps: DeploymentDeps,\n onStep: (step: DeploymentStep) => void,\n options: { forceNew?: boolean } = {},\n): Promise<DeploymentResult> {\n let sealed = options.forceNew ? null : deps.store.load();\n if (sealed && (await (deps.isDeployedImpl ?? isDeployed)(deps.provider(), sealed.address).catch(() => false))) {\n sealed = null;\n }\n let privateKeyHex: string;\n\n if (!sealed) {\n onStep(\"creating-passkey\");\n const created = await deps.passkey.createOwnerKey();\n sealed = created.sealed;\n privateKeyHex = created.privateKeyHex;\n deps.store.save(sealed);\n } else {\n privateKeyHex = await deps.passkey.unlockOwnerKey(sealed);\n }\n\n onStep(\"deploying\");\n await deployWallet(deps, { ownerAddress: sealed.address, ownerPubKey: sealed.ownerPubKey, privateKeyHex });\n\n onStep(\"signing-in\");\n const address = sealed.address;\n const siwsToken = await (deps.requestSiwsTokenImpl ?? requestSiwsToken)({\n backendUrl: deps.backendUrl,\n walletAddress: address,\n signer: {\n signMessage: async (td) =>\n signWithPrivateKey(privateKeyHex, starknetTypedData.getMessageHash(td as never, address)),\n },\n });\n\n deps.store.notifyChange();\n return { sealed, siwsToken };\n}\n\nexport interface DeploymentCoordinator {\n run(onStep: (step: DeploymentStep) => void, options?: { forceNew?: boolean }): Promise<DeploymentResult>;\n isDeploying(): boolean;\n}\n\nexport function createDeploymentCoordinator(\n execute: (onStep: (step: DeploymentStep) => void, options: { forceNew?: boolean }) => Promise<DeploymentResult>,\n): DeploymentCoordinator {\n let inFlight: Promise<DeploymentResult> | null = null;\n let currentStep: DeploymentStep | null = null;\n const listeners = new Set<(step: DeploymentStep) => void>();\n\n return {\n run(onStep, options = {}) {\n if (inFlight) {\n if (options.forceNew) {\n return Promise.reject(new Error(\"A wallet setup is already in progress.\"));\n }\n if (currentStep) onStep(currentStep);\n listeners.add(onStep);\n return inFlight.finally(() => listeners.delete(onStep));\n }\n listeners.add(onStep);\n let started: Promise<DeploymentResult>;\n try {\n started = execute((step) => {\n currentStep = step;\n for (const listener of listeners) listener(step);\n }, options);\n } catch (err) {\n listeners.clear();\n return Promise.reject(err);\n }\n const run = started.finally(() => {\n inFlight = null;\n currentStep = null;\n listeners.clear();\n });\n inFlight = run;\n return run;\n },\n isDeploying: () => inFlight !== null,\n };\n}\n","import { typedData as starknetTypedData, type Call, type ProviderInterface, type TypedData } from \"starknet\";\nimport { signWithPrivateKey } from \"../starknet/passkey-wallet/crypto.js\";\nimport {\n buildCancelEscapeCall,\n buildCompleteEscapeOwnerCall,\n buildSetFirstGuardianCall,\n buildTriggerEscapeOwnerCall,\n getEscape,\n getEscapeSecurityPeriod,\n getGuardians,\n getOwners,\n type EscapeInfo,\n type GuardianInfo,\n} from \"../starknet/media-wallet/guardian.js\";\nimport {\n buildAddOwnerCall,\n buildRemoveOwnerByGuidCall,\n computeOwnerGuid,\n} from \"../starknet/media-wallet/owners.js\";\nimport { normalizeWalletAddress } from \"./addresses.js\";\nimport {\n completeDeployment,\n createDeploymentCoordinator,\n type DeploymentDeps,\n type DeploymentResult,\n type DeploymentStep,\n} from \"./deployment.js\";\nimport type { OwnerStore } from \"./store.js\";\nimport type { PasskeyOwner } from \"./passkey.js\";\nimport type { ExecutedTransaction, SealedOwner, WalletExecutor } from \"./types.js\";\n\nexport interface DeviceEntry {\n guid: string;\n type: GuardianInfo[\"type\"];\n isThisDevice: boolean;\n}\n\nexport function describeDevices(owners: GuardianInfo[], thisDevicePubkey: string): DeviceEntry[] {\n const mine = computeOwnerGuid(thisDevicePubkey);\n return owners.map((owner) => ({\n guid: owner.guid,\n type: owner.type,\n isThisDevice: BigInt(owner.guid) === BigInt(mine),\n }));\n}\n\nexport function canRemoveDevice(devices: DeviceEntry[], guid: string): boolean {\n if (devices.length <= 1) return false;\n return devices.some((device) => BigInt(device.guid) === BigInt(guid));\n}\n\nexport interface MediaWalletConfig {\n store: OwnerStore;\n passkey: PasskeyOwner;\n executor: WalletExecutor;\n provider: () => ProviderInterface;\n unlockTtlMs?: number;\n backendUrl?: string;\n deployProxyUrl?: string;\n fetchImpl?: typeof fetch;\n}\n\nexport interface MediaWallet {\n store: OwnerStore;\n passkey: PasskeyOwner;\n lock(address: string): void;\n signerFor(sealed: SealedOwner): {\n address: string;\n signTypedData(data: TypedData): Promise<string[]>;\n execute(calls: Call[]): Promise<{ txHash: string }>;\n };\n run(sealed: SealedOwner, calls: Call[], userAddress?: string): Promise<ExecutedTransaction>;\n getGuardians(address: string): Promise<GuardianInfo[]>;\n getEscape(address: string): Promise<EscapeInfo>;\n getEscapeSecurityPeriod(address: string): Promise<number>;\n setFirstGuardian(sealed: SealedOwner, guardianPubkey: string): Promise<string>;\n triggerEscapeOwner(guardianSealed: SealedOwner, targetAddress: string, newOwnerPubkey: string): Promise<string>;\n completeEscapeOwner(guardianSealed: SealedOwner, targetAddress: string): Promise<string>;\n cancelEscape(sealed: SealedOwner): Promise<string>;\n getOwners(address: string): Promise<GuardianInfo[]>;\n isOwnerOf(accountAddress: string, devicePubkey: string): Promise<boolean>;\n addDevice(sealed: SealedOwner, devicePubkey: string): Promise<string>;\n removeDevice(sealed: SealedOwner, ownerGuid: string): Promise<string>;\n completeDeployment(\n onStep: (step: DeploymentStep) => void,\n options?: { forceNew?: boolean },\n ): Promise<DeploymentResult>;\n isDeploying(): boolean;\n}\n\nexport function createMediaWallet(config: MediaWalletConfig): MediaWallet {\n const ttl = config.unlockTtlMs ?? 20_000;\n const deployments = createDeploymentCoordinator((onStep, options) => {\n if (!config.backendUrl) throw new Error(\"This wallet has no backend url configured for sign-in\");\n const deps: DeploymentDeps = {\n store: config.store,\n passkey: config.passkey,\n provider: config.provider,\n backendUrl: config.backendUrl,\n deployProxyUrl: config.deployProxyUrl,\n fetchImpl: config.fetchImpl,\n };\n return completeDeployment(deps, onStep, options);\n });\n const unlockCache = new Map<string, { promise: Promise<string>; timer: ReturnType<typeof setTimeout> }>();\n\n const lock = (address: string): void => {\n const entry = unlockCache.get(address);\n if (!entry) return;\n clearTimeout(entry.timer);\n unlockCache.delete(address);\n };\n\n const unlockOnce = (sealed: SealedOwner): Promise<string> => {\n const existing = unlockCache.get(sealed.address);\n if (existing) return existing.promise;\n const promise = config.passkey.unlockOwnerKey(sealed).catch((err) => {\n lock(sealed.address);\n throw err;\n });\n const timer = setTimeout(() => lock(sealed.address), ttl);\n unlockCache.set(sealed.address, { promise, timer });\n return promise;\n };\n\n const run = async (sealed: SealedOwner, calls: Call[], userAddress?: string): Promise<ExecutedTransaction> => {\n const privateKeyHex = await unlockOnce(sealed);\n return config.executor.execute({\n userAddress: userAddress ?? sealed.address,\n privateKeyHex,\n calls,\n });\n };\n\n return {\n store: config.store,\n passkey: config.passkey,\n lock,\n\n signerFor(sealed) {\n return {\n address: sealed.address,\n signTypedData: async (data) => {\n const privateKeyHex = await unlockOnce(sealed);\n return signWithPrivateKey(privateKeyHex, starknetTypedData.getMessageHash(data, sealed.address));\n },\n execute: async (calls) => {\n const { transactionHash } = await run(sealed, calls);\n return { txHash: transactionHash };\n },\n };\n },\n\n run,\n\n getGuardians: (address) => getGuardians(config.provider(), address),\n getEscape: (address) => getEscape(config.provider(), address),\n getEscapeSecurityPeriod: (address) => getEscapeSecurityPeriod(config.provider(), address),\n getOwners: (address) => getOwners(config.provider(), address),\n\n async isOwnerOf(accountAddress, devicePubkey) {\n const owners = await getOwners(config.provider(), accountAddress);\n const guid = BigInt(computeOwnerGuid(devicePubkey));\n return owners.some((owner) => BigInt(owner.guid) === guid);\n },\n\n async setFirstGuardian(sealed, guardianPubkey) {\n const { transactionHash } = await run(sealed, [buildSetFirstGuardianCall(sealed.address, guardianPubkey)]);\n return transactionHash;\n },\n\n async triggerEscapeOwner(guardianSealed, targetAddress, newOwnerPubkey) {\n const { transactionHash } = await run(\n guardianSealed,\n [buildTriggerEscapeOwnerCall(targetAddress, newOwnerPubkey)],\n normalizeWalletAddress(targetAddress),\n );\n return transactionHash;\n },\n\n async completeEscapeOwner(guardianSealed, targetAddress) {\n const { transactionHash } = await run(\n guardianSealed,\n [buildCompleteEscapeOwnerCall(targetAddress)],\n normalizeWalletAddress(targetAddress),\n );\n return transactionHash;\n },\n\n async cancelEscape(sealed) {\n const { transactionHash } = await run(sealed, [buildCancelEscapeCall(sealed.address)]);\n return transactionHash;\n },\n\n async addDevice(sealed, devicePubkey) {\n const { transactionHash } = await run(sealed, [buildAddOwnerCall(sealed.address, devicePubkey)]);\n return transactionHash;\n },\n\n async removeDevice(sealed, ownerGuid) {\n const { transactionHash } = await run(sealed, [buildRemoveOwnerByGuidCall(sealed.address, ownerGuid)]);\n return transactionHash;\n },\n\n completeDeployment: (onStep, options) => deployments.run(onStep, options),\n isDeploying: () => deployments.isDeploying(),\n };\n}\n","import type { ApiClient } from \"../api/client.js\";\nimport type { CreatedOwner } from \"../wallet/passkey.js\";\nimport type { SealedOwner } from \"../wallet/types.js\";\nimport { normalizeWalletAddress } from \"../wallet/addresses.js\";\n\nexport interface SessionWallet {\n walletAddress: string;\n needsKeySetup: boolean;\n}\n\nexport interface SessionWalletClaimDeps {\n createOwnerKey(): Promise<CreatedOwner>;\n loadOwner(): SealedOwner | null;\n saveOwner(sealed: SealedOwner): void;\n removeOwner(sealed: SealedOwner, ownerGuid: string): Promise<unknown>;\n}\n\nexport async function claimSessionWallet(\n api: Pick<ApiClient, \"setupWalletKey\">,\n walletAddress: string,\n deps: SessionWalletClaimDeps,\n): Promise<void> {\n const saved = deps.loadOwner();\n const resuming = saved !== null && normalizeWalletAddress(saved.address) === normalizeWalletAddress(walletAddress);\n const sealed = resuming ? saved : { ...(await deps.createOwnerKey()).sealed, address: walletAddress };\n if (!resuming) deps.saveOwner(sealed);\n\n const { removeOwnerGuid } = await api.setupWalletKey({ newOwnerPubkey: sealed.ownerPubKey });\n if (removeOwnerGuid) await deps.removeOwner(sealed, removeOwnerGuid);\n}\n"]}