@medialane/sdk 0.180.0 → 0.182.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/README.md +2 -4
- package/dist/{chunk-WYKCGQPN.js → chunk-3ME5YKTW.js} +2 -3
- package/dist/chunk-3ME5YKTW.js.map +1 -0
- package/dist/{chunk-VJVBWHAD.cjs → chunk-7EYJC5CB.cjs} +2 -3
- package/dist/chunk-7EYJC5CB.cjs.map +1 -0
- package/dist/{chunk-PNUHSQPU.cjs → chunk-F5USCCM4.cjs} +37 -126
- package/dist/chunk-F5USCCM4.cjs.map +1 -0
- package/dist/{chunk-H263CTVH.js → chunk-JZXIZGHW.js} +34 -119
- package/dist/chunk-JZXIZGHW.js.map +1 -0
- package/dist/{errors-DThsFcc1.d.cts → errors-C3dgi8bK.d.cts} +35 -26
- package/dist/{errors-CTVls5-y.d.ts → errors-kFtjB-a3.d.ts} +35 -26
- package/dist/evm/index.cjs +3 -3
- package/dist/evm/index.d.cts +1 -1
- package/dist/evm/index.d.ts +1 -1
- package/dist/evm/index.js +1 -1
- package/dist/index.cjs +83 -104
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -27
- package/dist/index.d.ts +7 -27
- package/dist/index.js +9 -14
- package/dist/index.js.map +1 -1
- package/dist/solana/index.cjs +2 -2
- package/dist/solana/index.d.cts +1 -1
- package/dist/solana/index.d.ts +1 -1
- package/dist/solana/index.js +1 -1
- package/dist/starknet/index.cjs +137 -290
- package/dist/starknet/index.cjs.map +1 -1
- package/dist/starknet/index.d.cts +15 -120
- package/dist/starknet/index.d.ts +15 -120
- package/dist/starknet/index.js +62 -214
- package/dist/starknet/index.js.map +1 -1
- package/dist/stellar/index.cjs +2 -2
- package/dist/stellar/index.d.cts +1 -1
- package/dist/stellar/index.d.ts +1 -1
- package/dist/stellar/index.js +1 -1
- package/dist/{types-BTNjkUst.d.cts → types-DC4jNPAF.d.cts} +0 -4
- package/dist/{types-BTNjkUst.d.ts → types-DC4jNPAF.d.ts} +0 -4
- package/package.json +1 -1
- package/dist/chunk-H263CTVH.js.map +0 -1
- package/dist/chunk-PNUHSQPU.cjs.map +0 -1
- package/dist/chunk-VJVBWHAD.cjs.map +0 -1
- package/dist/chunk-WYKCGQPN.js.map +0 -1
package/README.md
CHANGED
|
@@ -66,7 +66,6 @@ import { MedialaneClient } from "@medialane/sdk/starknet";
|
|
|
66
66
|
|
|
67
67
|
const client = new MedialaneClient({
|
|
68
68
|
chain: "STARKNET", // chain-scoped (default "STARKNET"); replaces `network` (v0.37.0)
|
|
69
|
-
rpcUrl: "https://rpc.starknet.lava.build", // optional; defaults to the chain's registry rpcUrl
|
|
70
69
|
backendUrl: "https://api.medialane.io", // required for .api methods
|
|
71
70
|
apiKey: "ml_live_...", // from Medialane Portal
|
|
72
71
|
});
|
|
@@ -100,7 +99,7 @@ const { data: intent } = await client.api.createListingIntent({
|
|
|
100
99
|
endTime: Math.floor(Date.now() / 1000) + 86400 * 30,
|
|
101
100
|
});
|
|
102
101
|
|
|
103
|
-
const { txHash } = await executeIntent(
|
|
102
|
+
const { txHash } = await executeIntent(signer, client, intent);
|
|
104
103
|
```
|
|
105
104
|
|
|
106
105
|
The same pattern works with `createOfferIntent`, `createFulfillIntent`, `createCancelIntent`, `createCheckoutIntent`, `createMintIntent`, `createCollectionIntent`, `createCoinIntent` and the sponsorship intents.
|
|
@@ -313,7 +312,7 @@ import { MedialaneError, executeIntent } from "@medialane/sdk/starknet";
|
|
|
313
312
|
|
|
314
313
|
// Onchain errors
|
|
315
314
|
try {
|
|
316
|
-
await executeIntent(
|
|
315
|
+
await executeIntent(signer, client, intent);
|
|
317
316
|
} catch (err) {
|
|
318
317
|
if (err instanceof MedialaneError) {
|
|
319
318
|
console.error("On-chain error:", err.message, err.cause);
|
|
@@ -372,7 +371,6 @@ without reaching a reader.
|
|
|
372
371
|
| Option | Type | Default | Description |
|
|
373
372
|
|---|---|---|---|
|
|
374
373
|
| `chain` | `Chain` (`"STARKNET" \| "ETHEREUM" \| "SOLANA" \| "BASE" \| "BITCOIN"`) | `"STARKNET"` | The chain this client is scoped to. Coordinates resolve from the `coordinates[chain]` registry (`chains.ts`). Replaces `network` (v0.37.0). |
|
|
375
|
-
| `rpcUrl` | `string` | the chain's registry `rpcUrl` | JSON-RPC URL override |
|
|
376
374
|
| `backendUrl` | `string` | (none) | Medialane API base URL (required for `.api.*`) |
|
|
377
375
|
| `apiKey` | `string` | (none) | API key from [Medialane Portal](https://portal.medialane.io) |
|
|
378
376
|
| `marketplace721Contract` | `string` | Mainnet default | ERC-721 marketplace protocol override |
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
var CHAINS = ["STARKNET", "ETHEREUM", "SOLANA", "BASE", "STELLAR", "BITCOIN"];
|
|
3
3
|
var COORDINATES = {
|
|
4
4
|
STARKNET: {
|
|
5
|
-
rpcUrl: "https://rpc.starknet.lava.build",
|
|
6
5
|
marketplace721: "0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc",
|
|
7
6
|
marketplace721ClassHash: "0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90",
|
|
8
7
|
marketplace721StartBlock: 11198146,
|
|
@@ -61,5 +60,5 @@ function getStarknetCoordinates(chain) {
|
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
export { CHAINS, DEFAULT_CHAIN, getCoordinates, getStarknetCoordinates };
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
63
|
+
//# sourceMappingURL=chunk-3ME5YKTW.js.map
|
|
64
|
+
//# sourceMappingURL=chunk-3ME5YKTW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/chains.ts"],"names":[],"mappings":";AAEO,IAAM,SAAS,CAAC,UAAA,EAAY,YAAY,QAAA,EAAU,MAAA,EAAQ,WAAW,SAAS;AAmFrF,IAAM,WAAA,GAAkC;AAAA,EACtC,QAAA,EAAU;AAAA,IACR,cAAA,EAAgB,oEAAA;AAAA,IAChB,uBAAA,EAAyB,oEAAA;AAAA,IACzB,wBAAA,EAA0B,QAAA;AAAA,IAC1B,eAAA,EAAiB,oEAAA;AAAA,IACjB,wBAAA,EAA0B,oEAAA;AAAA,IAC1B,yBAAA,EAA2B,QAAA;AAAA,IAC3B,aAAA,EAAe,oEAAA;AAAA,IACf,uBAAA,EAAyB,QAAA;AAAA,IACzB,mBAAA,EAAqB,oEAAA;AAAA,IACrB,6BAAA,EAA+B,QAAA;AAAA,IAC/B,cAAA,EAAgB,oEAAA;AAAA,IAChB,qBAAA,EAAuB,oEAAA;AAAA,IACvB,cAAA,EAAgB,oEAAA;AAAA,IAChB,8BAAA,EAAgC,oEAAA;AAAA,IAChC,uBAAA,EAAyB,oEAAA;AAAA,IACzB,wBAAA,EAA0B,QAAA;AAAA,IAC1B,UAAA,EAAY,oEAAA;AAAA,IACZ,sBAAA,EAAwB,oEAAA;AAAA,IACxB,oBAAA,EAAsB,QAAA;AAAA,IACtB,WAAA,EAAa,oEAAA;AAAA,IACb,uBAAA,EAAyB,oEAAA;AAAA,IACzB,qBAAA,EAAuB,QAAA;AAAA,IACvB,WAAA,EAAa,oEAAA;AAAA,IACb,kBAAA,EAAoB,mEAAA;AAAA,IACpB,wBAAA,EAA0B,mEAAA;AAAA,IAC1B,oBAAA,EAAsB,mEAAA;AAAA,IACtB,2BAAA,EAA6B,mEAAA;AAAA,IAC7B,qBAAA,EAAuB,QAAA;AAAA,IACvB,SAAA,EAAW,oEAAA;AAAA,IACX,gBAAA,EAAkB,oEAAA;AAAA,IAClB,2BAAA,EAA6B,oEAAA;AAAA,IAC7B,yBAAA,EAA2B,oEAAA;AAAA,IAC3B,mBAAA,EAAqB,QAAA;AAAA,IACrB,aAAA,EAAe,oEAAA;AAAA,IACf,sBAAA,EAAwB,oEAAA;AAAA,IACxB,yBAAA,EAA2B,oEAAA;AAAA,IAC3B,uBAAA,EAAyB,QAAA;AAAA,IAEzB,aAAA,EAAe,oEAAA;AAAA,IACf,sBAAA,EAAwB,oEAAA;AAAA,IACxB,uBAAA,EAAyB,QAAA;AAAA,IACzB,oBAAA,EAAsB,oEAAA;AAAA,IACtB,WAAA,EAAa;AAAA;AAEjB,CAAA;AASO,SAAS,eACd,KAAA,EAC+E;AAC/E,EAAA,MAAM,CAAA,GAAI,YAAY,KAAK,CAAA;AAC3B,EAAA,IAAI,CAAC,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,CAAA,qCAAA,EAAwC,KAAK,CAAA,CAAA,CAAG,CAAA;AACxE,EAAA,OAAO,CAAA;AACT;AAEO,IAAM,aAAA,GAAuB;AAE7B,SAAS,uBAAuB,KAAA,EAAmC;AACxE,EAAA,IAAI,UAAU,UAAA,EAAY;AACxB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,6CAAA,EAAgD,KAAK,CAAA,EAAA,CAAI,CAAA;AAAA,EAC3E;AACA,EAAA,OAAO,eAAe,UAAU,CAAA;AAClC","file":"chunk-3ME5YKTW.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 marketplace721?: `0x${string}`;\n marketplace721ClassHash?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155ClassHash?: `0x${string}`;\n marketplace1155StartBlock?: number;\n collection721?: `0x${string}`;\n collection721StartBlock?: number;\n dataTokenization721?: `0x${string}`;\n dataTokenization721StartBlock?: number;\n ipNftClassHash?: `0x${string}`;\n ipCollectionClassHash?: `0x${string}`;\n collection1155?: `0x${string}`;\n collection1155FactoryClassHash?: `0x${string}`;\n collection1155ClassHash?: `0x${string}`;\n collection1155StartBlock?: number;\n popFactory?: `0x${string}`;\n popCollectionClassHash?: `0x${string}`;\n popFactoryStartBlock?: number;\n dropFactory?: `0x${string}`;\n dropCollectionClassHash?: `0x${string}`;\n dropFactoryStartBlock?: number;\n nftComments?: `0x${string}`;\n creatorCoinFactory?: `0x${string}`;\n creatorCoinEkuboLauncher?: `0x${string}`;\n creatorCoinClassHash?: `0x${string}`;\n creatorCoinFactoryClassHash?: `0x${string}`;\n creatorCoinStartBlock?: number;\n ekuboCore?: `0x${string}`;\n ipTicketsFactory?: `0x${string}`;\n ipTicketCollectionClassHash?: `0x${string}`;\n ipTicketsFactoryClassHash?: `0x${string}`;\n ipTicketsStartBlock?: number;\n ipClubFactory?: `0x${string}`;\n ipClubFactoryClassHash?: `0x${string}`;\n ipClubCollectionClassHash?: `0x${string}`;\n ipClubFactoryStartBlock?: number;\n ipSponsorship?: `0x${string}`;\n ipSponsorshipClassHash?: `0x${string}`;\n ipSponsorshipStartBlock?: number;\n mediaWalletClassHash?: `0x${string}`;\n genesisMint?: `0x${string}`;\n}\n\nexport interface EvmCoordinates {\n 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 mipCollectionsProgram?: string;\n marketplaceProgram?: string;\n startSlot?: number;\n}\n\nexport interface StellarCoordinates {\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 marketplace721: \"0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc\",\n marketplace721ClassHash: \"0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90\",\n marketplace721StartBlock: 11198146,\n marketplace1155: \"0x07c4ce1c19ea48cc11135ed22b19ff745f5aec508c3828593002e4f76fdb1b38\",\n marketplace1155ClassHash: \"0x0242f5c388da7cee2d99e2a69453c8159bf927fbec4e797a3cfdcbbcb5b68328\",\n marketplace1155StartBlock: 11198267,\n collection721: \"0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea\",\n collection721StartBlock: 11198496,\n dataTokenization721: \"0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2\",\n dataTokenization721StartBlock: 14670294,\n ipNftClassHash: \"0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc\",\n ipCollectionClassHash: \"0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4\",\n collection1155: \"0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551\",\n collection1155FactoryClassHash: \"0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2\",\n collection1155ClassHash: \"0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78\",\n collection1155StartBlock: 11199527,\n popFactory: \"0x06af6ffdde310991a40570716dc3681acc7effc610aeb548ea0baa02d4208d5f\",\n popCollectionClassHash: \"0x076200229933dd10b8d6d41ecb1a53ba1972510a42f4d505dae4f6b54d1b317e\",\n popFactoryStartBlock: 16126169,\n dropFactory: \"0x049cae891b9195277e018ae99765a3b0e5f6b0f6a1807c5db789342bccc0e130\",\n dropCollectionClassHash: \"0x0641d0255db1d218e08b367f40559d5ccdc22d34fee8ef0500b4247092a60132\",\n dropFactoryStartBlock: 16240820,\n nftComments: \"0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843\",\n creatorCoinFactory: \"0x50fa807b5274079fb19374673d7bab6d2dc3af7e1032ea43eb6e44bcbde4c3c\",\n creatorCoinEkuboLauncher: \"0x4f7fceb5ac10f12f9544a09580592e5bdf1b7f04f48765eecf12286d8ccb7b4\",\n creatorCoinClassHash: \"0x743e4c8a5b96bb83bbf4af04edbbb482d5ece89eed9b729a79fb7df0cd0b6b6\",\n creatorCoinFactoryClassHash: \"0x51765926b1344c9a20b8cd4b5abe7b7d47375ae97cf6804db3ea5d4b05a9b55\",\n creatorCoinStartBlock: 10474544,\n ekuboCore: \"0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b\",\n ipTicketsFactory: \"0x0767bf5b57e1f812463159b5ed683183e1b0c3f942b74871b5c6cd6a93c15e99\",\n ipTicketCollectionClassHash: \"0x0449e8eb7c117740d07cb8e0157d32c8ba3d19d1cfd2784ed5e139f5a1e04acc\",\n ipTicketsFactoryClassHash: \"0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a\",\n ipTicketsStartBlock: 11933694,\n ipClubFactory: \"0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9\",\n ipClubFactoryClassHash: \"0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266\",\n ipClubCollectionClassHash: \"0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5\",\n ipClubFactoryStartBlock: 11928775,\n\n ipSponsorship: \"0x03729ebe0fedf29ec97fca34db09174772af7f870af26a26e024a61040143e5c\",\n ipSponsorshipClassHash: \"0x0626daac2ed7e2bf630ef5b10104b3202db1559216c0c1a504c0e99be2fbfec3\",\n ipSponsorshipStartBlock: 11896456,\n mediaWalletClassHash: \"0x014b210c7d47392691144bafecdca3c6c7791cc295ea305988da0a724c05ac31\",\n genesisMint: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n },\n};\n\nexport function getCoordinates(chain: \"STARKNET\"): StarknetCoordinates;\nexport function getCoordinates(chain: \"ETHEREUM\" | \"BASE\"): EvmCoordinates;\nexport function getCoordinates(chain: \"SOLANA\"): SolanaCoordinates;\nexport function getCoordinates(chain: \"STELLAR\"): StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates {\n const c = COORDINATES[chain];\n if (!c) throw new Error(`No coordinates configured for chain \"${chain}\"`);\n return c;\n}\n\nexport const DEFAULT_CHAIN: Chain = \"STARKNET\";\n\nexport function getStarknetCoordinates(chain: Chain): StarknetCoordinates {\n if (chain !== \"STARKNET\") {\n throw new Error(`This module is Starknet-only (client chain: \"${chain}\")`);\n }\n return getCoordinates(\"STARKNET\");\n}\n"]}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
var CHAINS = ["STARKNET", "ETHEREUM", "SOLANA", "BASE", "STELLAR", "BITCOIN"];
|
|
5
5
|
var COORDINATES = {
|
|
6
6
|
STARKNET: {
|
|
7
|
-
rpcUrl: "https://rpc.starknet.lava.build",
|
|
8
7
|
marketplace721: "0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc",
|
|
9
8
|
marketplace721ClassHash: "0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90",
|
|
10
9
|
marketplace721StartBlock: 11198146,
|
|
@@ -66,5 +65,5 @@ exports.CHAINS = CHAINS;
|
|
|
66
65
|
exports.DEFAULT_CHAIN = DEFAULT_CHAIN;
|
|
67
66
|
exports.getCoordinates = getCoordinates;
|
|
68
67
|
exports.getStarknetCoordinates = getStarknetCoordinates;
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
68
|
+
//# sourceMappingURL=chunk-7EYJC5CB.cjs.map
|
|
69
|
+
//# sourceMappingURL=chunk-7EYJC5CB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/chains.ts"],"names":[],"mappings":";;;AAEO,IAAM,SAAS,CAAC,UAAA,EAAY,YAAY,QAAA,EAAU,MAAA,EAAQ,WAAW,SAAS;AAmFrF,IAAM,WAAA,GAAkC;AAAA,EACtC,QAAA,EAAU;AAAA,IACR,cAAA,EAAgB,oEAAA;AAAA,IAChB,uBAAA,EAAyB,oEAAA;AAAA,IACzB,wBAAA,EAA0B,QAAA;AAAA,IAC1B,eAAA,EAAiB,oEAAA;AAAA,IACjB,wBAAA,EAA0B,oEAAA;AAAA,IAC1B,yBAAA,EAA2B,QAAA;AAAA,IAC3B,aAAA,EAAe,oEAAA;AAAA,IACf,uBAAA,EAAyB,QAAA;AAAA,IACzB,mBAAA,EAAqB,oEAAA;AAAA,IACrB,6BAAA,EAA+B,QAAA;AAAA,IAC/B,cAAA,EAAgB,oEAAA;AAAA,IAChB,qBAAA,EAAuB,oEAAA;AAAA,IACvB,cAAA,EAAgB,oEAAA;AAAA,IAChB,8BAAA,EAAgC,oEAAA;AAAA,IAChC,uBAAA,EAAyB,oEAAA;AAAA,IACzB,wBAAA,EAA0B,QAAA;AAAA,IAC1B,UAAA,EAAY,oEAAA;AAAA,IACZ,sBAAA,EAAwB,oEAAA;AAAA,IACxB,oBAAA,EAAsB,QAAA;AAAA,IACtB,WAAA,EAAa,oEAAA;AAAA,IACb,uBAAA,EAAyB,oEAAA;AAAA,IACzB,qBAAA,EAAuB,QAAA;AAAA,IACvB,WAAA,EAAa,oEAAA;AAAA,IACb,kBAAA,EAAoB,mEAAA;AAAA,IACpB,wBAAA,EAA0B,mEAAA;AAAA,IAC1B,oBAAA,EAAsB,mEAAA;AAAA,IACtB,2BAAA,EAA6B,mEAAA;AAAA,IAC7B,qBAAA,EAAuB,QAAA;AAAA,IACvB,SAAA,EAAW,oEAAA;AAAA,IACX,gBAAA,EAAkB,oEAAA;AAAA,IAClB,2BAAA,EAA6B,oEAAA;AAAA,IAC7B,yBAAA,EAA2B,oEAAA;AAAA,IAC3B,mBAAA,EAAqB,QAAA;AAAA,IACrB,aAAA,EAAe,oEAAA;AAAA,IACf,sBAAA,EAAwB,oEAAA;AAAA,IACxB,yBAAA,EAA2B,oEAAA;AAAA,IAC3B,uBAAA,EAAyB,QAAA;AAAA,IAEzB,aAAA,EAAe,oEAAA;AAAA,IACf,sBAAA,EAAwB,oEAAA;AAAA,IACxB,uBAAA,EAAyB,QAAA;AAAA,IACzB,oBAAA,EAAsB,oEAAA;AAAA,IACtB,WAAA,EAAa;AAAA;AAEjB,CAAA;AASO,SAAS,eACd,KAAA,EAC+E;AAC/E,EAAA,MAAM,CAAA,GAAI,YAAY,KAAK,CAAA;AAC3B,EAAA,IAAI,CAAC,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,CAAA,qCAAA,EAAwC,KAAK,CAAA,CAAA,CAAG,CAAA;AACxE,EAAA,OAAO,CAAA;AACT;AAEO,IAAM,aAAA,GAAuB;AAE7B,SAAS,uBAAuB,KAAA,EAAmC;AACxE,EAAA,IAAI,UAAU,UAAA,EAAY;AACxB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,6CAAA,EAAgD,KAAK,CAAA,EAAA,CAAI,CAAA;AAAA,EAC3E;AACA,EAAA,OAAO,eAAe,UAAU,CAAA;AAClC","file":"chunk-7EYJC5CB.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 marketplace721?: `0x${string}`;\n marketplace721ClassHash?: `0x${string}`;\n marketplace721StartBlock?: number;\n marketplace1155?: `0x${string}`;\n marketplace1155ClassHash?: `0x${string}`;\n marketplace1155StartBlock?: number;\n collection721?: `0x${string}`;\n collection721StartBlock?: number;\n dataTokenization721?: `0x${string}`;\n dataTokenization721StartBlock?: number;\n ipNftClassHash?: `0x${string}`;\n ipCollectionClassHash?: `0x${string}`;\n collection1155?: `0x${string}`;\n collection1155FactoryClassHash?: `0x${string}`;\n collection1155ClassHash?: `0x${string}`;\n collection1155StartBlock?: number;\n popFactory?: `0x${string}`;\n popCollectionClassHash?: `0x${string}`;\n popFactoryStartBlock?: number;\n dropFactory?: `0x${string}`;\n dropCollectionClassHash?: `0x${string}`;\n dropFactoryStartBlock?: number;\n nftComments?: `0x${string}`;\n creatorCoinFactory?: `0x${string}`;\n creatorCoinEkuboLauncher?: `0x${string}`;\n creatorCoinClassHash?: `0x${string}`;\n creatorCoinFactoryClassHash?: `0x${string}`;\n creatorCoinStartBlock?: number;\n ekuboCore?: `0x${string}`;\n ipTicketsFactory?: `0x${string}`;\n ipTicketCollectionClassHash?: `0x${string}`;\n ipTicketsFactoryClassHash?: `0x${string}`;\n ipTicketsStartBlock?: number;\n ipClubFactory?: `0x${string}`;\n ipClubFactoryClassHash?: `0x${string}`;\n ipClubCollectionClassHash?: `0x${string}`;\n ipClubFactoryStartBlock?: number;\n ipSponsorship?: `0x${string}`;\n ipSponsorshipClassHash?: `0x${string}`;\n ipSponsorshipStartBlock?: number;\n mediaWalletClassHash?: `0x${string}`;\n genesisMint?: `0x${string}`;\n}\n\nexport interface EvmCoordinates {\n 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 mipCollectionsProgram?: string;\n marketplaceProgram?: string;\n startSlot?: number;\n}\n\nexport interface StellarCoordinates {\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 marketplace721: \"0x03eda9a2b6ad90845a43591bac8083ebaf677d51fdf20f503b2c01889e3131fc\",\n marketplace721ClassHash: \"0x0700d9230d07e5203e27778c0dc70f9134d2b25bf319f7cf8348dc66a6923e90\",\n marketplace721StartBlock: 11198146,\n marketplace1155: \"0x07c4ce1c19ea48cc11135ed22b19ff745f5aec508c3828593002e4f76fdb1b38\",\n marketplace1155ClassHash: \"0x0242f5c388da7cee2d99e2a69453c8159bf927fbec4e797a3cfdcbbcb5b68328\",\n marketplace1155StartBlock: 11198267,\n collection721: \"0x0225c3ae09506b8d97adc39649ca740dad5aac195b7f5f0441cc1852947acaea\",\n collection721StartBlock: 11198496,\n dataTokenization721: \"0x07421b4442f7f2052c65408fb3561484154cf8175a0bbb41e3cd38d9087af6d2\",\n dataTokenization721StartBlock: 14670294,\n ipNftClassHash: \"0x012d3ae40ba35c7e2be0946532dac60e48932447912fdf96b674da67c029b9cc\",\n ipCollectionClassHash: \"0x022155a1a130a40e57aac4b89c07fab3f616bc351b1270fc40f756b963afe8b4\",\n collection1155: \"0x015368976d46fae5bfa1c58600f641d5aa5dbbf53ebc6b78aa3922194aad3551\",\n collection1155FactoryClassHash: \"0x04eb6b419770f13bd191f120b9fc9ee624c0613ad4490062d293ca2016b3b1d2\",\n collection1155ClassHash: \"0x06cf3f5a2322dac35e07a6064a5b8802f19fda8aa3f4726f0cb7bc05dea1bd78\",\n collection1155StartBlock: 11199527,\n popFactory: \"0x06af6ffdde310991a40570716dc3681acc7effc610aeb548ea0baa02d4208d5f\",\n popCollectionClassHash: \"0x076200229933dd10b8d6d41ecb1a53ba1972510a42f4d505dae4f6b54d1b317e\",\n popFactoryStartBlock: 16126169,\n dropFactory: \"0x049cae891b9195277e018ae99765a3b0e5f6b0f6a1807c5db789342bccc0e130\",\n dropCollectionClassHash: \"0x0641d0255db1d218e08b367f40559d5ccdc22d34fee8ef0500b4247092a60132\",\n dropFactoryStartBlock: 16240820,\n nftComments: \"0x02cdac70c94447189af0389dfea63f4d5e4154ea8a563de288a5ab1c39e37843\",\n creatorCoinFactory: \"0x50fa807b5274079fb19374673d7bab6d2dc3af7e1032ea43eb6e44bcbde4c3c\",\n creatorCoinEkuboLauncher: \"0x4f7fceb5ac10f12f9544a09580592e5bdf1b7f04f48765eecf12286d8ccb7b4\",\n creatorCoinClassHash: \"0x743e4c8a5b96bb83bbf4af04edbbb482d5ece89eed9b729a79fb7df0cd0b6b6\",\n creatorCoinFactoryClassHash: \"0x51765926b1344c9a20b8cd4b5abe7b7d47375ae97cf6804db3ea5d4b05a9b55\",\n creatorCoinStartBlock: 10474544,\n ekuboCore: \"0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b\",\n ipTicketsFactory: \"0x0767bf5b57e1f812463159b5ed683183e1b0c3f942b74871b5c6cd6a93c15e99\",\n ipTicketCollectionClassHash: \"0x0449e8eb7c117740d07cb8e0157d32c8ba3d19d1cfd2784ed5e139f5a1e04acc\",\n ipTicketsFactoryClassHash: \"0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a\",\n ipTicketsStartBlock: 11933694,\n ipClubFactory: \"0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9\",\n ipClubFactoryClassHash: \"0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266\",\n ipClubCollectionClassHash: \"0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5\",\n ipClubFactoryStartBlock: 11928775,\n\n ipSponsorship: \"0x03729ebe0fedf29ec97fca34db09174772af7f870af26a26e024a61040143e5c\",\n ipSponsorshipClassHash: \"0x0626daac2ed7e2bf630ef5b10104b3202db1559216c0c1a504c0e99be2fbfec3\",\n ipSponsorshipStartBlock: 11896456,\n mediaWalletClassHash: \"0x014b210c7d47392691144bafecdca3c6c7791cc295ea305988da0a724c05ac31\",\n genesisMint: \"0x06ed61abba98a44d45bed2c4b1a456df15053c3321cfd6e007afb33b7226c9f0\",\n },\n};\n\nexport function getCoordinates(chain: \"STARKNET\"): StarknetCoordinates;\nexport function getCoordinates(chain: \"ETHEREUM\" | \"BASE\"): EvmCoordinates;\nexport function getCoordinates(chain: \"SOLANA\"): SolanaCoordinates;\nexport function getCoordinates(chain: \"STELLAR\"): StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates;\nexport function getCoordinates(\n chain: Chain,\n): StarknetCoordinates | EvmCoordinates | SolanaCoordinates | StellarCoordinates {\n const c = COORDINATES[chain];\n if (!c) throw new Error(`No coordinates configured for chain \"${chain}\"`);\n return c;\n}\n\nexport const DEFAULT_CHAIN: Chain = \"STARKNET\";\n\nexport function getStarknetCoordinates(chain: Chain): StarknetCoordinates {\n if (chain !== \"STARKNET\") {\n throw new Error(`This module is Starknet-only (client chain: \"${chain}\")`);\n }\n return getCoordinates(\"STARKNET\");\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk7EYJC5CB_cjs = require('./chunk-7EYJC5CB.cjs');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
var sha3_js = require('@noble/hashes/sha3.js');
|
|
6
6
|
var base = require('@scure/base');
|
|
@@ -40,8 +40,7 @@ function resolveAppFeeConfig(env = {}) {
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
var MedialaneConfigSchema = zod.z.object({
|
|
43
|
-
chain: zod.z.enum(
|
|
44
|
-
rpcUrl: zod.z.string().url().optional(),
|
|
43
|
+
chain: zod.z.enum(chunk7EYJC5CB_cjs.CHAINS).default(chunk7EYJC5CB_cjs.DEFAULT_CHAIN),
|
|
45
44
|
backendUrl: zod.z.string().url().optional(),
|
|
46
45
|
apiKey: zod.z.string().optional(),
|
|
47
46
|
marketplace721Contract: zod.z.string().optional(),
|
|
@@ -59,13 +58,12 @@ var MedialaneConfigSchema = zod.z.object({
|
|
|
59
58
|
});
|
|
60
59
|
function resolveConfig(raw) {
|
|
61
60
|
const parsed = MedialaneConfigSchema.parse(raw);
|
|
62
|
-
const coords =
|
|
61
|
+
const coords = chunk7EYJC5CB_cjs.getCoordinates(parsed.chain);
|
|
63
62
|
const sn = parsed.chain === "STARKNET" ? coords : {};
|
|
64
63
|
const marketplace721Contract = parsed.marketplace721Contract ?? parsed.marketplaceContract ?? sn.marketplace721;
|
|
65
64
|
const collection721Contract = parsed.collection721Contract ?? parsed.collectionContract ?? sn.collection721;
|
|
66
65
|
return {
|
|
67
66
|
chain: parsed.chain,
|
|
68
|
-
rpcUrl: parsed.rpcUrl ?? coords.rpcUrl,
|
|
69
67
|
backendUrl: parsed.backendUrl,
|
|
70
68
|
apiKey: parsed.apiKey,
|
|
71
69
|
marketplace721Contract,
|
|
@@ -287,12 +285,6 @@ var ApiClient = class {
|
|
|
287
285
|
bearer(siwsToken) {
|
|
288
286
|
return siwsToken ? { Authorization: `Bearer ${siwsToken}` } : {};
|
|
289
287
|
}
|
|
290
|
-
asSubject(siwsToken) {
|
|
291
|
-
return siwsToken ? this.bearer(siwsToken) : void 0;
|
|
292
|
-
}
|
|
293
|
-
withFreshSignature(token) {
|
|
294
|
-
return { ...this.bearer(token), "x-fresh-signature": token };
|
|
295
|
-
}
|
|
296
288
|
getOrders(query = {}) {
|
|
297
289
|
const params = new URLSearchParams();
|
|
298
290
|
if (query.status) params.set("status", query.status);
|
|
@@ -527,96 +519,84 @@ var ApiClient = class {
|
|
|
527
519
|
body: formData
|
|
528
520
|
});
|
|
529
521
|
}
|
|
530
|
-
getMe(
|
|
522
|
+
getMe() {
|
|
531
523
|
return this.request("/v1/portal/me", {
|
|
532
|
-
method: "GET"
|
|
533
|
-
headers: this.asSubject(siwsToken)
|
|
524
|
+
method: "GET"
|
|
534
525
|
});
|
|
535
526
|
}
|
|
536
|
-
getApiKeys(
|
|
527
|
+
getApiKeys() {
|
|
537
528
|
return this.request("/v1/portal/keys", {
|
|
538
|
-
method: "GET"
|
|
539
|
-
headers: this.asSubject(siwsToken)
|
|
529
|
+
method: "GET"
|
|
540
530
|
});
|
|
541
531
|
}
|
|
542
|
-
/** `
|
|
543
|
-
createApiKey(input,
|
|
532
|
+
/** `confirmation`: the account's wallet signature over `apiKeyConfirmationTypedData` for this change. */
|
|
533
|
+
createApiKey(input, confirmation) {
|
|
544
534
|
return this.request("/v1/portal/keys", {
|
|
545
535
|
method: "POST",
|
|
546
|
-
body: JSON.stringify(input ?? {})
|
|
547
|
-
headers: this.withFreshSignature(freshSignature)
|
|
536
|
+
body: JSON.stringify({ ...input ?? {}, confirmation })
|
|
548
537
|
});
|
|
549
538
|
}
|
|
550
|
-
/** `
|
|
551
|
-
deleteApiKey(id,
|
|
539
|
+
/** `confirmation`: the account's wallet signature over `apiKeyConfirmationTypedData` for this change. */
|
|
540
|
+
deleteApiKey(id, confirmation) {
|
|
552
541
|
return this.request(`/v1/portal/keys/${id}`, {
|
|
553
542
|
method: "DELETE",
|
|
554
|
-
|
|
543
|
+
body: JSON.stringify({ confirmation })
|
|
555
544
|
});
|
|
556
545
|
}
|
|
557
|
-
getCreditHistory(
|
|
546
|
+
getCreditHistory() {
|
|
558
547
|
return this.request("/v1/portal/credits/history", {
|
|
559
|
-
method: "GET"
|
|
560
|
-
headers: this.asSubject(siwsToken)
|
|
548
|
+
method: "GET"
|
|
561
549
|
});
|
|
562
550
|
}
|
|
563
|
-
getSpend(
|
|
551
|
+
getSpend() {
|
|
564
552
|
return this.request("/v1/portal/credits/spend", {
|
|
565
|
-
method: "GET"
|
|
566
|
-
headers: this.asSubject(siwsToken)
|
|
553
|
+
method: "GET"
|
|
567
554
|
});
|
|
568
555
|
}
|
|
569
|
-
checkDeposit(txHash
|
|
556
|
+
checkDeposit(txHash) {
|
|
570
557
|
return this.request("/v1/portal/credits/check", {
|
|
571
558
|
method: "POST",
|
|
572
|
-
body: JSON.stringify({ txHash })
|
|
573
|
-
headers: this.asSubject(siwsToken)
|
|
559
|
+
body: JSON.stringify({ txHash })
|
|
574
560
|
});
|
|
575
561
|
}
|
|
576
|
-
getFundingMethods(
|
|
562
|
+
getFundingMethods() {
|
|
577
563
|
return this.request("/v1/portal/funding/methods", {
|
|
578
|
-
method: "GET"
|
|
579
|
-
headers: this.asSubject(siwsToken)
|
|
564
|
+
method: "GET"
|
|
580
565
|
});
|
|
581
566
|
}
|
|
582
|
-
createFunding(input
|
|
567
|
+
createFunding(input) {
|
|
583
568
|
return this.request("/v1/portal/funding", {
|
|
584
569
|
method: "POST",
|
|
585
|
-
body: JSON.stringify({ method: input.method, params: input.params })
|
|
586
|
-
headers: this.asSubject(siwsToken)
|
|
570
|
+
body: JSON.stringify({ method: input.method, params: input.params })
|
|
587
571
|
});
|
|
588
572
|
}
|
|
589
|
-
getFunding(id
|
|
573
|
+
getFunding(id) {
|
|
590
574
|
return this.request(`/v1/portal/funding/${encodeURIComponent(id)}`, {
|
|
591
|
-
method: "GET"
|
|
592
|
-
headers: this.asSubject(siwsToken)
|
|
575
|
+
method: "GET"
|
|
593
576
|
});
|
|
594
577
|
}
|
|
595
|
-
getFundingChallenge(id, payer
|
|
578
|
+
getFundingChallenge(id, payer) {
|
|
596
579
|
return this.request(`/v1/portal/funding/${encodeURIComponent(id)}/challenge`, {
|
|
597
580
|
method: "POST",
|
|
598
|
-
body: JSON.stringify({ payer })
|
|
599
|
-
headers: this.asSubject(siwsToken)
|
|
581
|
+
body: JSON.stringify({ payer })
|
|
600
582
|
});
|
|
601
583
|
}
|
|
602
|
-
authorizeFunding(id, input
|
|
584
|
+
authorizeFunding(id, input) {
|
|
603
585
|
return this.request(
|
|
604
586
|
`/v1/portal/funding/${encodeURIComponent(id)}/authorize`,
|
|
605
|
-
{ method: "POST", body: JSON.stringify({ payer: input.payer, signature: input.signature })
|
|
587
|
+
{ method: "POST", body: JSON.stringify({ payer: input.payer, signature: input.signature }) }
|
|
606
588
|
);
|
|
607
589
|
}
|
|
608
|
-
submitFunding(id, txHash
|
|
590
|
+
submitFunding(id, txHash) {
|
|
609
591
|
return this.request(`/v1/portal/funding/${encodeURIComponent(id)}/submit`, {
|
|
610
592
|
method: "POST",
|
|
611
|
-
body: JSON.stringify({ txHash })
|
|
612
|
-
headers: this.asSubject(siwsToken)
|
|
593
|
+
body: JSON.stringify({ txHash })
|
|
613
594
|
});
|
|
614
595
|
}
|
|
615
|
-
cancelFunding(id
|
|
596
|
+
cancelFunding(id) {
|
|
616
597
|
return this.request(`/v1/portal/funding/${encodeURIComponent(id)}/cancel`, {
|
|
617
598
|
method: "POST",
|
|
618
|
-
body: JSON.stringify({})
|
|
619
|
-
headers: this.asSubject(siwsToken)
|
|
599
|
+
body: JSON.stringify({})
|
|
620
600
|
});
|
|
621
601
|
}
|
|
622
602
|
async claimCollection(contractAddress, walletAddress, siwsToken) {
|
|
@@ -1146,7 +1126,7 @@ function signWithPrivateKey(privateKeyHex, msgHash) {
|
|
|
1146
1126
|
}
|
|
1147
1127
|
|
|
1148
1128
|
// src/constants.ts
|
|
1149
|
-
var SN =
|
|
1129
|
+
var SN = chunk7EYJC5CB_cjs.getCoordinates("STARKNET");
|
|
1150
1130
|
var STARKNET_MARKETPLACE_721_CONTRACT = SN.marketplace721;
|
|
1151
1131
|
var STARKNET_MARKETPLACE_721_CLASS_HASH = SN.marketplace721ClassHash;
|
|
1152
1132
|
var STARKNET_MARKETPLACE_721_START_BLOCK = SN.marketplace721StartBlock;
|
|
@@ -1422,7 +1402,7 @@ function coinHref(chain, address) {
|
|
|
1422
1402
|
}
|
|
1423
1403
|
|
|
1424
1404
|
// src/services/registry.ts
|
|
1425
|
-
var SN2 =
|
|
1405
|
+
var SN2 = chunk7EYJC5CB_cjs.getStarknetCoordinates("STARKNET");
|
|
1426
1406
|
var SERVICES = {
|
|
1427
1407
|
"mip-erc721": {
|
|
1428
1408
|
id: "mip-erc721",
|
|
@@ -1820,71 +1800,6 @@ function encodeU256(n) {
|
|
|
1820
1800
|
];
|
|
1821
1801
|
}
|
|
1822
1802
|
|
|
1823
|
-
// src/utils/rpc.ts
|
|
1824
|
-
var TRANSIENT_BODY_RE = /"code"\s*:\s*-32001|"code"\s*:\s*-32603|unable to complete|rate.?limit|too many|throttl|exceed.*quota|temporarily unavailable|service unavailable|overload|gateway.*time|upstream.*time|backend.*error/i;
|
|
1825
|
-
var POLICY_REFUSAL_CODES = [-32003, -32005, -32600];
|
|
1826
|
-
function isPolicyRefusal(input) {
|
|
1827
|
-
let body = input.body;
|
|
1828
|
-
if (typeof body === "string") {
|
|
1829
|
-
try {
|
|
1830
|
-
body = JSON.parse(body);
|
|
1831
|
-
} catch {
|
|
1832
|
-
return false;
|
|
1833
|
-
}
|
|
1834
|
-
}
|
|
1835
|
-
const err = body?.error;
|
|
1836
|
-
const code = err && typeof err === "object" ? err.code : void 0;
|
|
1837
|
-
return typeof code === "number" && POLICY_REFUSAL_CODES.includes(code);
|
|
1838
|
-
}
|
|
1839
|
-
function isTransientRpcError(input) {
|
|
1840
|
-
const { status, body } = input;
|
|
1841
|
-
if (isPolicyRefusal({ body })) return false;
|
|
1842
|
-
if (typeof status === "number" && (status === 429 || status >= 500)) return true;
|
|
1843
|
-
if (body == null) return false;
|
|
1844
|
-
if (typeof body === "object") {
|
|
1845
|
-
const err = body.error;
|
|
1846
|
-
if (!err || typeof err !== "object") return false;
|
|
1847
|
-
const code = err.code;
|
|
1848
|
-
if (typeof code === "number") {
|
|
1849
|
-
if (code === 429) return true;
|
|
1850
|
-
if (code >= -32099 && code <= -32e3) return true;
|
|
1851
|
-
if (code === -32603) return true;
|
|
1852
|
-
}
|
|
1853
|
-
const message = err.message;
|
|
1854
|
-
return typeof message === "string" ? TRANSIENT_BODY_RE.test(message) : false;
|
|
1855
|
-
}
|
|
1856
|
-
return TRANSIENT_BODY_RE.test(String(body));
|
|
1857
|
-
}
|
|
1858
|
-
function createFailoverFetch(urls, options = {}) {
|
|
1859
|
-
const endpoints = urls.filter((u) => Boolean(u));
|
|
1860
|
-
if (endpoints.length === 0) {
|
|
1861
|
-
throw new Error("createFailoverFetch: at least one RPC URL is required");
|
|
1862
|
-
}
|
|
1863
|
-
const doFetch = options.baseFetch ?? fetch;
|
|
1864
|
-
const failover = async (_input, init) => {
|
|
1865
|
-
let lastError;
|
|
1866
|
-
for (let i = 0; i < endpoints.length; i++) {
|
|
1867
|
-
const url = endpoints[i];
|
|
1868
|
-
const isLast = i === endpoints.length - 1;
|
|
1869
|
-
try {
|
|
1870
|
-
const res = await doFetch(url, init);
|
|
1871
|
-
const text = await res.text();
|
|
1872
|
-
const rebuilt = () => new Response(text, { status: res.status, statusText: res.statusText, headers: res.headers });
|
|
1873
|
-
if (isLast || !isTransientRpcError({ status: res.status, body: text })) {
|
|
1874
|
-
return rebuilt();
|
|
1875
|
-
}
|
|
1876
|
-
options.onFailover?.({ url, status: res.status });
|
|
1877
|
-
} catch (err) {
|
|
1878
|
-
lastError = err;
|
|
1879
|
-
if (isLast) throw err;
|
|
1880
|
-
options.onFailover?.({ url, error: err });
|
|
1881
|
-
}
|
|
1882
|
-
}
|
|
1883
|
-
throw lastError ?? new Error("createFailoverFetch: all endpoints failed");
|
|
1884
|
-
};
|
|
1885
|
-
return failover;
|
|
1886
|
-
}
|
|
1887
|
-
|
|
1888
1803
|
// src/errors.ts
|
|
1889
1804
|
var UserFacingError = class extends Error {
|
|
1890
1805
|
constructor(message) {
|
|
@@ -1898,7 +1813,6 @@ exports.DEFAULT_CURRENCY = DEFAULT_CURRENCY;
|
|
|
1898
1813
|
exports.FeeConfigSchema = FeeConfigSchema;
|
|
1899
1814
|
exports.InvalidStarkPrivateKeyError = InvalidStarkPrivateKeyError;
|
|
1900
1815
|
exports.MedialaneApiError = MedialaneApiError;
|
|
1901
|
-
exports.POLICY_REFUSAL_CODES = POLICY_REFUSAL_CODES;
|
|
1902
1816
|
exports.PasskeyCancelledError = PasskeyCancelledError;
|
|
1903
1817
|
exports.PasskeyUnsupportedError = PasskeyUnsupportedError;
|
|
1904
1818
|
exports.STARKNET_COLLECTION_1155_CLASS_HASH = STARKNET_COLLECTION_1155_CLASS_HASH;
|
|
@@ -1947,7 +1861,6 @@ exports.chainSlug = chainSlug;
|
|
|
1947
1861
|
exports.coinHref = coinHref;
|
|
1948
1862
|
exports.collectionHref = collectionHref;
|
|
1949
1863
|
exports.computeAccountAddress = computeAccountAddress;
|
|
1950
|
-
exports.createFailoverFetch = createFailoverFetch;
|
|
1951
1864
|
exports.createPasskeyOwner = createPasskeyOwner;
|
|
1952
1865
|
exports.deriveAesKey = deriveAesKey;
|
|
1953
1866
|
exports.dropHref = dropHref;
|
|
@@ -1960,9 +1873,7 @@ exports.getServicesByCapability = getServicesByCapability;
|
|
|
1960
1873
|
exports.getTokenByAddress = getTokenByAddress;
|
|
1961
1874
|
exports.getTokenBySymbol = getTokenBySymbol;
|
|
1962
1875
|
exports.hasCapability = hasCapability;
|
|
1963
|
-
exports.isPolicyRefusal = isPolicyRefusal;
|
|
1964
1876
|
exports.isServiceId = isServiceId;
|
|
1965
|
-
exports.isTransientRpcError = isTransientRpcError;
|
|
1966
1877
|
exports.listServices = listServices;
|
|
1967
1878
|
exports.normalizeAddress = normalizeAddress;
|
|
1968
1879
|
exports.normalizeHash = normalizeHash;
|
|
@@ -1978,5 +1889,5 @@ exports.starkKeyPairFromPrivateKey = starkKeyPairFromPrivateKey;
|
|
|
1978
1889
|
exports.stringifyBigInts = stringifyBigInts;
|
|
1979
1890
|
exports.u256ToBigInt = u256ToBigInt;
|
|
1980
1891
|
exports.unsealPrivateKey = unsealPrivateKey;
|
|
1981
|
-
//# sourceMappingURL=chunk-
|
|
1982
|
-
//# sourceMappingURL=chunk-
|
|
1892
|
+
//# sourceMappingURL=chunk-F5USCCM4.cjs.map
|
|
1893
|
+
//# sourceMappingURL=chunk-F5USCCM4.cjs.map
|