@medialane/sdk 0.110.0 → 0.111.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.
- package/dist/evm/index.cjs +2 -0
- package/dist/evm/index.cjs.map +1 -1
- package/dist/evm/index.d.cts +1 -1
- package/dist/evm/index.d.ts +1 -1
- package/dist/evm/index.js +2 -0
- package/dist/evm/index.js.map +1 -1
- package/dist/index.cjs +25 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -7
- package/dist/index.d.ts +30 -7
- package/dist/index.js +25 -3
- package/dist/index.js.map +1 -1
- package/dist/{services-Dt23Y7HU.d.ts → services-BBXTfVDt.d.ts} +1 -1
- package/dist/{services-EPrTjAA4.d.cts → services-BcsFAZzQ.d.cts} +1 -1
- package/dist/solana/index.cjs +2 -0
- package/dist/solana/index.cjs.map +1 -1
- package/dist/solana/index.d.cts +1 -1
- package/dist/solana/index.d.ts +1 -1
- package/dist/solana/index.js +2 -0
- package/dist/solana/index.js.map +1 -1
- package/dist/starknet/index.cjs +3 -0
- package/dist/starknet/index.cjs.map +1 -1
- package/dist/starknet/index.d.cts +2 -2
- package/dist/starknet/index.d.ts +2 -2
- package/dist/starknet/index.js +3 -0
- package/dist/starknet/index.js.map +1 -1
- package/dist/stellar/index.cjs +2 -0
- package/dist/stellar/index.cjs.map +1 -1
- package/dist/stellar/index.d.cts +1 -1
- package/dist/stellar/index.d.ts +1 -1
- package/dist/stellar/index.js +2 -0
- package/dist/stellar/index.js.map +1 -1
- package/dist/{types-BzLfeLF9.d.cts → types-CuSlc_YE.d.cts} +2 -0
- package/dist/{types-BzLfeLF9.d.ts → types-CuSlc_YE.d.ts} +2 -0
- package/package.json +2 -2
package/dist/stellar/index.cjs
CHANGED
|
@@ -17,6 +17,8 @@ var COORDINATES = {
|
|
|
17
17
|
marketplace1155StartBlock: 11198267,
|
|
18
18
|
collection721: "0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea",
|
|
19
19
|
collection721StartBlock: 11198496,
|
|
20
|
+
dataTokenization721: "0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2",
|
|
21
|
+
dataTokenization721StartBlock: 14670294,
|
|
20
22
|
ipNftClassHash: "0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc",
|
|
21
23
|
ipCollectionClassHash: "0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4",
|
|
22
24
|
collection1155: "0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chains.ts","../../src/stellar/venue.ts"],"names":["sha256","Contract","nativeToScVal","TransactionBuilder","rpc","scValToNative"],"mappings":"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","file":"index.cjs","sourcesContent":["\n\nexport const CHAINS = [\"STARKNET\", \"ETHEREUM\", \"SOLANA\", \"BASE\", \"STELLAR\", \"BITCOIN\"] as const;\nexport type Chain = (typeof CHAINS)[number];\n\nexport interface StarknetCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721ClassHash?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155ClassHash?: `0x${string}`;\n marketplace1155StartBlock?: number;\n collection721?: `0x${string}`;\n collection721StartBlock?: number;\n ipNftClassHash?: `0x${string}`;\n ipCollectionClassHash?: `0x${string}`;\n collection1155?: `0x${string}`;\n collection1155FactoryClassHash?: `0x${string}`;\n collection1155ClassHash?: `0x${string}`;\n collection1155StartBlock?: number;\n popFactory?: `0x${string}`;\n popCollectionClassHash?: `0x${string}`;\n dropFactory?: `0x${string}`;\n dropCollectionClassHash?: `0x${string}`;\n nftComments?: `0x${string}`;\n creatorCoinFactory?: `0x${string}`;\n creatorCoinEkuboLauncher?: `0x${string}`;\n creatorCoinClassHash?: `0x${string}`;\n creatorCoinFactoryClassHash?: `0x${string}`;\n creatorCoinStartBlock?: number;\n ekuboCore?: `0x${string}`;\n ipTicketsFactory?: `0x${string}`;\n ipTicketCollectionClassHash?: `0x${string}`;\n ipTicketsFactoryClassHash?: `0x${string}`;\n ipTicketsStartBlock?: number;\n ipClubFactory?: `0x${string}`;\n ipClubFactoryClassHash?: `0x${string}`;\n ipClubCollectionClassHash?: `0x${string}`;\n ipClubFactoryStartBlock?: number;\n ipSponsorship?: `0x${string}`;\n ipSponsorshipClassHash?: `0x${string}`;\n ipSponsorshipStartBlock?: number;\n mediaWalletClassHash?: `0x${string}`;\n genesisMintLaunch?: `0x${string}`;\n genesisMintBR?: `0x${string}`;\n genesisMintGlobal?: `0x${string}`;\n}\n\nexport interface EvmCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155StartBlock?: number;\n mipRegistry?: `0x${string}`;\n mipRegistryStartBlock?: number;\n mipEditionsRegistry?: `0x${string}`;\n mipEditionsRegistryStartBlock?: number;\n}\n\nexport interface SolanaCoordinates {\n rpcUrl: string;\n mipCollectionsProgram?: string;\n marketplaceProgram?: string;\n startSlot?: number;\n}\n\nexport interface StellarCoordinates {\n rpcUrl: string;\n mipRegistry?: string;\n marketplace?: string;\n collectionWasmHash?: string;\n startLedger?: number;\n}\n\nexport interface CoordinatesByChain {\n STARKNET?: StarknetCoordinates;\n ETHEREUM?: EvmCoordinates;\n BASE?: EvmCoordinates;\n SOLANA?: SolanaCoordinates;\n STELLAR?: StellarCoordinates;\n BITCOIN?: never;\n}\n\nexport type ChainCoordinates = StarknetCoordinates;\n\nconst COORDINATES: CoordinatesByChain = {\n STARKNET: {\n rpcUrl: \"https://rpc.starknet.lava.build\",\n marketplace721: \"0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc\",\n marketplace721ClassHash: \"0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90\",\n marketplace721StartBlock: 11198146,\n marketplace1155: \"0x07c4ce1c19ea48cc11135ed22b19ff745f5aec508c3828593002e4f76fdb1b38\",\n marketplace1155ClassHash: \"0x0242f5c388da7cee2d99e2a69453c8159bf927fbec4e797a3cfdcbbcb5b68328\",\n marketplace1155StartBlock: 11198267,\n collection721: \"0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea\",\n collection721StartBlock: 11198496,\n ipNftClassHash: \"0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc\",\n ipCollectionClassHash: \"0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4\",\n collection1155: \"0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551\",\n collection1155FactoryClassHash: \"0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2\",\n collection1155ClassHash: \"0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78\",\n collection1155StartBlock: 11199527,\n popFactory: \"0x00b32c34b427d8f346b5843ada6a37bd3368d879fc752cd52b68a87287f60111\",\n popCollectionClassHash: \"0x077c421686f10851872561953ea16898d933364b7f8937a5d7e2b1ba0a36263f\",\n dropFactory: \"0x03587f42e29daee1b193f6cf83bf8627908ed6632d0d83fcb26225c50547d800\",\n dropCollectionClassHash: \"0x00092e72cdb63067521e803aaf7d4101c3e3ce026ae6bc045ec4228027e58282\",\n nftComments: \"0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843\",\n creatorCoinFactory: \"0x50fa807b5274079fb19374673d7bab6d2dc3af7e1032ea43eb6e44bcbde4c3c\",\n creatorCoinEkuboLauncher: \"0x4f7fceb5ac10f12f9544a09580592e5bdf1b7f04f48765eecf12286d8ccb7b4\",\n creatorCoinClassHash: \"0x743e4c8a5b96bb83bbf4af04edbbb482d5ece89eed9b729a79fb7df0cd0b6b6\",\n creatorCoinFactoryClassHash: \"0x51765926b1344c9a20b8cd4b5abe7b7d47375ae97cf6804db3ea5d4b05a9b55\",\n creatorCoinStartBlock: 10474544,\n ekuboCore: \"0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b\",\n ipTicketsFactory: \"0x0767bf5b57e1f812463159b5ed683183e1b0c3f942b74871b5c6cd6a93c15e99\",\n ipTicketCollectionClassHash: \"0x0449e8eb7c117740d07cb8e0157d32c8ba3d19d1cfd2784ed5e139f5a1e04acc\",\n ipTicketsFactoryClassHash: \"0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a\",\n ipTicketsStartBlock: 11933694,\n ipClubFactory: \"0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9\",\n ipClubFactoryClassHash: \"0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266\",\n ipClubCollectionClassHash: \"0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5\",\n ipClubFactoryStartBlock: 11928775,\n\n ipSponsorship: \"0x03729ebe0fedf29ec97fca34db09174772af7f870af26a26e024a61040143e5c\",\n ipSponsorshipClassHash: \"0x0626daac2ed7e2bf630ef5b10104b3202db1559216c0c1a504c0e99be2fbfec3\",\n ipSponsorshipStartBlock: 11896456,\n mediaWalletClassHash: \"0x014b210c7d47392691144bafecdca3c6c7791cc295ea305988da0a724c05ac31\",\n genesisMintLaunch: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n genesisMintBR: \"0x01f8b92e3b9e963b8eacb075207e2cc89d4614ff2ac6c2702c7ae10ad19a9db8\",\n genesisMintGlobal: \"0x06ad4d55ed2d12ad5d6d55587d800874ef807b051bfefe13497e60ec5b019369\",\n },\n};\n\nexport function getCoordinates(chain: \"STARKNET\"): StarknetCoordinates;\nexport function getCoordinates(chain: \"ETHEREUM\" | \"BASE\"): EvmCoordinates;\nexport function getCoordinates(chain: \"SOLANA\"): SolanaCoordinates;\nexport function getCoordinates(chain: \"STELLAR\"): StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates {\n const c = COORDINATES[chain];\n if (!c) throw new Error(`No coordinates configured for chain \"${chain}\"`);\n return c;\n}\n\nexport const DEFAULT_CHAIN: Chain = \"STARKNET\";\n\nexport function getStarknetCoordinates(chain: Chain): StarknetCoordinates {\n if (chain !== \"STARKNET\") {\n throw new Error(`This module is Starknet-only (client chain: \"${chain}\")`);\n }\n return getCoordinates(\"STARKNET\");\n}\n","import {\n Contract,\n TransactionBuilder,\n nativeToScVal,\n scValToNative,\n type Transaction,\n rpc,\n} from \"@stellar/stellar-sdk\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type StellarCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\n\nexport interface StellarSigner {\n publicKey: string;\n signTransaction(xdr: string, networkPassphrase: string): Promise<string>;\n}\n\nexport interface StellarVenueOptions {\n server: rpc.Server;\n networkPassphrase: string;\n\n contractId?: string;\n baseFee?: string;\n}\n\nexport function stellarOrderRef(contractId: string, offerer: string, salt: bigint): OrderRef {\n const payload = new TextEncoder().encode(`${contractId}:${offerer}:${salt.toString()}`);\n return \"0x\" + Buffer.from(sha256(payload)).toString(\"hex\");\n}\n\nexport class StellarVenue implements VenueAdapter<StellarSigner> {\n readonly chain: Chain = \"STELLAR\";\n private readonly server: rpc.Server;\n private readonly passphrase: string;\n private readonly contract: Contract;\n private readonly contractId: string;\n private readonly baseFee: string;\n\n constructor(opts: StellarVenueOptions) {\n this.server = opts.server;\n this.passphrase = opts.networkPassphrase;\n const contractId = opts.contractId ?? maybeCoords()?.marketplace;\n if (!contractId) throw new Error(\"No Stellar venue contract configured\");\n this.contractId = contractId;\n this.contract = new Contract(contractId);\n this.baseFee = opts.baseFee ?? \"100\";\n }\n\n async registerOrder(\n signer: StellarSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const salt = BigInt(params.salt);\n const counter = await this.getCounter(signer.publicKey);\n const op = this.contract.call(\n \"register_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n nativeToScVal([params.side === \"listing\" ? \"Listing\" : \"Bid\"], { type: \"symbol\" }),\n nativeToScVal(params.asset.contract, { type: \"address\" }),\n nativeToScVal(Number(params.asset.tokenId), { type: \"u32\" }),\n nativeToScVal(params.paymentToken, { type: \"address\" }),\n nativeToScVal(BigInt(params.amount), { type: \"i128\" }),\n nativeToScVal(params.royaltyMaxBps, { type: \"u32\" }),\n nativeToScVal(BigInt(params.startTime), { type: \"u64\" }),\n nativeToScVal(BigInt(params.endTime), { type: \"u64\" }),\n nativeToScVal(counter, { type: \"u64\" }),\n );\n const txHash = await this.invoke(signer, op);\n return { txHash, orderRef: stellarOrderRef(this.contractId, signer.publicKey, salt) };\n }\n\n async fulfillOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { offerer?: string; salt?: string },\n ): Promise<AdapterTxResult> {\n if (!opts?.offerer || opts.salt === undefined) {\n throw new Error(\"Stellar fulfillment needs { offerer, salt } (orders are storage-keyed)\");\n }\n const op = this.contract.call(\n \"fulfill_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(opts.offerer, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async cancelOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { salt?: string },\n ): Promise<AdapterTxResult> {\n if (opts?.salt === undefined) throw new Error(\"Stellar cancel needs { salt }\");\n const op = this.contract.call(\n \"cancel_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async incrementCounter(signer: StellarSigner): Promise<AdapterTxResult> {\n const op = this.contract.call(\n \"increment_counter\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async getOrderDetails(_orderRef: OrderRef): Promise<unknown> {\n throw new Error(\"Use getOrder(offerer, salt) — Stellar orders are storage-keyed\");\n }\n\n async getOrder(offerer: string, salt: bigint): Promise<unknown> {\n return this.view(\"get_order\", [\n nativeToScVal(offerer, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n ]);\n }\n\n async getCounter(address: string): Promise<bigint> {\n const value = await this.view(\"get_counter\", [nativeToScVal(address, { type: \"address\" })]);\n return BigInt((value as bigint | number | undefined) ?? 0);\n }\n\n private async view(method: string, args: Parameters<Contract[\"call\"]>[1][]): Promise<unknown> {\n const account = await this.server.getAccount(PLACEHOLDER_SOURCE);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(this.contract.call(method, ...args))\n .setTimeout(30)\n .build();\n const sim = await this.server.simulateTransaction(tx);\n if (rpc.Api.isSimulationSuccess(sim) && sim.result?.retval) {\n return scValToNative(sim.result.retval);\n }\n return undefined;\n }\n\n private async invoke(\n signer: StellarSigner,\n op: ReturnType<Contract[\"call\"]>,\n ): Promise<string> {\n const account = await this.server.getAccount(signer.publicKey);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(op)\n .setTimeout(60)\n .build();\n const prepared = await this.server.prepareTransaction(tx);\n const signedXdr = await signer.signTransaction(prepared.toXDR(), this.passphrase);\n const signed = TransactionBuilder.fromXDR(signedXdr, this.passphrase) as Transaction;\n const sent = await this.server.sendTransaction(signed);\n return sent.hash;\n }\n}\n\nconst PLACEHOLDER_SOURCE = \"GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF\";\n\nfunction maybeCoords(): StellarCoordinates | undefined {\n try {\n return getCoordinates(\"STELLAR\");\n } catch {\n return undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/chains.ts","../../src/stellar/venue.ts"],"names":["sha256","Contract","nativeToScVal","TransactionBuilder","rpc","scValToNative"],"mappings":"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","file":"index.cjs","sourcesContent":["\n\nexport const CHAINS = [\"STARKNET\", \"ETHEREUM\", \"SOLANA\", \"BASE\", \"STELLAR\", \"BITCOIN\"] as const;\nexport type Chain = (typeof CHAINS)[number];\n\nexport interface StarknetCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721ClassHash?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155ClassHash?: `0x${string}`;\n marketplace1155StartBlock?: number;\n collection721?: `0x${string}`;\n collection721StartBlock?: number;\n dataTokenization721?: `0x${string}`;\n dataTokenization721StartBlock?: number;\n ipNftClassHash?: `0x${string}`;\n ipCollectionClassHash?: `0x${string}`;\n collection1155?: `0x${string}`;\n collection1155FactoryClassHash?: `0x${string}`;\n collection1155ClassHash?: `0x${string}`;\n collection1155StartBlock?: number;\n popFactory?: `0x${string}`;\n popCollectionClassHash?: `0x${string}`;\n dropFactory?: `0x${string}`;\n dropCollectionClassHash?: `0x${string}`;\n nftComments?: `0x${string}`;\n creatorCoinFactory?: `0x${string}`;\n creatorCoinEkuboLauncher?: `0x${string}`;\n creatorCoinClassHash?: `0x${string}`;\n creatorCoinFactoryClassHash?: `0x${string}`;\n creatorCoinStartBlock?: number;\n ekuboCore?: `0x${string}`;\n ipTicketsFactory?: `0x${string}`;\n ipTicketCollectionClassHash?: `0x${string}`;\n ipTicketsFactoryClassHash?: `0x${string}`;\n ipTicketsStartBlock?: number;\n ipClubFactory?: `0x${string}`;\n ipClubFactoryClassHash?: `0x${string}`;\n ipClubCollectionClassHash?: `0x${string}`;\n ipClubFactoryStartBlock?: number;\n ipSponsorship?: `0x${string}`;\n ipSponsorshipClassHash?: `0x${string}`;\n ipSponsorshipStartBlock?: number;\n mediaWalletClassHash?: `0x${string}`;\n genesisMintLaunch?: `0x${string}`;\n genesisMintBR?: `0x${string}`;\n genesisMintGlobal?: `0x${string}`;\n}\n\nexport interface EvmCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155StartBlock?: number;\n mipRegistry?: `0x${string}`;\n mipRegistryStartBlock?: number;\n mipEditionsRegistry?: `0x${string}`;\n mipEditionsRegistryStartBlock?: number;\n}\n\nexport interface SolanaCoordinates {\n rpcUrl: string;\n mipCollectionsProgram?: string;\n marketplaceProgram?: string;\n startSlot?: number;\n}\n\nexport interface StellarCoordinates {\n rpcUrl: string;\n mipRegistry?: string;\n marketplace?: string;\n collectionWasmHash?: string;\n startLedger?: number;\n}\n\nexport interface CoordinatesByChain {\n STARKNET?: StarknetCoordinates;\n ETHEREUM?: EvmCoordinates;\n BASE?: EvmCoordinates;\n SOLANA?: SolanaCoordinates;\n STELLAR?: StellarCoordinates;\n BITCOIN?: never;\n}\n\nexport type ChainCoordinates = StarknetCoordinates;\n\nconst COORDINATES: CoordinatesByChain = {\n STARKNET: {\n rpcUrl: \"https://rpc.starknet.lava.build\",\n marketplace721: \"0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc\",\n marketplace721ClassHash: \"0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90\",\n marketplace721StartBlock: 11198146,\n marketplace1155: \"0x07c4ce1c19ea48cc11135ed22b19ff745f5aec508c3828593002e4f76fdb1b38\",\n marketplace1155ClassHash: \"0x0242f5c388da7cee2d99e2a69453c8159bf927fbec4e797a3cfdcbbcb5b68328\",\n marketplace1155StartBlock: 11198267,\n collection721: \"0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea\",\n collection721StartBlock: 11198496,\n dataTokenization721: \"0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2\",\n dataTokenization721StartBlock: 14670294,\n ipNftClassHash: \"0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc\",\n ipCollectionClassHash: \"0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4\",\n collection1155: \"0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551\",\n collection1155FactoryClassHash: \"0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2\",\n collection1155ClassHash: \"0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78\",\n collection1155StartBlock: 11199527,\n popFactory: \"0x00b32c34b427d8f346b5843ada6a37bd3368d879fc752cd52b68a87287f60111\",\n popCollectionClassHash: \"0x077c421686f10851872561953ea16898d933364b7f8937a5d7e2b1ba0a36263f\",\n dropFactory: \"0x03587f42e29daee1b193f6cf83bf8627908ed6632d0d83fcb26225c50547d800\",\n dropCollectionClassHash: \"0x00092e72cdb63067521e803aaf7d4101c3e3ce026ae6bc045ec4228027e58282\",\n nftComments: \"0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843\",\n creatorCoinFactory: \"0x50fa807b5274079fb19374673d7bab6d2dc3af7e1032ea43eb6e44bcbde4c3c\",\n creatorCoinEkuboLauncher: \"0x4f7fceb5ac10f12f9544a09580592e5bdf1b7f04f48765eecf12286d8ccb7b4\",\n creatorCoinClassHash: \"0x743e4c8a5b96bb83bbf4af04edbbb482d5ece89eed9b729a79fb7df0cd0b6b6\",\n creatorCoinFactoryClassHash: \"0x51765926b1344c9a20b8cd4b5abe7b7d47375ae97cf6804db3ea5d4b05a9b55\",\n creatorCoinStartBlock: 10474544,\n ekuboCore: \"0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b\",\n ipTicketsFactory: \"0x0767bf5b57e1f812463159b5ed683183e1b0c3f942b74871b5c6cd6a93c15e99\",\n ipTicketCollectionClassHash: \"0x0449e8eb7c117740d07cb8e0157d32c8ba3d19d1cfd2784ed5e139f5a1e04acc\",\n ipTicketsFactoryClassHash: \"0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a\",\n ipTicketsStartBlock: 11933694,\n ipClubFactory: \"0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9\",\n ipClubFactoryClassHash: \"0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266\",\n ipClubCollectionClassHash: \"0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5\",\n ipClubFactoryStartBlock: 11928775,\n\n ipSponsorship: \"0x03729ebe0fedf29ec97fca34db09174772af7f870af26a26e024a61040143e5c\",\n ipSponsorshipClassHash: \"0x0626daac2ed7e2bf630ef5b10104b3202db1559216c0c1a504c0e99be2fbfec3\",\n ipSponsorshipStartBlock: 11896456,\n mediaWalletClassHash: \"0x014b210c7d47392691144bafecdca3c6c7791cc295ea305988da0a724c05ac31\",\n genesisMintLaunch: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n genesisMintBR: \"0x01f8b92e3b9e963b8eacb075207e2cc89d4614ff2ac6c2702c7ae10ad19a9db8\",\n genesisMintGlobal: \"0x06ad4d55ed2d12ad5d6d55587d800874ef807b051bfefe13497e60ec5b019369\",\n },\n};\n\nexport function getCoordinates(chain: \"STARKNET\"): StarknetCoordinates;\nexport function getCoordinates(chain: \"ETHEREUM\" | \"BASE\"): EvmCoordinates;\nexport function getCoordinates(chain: \"SOLANA\"): SolanaCoordinates;\nexport function getCoordinates(chain: \"STELLAR\"): StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates {\n const c = COORDINATES[chain];\n if (!c) throw new Error(`No coordinates configured for chain \"${chain}\"`);\n return c;\n}\n\nexport const DEFAULT_CHAIN: Chain = \"STARKNET\";\n\nexport function getStarknetCoordinates(chain: Chain): StarknetCoordinates {\n if (chain !== \"STARKNET\") {\n throw new Error(`This module is Starknet-only (client chain: \"${chain}\")`);\n }\n return getCoordinates(\"STARKNET\");\n}\n","import {\n Contract,\n TransactionBuilder,\n nativeToScVal,\n scValToNative,\n type Transaction,\n rpc,\n} from \"@stellar/stellar-sdk\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type StellarCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\n\nexport interface StellarSigner {\n publicKey: string;\n signTransaction(xdr: string, networkPassphrase: string): Promise<string>;\n}\n\nexport interface StellarVenueOptions {\n server: rpc.Server;\n networkPassphrase: string;\n\n contractId?: string;\n baseFee?: string;\n}\n\nexport function stellarOrderRef(contractId: string, offerer: string, salt: bigint): OrderRef {\n const payload = new TextEncoder().encode(`${contractId}:${offerer}:${salt.toString()}`);\n return \"0x\" + Buffer.from(sha256(payload)).toString(\"hex\");\n}\n\nexport class StellarVenue implements VenueAdapter<StellarSigner> {\n readonly chain: Chain = \"STELLAR\";\n private readonly server: rpc.Server;\n private readonly passphrase: string;\n private readonly contract: Contract;\n private readonly contractId: string;\n private readonly baseFee: string;\n\n constructor(opts: StellarVenueOptions) {\n this.server = opts.server;\n this.passphrase = opts.networkPassphrase;\n const contractId = opts.contractId ?? maybeCoords()?.marketplace;\n if (!contractId) throw new Error(\"No Stellar venue contract configured\");\n this.contractId = contractId;\n this.contract = new Contract(contractId);\n this.baseFee = opts.baseFee ?? \"100\";\n }\n\n async registerOrder(\n signer: StellarSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const salt = BigInt(params.salt);\n const counter = await this.getCounter(signer.publicKey);\n const op = this.contract.call(\n \"register_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n nativeToScVal([params.side === \"listing\" ? \"Listing\" : \"Bid\"], { type: \"symbol\" }),\n nativeToScVal(params.asset.contract, { type: \"address\" }),\n nativeToScVal(Number(params.asset.tokenId), { type: \"u32\" }),\n nativeToScVal(params.paymentToken, { type: \"address\" }),\n nativeToScVal(BigInt(params.amount), { type: \"i128\" }),\n nativeToScVal(params.royaltyMaxBps, { type: \"u32\" }),\n nativeToScVal(BigInt(params.startTime), { type: \"u64\" }),\n nativeToScVal(BigInt(params.endTime), { type: \"u64\" }),\n nativeToScVal(counter, { type: \"u64\" }),\n );\n const txHash = await this.invoke(signer, op);\n return { txHash, orderRef: stellarOrderRef(this.contractId, signer.publicKey, salt) };\n }\n\n async fulfillOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { offerer?: string; salt?: string },\n ): Promise<AdapterTxResult> {\n if (!opts?.offerer || opts.salt === undefined) {\n throw new Error(\"Stellar fulfillment needs { offerer, salt } (orders are storage-keyed)\");\n }\n const op = this.contract.call(\n \"fulfill_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(opts.offerer, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async cancelOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { salt?: string },\n ): Promise<AdapterTxResult> {\n if (opts?.salt === undefined) throw new Error(\"Stellar cancel needs { salt }\");\n const op = this.contract.call(\n \"cancel_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async incrementCounter(signer: StellarSigner): Promise<AdapterTxResult> {\n const op = this.contract.call(\n \"increment_counter\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async getOrderDetails(_orderRef: OrderRef): Promise<unknown> {\n throw new Error(\"Use getOrder(offerer, salt) — Stellar orders are storage-keyed\");\n }\n\n async getOrder(offerer: string, salt: bigint): Promise<unknown> {\n return this.view(\"get_order\", [\n nativeToScVal(offerer, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n ]);\n }\n\n async getCounter(address: string): Promise<bigint> {\n const value = await this.view(\"get_counter\", [nativeToScVal(address, { type: \"address\" })]);\n return BigInt((value as bigint | number | undefined) ?? 0);\n }\n\n private async view(method: string, args: Parameters<Contract[\"call\"]>[1][]): Promise<unknown> {\n const account = await this.server.getAccount(PLACEHOLDER_SOURCE);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(this.contract.call(method, ...args))\n .setTimeout(30)\n .build();\n const sim = await this.server.simulateTransaction(tx);\n if (rpc.Api.isSimulationSuccess(sim) && sim.result?.retval) {\n return scValToNative(sim.result.retval);\n }\n return undefined;\n }\n\n private async invoke(\n signer: StellarSigner,\n op: ReturnType<Contract[\"call\"]>,\n ): Promise<string> {\n const account = await this.server.getAccount(signer.publicKey);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(op)\n .setTimeout(60)\n .build();\n const prepared = await this.server.prepareTransaction(tx);\n const signedXdr = await signer.signTransaction(prepared.toXDR(), this.passphrase);\n const signed = TransactionBuilder.fromXDR(signedXdr, this.passphrase) as Transaction;\n const sent = await this.server.sendTransaction(signed);\n return sent.hash;\n }\n}\n\nconst PLACEHOLDER_SOURCE = \"GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF\";\n\nfunction maybeCoords(): StellarCoordinates | undefined {\n try {\n return getCoordinates(\"STELLAR\");\n } catch {\n return undefined;\n }\n}\n"]}
|
package/dist/stellar/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { rpc } from '@stellar/stellar-sdk';
|
|
2
|
-
import { V as VenueAdapter, C as Chain, R as RegisterOrderParams, A as AdapterTxResult, O as OrderRef } from '../types-
|
|
2
|
+
import { V as VenueAdapter, C as Chain, R as RegisterOrderParams, A as AdapterTxResult, O as OrderRef } from '../types-CuSlc_YE.cjs';
|
|
3
3
|
|
|
4
4
|
interface StellarSigner {
|
|
5
5
|
publicKey: string;
|
package/dist/stellar/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { rpc } from '@stellar/stellar-sdk';
|
|
2
|
-
import { V as VenueAdapter, C as Chain, R as RegisterOrderParams, A as AdapterTxResult, O as OrderRef } from '../types-
|
|
2
|
+
import { V as VenueAdapter, C as Chain, R as RegisterOrderParams, A as AdapterTxResult, O as OrderRef } from '../types-CuSlc_YE.js';
|
|
3
3
|
|
|
4
4
|
interface StellarSigner {
|
|
5
5
|
publicKey: string;
|
package/dist/stellar/index.js
CHANGED
|
@@ -15,6 +15,8 @@ var COORDINATES = {
|
|
|
15
15
|
marketplace1155StartBlock: 11198267,
|
|
16
16
|
collection721: "0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea",
|
|
17
17
|
collection721StartBlock: 11198496,
|
|
18
|
+
dataTokenization721: "0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2",
|
|
19
|
+
dataTokenization721StartBlock: 14670294,
|
|
18
20
|
ipNftClassHash: "0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc",
|
|
19
21
|
ipCollectionClassHash: "0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4",
|
|
20
22
|
collection1155: "0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chains.ts","../../src/stellar/venue.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["\n\nexport const CHAINS = [\"STARKNET\", \"ETHEREUM\", \"SOLANA\", \"BASE\", \"STELLAR\", \"BITCOIN\"] as const;\nexport type Chain = (typeof CHAINS)[number];\n\nexport interface StarknetCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721ClassHash?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155ClassHash?: `0x${string}`;\n marketplace1155StartBlock?: number;\n collection721?: `0x${string}`;\n collection721StartBlock?: number;\n ipNftClassHash?: `0x${string}`;\n ipCollectionClassHash?: `0x${string}`;\n collection1155?: `0x${string}`;\n collection1155FactoryClassHash?: `0x${string}`;\n collection1155ClassHash?: `0x${string}`;\n collection1155StartBlock?: number;\n popFactory?: `0x${string}`;\n popCollectionClassHash?: `0x${string}`;\n dropFactory?: `0x${string}`;\n dropCollectionClassHash?: `0x${string}`;\n nftComments?: `0x${string}`;\n creatorCoinFactory?: `0x${string}`;\n creatorCoinEkuboLauncher?: `0x${string}`;\n creatorCoinClassHash?: `0x${string}`;\n creatorCoinFactoryClassHash?: `0x${string}`;\n creatorCoinStartBlock?: number;\n ekuboCore?: `0x${string}`;\n ipTicketsFactory?: `0x${string}`;\n ipTicketCollectionClassHash?: `0x${string}`;\n ipTicketsFactoryClassHash?: `0x${string}`;\n ipTicketsStartBlock?: number;\n ipClubFactory?: `0x${string}`;\n ipClubFactoryClassHash?: `0x${string}`;\n ipClubCollectionClassHash?: `0x${string}`;\n ipClubFactoryStartBlock?: number;\n ipSponsorship?: `0x${string}`;\n ipSponsorshipClassHash?: `0x${string}`;\n ipSponsorshipStartBlock?: number;\n mediaWalletClassHash?: `0x${string}`;\n genesisMintLaunch?: `0x${string}`;\n genesisMintBR?: `0x${string}`;\n genesisMintGlobal?: `0x${string}`;\n}\n\nexport interface EvmCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155StartBlock?: number;\n mipRegistry?: `0x${string}`;\n mipRegistryStartBlock?: number;\n mipEditionsRegistry?: `0x${string}`;\n mipEditionsRegistryStartBlock?: number;\n}\n\nexport interface SolanaCoordinates {\n rpcUrl: string;\n mipCollectionsProgram?: string;\n marketplaceProgram?: string;\n startSlot?: number;\n}\n\nexport interface StellarCoordinates {\n rpcUrl: string;\n mipRegistry?: string;\n marketplace?: string;\n collectionWasmHash?: string;\n startLedger?: number;\n}\n\nexport interface CoordinatesByChain {\n STARKNET?: StarknetCoordinates;\n ETHEREUM?: EvmCoordinates;\n BASE?: EvmCoordinates;\n SOLANA?: SolanaCoordinates;\n STELLAR?: StellarCoordinates;\n BITCOIN?: never;\n}\n\nexport type ChainCoordinates = StarknetCoordinates;\n\nconst COORDINATES: CoordinatesByChain = {\n STARKNET: {\n rpcUrl: \"https://rpc.starknet.lava.build\",\n marketplace721: \"0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc\",\n marketplace721ClassHash: \"0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90\",\n marketplace721StartBlock: 11198146,\n marketplace1155: \"0x07c4ce1c19ea48cc11135ed22b19ff745f5aec508c3828593002e4f76fdb1b38\",\n marketplace1155ClassHash: \"0x0242f5c388da7cee2d99e2a69453c8159bf927fbec4e797a3cfdcbbcb5b68328\",\n marketplace1155StartBlock: 11198267,\n collection721: \"0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea\",\n collection721StartBlock: 11198496,\n ipNftClassHash: \"0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc\",\n ipCollectionClassHash: \"0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4\",\n collection1155: \"0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551\",\n collection1155FactoryClassHash: \"0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2\",\n collection1155ClassHash: \"0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78\",\n collection1155StartBlock: 11199527,\n popFactory: \"0x00b32c34b427d8f346b5843ada6a37bd3368d879fc752cd52b68a87287f60111\",\n popCollectionClassHash: \"0x077c421686f10851872561953ea16898d933364b7f8937a5d7e2b1ba0a36263f\",\n dropFactory: \"0x03587f42e29daee1b193f6cf83bf8627908ed6632d0d83fcb26225c50547d800\",\n dropCollectionClassHash: \"0x00092e72cdb63067521e803aaf7d4101c3e3ce026ae6bc045ec4228027e58282\",\n nftComments: \"0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843\",\n creatorCoinFactory: \"0x50fa807b5274079fb19374673d7bab6d2dc3af7e1032ea43eb6e44bcbde4c3c\",\n creatorCoinEkuboLauncher: \"0x4f7fceb5ac10f12f9544a09580592e5bdf1b7f04f48765eecf12286d8ccb7b4\",\n creatorCoinClassHash: \"0x743e4c8a5b96bb83bbf4af04edbbb482d5ece89eed9b729a79fb7df0cd0b6b6\",\n creatorCoinFactoryClassHash: \"0x51765926b1344c9a20b8cd4b5abe7b7d47375ae97cf6804db3ea5d4b05a9b55\",\n creatorCoinStartBlock: 10474544,\n ekuboCore: \"0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b\",\n ipTicketsFactory: \"0x0767bf5b57e1f812463159b5ed683183e1b0c3f942b74871b5c6cd6a93c15e99\",\n ipTicketCollectionClassHash: \"0x0449e8eb7c117740d07cb8e0157d32c8ba3d19d1cfd2784ed5e139f5a1e04acc\",\n ipTicketsFactoryClassHash: \"0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a\",\n ipTicketsStartBlock: 11933694,\n ipClubFactory: \"0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9\",\n ipClubFactoryClassHash: \"0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266\",\n ipClubCollectionClassHash: \"0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5\",\n ipClubFactoryStartBlock: 11928775,\n\n ipSponsorship: \"0x03729ebe0fedf29ec97fca34db09174772af7f870af26a26e024a61040143e5c\",\n ipSponsorshipClassHash: \"0x0626daac2ed7e2bf630ef5b10104b3202db1559216c0c1a504c0e99be2fbfec3\",\n ipSponsorshipStartBlock: 11896456,\n mediaWalletClassHash: \"0x014b210c7d47392691144bafecdca3c6c7791cc295ea305988da0a724c05ac31\",\n genesisMintLaunch: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n genesisMintBR: \"0x01f8b92e3b9e963b8eacb075207e2cc89d4614ff2ac6c2702c7ae10ad19a9db8\",\n genesisMintGlobal: \"0x06ad4d55ed2d12ad5d6d55587d800874ef807b051bfefe13497e60ec5b019369\",\n },\n};\n\nexport function getCoordinates(chain: \"STARKNET\"): StarknetCoordinates;\nexport function getCoordinates(chain: \"ETHEREUM\" | \"BASE\"): EvmCoordinates;\nexport function getCoordinates(chain: \"SOLANA\"): SolanaCoordinates;\nexport function getCoordinates(chain: \"STELLAR\"): StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates {\n const c = COORDINATES[chain];\n if (!c) throw new Error(`No coordinates configured for chain \"${chain}\"`);\n return c;\n}\n\nexport const DEFAULT_CHAIN: Chain = \"STARKNET\";\n\nexport function getStarknetCoordinates(chain: Chain): StarknetCoordinates {\n if (chain !== \"STARKNET\") {\n throw new Error(`This module is Starknet-only (client chain: \"${chain}\")`);\n }\n return getCoordinates(\"STARKNET\");\n}\n","import {\n Contract,\n TransactionBuilder,\n nativeToScVal,\n scValToNative,\n type Transaction,\n rpc,\n} from \"@stellar/stellar-sdk\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type StellarCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\n\nexport interface StellarSigner {\n publicKey: string;\n signTransaction(xdr: string, networkPassphrase: string): Promise<string>;\n}\n\nexport interface StellarVenueOptions {\n server: rpc.Server;\n networkPassphrase: string;\n\n contractId?: string;\n baseFee?: string;\n}\n\nexport function stellarOrderRef(contractId: string, offerer: string, salt: bigint): OrderRef {\n const payload = new TextEncoder().encode(`${contractId}:${offerer}:${salt.toString()}`);\n return \"0x\" + Buffer.from(sha256(payload)).toString(\"hex\");\n}\n\nexport class StellarVenue implements VenueAdapter<StellarSigner> {\n readonly chain: Chain = \"STELLAR\";\n private readonly server: rpc.Server;\n private readonly passphrase: string;\n private readonly contract: Contract;\n private readonly contractId: string;\n private readonly baseFee: string;\n\n constructor(opts: StellarVenueOptions) {\n this.server = opts.server;\n this.passphrase = opts.networkPassphrase;\n const contractId = opts.contractId ?? maybeCoords()?.marketplace;\n if (!contractId) throw new Error(\"No Stellar venue contract configured\");\n this.contractId = contractId;\n this.contract = new Contract(contractId);\n this.baseFee = opts.baseFee ?? \"100\";\n }\n\n async registerOrder(\n signer: StellarSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const salt = BigInt(params.salt);\n const counter = await this.getCounter(signer.publicKey);\n const op = this.contract.call(\n \"register_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n nativeToScVal([params.side === \"listing\" ? \"Listing\" : \"Bid\"], { type: \"symbol\" }),\n nativeToScVal(params.asset.contract, { type: \"address\" }),\n nativeToScVal(Number(params.asset.tokenId), { type: \"u32\" }),\n nativeToScVal(params.paymentToken, { type: \"address\" }),\n nativeToScVal(BigInt(params.amount), { type: \"i128\" }),\n nativeToScVal(params.royaltyMaxBps, { type: \"u32\" }),\n nativeToScVal(BigInt(params.startTime), { type: \"u64\" }),\n nativeToScVal(BigInt(params.endTime), { type: \"u64\" }),\n nativeToScVal(counter, { type: \"u64\" }),\n );\n const txHash = await this.invoke(signer, op);\n return { txHash, orderRef: stellarOrderRef(this.contractId, signer.publicKey, salt) };\n }\n\n async fulfillOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { offerer?: string; salt?: string },\n ): Promise<AdapterTxResult> {\n if (!opts?.offerer || opts.salt === undefined) {\n throw new Error(\"Stellar fulfillment needs { offerer, salt } (orders are storage-keyed)\");\n }\n const op = this.contract.call(\n \"fulfill_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(opts.offerer, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async cancelOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { salt?: string },\n ): Promise<AdapterTxResult> {\n if (opts?.salt === undefined) throw new Error(\"Stellar cancel needs { salt }\");\n const op = this.contract.call(\n \"cancel_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async incrementCounter(signer: StellarSigner): Promise<AdapterTxResult> {\n const op = this.contract.call(\n \"increment_counter\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async getOrderDetails(_orderRef: OrderRef): Promise<unknown> {\n throw new Error(\"Use getOrder(offerer, salt) — Stellar orders are storage-keyed\");\n }\n\n async getOrder(offerer: string, salt: bigint): Promise<unknown> {\n return this.view(\"get_order\", [\n nativeToScVal(offerer, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n ]);\n }\n\n async getCounter(address: string): Promise<bigint> {\n const value = await this.view(\"get_counter\", [nativeToScVal(address, { type: \"address\" })]);\n return BigInt((value as bigint | number | undefined) ?? 0);\n }\n\n private async view(method: string, args: Parameters<Contract[\"call\"]>[1][]): Promise<unknown> {\n const account = await this.server.getAccount(PLACEHOLDER_SOURCE);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(this.contract.call(method, ...args))\n .setTimeout(30)\n .build();\n const sim = await this.server.simulateTransaction(tx);\n if (rpc.Api.isSimulationSuccess(sim) && sim.result?.retval) {\n return scValToNative(sim.result.retval);\n }\n return undefined;\n }\n\n private async invoke(\n signer: StellarSigner,\n op: ReturnType<Contract[\"call\"]>,\n ): Promise<string> {\n const account = await this.server.getAccount(signer.publicKey);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(op)\n .setTimeout(60)\n .build();\n const prepared = await this.server.prepareTransaction(tx);\n const signedXdr = await signer.signTransaction(prepared.toXDR(), this.passphrase);\n const signed = TransactionBuilder.fromXDR(signedXdr, this.passphrase) as Transaction;\n const sent = await this.server.sendTransaction(signed);\n return sent.hash;\n }\n}\n\nconst PLACEHOLDER_SOURCE = \"GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF\";\n\nfunction maybeCoords(): StellarCoordinates | undefined {\n try {\n return getCoordinates(\"STELLAR\");\n } catch {\n return undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/chains.ts","../../src/stellar/venue.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["\n\nexport const CHAINS = [\"STARKNET\", \"ETHEREUM\", \"SOLANA\", \"BASE\", \"STELLAR\", \"BITCOIN\"] as const;\nexport type Chain = (typeof CHAINS)[number];\n\nexport interface StarknetCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721ClassHash?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155ClassHash?: `0x${string}`;\n marketplace1155StartBlock?: number;\n collection721?: `0x${string}`;\n collection721StartBlock?: number;\n dataTokenization721?: `0x${string}`;\n dataTokenization721StartBlock?: number;\n ipNftClassHash?: `0x${string}`;\n ipCollectionClassHash?: `0x${string}`;\n collection1155?: `0x${string}`;\n collection1155FactoryClassHash?: `0x${string}`;\n collection1155ClassHash?: `0x${string}`;\n collection1155StartBlock?: number;\n popFactory?: `0x${string}`;\n popCollectionClassHash?: `0x${string}`;\n dropFactory?: `0x${string}`;\n dropCollectionClassHash?: `0x${string}`;\n nftComments?: `0x${string}`;\n creatorCoinFactory?: `0x${string}`;\n creatorCoinEkuboLauncher?: `0x${string}`;\n creatorCoinClassHash?: `0x${string}`;\n creatorCoinFactoryClassHash?: `0x${string}`;\n creatorCoinStartBlock?: number;\n ekuboCore?: `0x${string}`;\n ipTicketsFactory?: `0x${string}`;\n ipTicketCollectionClassHash?: `0x${string}`;\n ipTicketsFactoryClassHash?: `0x${string}`;\n ipTicketsStartBlock?: number;\n ipClubFactory?: `0x${string}`;\n ipClubFactoryClassHash?: `0x${string}`;\n ipClubCollectionClassHash?: `0x${string}`;\n ipClubFactoryStartBlock?: number;\n ipSponsorship?: `0x${string}`;\n ipSponsorshipClassHash?: `0x${string}`;\n ipSponsorshipStartBlock?: number;\n mediaWalletClassHash?: `0x${string}`;\n genesisMintLaunch?: `0x${string}`;\n genesisMintBR?: `0x${string}`;\n genesisMintGlobal?: `0x${string}`;\n}\n\nexport interface EvmCoordinates {\n rpcUrl: string;\n marketplace721?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155StartBlock?: number;\n mipRegistry?: `0x${string}`;\n mipRegistryStartBlock?: number;\n mipEditionsRegistry?: `0x${string}`;\n mipEditionsRegistryStartBlock?: number;\n}\n\nexport interface SolanaCoordinates {\n rpcUrl: string;\n mipCollectionsProgram?: string;\n marketplaceProgram?: string;\n startSlot?: number;\n}\n\nexport interface StellarCoordinates {\n rpcUrl: string;\n mipRegistry?: string;\n marketplace?: string;\n collectionWasmHash?: string;\n startLedger?: number;\n}\n\nexport interface CoordinatesByChain {\n STARKNET?: StarknetCoordinates;\n ETHEREUM?: EvmCoordinates;\n BASE?: EvmCoordinates;\n SOLANA?: SolanaCoordinates;\n STELLAR?: StellarCoordinates;\n BITCOIN?: never;\n}\n\nexport type ChainCoordinates = StarknetCoordinates;\n\nconst COORDINATES: CoordinatesByChain = {\n STARKNET: {\n rpcUrl: \"https://rpc.starknet.lava.build\",\n marketplace721: \"0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc\",\n marketplace721ClassHash: \"0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90\",\n marketplace721StartBlock: 11198146,\n marketplace1155: \"0x07c4ce1c19ea48cc11135ed22b19ff745f5aec508c3828593002e4f76fdb1b38\",\n marketplace1155ClassHash: \"0x0242f5c388da7cee2d99e2a69453c8159bf927fbec4e797a3cfdcbbcb5b68328\",\n marketplace1155StartBlock: 11198267,\n collection721: \"0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea\",\n collection721StartBlock: 11198496,\n dataTokenization721: \"0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2\",\n dataTokenization721StartBlock: 14670294,\n ipNftClassHash: \"0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc\",\n ipCollectionClassHash: \"0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4\",\n collection1155: \"0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551\",\n collection1155FactoryClassHash: \"0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2\",\n collection1155ClassHash: \"0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78\",\n collection1155StartBlock: 11199527,\n popFactory: \"0x00b32c34b427d8f346b5843ada6a37bd3368d879fc752cd52b68a87287f60111\",\n popCollectionClassHash: \"0x077c421686f10851872561953ea16898d933364b7f8937a5d7e2b1ba0a36263f\",\n dropFactory: \"0x03587f42e29daee1b193f6cf83bf8627908ed6632d0d83fcb26225c50547d800\",\n dropCollectionClassHash: \"0x00092e72cdb63067521e803aaf7d4101c3e3ce026ae6bc045ec4228027e58282\",\n nftComments: \"0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843\",\n creatorCoinFactory: \"0x50fa807b5274079fb19374673d7bab6d2dc3af7e1032ea43eb6e44bcbde4c3c\",\n creatorCoinEkuboLauncher: \"0x4f7fceb5ac10f12f9544a09580592e5bdf1b7f04f48765eecf12286d8ccb7b4\",\n creatorCoinClassHash: \"0x743e4c8a5b96bb83bbf4af04edbbb482d5ece89eed9b729a79fb7df0cd0b6b6\",\n creatorCoinFactoryClassHash: \"0x51765926b1344c9a20b8cd4b5abe7b7d47375ae97cf6804db3ea5d4b05a9b55\",\n creatorCoinStartBlock: 10474544,\n ekuboCore: \"0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b\",\n ipTicketsFactory: \"0x0767bf5b57e1f812463159b5ed683183e1b0c3f942b74871b5c6cd6a93c15e99\",\n ipTicketCollectionClassHash: \"0x0449e8eb7c117740d07cb8e0157d32c8ba3d19d1cfd2784ed5e139f5a1e04acc\",\n ipTicketsFactoryClassHash: \"0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a\",\n ipTicketsStartBlock: 11933694,\n ipClubFactory: \"0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9\",\n ipClubFactoryClassHash: \"0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266\",\n ipClubCollectionClassHash: \"0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5\",\n ipClubFactoryStartBlock: 11928775,\n\n ipSponsorship: \"0x03729ebe0fedf29ec97fca34db09174772af7f870af26a26e024a61040143e5c\",\n ipSponsorshipClassHash: \"0x0626daac2ed7e2bf630ef5b10104b3202db1559216c0c1a504c0e99be2fbfec3\",\n ipSponsorshipStartBlock: 11896456,\n mediaWalletClassHash: \"0x014b210c7d47392691144bafecdca3c6c7791cc295ea305988da0a724c05ac31\",\n genesisMintLaunch: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n genesisMintBR: \"0x01f8b92e3b9e963b8eacb075207e2cc89d4614ff2ac6c2702c7ae10ad19a9db8\",\n genesisMintGlobal: \"0x06ad4d55ed2d12ad5d6d55587d800874ef807b051bfefe13497e60ec5b019369\",\n },\n};\n\nexport function getCoordinates(chain: \"STARKNET\"): StarknetCoordinates;\nexport function getCoordinates(chain: \"ETHEREUM\" | \"BASE\"): EvmCoordinates;\nexport function getCoordinates(chain: \"SOLANA\"): SolanaCoordinates;\nexport function getCoordinates(chain: \"STELLAR\"): StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates {\n const c = COORDINATES[chain];\n if (!c) throw new Error(`No coordinates configured for chain \"${chain}\"`);\n return c;\n}\n\nexport const DEFAULT_CHAIN: Chain = \"STARKNET\";\n\nexport function getStarknetCoordinates(chain: Chain): StarknetCoordinates {\n if (chain !== \"STARKNET\") {\n throw new Error(`This module is Starknet-only (client chain: \"${chain}\")`);\n }\n return getCoordinates(\"STARKNET\");\n}\n","import {\n Contract,\n TransactionBuilder,\n nativeToScVal,\n scValToNative,\n type Transaction,\n rpc,\n} from \"@stellar/stellar-sdk\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type StellarCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\n\nexport interface StellarSigner {\n publicKey: string;\n signTransaction(xdr: string, networkPassphrase: string): Promise<string>;\n}\n\nexport interface StellarVenueOptions {\n server: rpc.Server;\n networkPassphrase: string;\n\n contractId?: string;\n baseFee?: string;\n}\n\nexport function stellarOrderRef(contractId: string, offerer: string, salt: bigint): OrderRef {\n const payload = new TextEncoder().encode(`${contractId}:${offerer}:${salt.toString()}`);\n return \"0x\" + Buffer.from(sha256(payload)).toString(\"hex\");\n}\n\nexport class StellarVenue implements VenueAdapter<StellarSigner> {\n readonly chain: Chain = \"STELLAR\";\n private readonly server: rpc.Server;\n private readonly passphrase: string;\n private readonly contract: Contract;\n private readonly contractId: string;\n private readonly baseFee: string;\n\n constructor(opts: StellarVenueOptions) {\n this.server = opts.server;\n this.passphrase = opts.networkPassphrase;\n const contractId = opts.contractId ?? maybeCoords()?.marketplace;\n if (!contractId) throw new Error(\"No Stellar venue contract configured\");\n this.contractId = contractId;\n this.contract = new Contract(contractId);\n this.baseFee = opts.baseFee ?? \"100\";\n }\n\n async registerOrder(\n signer: StellarSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const salt = BigInt(params.salt);\n const counter = await this.getCounter(signer.publicKey);\n const op = this.contract.call(\n \"register_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n nativeToScVal([params.side === \"listing\" ? \"Listing\" : \"Bid\"], { type: \"symbol\" }),\n nativeToScVal(params.asset.contract, { type: \"address\" }),\n nativeToScVal(Number(params.asset.tokenId), { type: \"u32\" }),\n nativeToScVal(params.paymentToken, { type: \"address\" }),\n nativeToScVal(BigInt(params.amount), { type: \"i128\" }),\n nativeToScVal(params.royaltyMaxBps, { type: \"u32\" }),\n nativeToScVal(BigInt(params.startTime), { type: \"u64\" }),\n nativeToScVal(BigInt(params.endTime), { type: \"u64\" }),\n nativeToScVal(counter, { type: \"u64\" }),\n );\n const txHash = await this.invoke(signer, op);\n return { txHash, orderRef: stellarOrderRef(this.contractId, signer.publicKey, salt) };\n }\n\n async fulfillOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { offerer?: string; salt?: string },\n ): Promise<AdapterTxResult> {\n if (!opts?.offerer || opts.salt === undefined) {\n throw new Error(\"Stellar fulfillment needs { offerer, salt } (orders are storage-keyed)\");\n }\n const op = this.contract.call(\n \"fulfill_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(opts.offerer, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async cancelOrder(\n signer: StellarSigner,\n _orderRef: OrderRef,\n opts?: { salt?: string },\n ): Promise<AdapterTxResult> {\n if (opts?.salt === undefined) throw new Error(\"Stellar cancel needs { salt }\");\n const op = this.contract.call(\n \"cancel_order\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n nativeToScVal(BigInt(opts.salt), { type: \"u64\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async incrementCounter(signer: StellarSigner): Promise<AdapterTxResult> {\n const op = this.contract.call(\n \"increment_counter\",\n nativeToScVal(signer.publicKey, { type: \"address\" }),\n );\n return { txHash: await this.invoke(signer, op) };\n }\n\n async getOrderDetails(_orderRef: OrderRef): Promise<unknown> {\n throw new Error(\"Use getOrder(offerer, salt) — Stellar orders are storage-keyed\");\n }\n\n async getOrder(offerer: string, salt: bigint): Promise<unknown> {\n return this.view(\"get_order\", [\n nativeToScVal(offerer, { type: \"address\" }),\n nativeToScVal(salt, { type: \"u64\" }),\n ]);\n }\n\n async getCounter(address: string): Promise<bigint> {\n const value = await this.view(\"get_counter\", [nativeToScVal(address, { type: \"address\" })]);\n return BigInt((value as bigint | number | undefined) ?? 0);\n }\n\n private async view(method: string, args: Parameters<Contract[\"call\"]>[1][]): Promise<unknown> {\n const account = await this.server.getAccount(PLACEHOLDER_SOURCE);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(this.contract.call(method, ...args))\n .setTimeout(30)\n .build();\n const sim = await this.server.simulateTransaction(tx);\n if (rpc.Api.isSimulationSuccess(sim) && sim.result?.retval) {\n return scValToNative(sim.result.retval);\n }\n return undefined;\n }\n\n private async invoke(\n signer: StellarSigner,\n op: ReturnType<Contract[\"call\"]>,\n ): Promise<string> {\n const account = await this.server.getAccount(signer.publicKey);\n const tx = new TransactionBuilder(account, { fee: this.baseFee, networkPassphrase: this.passphrase })\n .addOperation(op)\n .setTimeout(60)\n .build();\n const prepared = await this.server.prepareTransaction(tx);\n const signedXdr = await signer.signTransaction(prepared.toXDR(), this.passphrase);\n const signed = TransactionBuilder.fromXDR(signedXdr, this.passphrase) as Transaction;\n const sent = await this.server.sendTransaction(signed);\n return sent.hash;\n }\n}\n\nconst PLACEHOLDER_SOURCE = \"GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF\";\n\nfunction maybeCoords(): StellarCoordinates | undefined {\n try {\n return getCoordinates(\"STELLAR\");\n } catch {\n return undefined;\n }\n}\n"]}
|
|
@@ -10,6 +10,8 @@ interface StarknetCoordinates {
|
|
|
10
10
|
marketplace1155StartBlock?: number;
|
|
11
11
|
collection721?: `0x${string}`;
|
|
12
12
|
collection721StartBlock?: number;
|
|
13
|
+
dataTokenization721?: `0x${string}`;
|
|
14
|
+
dataTokenization721StartBlock?: number;
|
|
13
15
|
ipNftClassHash?: `0x${string}`;
|
|
14
16
|
ipCollectionClassHash?: `0x${string}`;
|
|
15
17
|
collection1155?: `0x${string}`;
|
|
@@ -10,6 +10,8 @@ interface StarknetCoordinates {
|
|
|
10
10
|
marketplace1155StartBlock?: number;
|
|
11
11
|
collection721?: `0x${string}`;
|
|
12
12
|
collection721StartBlock?: number;
|
|
13
|
+
dataTokenization721?: `0x${string}`;
|
|
14
|
+
dataTokenization721StartBlock?: number;
|
|
13
15
|
ipNftClassHash?: `0x${string}`;
|
|
14
16
|
ipCollectionClassHash?: `0x${string}`;
|
|
15
17
|
collection1155?: `0x${string}`;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medialane/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Framework-agnostic TypeScript SDK for Medialane.io
|
|
3
|
+
"version": "0.111.0",
|
|
4
|
+
"description": "Framework-agnostic TypeScript SDK for Medialane.io \u2014 the IP marketplace on Starknet",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|