@medialane/sdk 0.109.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 -90
- package/dist/index.d.ts +30 -90
- 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 +51 -4
- package/dist/starknet/index.cjs.map +1 -1
- package/dist/starknet/index.d.cts +10 -14
- package/dist/starknet/index.d.ts +10 -14
- package/dist/starknet/index.js +51 -5
- 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 +1 -1
package/dist/solana/index.cjs
CHANGED
|
@@ -111,6 +111,8 @@ var COORDINATES = {
|
|
|
111
111
|
marketplace1155StartBlock: 11198267,
|
|
112
112
|
collection721: "0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea",
|
|
113
113
|
collection721StartBlock: 11198496,
|
|
114
|
+
dataTokenization721: "0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2",
|
|
115
|
+
dataTokenization721StartBlock: 14670294,
|
|
114
116
|
ipNftClassHash: "0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc",
|
|
115
117
|
ipCollectionClassHash: "0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4",
|
|
116
118
|
collection1155: "0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/solana/encoding.ts","../../src/chains.ts","../../src/solana/venue.ts"],"names":["sha256","PublicKey","TransactionInstruction","SystemProgram","Transaction"],"mappings":"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","file":"index.cjs","sourcesContent":["import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport function instructionDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`global:${name}`)).slice(0, 8);\n}\n\nexport function eventDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`event:${name}`)).slice(0, 8);\n}\n\nexport class BorshWriter {\n private chunks: Uint8Array[] = [];\n\n u8(v: number): this {\n this.chunks.push(Uint8Array.of(v));\n return this;\n }\n u16(v: number): this {\n const b = new Uint8Array(2);\n new DataView(b.buffer).setUint16(0, v, true);\n this.chunks.push(b);\n return this;\n }\n u64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n i64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigInt64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n string(v: string): this {\n const bytes = new TextEncoder().encode(v);\n const len = new Uint8Array(4);\n new DataView(len.buffer).setUint32(0, bytes.length, true);\n this.chunks.push(len, bytes);\n return this;\n }\n pubkey(v: PublicKey): this {\n this.chunks.push(v.toBytes());\n return this;\n }\n option<T>(v: T | null | undefined, write: (value: T) => void): this {\n if (v === null || v === undefined) {\n this.u8(0);\n } else {\n this.u8(1);\n write(v);\n }\n return this;\n }\n build(discriminator: Uint8Array): Uint8Array {\n const total = this.chunks.reduce((n, c) => n + c.length, discriminator.length);\n const out = new Uint8Array(total);\n out.set(discriminator, 0);\n let offset = discriminator.length;\n for (const chunk of this.chunks) {\n out.set(chunk, offset);\n offset += chunk.length;\n }\n return out;\n }\n}\n\nexport function u64le(v: bigint): Uint8Array {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n return b;\n}\n\nexport function orderPda(program: PublicKey, offerer: PublicKey, salt: bigint): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"order\"), offerer.toBytes(), u64le(salt)],\n program,\n )[0];\n}\n\nexport function counterPda(program: PublicKey, offerer: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"counter\"), offerer.toBytes()],\n program,\n )[0];\n}\n\nexport function settlementPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"authority\")], program)[0];\n}\n\nexport function registryCounterPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"counter\")], program)[0];\n}\n\nexport function collectionRecordPda(program: PublicKey, coreCollection: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"collection\"), coreCollection.toBytes()],\n program,\n )[0];\n}\n\nexport const MPL_CORE_PROGRAM_ID = new PublicKey(\"CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d\");\n","\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 PublicKey,\n SystemProgram,\n Transaction,\n TransactionInstruction,\n type Connection,\n} from \"@solana/web3.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type SolanaCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\nimport {\n BorshWriter,\n MPL_CORE_PROGRAM_ID,\n counterPda,\n instructionDiscriminator,\n orderPda,\n settlementPda,\n} from \"./encoding.js\";\n\nexport interface SolanaSigner {\n publicKey: PublicKey;\n signTransaction(tx: Transaction): Promise<Transaction>;\n}\n\nexport interface SolanaVenueOptions {\n connection: Connection;\n\n programId?: string;\n}\n\nexport class SolanaVenue implements VenueAdapter<SolanaSigner> {\n readonly chain: Chain = \"SOLANA\";\n private readonly connection: Connection;\n private readonly program: PublicKey;\n\n constructor(opts: SolanaVenueOptions) {\n this.connection = opts.connection;\n const program = opts.programId ?? maybeCoords()?.marketplaceProgram;\n if (!program) throw new Error(\"No Solana marketplace program configured\");\n this.program = new PublicKey(program);\n }\n\n async registerOrder(\n signer: SolanaSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const offerer = signer.publicKey;\n const salt = BigInt(params.salt);\n const isNative = params.paymentToken === \"native\";\n const counter = await this.getCounter(offerer.toBase58());\n const writer = new BorshWriter()\n .u64(salt)\n .u8(params.side === \"listing\" ? 0 : 1)\n .option(isNative ? null : new PublicKey(params.paymentToken), (mint) => writer.pubkey(mint))\n .u64(BigInt(params.amount))\n .u16(params.royaltyMaxBps)\n .i64(BigInt(params.startTime))\n .i64(BigInt(params.endTime))\n .u64(counter);\n const order = orderPda(this.program, offerer, salt);\n const asset = new PublicKey(params.asset.contract);\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: offerer, isSigner: true, isWritable: true },\n { pubkey: order, isSigner: false, isWritable: true },\n { pubkey: counterPda(this.program, offerer), isSigner: false, isWritable: true },\n { pubkey: settlementPda(this.program), isSigner: false, isWritable: false },\n { pubkey: asset, isSigner: false, isWritable: true },\n { pubkey: new PublicKey(params.asset.tokenId), isSigner: false, isWritable: true },\n { pubkey: MPL_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(writer.build(instructionDiscriminator(\"register_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash, orderRef: order.toBase58() };\n }\n\n async fulfillOrder(): Promise<AdapterTxResult> {\n throw new Error(\n \"Solana fulfillment requires the order's creator remaining-accounts; use buildFulfillInstruction with explicit accounts\",\n );\n }\n\n async cancelOrder(signer: SolanaSigner, orderRef: OrderRef): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: false },\n { pubkey: new PublicKey(orderRef), isSigner: false, isWritable: true },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"cancel_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async incrementCounter(signer: SolanaSigner): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: true },\n { pubkey: counterPda(this.program, signer.publicKey), isSigner: false, isWritable: true },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"increment_counter\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async getOrderDetails(orderRef: OrderRef): Promise<unknown> {\n const info = await this.connection.getAccountInfo(new PublicKey(orderRef));\n return info?.data ?? null;\n }\n\n async getCounter(address: string): Promise<bigint> {\n const pda = counterPda(this.program, new PublicKey(address));\n const info = await this.connection.getAccountInfo(pda);\n if (!info || info.data.length < 16) return 0n;\n\n return new DataView(info.data.buffer, info.data.byteOffset + 8, 8).getBigUint64(0, true);\n }\n\n private async send(signer: SolanaSigner, instruction: TransactionInstruction): Promise<string> {\n const tx = new Transaction().add(instruction);\n tx.feePayer = signer.publicKey;\n tx.recentBlockhash = (await this.connection.getLatestBlockhash()).blockhash;\n const signed = await signer.signTransaction(tx);\n return this.connection.sendRawTransaction(signed.serialize());\n }\n}\n\nfunction maybeCoords(): SolanaCoordinates | undefined {\n try {\n return getCoordinates(\"SOLANA\");\n } catch {\n return undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/solana/encoding.ts","../../src/chains.ts","../../src/solana/venue.ts"],"names":["sha256","PublicKey","TransactionInstruction","SystemProgram","Transaction"],"mappings":"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","file":"index.cjs","sourcesContent":["import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport function instructionDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`global:${name}`)).slice(0, 8);\n}\n\nexport function eventDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`event:${name}`)).slice(0, 8);\n}\n\nexport class BorshWriter {\n private chunks: Uint8Array[] = [];\n\n u8(v: number): this {\n this.chunks.push(Uint8Array.of(v));\n return this;\n }\n u16(v: number): this {\n const b = new Uint8Array(2);\n new DataView(b.buffer).setUint16(0, v, true);\n this.chunks.push(b);\n return this;\n }\n u64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n i64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigInt64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n string(v: string): this {\n const bytes = new TextEncoder().encode(v);\n const len = new Uint8Array(4);\n new DataView(len.buffer).setUint32(0, bytes.length, true);\n this.chunks.push(len, bytes);\n return this;\n }\n pubkey(v: PublicKey): this {\n this.chunks.push(v.toBytes());\n return this;\n }\n option<T>(v: T | null | undefined, write: (value: T) => void): this {\n if (v === null || v === undefined) {\n this.u8(0);\n } else {\n this.u8(1);\n write(v);\n }\n return this;\n }\n build(discriminator: Uint8Array): Uint8Array {\n const total = this.chunks.reduce((n, c) => n + c.length, discriminator.length);\n const out = new Uint8Array(total);\n out.set(discriminator, 0);\n let offset = discriminator.length;\n for (const chunk of this.chunks) {\n out.set(chunk, offset);\n offset += chunk.length;\n }\n return out;\n }\n}\n\nexport function u64le(v: bigint): Uint8Array {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n return b;\n}\n\nexport function orderPda(program: PublicKey, offerer: PublicKey, salt: bigint): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"order\"), offerer.toBytes(), u64le(salt)],\n program,\n )[0];\n}\n\nexport function counterPda(program: PublicKey, offerer: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"counter\"), offerer.toBytes()],\n program,\n )[0];\n}\n\nexport function settlementPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"authority\")], program)[0];\n}\n\nexport function registryCounterPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"counter\")], program)[0];\n}\n\nexport function collectionRecordPda(program: PublicKey, coreCollection: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"collection\"), coreCollection.toBytes()],\n program,\n )[0];\n}\n\nexport const MPL_CORE_PROGRAM_ID = new PublicKey(\"CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d\");\n","\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 PublicKey,\n SystemProgram,\n Transaction,\n TransactionInstruction,\n type Connection,\n} from \"@solana/web3.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type SolanaCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\nimport {\n BorshWriter,\n MPL_CORE_PROGRAM_ID,\n counterPda,\n instructionDiscriminator,\n orderPda,\n settlementPda,\n} from \"./encoding.js\";\n\nexport interface SolanaSigner {\n publicKey: PublicKey;\n signTransaction(tx: Transaction): Promise<Transaction>;\n}\n\nexport interface SolanaVenueOptions {\n connection: Connection;\n\n programId?: string;\n}\n\nexport class SolanaVenue implements VenueAdapter<SolanaSigner> {\n readonly chain: Chain = \"SOLANA\";\n private readonly connection: Connection;\n private readonly program: PublicKey;\n\n constructor(opts: SolanaVenueOptions) {\n this.connection = opts.connection;\n const program = opts.programId ?? maybeCoords()?.marketplaceProgram;\n if (!program) throw new Error(\"No Solana marketplace program configured\");\n this.program = new PublicKey(program);\n }\n\n async registerOrder(\n signer: SolanaSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const offerer = signer.publicKey;\n const salt = BigInt(params.salt);\n const isNative = params.paymentToken === \"native\";\n const counter = await this.getCounter(offerer.toBase58());\n const writer = new BorshWriter()\n .u64(salt)\n .u8(params.side === \"listing\" ? 0 : 1)\n .option(isNative ? null : new PublicKey(params.paymentToken), (mint) => writer.pubkey(mint))\n .u64(BigInt(params.amount))\n .u16(params.royaltyMaxBps)\n .i64(BigInt(params.startTime))\n .i64(BigInt(params.endTime))\n .u64(counter);\n const order = orderPda(this.program, offerer, salt);\n const asset = new PublicKey(params.asset.contract);\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: offerer, isSigner: true, isWritable: true },\n { pubkey: order, isSigner: false, isWritable: true },\n { pubkey: counterPda(this.program, offerer), isSigner: false, isWritable: true },\n { pubkey: settlementPda(this.program), isSigner: false, isWritable: false },\n { pubkey: asset, isSigner: false, isWritable: true },\n { pubkey: new PublicKey(params.asset.tokenId), isSigner: false, isWritable: true },\n { pubkey: MPL_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(writer.build(instructionDiscriminator(\"register_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash, orderRef: order.toBase58() };\n }\n\n async fulfillOrder(): Promise<AdapterTxResult> {\n throw new Error(\n \"Solana fulfillment requires the order's creator remaining-accounts; use buildFulfillInstruction with explicit accounts\",\n );\n }\n\n async cancelOrder(signer: SolanaSigner, orderRef: OrderRef): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: false },\n { pubkey: new PublicKey(orderRef), isSigner: false, isWritable: true },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"cancel_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async incrementCounter(signer: SolanaSigner): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: true },\n { pubkey: counterPda(this.program, signer.publicKey), isSigner: false, isWritable: true },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"increment_counter\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async getOrderDetails(orderRef: OrderRef): Promise<unknown> {\n const info = await this.connection.getAccountInfo(new PublicKey(orderRef));\n return info?.data ?? null;\n }\n\n async getCounter(address: string): Promise<bigint> {\n const pda = counterPda(this.program, new PublicKey(address));\n const info = await this.connection.getAccountInfo(pda);\n if (!info || info.data.length < 16) return 0n;\n\n return new DataView(info.data.buffer, info.data.byteOffset + 8, 8).getBigUint64(0, true);\n }\n\n private async send(signer: SolanaSigner, instruction: TransactionInstruction): Promise<string> {\n const tx = new Transaction().add(instruction);\n tx.feePayer = signer.publicKey;\n tx.recentBlockhash = (await this.connection.getLatestBlockhash()).blockhash;\n const signed = await signer.signTransaction(tx);\n return this.connection.sendRawTransaction(signed.serialize());\n }\n}\n\nfunction maybeCoords(): SolanaCoordinates | undefined {\n try {\n return getCoordinates(\"SOLANA\");\n } catch {\n return undefined;\n }\n}\n"]}
|
package/dist/solana/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PublicKey, Transaction, Connection } from '@solana/web3.js';
|
|
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
|
declare function instructionDiscriminator(name: string): Uint8Array;
|
|
5
5
|
declare function eventDiscriminator(name: string): Uint8Array;
|
package/dist/solana/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PublicKey, Transaction, Connection } from '@solana/web3.js';
|
|
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
|
declare function instructionDiscriminator(name: string): Uint8Array;
|
|
5
5
|
declare function eventDiscriminator(name: string): Uint8Array;
|
package/dist/solana/index.js
CHANGED
|
@@ -109,6 +109,8 @@ var COORDINATES = {
|
|
|
109
109
|
marketplace1155StartBlock: 11198267,
|
|
110
110
|
collection721: "0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea",
|
|
111
111
|
collection721StartBlock: 11198496,
|
|
112
|
+
dataTokenization721: "0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2",
|
|
113
|
+
dataTokenization721StartBlock: 14670294,
|
|
112
114
|
ipNftClassHash: "0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc",
|
|
113
115
|
ipCollectionClassHash: "0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4",
|
|
114
116
|
collection1155: "0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551",
|
package/dist/solana/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/solana/encoding.ts","../../src/chains.ts","../../src/solana/venue.ts"],"names":["PublicKey"],"mappings":"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","file":"index.js","sourcesContent":["import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport function instructionDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`global:${name}`)).slice(0, 8);\n}\n\nexport function eventDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`event:${name}`)).slice(0, 8);\n}\n\nexport class BorshWriter {\n private chunks: Uint8Array[] = [];\n\n u8(v: number): this {\n this.chunks.push(Uint8Array.of(v));\n return this;\n }\n u16(v: number): this {\n const b = new Uint8Array(2);\n new DataView(b.buffer).setUint16(0, v, true);\n this.chunks.push(b);\n return this;\n }\n u64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n i64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigInt64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n string(v: string): this {\n const bytes = new TextEncoder().encode(v);\n const len = new Uint8Array(4);\n new DataView(len.buffer).setUint32(0, bytes.length, true);\n this.chunks.push(len, bytes);\n return this;\n }\n pubkey(v: PublicKey): this {\n this.chunks.push(v.toBytes());\n return this;\n }\n option<T>(v: T | null | undefined, write: (value: T) => void): this {\n if (v === null || v === undefined) {\n this.u8(0);\n } else {\n this.u8(1);\n write(v);\n }\n return this;\n }\n build(discriminator: Uint8Array): Uint8Array {\n const total = this.chunks.reduce((n, c) => n + c.length, discriminator.length);\n const out = new Uint8Array(total);\n out.set(discriminator, 0);\n let offset = discriminator.length;\n for (const chunk of this.chunks) {\n out.set(chunk, offset);\n offset += chunk.length;\n }\n return out;\n }\n}\n\nexport function u64le(v: bigint): Uint8Array {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n return b;\n}\n\nexport function orderPda(program: PublicKey, offerer: PublicKey, salt: bigint): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"order\"), offerer.toBytes(), u64le(salt)],\n program,\n )[0];\n}\n\nexport function counterPda(program: PublicKey, offerer: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"counter\"), offerer.toBytes()],\n program,\n )[0];\n}\n\nexport function settlementPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"authority\")], program)[0];\n}\n\nexport function registryCounterPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"counter\")], program)[0];\n}\n\nexport function collectionRecordPda(program: PublicKey, coreCollection: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"collection\"), coreCollection.toBytes()],\n program,\n )[0];\n}\n\nexport const MPL_CORE_PROGRAM_ID = new PublicKey(\"CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d\");\n","\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 PublicKey,\n SystemProgram,\n Transaction,\n TransactionInstruction,\n type Connection,\n} from \"@solana/web3.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type SolanaCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\nimport {\n BorshWriter,\n MPL_CORE_PROGRAM_ID,\n counterPda,\n instructionDiscriminator,\n orderPda,\n settlementPda,\n} from \"./encoding.js\";\n\nexport interface SolanaSigner {\n publicKey: PublicKey;\n signTransaction(tx: Transaction): Promise<Transaction>;\n}\n\nexport interface SolanaVenueOptions {\n connection: Connection;\n\n programId?: string;\n}\n\nexport class SolanaVenue implements VenueAdapter<SolanaSigner> {\n readonly chain: Chain = \"SOLANA\";\n private readonly connection: Connection;\n private readonly program: PublicKey;\n\n constructor(opts: SolanaVenueOptions) {\n this.connection = opts.connection;\n const program = opts.programId ?? maybeCoords()?.marketplaceProgram;\n if (!program) throw new Error(\"No Solana marketplace program configured\");\n this.program = new PublicKey(program);\n }\n\n async registerOrder(\n signer: SolanaSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const offerer = signer.publicKey;\n const salt = BigInt(params.salt);\n const isNative = params.paymentToken === \"native\";\n const counter = await this.getCounter(offerer.toBase58());\n const writer = new BorshWriter()\n .u64(salt)\n .u8(params.side === \"listing\" ? 0 : 1)\n .option(isNative ? null : new PublicKey(params.paymentToken), (mint) => writer.pubkey(mint))\n .u64(BigInt(params.amount))\n .u16(params.royaltyMaxBps)\n .i64(BigInt(params.startTime))\n .i64(BigInt(params.endTime))\n .u64(counter);\n const order = orderPda(this.program, offerer, salt);\n const asset = new PublicKey(params.asset.contract);\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: offerer, isSigner: true, isWritable: true },\n { pubkey: order, isSigner: false, isWritable: true },\n { pubkey: counterPda(this.program, offerer), isSigner: false, isWritable: true },\n { pubkey: settlementPda(this.program), isSigner: false, isWritable: false },\n { pubkey: asset, isSigner: false, isWritable: true },\n { pubkey: new PublicKey(params.asset.tokenId), isSigner: false, isWritable: true },\n { pubkey: MPL_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(writer.build(instructionDiscriminator(\"register_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash, orderRef: order.toBase58() };\n }\n\n async fulfillOrder(): Promise<AdapterTxResult> {\n throw new Error(\n \"Solana fulfillment requires the order's creator remaining-accounts; use buildFulfillInstruction with explicit accounts\",\n );\n }\n\n async cancelOrder(signer: SolanaSigner, orderRef: OrderRef): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: false },\n { pubkey: new PublicKey(orderRef), isSigner: false, isWritable: true },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"cancel_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async incrementCounter(signer: SolanaSigner): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: true },\n { pubkey: counterPda(this.program, signer.publicKey), isSigner: false, isWritable: true },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"increment_counter\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async getOrderDetails(orderRef: OrderRef): Promise<unknown> {\n const info = await this.connection.getAccountInfo(new PublicKey(orderRef));\n return info?.data ?? null;\n }\n\n async getCounter(address: string): Promise<bigint> {\n const pda = counterPda(this.program, new PublicKey(address));\n const info = await this.connection.getAccountInfo(pda);\n if (!info || info.data.length < 16) return 0n;\n\n return new DataView(info.data.buffer, info.data.byteOffset + 8, 8).getBigUint64(0, true);\n }\n\n private async send(signer: SolanaSigner, instruction: TransactionInstruction): Promise<string> {\n const tx = new Transaction().add(instruction);\n tx.feePayer = signer.publicKey;\n tx.recentBlockhash = (await this.connection.getLatestBlockhash()).blockhash;\n const signed = await signer.signTransaction(tx);\n return this.connection.sendRawTransaction(signed.serialize());\n }\n}\n\nfunction maybeCoords(): SolanaCoordinates | undefined {\n try {\n return getCoordinates(\"SOLANA\");\n } catch {\n return undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/solana/encoding.ts","../../src/chains.ts","../../src/solana/venue.ts"],"names":["PublicKey"],"mappings":"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","file":"index.js","sourcesContent":["import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport function instructionDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`global:${name}`)).slice(0, 8);\n}\n\nexport function eventDiscriminator(name: string): Uint8Array {\n return sha256(new TextEncoder().encode(`event:${name}`)).slice(0, 8);\n}\n\nexport class BorshWriter {\n private chunks: Uint8Array[] = [];\n\n u8(v: number): this {\n this.chunks.push(Uint8Array.of(v));\n return this;\n }\n u16(v: number): this {\n const b = new Uint8Array(2);\n new DataView(b.buffer).setUint16(0, v, true);\n this.chunks.push(b);\n return this;\n }\n u64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n i64(v: bigint): this {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigInt64(0, v, true);\n this.chunks.push(b);\n return this;\n }\n string(v: string): this {\n const bytes = new TextEncoder().encode(v);\n const len = new Uint8Array(4);\n new DataView(len.buffer).setUint32(0, bytes.length, true);\n this.chunks.push(len, bytes);\n return this;\n }\n pubkey(v: PublicKey): this {\n this.chunks.push(v.toBytes());\n return this;\n }\n option<T>(v: T | null | undefined, write: (value: T) => void): this {\n if (v === null || v === undefined) {\n this.u8(0);\n } else {\n this.u8(1);\n write(v);\n }\n return this;\n }\n build(discriminator: Uint8Array): Uint8Array {\n const total = this.chunks.reduce((n, c) => n + c.length, discriminator.length);\n const out = new Uint8Array(total);\n out.set(discriminator, 0);\n let offset = discriminator.length;\n for (const chunk of this.chunks) {\n out.set(chunk, offset);\n offset += chunk.length;\n }\n return out;\n }\n}\n\nexport function u64le(v: bigint): Uint8Array {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigUint64(0, v, true);\n return b;\n}\n\nexport function orderPda(program: PublicKey, offerer: PublicKey, salt: bigint): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"order\"), offerer.toBytes(), u64le(salt)],\n program,\n )[0];\n}\n\nexport function counterPda(program: PublicKey, offerer: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"counter\"), offerer.toBytes()],\n program,\n )[0];\n}\n\nexport function settlementPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"authority\")], program)[0];\n}\n\nexport function registryCounterPda(program: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync([new TextEncoder().encode(\"counter\")], program)[0];\n}\n\nexport function collectionRecordPda(program: PublicKey, coreCollection: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [new TextEncoder().encode(\"collection\"), coreCollection.toBytes()],\n program,\n )[0];\n}\n\nexport const MPL_CORE_PROGRAM_ID = new PublicKey(\"CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d\");\n","\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 PublicKey,\n SystemProgram,\n Transaction,\n TransactionInstruction,\n type Connection,\n} from \"@solana/web3.js\";\nimport type { Chain } from \"../chains.js\";\nimport { getCoordinates, type SolanaCoordinates } from \"../chains.js\";\nimport type {\n AdapterTxResult,\n OrderRef,\n RegisterOrderParams,\n VenueAdapter,\n} from \"../adapters/types.js\";\nimport {\n BorshWriter,\n MPL_CORE_PROGRAM_ID,\n counterPda,\n instructionDiscriminator,\n orderPda,\n settlementPda,\n} from \"./encoding.js\";\n\nexport interface SolanaSigner {\n publicKey: PublicKey;\n signTransaction(tx: Transaction): Promise<Transaction>;\n}\n\nexport interface SolanaVenueOptions {\n connection: Connection;\n\n programId?: string;\n}\n\nexport class SolanaVenue implements VenueAdapter<SolanaSigner> {\n readonly chain: Chain = \"SOLANA\";\n private readonly connection: Connection;\n private readonly program: PublicKey;\n\n constructor(opts: SolanaVenueOptions) {\n this.connection = opts.connection;\n const program = opts.programId ?? maybeCoords()?.marketplaceProgram;\n if (!program) throw new Error(\"No Solana marketplace program configured\");\n this.program = new PublicKey(program);\n }\n\n async registerOrder(\n signer: SolanaSigner,\n params: RegisterOrderParams,\n ): Promise<AdapterTxResult & { orderRef: OrderRef }> {\n const offerer = signer.publicKey;\n const salt = BigInt(params.salt);\n const isNative = params.paymentToken === \"native\";\n const counter = await this.getCounter(offerer.toBase58());\n const writer = new BorshWriter()\n .u64(salt)\n .u8(params.side === \"listing\" ? 0 : 1)\n .option(isNative ? null : new PublicKey(params.paymentToken), (mint) => writer.pubkey(mint))\n .u64(BigInt(params.amount))\n .u16(params.royaltyMaxBps)\n .i64(BigInt(params.startTime))\n .i64(BigInt(params.endTime))\n .u64(counter);\n const order = orderPda(this.program, offerer, salt);\n const asset = new PublicKey(params.asset.contract);\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: offerer, isSigner: true, isWritable: true },\n { pubkey: order, isSigner: false, isWritable: true },\n { pubkey: counterPda(this.program, offerer), isSigner: false, isWritable: true },\n { pubkey: settlementPda(this.program), isSigner: false, isWritable: false },\n { pubkey: asset, isSigner: false, isWritable: true },\n { pubkey: new PublicKey(params.asset.tokenId), isSigner: false, isWritable: true },\n { pubkey: MPL_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(writer.build(instructionDiscriminator(\"register_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash, orderRef: order.toBase58() };\n }\n\n async fulfillOrder(): Promise<AdapterTxResult> {\n throw new Error(\n \"Solana fulfillment requires the order's creator remaining-accounts; use buildFulfillInstruction with explicit accounts\",\n );\n }\n\n async cancelOrder(signer: SolanaSigner, orderRef: OrderRef): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: false },\n { pubkey: new PublicKey(orderRef), isSigner: false, isWritable: true },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"cancel_order\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async incrementCounter(signer: SolanaSigner): Promise<AdapterTxResult> {\n const instruction = new TransactionInstruction({\n programId: this.program,\n keys: [\n { pubkey: signer.publicKey, isSigner: true, isWritable: true },\n { pubkey: counterPda(this.program, signer.publicKey), isSigner: false, isWritable: true },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n ],\n data: Buffer.from(new BorshWriter().build(instructionDiscriminator(\"increment_counter\"))),\n });\n const txHash = await this.send(signer, instruction);\n return { txHash };\n }\n\n async getOrderDetails(orderRef: OrderRef): Promise<unknown> {\n const info = await this.connection.getAccountInfo(new PublicKey(orderRef));\n return info?.data ?? null;\n }\n\n async getCounter(address: string): Promise<bigint> {\n const pda = counterPda(this.program, new PublicKey(address));\n const info = await this.connection.getAccountInfo(pda);\n if (!info || info.data.length < 16) return 0n;\n\n return new DataView(info.data.buffer, info.data.byteOffset + 8, 8).getBigUint64(0, true);\n }\n\n private async send(signer: SolanaSigner, instruction: TransactionInstruction): Promise<string> {\n const tx = new Transaction().add(instruction);\n tx.feePayer = signer.publicKey;\n tx.recentBlockhash = (await this.connection.getLatestBlockhash()).blockhash;\n const signed = await signer.signTransaction(tx);\n return this.connection.sendRawTransaction(signed.serialize());\n }\n}\n\nfunction maybeCoords(): SolanaCoordinates | undefined {\n try {\n return getCoordinates(\"SOLANA\");\n } catch {\n return undefined;\n }\n}\n"]}
|
package/dist/starknet/index.cjs
CHANGED
|
@@ -22,6 +22,8 @@ var COORDINATES = {
|
|
|
22
22
|
marketplace1155StartBlock: 11198267,
|
|
23
23
|
collection721: "0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea",
|
|
24
24
|
collection721StartBlock: 11198496,
|
|
25
|
+
dataTokenization721: "0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2",
|
|
26
|
+
dataTokenization721StartBlock: 14670294,
|
|
25
27
|
ipNftClassHash: "0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc",
|
|
26
28
|
ipCollectionClassHash: "0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4",
|
|
27
29
|
collection1155: "0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551",
|
|
@@ -827,6 +829,7 @@ SN.marketplace1155;
|
|
|
827
829
|
SN.marketplace1155ClassHash;
|
|
828
830
|
SN.marketplace1155StartBlock;
|
|
829
831
|
SN.collection721;
|
|
832
|
+
SN.dataTokenization721;
|
|
830
833
|
SN.collection721StartBlock;
|
|
831
834
|
SN.ipNftClassHash;
|
|
832
835
|
SN.ipCollectionClassHash;
|
|
@@ -11701,11 +11704,12 @@ function computeAccountAddress(ownerPubkey, salt = 0) {
|
|
|
11701
11704
|
}
|
|
11702
11705
|
var STARKNET_SIGNER_TYPE = "0x537461726b6e6574205369676e6572";
|
|
11703
11706
|
var OPTION_NONE = "0x1";
|
|
11707
|
+
var OPTION_SOME = "0x0";
|
|
11704
11708
|
var SIGNER_STARKNET = "0x0";
|
|
11705
11709
|
function computeOwnerGuid(ownerPubkey) {
|
|
11706
11710
|
return starknet.hash.computePoseidonHash(STARKNET_SIGNER_TYPE, starknet.num.toHex(ownerPubkey));
|
|
11707
11711
|
}
|
|
11708
|
-
function changeOwners(accountAddress, guidsToRemove, pubkeysToAdd) {
|
|
11712
|
+
function changeOwners(accountAddress, guidsToRemove, pubkeysToAdd, ownerAlive) {
|
|
11709
11713
|
return {
|
|
11710
11714
|
contractAddress: accountAddress,
|
|
11711
11715
|
entrypoint: "change_owners",
|
|
@@ -11714,12 +11718,54 @@ function changeOwners(accountAddress, guidsToRemove, pubkeysToAdd) {
|
|
|
11714
11718
|
...guidsToRemove,
|
|
11715
11719
|
starknet.num.toHex(pubkeysToAdd.length),
|
|
11716
11720
|
...pubkeysToAdd.flatMap((p) => [SIGNER_STARKNET, starknet.num.toHex(p)]),
|
|
11717
|
-
OPTION_NONE
|
|
11721
|
+
...ownerAlive ? ownerAliveCalldata(ownerAlive) : [OPTION_NONE]
|
|
11718
11722
|
]
|
|
11719
11723
|
};
|
|
11720
11724
|
}
|
|
11721
|
-
function
|
|
11722
|
-
return
|
|
11725
|
+
function ownerAliveTypedData(newOwnerGuid, expiration, chainId) {
|
|
11726
|
+
return {
|
|
11727
|
+
types: {
|
|
11728
|
+
StarknetDomain: [
|
|
11729
|
+
{ name: "name", type: "shortstring" },
|
|
11730
|
+
{ name: "version", type: "shortstring" },
|
|
11731
|
+
{ name: "chainId", type: "shortstring" },
|
|
11732
|
+
{ name: "revision", type: "shortstring" }
|
|
11733
|
+
],
|
|
11734
|
+
"Owner Alive": [
|
|
11735
|
+
{ name: "Owner GUID", type: "felt" },
|
|
11736
|
+
{ name: "Signature expiration", type: "timestamp" }
|
|
11737
|
+
]
|
|
11738
|
+
},
|
|
11739
|
+
primaryType: "Owner Alive",
|
|
11740
|
+
domain: { name: "Owner Alive", version: "1", chainId, revision: "1" },
|
|
11741
|
+
message: { "Owner GUID": newOwnerGuid, "Signature expiration": expiration }
|
|
11742
|
+
};
|
|
11743
|
+
}
|
|
11744
|
+
function ownerAliveCalldata(proof) {
|
|
11745
|
+
if (proof.signature.length !== 2) {
|
|
11746
|
+
throw new Error("owner-alive proof needs an r and s from the incoming owner");
|
|
11747
|
+
}
|
|
11748
|
+
return [
|
|
11749
|
+
OPTION_SOME,
|
|
11750
|
+
SIGNER_STARKNET,
|
|
11751
|
+
starknet.num.toHex(proof.newOwnerPubkey),
|
|
11752
|
+
starknet.num.toHex(proof.signature[0]),
|
|
11753
|
+
starknet.num.toHex(proof.signature[1]),
|
|
11754
|
+
starknet.num.toHex(proof.expiration)
|
|
11755
|
+
];
|
|
11756
|
+
}
|
|
11757
|
+
function buildChangeOwnersCall(accountAddress, removeOwnerPubkey, addOwnerPubkey, ownerAlive) {
|
|
11758
|
+
if (!ownerAlive) {
|
|
11759
|
+
throw new Error(
|
|
11760
|
+
"Handing an account over removes the signing owner, so the account requires an owner-alive proof from the incoming owner. Sign ownerAliveTypedData with the new owner key and pass it here."
|
|
11761
|
+
);
|
|
11762
|
+
}
|
|
11763
|
+
return changeOwners(
|
|
11764
|
+
accountAddress,
|
|
11765
|
+
[computeOwnerGuid(removeOwnerPubkey)],
|
|
11766
|
+
[addOwnerPubkey],
|
|
11767
|
+
ownerAlive
|
|
11768
|
+
);
|
|
11723
11769
|
}
|
|
11724
11770
|
function buildAddOwnerCall(accountAddress, addOwnerPubkey) {
|
|
11725
11771
|
return changeOwners(accountAddress, [], [addOwnerPubkey]);
|
|
@@ -11958,6 +12004,7 @@ exports.getSiwsStorageKey = getSiwsStorageKey;
|
|
|
11958
12004
|
exports.getStoredSiwsToken = getStoredSiwsToken;
|
|
11959
12005
|
exports.isSiwsTokenValid = isSiwsTokenValid;
|
|
11960
12006
|
exports.normalizeSiwsSignature = normalizeSiwsSignature;
|
|
12007
|
+
exports.ownerAliveTypedData = ownerAliveTypedData;
|
|
11961
12008
|
exports.ownerConstructorCalldata = ownerConstructorCalldata;
|
|
11962
12009
|
exports.parseAdminHeaders = parseAdminHeaders;
|
|
11963
12010
|
exports.parseCreatorCoinCreated = parseCreatorCoinCreated;
|