@fxhash/config 0.0.12 → 0.0.13

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/index.d.ts CHANGED
@@ -13,16 +13,6 @@ interface IEthApis {
13
13
  }
14
14
  declare const ethTestnetApis: IEthApis;
15
15
  //#endregion
16
- //#region src/api/tezos.d.ts
17
- interface ITezosApis {
18
- tzktWebsite: string;
19
- tzkt: string;
20
- tzktPro: string;
21
- rpcs: string[];
22
- }
23
- declare const tezosTestnetApis: ITezosApis;
24
- declare const tezosMainnetApis: ITezosApis;
25
- //#endregion
26
16
  //#region src/api/base.d.ts
27
17
  interface IBaseApis {
28
18
  rpcs: string[];
@@ -34,6 +24,16 @@ interface IBaseApis {
34
24
  };
35
25
  }
36
26
  //#endregion
27
+ //#region src/api/tezos.d.ts
28
+ interface ITezosApis {
29
+ tzktWebsite: string;
30
+ tzkt: string;
31
+ tzktPro: string;
32
+ rpcs: string[];
33
+ }
34
+ declare const tezosTestnetApis: ITezosApis;
35
+ declare const tezosMainnetApis: ITezosApis;
36
+ //#endregion
37
37
  //#region src/config/algolia.d.ts
38
38
  type AlgoliaConfig = {
39
39
  appId: string;
@@ -173,6 +173,7 @@ interface IFxhashApis {
173
173
  file: string;
174
174
  fileInternal: string;
175
175
  walletInternal: string;
176
+ baseIndexerInternal: string;
176
177
  fsEmulator: string;
177
178
  extract: string;
178
179
  extractInternal: string;
package/dist/index.js CHANGED
@@ -24,30 +24,6 @@ const ethMainnetApis = {
24
24
  alchemy: { rpc: "https://eth-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9" }
25
25
  };
26
26
 
27
- //#endregion
28
- //#region src/api/tezos.ts
29
- const tezosTestnetApis = {
30
- tzkt: "https://api.ghostnet.tzkt.io/v1/",
31
- tzktPro: "https://api.ghostnet.tzkt.io/v1/",
32
- tzktWebsite: "https://ghostnet.tzkt.io/",
33
- rpcs: [
34
- "https://ghostnet.ecadinfra.com",
35
- "https://ghostnet.smartpy.io",
36
- "https://ghostnet.tezos.marigold.dev/"
37
- ]
38
- };
39
- const tezosMainnetApis = {
40
- tzkt: "https://api.tzkt.io/v1/",
41
- tzktPro: "https://pro.tzkt.io/v1/",
42
- tzktWebsite: "https://tzkt.io/",
43
- rpcs: [
44
- "https://rpc1.fxhash.xyz",
45
- "https://mainnet.smartpy.io",
46
- "https://mainnet.api.tez.ie",
47
- "https://teznode.letzbake.com"
48
- ]
49
- };
50
-
51
27
  //#endregion
52
28
  //#region src/helpers.ts
53
29
  const HOST_LOCAL = "localhost";
@@ -89,6 +65,7 @@ const fxhashDevApis = {
89
65
  hasuraGql: "https://api.v2.dev.fxhash-dev.xyz/v1/graphql",
90
66
  file: "https://file-api.fxhash-dev.xyz",
91
67
  fileInternal: "http://fxhash-multichain-dev-testnet-file-api.fxhash-multichain-dev-testnet.svc.cluster.local:4004",
68
+ baseIndexerInternal: "http://fxhash-multichain-dev-testnet-base-indexer.fxhash-multichain-dev-testnet.svc.cluster.local:3000",
92
69
  walletInternal: "http://fxhash-multichain-dev-testnet-wallet-api.fxhash-multichain-dev-testnet.svc.cluster.local:3208",
93
70
  fsEmulator: "https://file-api.fxhash-dev.xyz/fs",
94
71
  extract: "https://extract.fxhash-dev.xyz",
@@ -142,6 +119,7 @@ const fxhashPrdApis = {
142
119
  hasuraGql: "https://api.v2.fxhash.xyz/v1/graphql",
143
120
  file: "https://file-api.fxhash.xyz",
144
121
  fileInternal: "http://fxhash-multichain-prd-file-api.fxhash-multichain-prd.svc.cluster.local:4004",
122
+ baseIndexerInternal: "http://fxhash-multichain-prd-base-indexer.fxhash-multichain-prd.svc.cluster.local:3000",
145
123
  walletInternal: "http://fxhash-multichain-prd-wallet-api.fxhash-multichain-prd.svc.cluster.local:3208",
146
124
  fsEmulator: "https://file-api.fxhash.xyz/fs",
147
125
  extract: "https://extract.fxhash.xyz",
@@ -187,140 +165,27 @@ function fxApisByEnv(env) {
187
165
  }
188
166
 
189
167
  //#endregion
190
- //#region src/contracts/tezos.ts
191
- const tezosTestnetContracts = {
192
- allowed_mint: "KT1QwfqMUDRYVyxo9KhunY5YCx9qQ9LWcswr",
193
- allowed_mint_issuer: "KT1WDByFKQmgVynxSr2rzdijs5aSs7mo7eBM",
194
- allowed_mint_issuer_v3: "KT1S3UqrLgMpVivNWWmBUnkPCaSFHDJ4HYvb",
195
- allowed_mint_v3: "KT1HUE2A6CHNw4NZZBWjJyG38nysWWfusagu",
196
- articles: "KT1HV8NXUCKWC1tWNHSD8LPPiKPshQuXvb8r",
197
- card_proxy: "KT1R6N27Qdw4RqeSUnYkw436uZrFSRWtxqbd",
198
- collaboration_factory: "KT1WFXts7jwxpD9uGDKzyqTUTFaG222xmjoZ",
199
- consumable_database: "KT1FP9y1PJpJkXhdJCgYZhVbj9UBpxnA57Bx",
200
- cycles: "KT1BJBcvtgZM2Kf4rUapmp4AhXtWCmznxd6F",
201
- gentk_v1: "KT1ExHjELnDuat9io3HkDcrBhHmek7h8EVXG",
202
- gentk_v1_data: "KT1SquPSN9oiMUWHG9coKRJAwz8Afe4c6izT",
203
- gentk_v2: "KT1NkZho1yRkDdQnN4Mz93sDYyY2pPrEHTNs",
204
- gentk_v3: "KT1TtVAyjh4Ahdm8sLZwFnL7tqoLf59XrK2h",
205
- issuer_tickets: "KT19PBsvmB2CwFqXftzb5gNJfxrEDFdSxGKZ",
206
- issuer_v0: "KT1PyfrDD85RxUWz8dMHoC92MxdPzecSQ5t9",
207
- issuer_v1: "KT1QwWVZogqPZZtGSVxGpLkEWar7LFvAsMdd",
208
- issuer_v2: "KT1Sy7X6TubmZ39G8CHVrUcxjc3jiF68P8oB",
209
- issuer_v3: "KT1DfymMp3qD5Pd5ujPjp7UsQbppY9yY1Hbf",
210
- marketplace_v1: "KT1DbivePcuUzCp5RaAQWxPSLV9G2Ys4faUR",
211
- marketplace_v2: "KT1HFYtf4vNCr4xRDZxLKc5asUdCsPUTTW9R",
212
- marketplace_v3: "KT1J6rt4d9U785DZWYEPvQ2fR1e71gxP42Lj",
213
- moderation_articles: "KT1Qg78fa81Xyjh65yNqUgVucubHUyq6VmgL",
214
- moderation_team: "KT1RsfyWzHs1EEWMzFLmKnJTQwPqRzsnF3Dp",
215
- moderation_token: "KT1PokFR36CcXKh3jUnjncabcuPWm5BMiqjt",
216
- moderation_token_v3: "KT1C1J38YR6eDvRBDEDaypptCFda9aH7FRbJ",
217
- moderation_user: "KT1Q3s7mYpscCnwsyndrVZg9WqBCmw99n37g",
218
- pricing_dutch_auction: "KT1BqikbUisiBBd9WvPiqnTwLY8Pm68p2Aua",
219
- pricing_dutch_auction_v3: "KT1QCboxZ28SqsfyZWTDrkSpZzU6xjZXBsFb",
220
- pricing_fixed: "KT1PAsf9Zc9FGJA9iLE1Ab2vPkMDsh4hyZVi",
221
- pricing_fixed_v3: "KT1Mqyy5JPknNzNJtgF93SHpFHv4VcYrNZry",
222
- randomizer: "KT1QmdsrJWJgK3VXid8q7D4sPipVoc9jh12x",
223
- randomizer_v2: "KT1Eow4nBY3B9EhWcX1aEXva67VkNFfP1Tq6",
224
- token_moderation: "KT1BHfPDMRp2q48ZkmmnK7TRzQRdFnp6XVKq",
225
- treasury: "KT1MbDbRhZPs5TzZEXkT142ePoccFHfohBoo",
226
- user_moderation: "KT1LmZjoitx2itnB1qCbHMrT3V64RbuSPf3a",
227
- user_register: "KT1XaikgmBDQANBvkFqyFhSpgAZJAXpiDFGE",
228
- onchfs_files: "KT1FA8AGGcJha6S6MqfBUiibwTaYhK8u7s9Q"
229
- };
230
- const tezosMainnetContracts = {
231
- allowed_mint: "KT1VDQwskdfHkSbA9W6CSEnxnh1u1XU8K8Gu",
232
- allowed_mint_issuer: "KT1Djz5ix2yEGmV7PMq3GYq17TvMMkd1anT2",
233
- allowed_mint_issuer_v3: "KT1LJ4R4xoEWMgTjrGrdHJAeHLYFaB4RsoVK",
234
- allowed_mint_v3: "KT1KgEjxqfRCMwtCGifT6fDPwC35RptTUEvE",
235
- articles: "KT1GtbuswcNMGhHF2TSuH1Yfaqn16do8Qtva",
236
- card_proxy: "KT1DQGSRsgHcf2TPdKGc4qm5AT9JprJCAo7j",
237
- collaboration_factory: "KT1JrUPSCt1r2MB2J7Lk2KwiWSYr3Mr414ck",
238
- consumable_database: "KT1Mbfkqh5EhebWuMvqAfUPTpgiBPwmQCDSD",
239
- cycles: "KT1BgD9SPfysnMz3vkfm6ZEaGFKCVcE5ay91",
240
- gentk_v1: "KT1KEa8z6vWXDJrVqtMrAeDVzsvxat3kHaCE",
241
- gentk_v1_data: "KT1WRpPyXHSCbTfDQFWVXbMpxxvf7Y7KChxc",
242
- gentk_v2: "KT1U6EHmNxJTkvaWJ4ThczG4FSDaHC21ssvi",
243
- gentk_v3: "KT1EfsNuqwLAWDd3o4pvfUx1CAh5GMdTrRvr",
244
- issuer_tickets: "KT19etLCjCCzTLFFAxsxLFsVYMRPetr2bTD5",
245
- issuer_v0: "KT1AEVuykWeuuFX7QkEAMNtffzwhe1Z98hJS",
246
- issuer_v1: "KT1XCoGnfupWk7Sp8536EfrxcP73LmT68Nyr",
247
- issuer_v2: "KT1BJC12dG17CVvPKJ1VYaNnaT5mzfnUTwXv",
248
- issuer_v3: "KT1Xpmp15KfqoePNW9HczFmqaGNHwadV2a3b",
249
- marketplace_v1: "KT1Xo5B7PNBAeynZPmca4bRh6LQow4og1Zb9",
250
- marketplace_v2: "KT1GbyoDi7H1sfXmimXpptZJuCdHMh66WS9u",
251
- marketplace_v3: "KT1M1NyU9X4usEimt2f3kDaijZnDMNBu42Ja",
252
- moderation_articles: "KT1A36z7nG4zPDbhjyrzhYf9SCn5ipPZeRMQ",
253
- moderation_team: "KT1FvGQcPxzuJkJsdWFQiGkueSNT5mqpFDrf",
254
- moderation_token: "KT18tPu7uXy9PJ97i3qCLsr7an4X6sQ5qxU7",
255
- moderation_token_v3: "KT1UBWXN1KxTh4eurrCTCH7aEjqdrM3HjP6R",
256
- moderation_user: "KT1Wn2kkKmdbyLWBiLXWCkE7fKj1LsLKar2A",
257
- pricing_dutch_auction: "KT1EzLrXRCXij42pKfbZPn48PuxrnVki1aYY",
258
- pricing_dutch_auction_v3: "KT1MFgHKorMWXeVL6qrpgjZmemirafppSg9q",
259
- pricing_fixed: "KT1FHzHxuMaNLYG8LdniY45M6RCfkF3AoXFh",
260
- pricing_fixed_v3: "KT1V24J6FVuKPU3xy6gVF6wJ3zdRXBheQhaV",
261
- randomizer: "KT1XYgKrzBbzsckGvXTPgxFyN7KNZ9RPYVWf",
262
- randomizer_v2: "KT1CfmepqJkfZwqLPFVMKFoYUS7dPPZHyCTo",
263
- token_moderation: "KT1HgVuzNWVvnX16fahbV2LrnpwifYKoFMRd",
264
- treasury: "KT1P2BXYb894MekrCcSrnidzQYPVqitLoVLc",
265
- user_moderation: "KT1TWWQ6FtLoosVfZgTKV2q68TMZaENhGm54",
266
- user_register: "KT1Ezht4PDKZri7aVppVGT4Jkw39sesaFnww",
267
- onchfs_files: "KT1Ae7dT1gsLw2tRnUMXSCmEyF74KVkM6LUo"
268
- };
269
-
270
- //#endregion
271
- //#region src/contracts/eth.ts
272
- const ethTestnetContracts = {
273
- multicall3: "0xcA11bde05977b3631167028862bE2a173976CA11",
274
- seaport_zone: "0x0000000006B429721d1F4c4cD256BF3A38c09Ac6",
275
- issuer_factory_v1: "0x4e9ef916F55B5d4a27E6406C7Ce8bcd29c2693d6",
276
- mint_ticket_factory_v1: "0xbaed21d8C57caf71578b9aE1E09a68721d0Dd02d",
277
- dutch_auction_minter_v1: "0x2F8ea350E7F29BCaC2AEE5889d64df07EE3Fa98d",
278
- fixed_price_minter_v1: "0xa6c9c758e80ec18e1a28d485b97400B11dCFCD64",
279
- ticket_redeemer_v1: "0xdd29eA613e0553fc03f5762Bf643710a7987A216",
280
- ipfs_renderer_v1: "0x17b9c8a7C6F9D3768D4DA75EBB6abDe9FBe900cf",
281
- onchfs_renderer_v1: "0x25B087D2c87a0b34188a530dC9cCfDa30822AA8e",
282
- randomizer_v1: "0x5962e4dEeDe2DB4A83259255D30c19F4397FD5A6",
283
- role_registry_v1: "0x92B70c5C6E676BdC395DfD911c07392fc7C36E4F",
284
- contract_registry_v1: "0xb7CFDcDb2c6a1D05D7b85FB4ae7B7bccd028010F",
285
- gen_art_token_impl_v1: "0x1feeb359e96E6Dd6F19F1FC98e8FffDdf5AeaD58",
286
- mint_ticket_impl_v1: "0x0303e3a5be6e9Fa21E72cE446a402a6AEec13c60",
287
- onchfs_file_system: "0x4f555d39e89f6d768f75831d610b3940fa94c6b1",
288
- onchfs_content_store: "0x070e5A608705aC4954eec054f9074eEe49bDcbfF",
289
- seaport: "0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0",
290
- fxhashTeamSafeAddress: "0x4F073947573FF44621cA25061Fb035c73a3014ab",
291
- signerSafe: "0x4F073947573FF44621cA25061Fb035c73a3014ab",
292
- moderationSafe: "0x4F073947573FF44621cA25061Fb035c73a3014ab",
293
- farcaster_frame_fixed_price_minter_v1: "0xB0905f81167bD90ABD5a583E029D27DA77568084",
294
- fx_token: "0xfa2e08ebfa6dae5ff68c3a0e2eb33a78f363f9fe"
168
+ //#region src/api/tezos.ts
169
+ const tezosTestnetApis = {
170
+ tzkt: "https://api.ghostnet.tzkt.io/v1/",
171
+ tzktPro: "https://api.ghostnet.tzkt.io/v1/",
172
+ tzktWebsite: "https://ghostnet.tzkt.io/",
173
+ rpcs: [
174
+ "https://ghostnet.ecadinfra.com",
175
+ "https://ghostnet.smartpy.io",
176
+ "https://ghostnet.tezos.marigold.dev/"
177
+ ]
295
178
  };
296
- /**
297
- * TODO
298
- * -----------------------------------------------------------------------------
299
- * Put the actual addresses.
300
- */
301
- const ethMainnetContracts = {
302
- multicall3: "0xcA11bde05977b3631167028862bE2a173976CA11",
303
- seaport_zone: "0x0000000006B429721d1F4c4cD256BF3A38c09Ac6",
304
- issuer_factory_v1: "0x442295de8A31d65026dBc09c29d469F6854f188a",
305
- mint_ticket_factory_v1: "0xDB92ed0e6265d042F05E5C2f6D2F99496e87D706",
306
- dutch_auction_minter_v1: "0x1bC736a2b144096a4752534C557D7E6C311CcAF1",
307
- fixed_price_minter_v1: "0xB645cFfD9bFB93c2c181d5Be0D6a8C1d81C2aEf3",
308
- ticket_redeemer_v1: "0x3D72011b1bB52e33f9D81Fc5553FF4765e3f32c1",
309
- ipfs_renderer_v1: "0x48F00F8314920ca0cd763D74acFe8cFE4024a274",
310
- onchfs_renderer_v1: "0xe9fE6b2e494E40404AcB2b8B0a0Bc7b79FD03c83",
311
- randomizer_v1: "0xED32Ed47A75e298433cF822E10645C04a0B95075",
312
- role_registry_v1: "0x22b9Dd17BA1132C027d780bC0A784f08f244022B",
313
- contract_registry_v1: "0x4DAc308c686D747A804B7E95db606695a529A750",
314
- gen_art_token_impl_v1: "0x429AC1aA66220573Da6928bcce7384fe50e1284f",
315
- mint_ticket_impl_v1: "0xc2743B0B901eDAA8ccd1A09914449A797e1079F1",
316
- onchfs_file_system: "0x9e0f2864c6f125bbf599df6ca6e6c3774c5b2e04",
317
- onchfs_content_store: "0xC6806fd75745bB5F5B32ADa19963898155f9DB91",
318
- seaport: "0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0",
319
- fxhashTeamSafeAddress: "0xD8b1905022d70e74c6c8aaA2baaf275fBe1634f1",
320
- signerSafe: "0xB456aF77dEB65065462BD1f0D9098413E6CA4200",
321
- moderationSafe: "0x99CDaECbe1be4B7232a4f2c79EF76D403886FE1E",
322
- farcaster_frame_fixed_price_minter_v1: "0x6e625892C739bFD960671Db5544E260757480725",
323
- fx_token: "0xTODO"
179
+ const tezosMainnetApis = {
180
+ tzkt: "https://api.tzkt.io/v1/",
181
+ tzktPro: "https://pro.tzkt.io/v1/",
182
+ tzktWebsite: "https://tzkt.io/",
183
+ rpcs: [
184
+ "https://rpc1.fxhash.xyz",
185
+ "https://mainnet.smartpy.io",
186
+ "https://mainnet.api.tez.ie",
187
+ "https://teznode.letzbake.com"
188
+ ]
324
189
  };
325
190
 
326
191
  //#endregion
@@ -340,6 +205,53 @@ const baseMainnetApis = {
340
205
  alchemy: { rpc: "https://base-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9" }
341
206
  };
342
207
 
208
+ //#endregion
209
+ //#region src/config/algolia.ts
210
+ const algoliaConfig = {
211
+ enabled: true,
212
+ indexGenerativeTokens: "generative-tokens",
213
+ indexOffers: "listings",
214
+ indexUsers: "users",
215
+ indexArticles: "articles",
216
+ indexAccounts: "accounts"
217
+ };
218
+ const algoliaConfigDev = {
219
+ appId: "T4XRS2LFQK",
220
+ ...algoliaConfig
221
+ };
222
+ const algoliaConfigProd = {
223
+ appId: "F7M6D8T095",
224
+ ...algoliaConfig
225
+ };
226
+
227
+ //#endregion
228
+ //#region src/config/gpu.ts
229
+ const GPU_VERSIONS = ["v111", "v132"];
230
+ const gpuRenderingConfigShared = {
231
+ v111: {
232
+ date: "2023-03-06",
233
+ version: "111.0.5563.64"
234
+ },
235
+ v132: {
236
+ date: "2025-01-14",
237
+ version: "132.0.6834.110"
238
+ }
239
+ };
240
+ const createEnvConfig = (batchArns) => {
241
+ return Object.fromEntries(GPU_VERSIONS.map((version) => [version, {
242
+ ...gpuRenderingConfigShared[version],
243
+ batchArn: batchArns[version]
244
+ }]));
245
+ };
246
+ const gpuRenderingConfigDev = createEnvConfig({
247
+ v111: "arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v111",
248
+ v132: "arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v132"
249
+ });
250
+ const gpuRenderingConfigProd = createEnvConfig({
251
+ v111: "arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v111",
252
+ v132: "arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v132"
253
+ });
254
+
343
255
  //#endregion
344
256
  //#region src/errors/metadata.ts
345
257
  var AppMetadataInvalidTypeError = class extends RichError {
@@ -390,51 +302,25 @@ function isAppMetadataValid(value) {
390
302
  }
391
303
 
392
304
  //#endregion
393
- //#region src/config/algolia.ts
394
- const algoliaConfig = {
395
- enabled: true,
396
- indexGenerativeTokens: "generative-tokens",
397
- indexOffers: "listings",
398
- indexUsers: "users",
399
- indexArticles: "articles",
400
- indexAccounts: "accounts"
401
- };
402
- const algoliaConfigDev = {
403
- appId: "T4XRS2LFQK",
404
- ...algoliaConfig
405
- };
406
- const algoliaConfigProd = {
407
- appId: "F7M6D8T095",
408
- ...algoliaConfig
409
- };
410
-
411
- //#endregion
412
- //#region src/config/gpu.ts
413
- const GPU_VERSIONS = ["v111", "v132"];
414
- const gpuRenderingConfigShared = {
415
- v111: {
416
- date: "2023-03-06",
417
- version: "111.0.5563.64"
418
- },
419
- v132: {
420
- date: "2025-01-14",
421
- version: "132.0.6834.110"
422
- }
423
- };
424
- const createEnvConfig = (batchArns) => {
425
- return Object.fromEntries(GPU_VERSIONS.map((version) => [version, {
426
- ...gpuRenderingConfigShared[version],
427
- batchArn: batchArns[version]
428
- }]));
429
- };
430
- const gpuRenderingConfigDev = createEnvConfig({
431
- v111: "arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v111",
432
- v132: "arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v132"
433
- });
434
- const gpuRenderingConfigProd = createEnvConfig({
435
- v111: "arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v111",
436
- v132: "arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v132"
437
- });
305
+ //#region src/constants.ts
306
+ const AUTH_JWT_PK_DEV = `-----BEGIN PUBLIC KEY-----
307
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1hF8JwAxIiFWzbXIgeOK
308
+ Bzf6SZlT3S1YampzVgy4pw1G0aKwHnyvC+HrRfkEOCGxX24DqbEpZby2LjKF9bfa
309
+ OLrERrNSNrDLXbf3ipKQrnEBu2UdT2pE5UF/SwJUTdGczb78EId0yIjuZ26qZcQg
310
+ Pr1ji6FgdOOdEwdphl4x1dlQzgMgjhRcPwf9NsBx3R6l/ut2o38Qa8azxM7XBg8F
311
+ UlsKGy4/jY2OIEKCravCoXmpeX9pxploED/DoJJI9FZXVB7/91iIb6MI0Ycby+xo
312
+ GL/cF+ZYSVRoFexji4vpycJfltW5YJ8jHSveZWa6LXqM6LY7zRFmlxb3SF4tsDTT
313
+ PQIDAQAB
314
+ -----END PUBLIC KEY-----`;
315
+ const AUTH_JWT_PK_PRD = `-----BEGIN PUBLIC KEY-----
316
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtwl1CRvpN7MZeGGDTy8x
317
+ +W3EkZfBzZqEp3vahCaqBdMkMhy7oB1pUU7pjb34tg9epnKdKo0cZn+Bw1LkSKWh
318
+ Z1DSbgCdNR47qKb4xN8mZ5VvEw/64+nUXbCOikX+rMqSE2tNeNU3KOYr8VQYt9dv
319
+ /J0xFwsr0aa4m23dmJ/oPLA8eR8lZk++fEZsbezKH3i9zz73I0UAivijM0S9lYeB
320
+ NkT5zOaAJARzl69hEMQAv9qUkokwPSHlcG+LakhTGYAyMe3w/KHXVRkWjuCUgUJf
321
+ 90oveckX4dhMbHbz9ba1p3hpmwdmlRzljIIE2GQYawA8eNLsOb/z6V8HGMbCL/N9
322
+ JwIDAQAB
323
+ -----END PUBLIC KEY-----`;
438
324
 
439
325
  //#endregion
440
326
  //#region src/contracts/base.ts
@@ -491,8 +377,145 @@ const baseMainnetContracts = {
491
377
  fx_token: "0x5Fc2843838e65eb0B5d33654628F446d54602791",
492
378
  fx_airdrop: "0x45BB9DF166Fda4afD7e533DE42B11579a1F09d43",
493
379
  fx_tez_airdrop: "0x5021910a5762F9C872Bf7D6CD5F09127aE8cCA84",
494
- fx_token_launchpad: "0xTODO",
495
- fx_project_factory: "0xTODO"
380
+ fx_token_launchpad: "0x6FE49c842dAEE3C709772e5727Fd863ad858f1F5",
381
+ fx_project_factory: "0x0612ec1A199617A5b3DF627755A34F69469AEA25"
382
+ };
383
+
384
+ //#endregion
385
+ //#region src/contracts/eth.ts
386
+ const ethTestnetContracts = {
387
+ multicall3: "0xcA11bde05977b3631167028862bE2a173976CA11",
388
+ seaport_zone: "0x0000000006B429721d1F4c4cD256BF3A38c09Ac6",
389
+ issuer_factory_v1: "0x4e9ef916F55B5d4a27E6406C7Ce8bcd29c2693d6",
390
+ mint_ticket_factory_v1: "0xbaed21d8C57caf71578b9aE1E09a68721d0Dd02d",
391
+ dutch_auction_minter_v1: "0x2F8ea350E7F29BCaC2AEE5889d64df07EE3Fa98d",
392
+ fixed_price_minter_v1: "0xa6c9c758e80ec18e1a28d485b97400B11dCFCD64",
393
+ ticket_redeemer_v1: "0xdd29eA613e0553fc03f5762Bf643710a7987A216",
394
+ ipfs_renderer_v1: "0x17b9c8a7C6F9D3768D4DA75EBB6abDe9FBe900cf",
395
+ onchfs_renderer_v1: "0x25B087D2c87a0b34188a530dC9cCfDa30822AA8e",
396
+ randomizer_v1: "0x5962e4dEeDe2DB4A83259255D30c19F4397FD5A6",
397
+ role_registry_v1: "0x92B70c5C6E676BdC395DfD911c07392fc7C36E4F",
398
+ contract_registry_v1: "0xb7CFDcDb2c6a1D05D7b85FB4ae7B7bccd028010F",
399
+ gen_art_token_impl_v1: "0x1feeb359e96E6Dd6F19F1FC98e8FffDdf5AeaD58",
400
+ mint_ticket_impl_v1: "0x0303e3a5be6e9Fa21E72cE446a402a6AEec13c60",
401
+ onchfs_file_system: "0x4f555d39e89f6d768f75831d610b3940fa94c6b1",
402
+ onchfs_content_store: "0x070e5A608705aC4954eec054f9074eEe49bDcbfF",
403
+ seaport: "0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0",
404
+ fxhashTeamSafeAddress: "0x4F073947573FF44621cA25061Fb035c73a3014ab",
405
+ signerSafe: "0x4F073947573FF44621cA25061Fb035c73a3014ab",
406
+ moderationSafe: "0x4F073947573FF44621cA25061Fb035c73a3014ab",
407
+ farcaster_frame_fixed_price_minter_v1: "0xB0905f81167bD90ABD5a583E029D27DA77568084",
408
+ fx_token: "0xfa2e08ebfa6dae5ff68c3a0e2eb33a78f363f9fe"
409
+ };
410
+ /**
411
+ * TODO
412
+ * -----------------------------------------------------------------------------
413
+ * Put the actual addresses.
414
+ */
415
+ const ethMainnetContracts = {
416
+ multicall3: "0xcA11bde05977b3631167028862bE2a173976CA11",
417
+ seaport_zone: "0x0000000006B429721d1F4c4cD256BF3A38c09Ac6",
418
+ issuer_factory_v1: "0x442295de8A31d65026dBc09c29d469F6854f188a",
419
+ mint_ticket_factory_v1: "0xDB92ed0e6265d042F05E5C2f6D2F99496e87D706",
420
+ dutch_auction_minter_v1: "0x1bC736a2b144096a4752534C557D7E6C311CcAF1",
421
+ fixed_price_minter_v1: "0xB645cFfD9bFB93c2c181d5Be0D6a8C1d81C2aEf3",
422
+ ticket_redeemer_v1: "0x3D72011b1bB52e33f9D81Fc5553FF4765e3f32c1",
423
+ ipfs_renderer_v1: "0x48F00F8314920ca0cd763D74acFe8cFE4024a274",
424
+ onchfs_renderer_v1: "0xe9fE6b2e494E40404AcB2b8B0a0Bc7b79FD03c83",
425
+ randomizer_v1: "0xED32Ed47A75e298433cF822E10645C04a0B95075",
426
+ role_registry_v1: "0x22b9Dd17BA1132C027d780bC0A784f08f244022B",
427
+ contract_registry_v1: "0x4DAc308c686D747A804B7E95db606695a529A750",
428
+ gen_art_token_impl_v1: "0x429AC1aA66220573Da6928bcce7384fe50e1284f",
429
+ mint_ticket_impl_v1: "0xc2743B0B901eDAA8ccd1A09914449A797e1079F1",
430
+ onchfs_file_system: "0x9e0f2864c6f125bbf599df6ca6e6c3774c5b2e04",
431
+ onchfs_content_store: "0xC6806fd75745bB5F5B32ADa19963898155f9DB91",
432
+ seaport: "0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0",
433
+ fxhashTeamSafeAddress: "0xD8b1905022d70e74c6c8aaA2baaf275fBe1634f1",
434
+ signerSafe: "0xB456aF77dEB65065462BD1f0D9098413E6CA4200",
435
+ moderationSafe: "0x99CDaECbe1be4B7232a4f2c79EF76D403886FE1E",
436
+ farcaster_frame_fixed_price_minter_v1: "0x6e625892C739bFD960671Db5544E260757480725",
437
+ fx_token: "0xTODO"
438
+ };
439
+
440
+ //#endregion
441
+ //#region src/contracts/tezos.ts
442
+ const tezosTestnetContracts = {
443
+ allowed_mint: "KT1QwfqMUDRYVyxo9KhunY5YCx9qQ9LWcswr",
444
+ allowed_mint_issuer: "KT1WDByFKQmgVynxSr2rzdijs5aSs7mo7eBM",
445
+ allowed_mint_issuer_v3: "KT1S3UqrLgMpVivNWWmBUnkPCaSFHDJ4HYvb",
446
+ allowed_mint_v3: "KT1HUE2A6CHNw4NZZBWjJyG38nysWWfusagu",
447
+ articles: "KT1HV8NXUCKWC1tWNHSD8LPPiKPshQuXvb8r",
448
+ card_proxy: "KT1R6N27Qdw4RqeSUnYkw436uZrFSRWtxqbd",
449
+ collaboration_factory: "KT1WFXts7jwxpD9uGDKzyqTUTFaG222xmjoZ",
450
+ consumable_database: "KT1FP9y1PJpJkXhdJCgYZhVbj9UBpxnA57Bx",
451
+ cycles: "KT1BJBcvtgZM2Kf4rUapmp4AhXtWCmznxd6F",
452
+ gentk_v1: "KT1ExHjELnDuat9io3HkDcrBhHmek7h8EVXG",
453
+ gentk_v1_data: "KT1SquPSN9oiMUWHG9coKRJAwz8Afe4c6izT",
454
+ gentk_v2: "KT1NkZho1yRkDdQnN4Mz93sDYyY2pPrEHTNs",
455
+ gentk_v3: "KT1TtVAyjh4Ahdm8sLZwFnL7tqoLf59XrK2h",
456
+ issuer_tickets: "KT19PBsvmB2CwFqXftzb5gNJfxrEDFdSxGKZ",
457
+ issuer_v0: "KT1PyfrDD85RxUWz8dMHoC92MxdPzecSQ5t9",
458
+ issuer_v1: "KT1QwWVZogqPZZtGSVxGpLkEWar7LFvAsMdd",
459
+ issuer_v2: "KT1Sy7X6TubmZ39G8CHVrUcxjc3jiF68P8oB",
460
+ issuer_v3: "KT1DfymMp3qD5Pd5ujPjp7UsQbppY9yY1Hbf",
461
+ marketplace_v1: "KT1DbivePcuUzCp5RaAQWxPSLV9G2Ys4faUR",
462
+ marketplace_v2: "KT1HFYtf4vNCr4xRDZxLKc5asUdCsPUTTW9R",
463
+ marketplace_v3: "KT1J6rt4d9U785DZWYEPvQ2fR1e71gxP42Lj",
464
+ moderation_articles: "KT1Qg78fa81Xyjh65yNqUgVucubHUyq6VmgL",
465
+ moderation_team: "KT1RsfyWzHs1EEWMzFLmKnJTQwPqRzsnF3Dp",
466
+ moderation_token: "KT1PokFR36CcXKh3jUnjncabcuPWm5BMiqjt",
467
+ moderation_token_v3: "KT1C1J38YR6eDvRBDEDaypptCFda9aH7FRbJ",
468
+ moderation_user: "KT1Q3s7mYpscCnwsyndrVZg9WqBCmw99n37g",
469
+ pricing_dutch_auction: "KT1BqikbUisiBBd9WvPiqnTwLY8Pm68p2Aua",
470
+ pricing_dutch_auction_v3: "KT1QCboxZ28SqsfyZWTDrkSpZzU6xjZXBsFb",
471
+ pricing_fixed: "KT1PAsf9Zc9FGJA9iLE1Ab2vPkMDsh4hyZVi",
472
+ pricing_fixed_v3: "KT1Mqyy5JPknNzNJtgF93SHpFHv4VcYrNZry",
473
+ randomizer: "KT1QmdsrJWJgK3VXid8q7D4sPipVoc9jh12x",
474
+ randomizer_v2: "KT1Eow4nBY3B9EhWcX1aEXva67VkNFfP1Tq6",
475
+ token_moderation: "KT1BHfPDMRp2q48ZkmmnK7TRzQRdFnp6XVKq",
476
+ treasury: "KT1MbDbRhZPs5TzZEXkT142ePoccFHfohBoo",
477
+ user_moderation: "KT1LmZjoitx2itnB1qCbHMrT3V64RbuSPf3a",
478
+ user_register: "KT1XaikgmBDQANBvkFqyFhSpgAZJAXpiDFGE",
479
+ onchfs_files: "KT1FA8AGGcJha6S6MqfBUiibwTaYhK8u7s9Q"
480
+ };
481
+ const tezosMainnetContracts = {
482
+ allowed_mint: "KT1VDQwskdfHkSbA9W6CSEnxnh1u1XU8K8Gu",
483
+ allowed_mint_issuer: "KT1Djz5ix2yEGmV7PMq3GYq17TvMMkd1anT2",
484
+ allowed_mint_issuer_v3: "KT1LJ4R4xoEWMgTjrGrdHJAeHLYFaB4RsoVK",
485
+ allowed_mint_v3: "KT1KgEjxqfRCMwtCGifT6fDPwC35RptTUEvE",
486
+ articles: "KT1GtbuswcNMGhHF2TSuH1Yfaqn16do8Qtva",
487
+ card_proxy: "KT1DQGSRsgHcf2TPdKGc4qm5AT9JprJCAo7j",
488
+ collaboration_factory: "KT1JrUPSCt1r2MB2J7Lk2KwiWSYr3Mr414ck",
489
+ consumable_database: "KT1Mbfkqh5EhebWuMvqAfUPTpgiBPwmQCDSD",
490
+ cycles: "KT1BgD9SPfysnMz3vkfm6ZEaGFKCVcE5ay91",
491
+ gentk_v1: "KT1KEa8z6vWXDJrVqtMrAeDVzsvxat3kHaCE",
492
+ gentk_v1_data: "KT1WRpPyXHSCbTfDQFWVXbMpxxvf7Y7KChxc",
493
+ gentk_v2: "KT1U6EHmNxJTkvaWJ4ThczG4FSDaHC21ssvi",
494
+ gentk_v3: "KT1EfsNuqwLAWDd3o4pvfUx1CAh5GMdTrRvr",
495
+ issuer_tickets: "KT19etLCjCCzTLFFAxsxLFsVYMRPetr2bTD5",
496
+ issuer_v0: "KT1AEVuykWeuuFX7QkEAMNtffzwhe1Z98hJS",
497
+ issuer_v1: "KT1XCoGnfupWk7Sp8536EfrxcP73LmT68Nyr",
498
+ issuer_v2: "KT1BJC12dG17CVvPKJ1VYaNnaT5mzfnUTwXv",
499
+ issuer_v3: "KT1Xpmp15KfqoePNW9HczFmqaGNHwadV2a3b",
500
+ marketplace_v1: "KT1Xo5B7PNBAeynZPmca4bRh6LQow4og1Zb9",
501
+ marketplace_v2: "KT1GbyoDi7H1sfXmimXpptZJuCdHMh66WS9u",
502
+ marketplace_v3: "KT1M1NyU9X4usEimt2f3kDaijZnDMNBu42Ja",
503
+ moderation_articles: "KT1A36z7nG4zPDbhjyrzhYf9SCn5ipPZeRMQ",
504
+ moderation_team: "KT1FvGQcPxzuJkJsdWFQiGkueSNT5mqpFDrf",
505
+ moderation_token: "KT18tPu7uXy9PJ97i3qCLsr7an4X6sQ5qxU7",
506
+ moderation_token_v3: "KT1UBWXN1KxTh4eurrCTCH7aEjqdrM3HjP6R",
507
+ moderation_user: "KT1Wn2kkKmdbyLWBiLXWCkE7fKj1LsLKar2A",
508
+ pricing_dutch_auction: "KT1EzLrXRCXij42pKfbZPn48PuxrnVki1aYY",
509
+ pricing_dutch_auction_v3: "KT1MFgHKorMWXeVL6qrpgjZmemirafppSg9q",
510
+ pricing_fixed: "KT1FHzHxuMaNLYG8LdniY45M6RCfkF3AoXFh",
511
+ pricing_fixed_v3: "KT1V24J6FVuKPU3xy6gVF6wJ3zdRXBheQhaV",
512
+ randomizer: "KT1XYgKrzBbzsckGvXTPgxFyN7KNZ9RPYVWf",
513
+ randomizer_v2: "KT1CfmepqJkfZwqLPFVMKFoYUS7dPPZHyCTo",
514
+ token_moderation: "KT1HgVuzNWVvnX16fahbV2LrnpwifYKoFMRd",
515
+ treasury: "KT1P2BXYb894MekrCcSrnidzQYPVqitLoVLc",
516
+ user_moderation: "KT1TWWQ6FtLoosVfZgTKV2q68TMZaENhGm54",
517
+ user_register: "KT1Ezht4PDKZri7aVppVGT4Jkw39sesaFnww",
518
+ onchfs_files: "KT1Ae7dT1gsLw2tRnUMXSCmEyF74KVkM6LUo"
496
519
  };
497
520
 
498
521
  //#endregion
@@ -511,27 +534,6 @@ const BlockchainIdentifiers = {
511
534
  BaseMainnet: "eip155:8453"
512
535
  };
513
536
 
514
- //#endregion
515
- //#region src/constants.ts
516
- const AUTH_JWT_PK_DEV = `-----BEGIN PUBLIC KEY-----
517
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1hF8JwAxIiFWzbXIgeOK
518
- Bzf6SZlT3S1YampzVgy4pw1G0aKwHnyvC+HrRfkEOCGxX24DqbEpZby2LjKF9bfa
519
- OLrERrNSNrDLXbf3ipKQrnEBu2UdT2pE5UF/SwJUTdGczb78EId0yIjuZ26qZcQg
520
- Pr1ji6FgdOOdEwdphl4x1dlQzgMgjhRcPwf9NsBx3R6l/ut2o38Qa8azxM7XBg8F
521
- UlsKGy4/jY2OIEKCravCoXmpeX9pxploED/DoJJI9FZXVB7/91iIb6MI0Ycby+xo
522
- GL/cF+ZYSVRoFexji4vpycJfltW5YJ8jHSveZWa6LXqM6LY7zRFmlxb3SF4tsDTT
523
- PQIDAQAB
524
- -----END PUBLIC KEY-----`;
525
- const AUTH_JWT_PK_PRD = `-----BEGIN PUBLIC KEY-----
526
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtwl1CRvpN7MZeGGDTy8x
527
- +W3EkZfBzZqEp3vahCaqBdMkMhy7oB1pUU7pjb34tg9epnKdKo0cZn+Bw1LkSKWh
528
- Z1DSbgCdNR47qKb4xN8mZ5VvEw/64+nUXbCOikX+rMqSE2tNeNU3KOYr8VQYt9dv
529
- /J0xFwsr0aa4m23dmJ/oPLA8eR8lZk++fEZsbezKH3i9zz73I0UAivijM0S9lYeB
530
- NkT5zOaAJARzl69hEMQAv9qUkokwPSHlcG+LakhTGYAyMe3w/KHXVRkWjuCUgUJf
531
- 90oveckX4dhMbHbz9ba1p3hpmwdmlRzljIIE2GQYawA8eNLsOb/z6V8HGMbCL/N9
532
- JwIDAQAB
533
- -----END PUBLIC KEY-----`;
534
-
535
537
  //#endregion
536
538
  //#region src/config.ts
537
539
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ethTestnetApis: IEthApis","ethMainnetApis: IEthApis","tezosTestnetApis: ITezosApis","tezosMainnetApis: ITezosApis","url: string","isProd: boolean","isLocal: boolean","isDockerLocal: boolean","fxhashDevApis: IFxhashApis","fxhashLocalApis: IFxhashApis","fxhashLocalDockerApis: IFxhashApis","fxhashPrdApis: IFxhashApis","fxEnvToApisMap: Record<TEnv, IFxhashApis>","env: TEnv","tezosTestnetContracts: ITezosContracts","tezosMainnetContracts: ITezosContracts","ethTestnetContracts: IEthContracts","ethMainnetContracts: IEthContracts","baseTestnetApis: IBaseApis","baseMainnetApis: IBaseApis","par1: IRichErrorMessages | string[]","crossEnvMetadata: Omit<IAppMetadata, \"url\">","env: TEnv","value: any","missingProperties: string[]","requiredProperties: (keyof Required<IAppMetadata>)[]","algoliaConfigDev: AlgoliaConfig","algoliaConfigProd: AlgoliaConfig","gpuRenderingConfigShared: GPURenderingConfigShared","batchArns: Record<GPUVersion, string>","gpuRenderingConfigDev: GPURenderingConfig","gpuRenderingConfigProd: GPURenderingConfig","baseTestnetContracts: IBaseContracts","baseMainnetContracts: IBaseContracts","fxhashConfig: IFxhashConfig","env: TEnv","localConfig: IFxhashConfigSingleEnv","localDockerConfig: IFxhashConfigSingleEnv","devConfig: IFxhashConfigSingleEnv","prdConfig: IFxhashConfigSingleEnv","config: IFxhashConfigSingleEnv","userConfig: Partial<IFxhashConfigSingleEnv>","onchfsRegex: RegExp","resource: string","ipfsRegex: RegExp","gateway: EGatewayIpfs","resource: string","resource: string | null | undefined","uri: string","resource: string","tezosContractPrefixesByContractAddress: Record<string, string>","contract: string","id: string"],"sources":["../src/api/eth.ts","../src/api/tezos.ts","../src/helpers.ts","../src/api/fxhash.ts","../src/contracts/tezos.ts","../src/contracts/eth.ts","../src/api/base.ts","../src/errors/metadata.ts","../src/config/metadata.ts","../src/config/algolia.ts","../src/config/gpu.ts","../src/contracts/base.ts","../src/types.ts","../src/constants.ts","../src/config.ts","../src/utils/onchfs.ts","../src/utils/ipfs.ts","../src/utils/cid.ts","../src/utils/contracts.ts","../src/index.ts"],"sourcesContent":["export interface IEthApis {\n rpcs: string[]\n reservoir: string\n safe: string\n whitelist: string\n alchemy: {\n rpc: string\n }\n}\n\nexport const ethTestnetApis: IEthApis = {\n rpcs: [\n \"https://eth-sepolia.g.alchemy.com/v2/fATxHNjMh0rR9DnHCtZKDpPPxkEY48Qb\",\n ],\n reservoir: \"https://api-sepolia.reservoir.tools\",\n safe: \"https://safe-transaction-sepolia.safe.global\",\n whitelist: \"http://localhost:9999/whitelist/new\",\n alchemy: {\n rpc: \"https://eth-sepolia.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n\nexport const ethMainnetApis: IEthApis = {\n rpcs: [\n \"https://eth-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n ],\n reservoir: \"https://api.reservoir.tools\",\n safe: \"https://safe-transaction-mainnet.safe.global/\",\n whitelist: \"https://api.v2.dev.fxhash-dev.xyz/whitelist/new\",\n alchemy: {\n rpc: \"https://eth-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n","export interface ITezosApis {\n tzktWebsite: string\n tzkt: string\n tzktPro: string\n rpcs: string[]\n}\n\nexport const tezosTestnetApis: ITezosApis = {\n tzkt: \"https://api.ghostnet.tzkt.io/v1/\",\n tzktPro: \"https://api.ghostnet.tzkt.io/v1/\",\n tzktWebsite: \"https://ghostnet.tzkt.io/\",\n rpcs: [\n \"https://ghostnet.ecadinfra.com\",\n \"https://ghostnet.smartpy.io\",\n \"https://ghostnet.tezos.marigold.dev/\",\n ],\n}\n\nexport const tezosMainnetApis: ITezosApis = {\n tzkt: \"https://api.tzkt.io/v1/\",\n tzktPro: \"https://pro.tzkt.io/v1/\",\n tzktWebsite: \"https://tzkt.io/\",\n rpcs: [\n \"https://rpc1.fxhash.xyz\",\n \"https://mainnet.smartpy.io\",\n \"https://mainnet.api.tez.ie\",\n \"https://teznode.letzbake.com\",\n ],\n}\n","import { TEnv } from \"./types.js\"\n\nconst HOST_LOCAL = \"localhost\"\nconst HOST_DOCKER_INTERNAL = \"host.docker.internal\"\n\nexport function getDockerInternalUrl(url: string): string {\n return url.replace(HOST_LOCAL, HOST_DOCKER_INTERNAL)\n}\n\nexport const isProd: boolean = (() => {\n // We can't destructure process.envs\n // https://nextjs.org/docs/pages/api-reference/next-config-js/env\n return (\n process.env.FXHASH_ENV === \"prd\" ||\n process.env.FXHASH_ENV === \"production\" ||\n process.env.NEXT_PUBLIC_FXHASH_ENV === \"prd\" ||\n process.env.NEXT_PUBLIC_FXHASH_ENV === \"production\" ||\n process.env.REACT_APP_FXHASH_ENV === \"prd\" ||\n process.env.REACT_APP_FXHASH_ENV === \"production\" ||\n process.env.VITE_FXHASH_ENV === \"prd\" ||\n process.env.VITE_FXHASH_ENV === \"production\"\n )\n})()\n\nexport const isLocal: boolean = (() => {\n // We can't destructure process.envs\n // https://nextjs.org/docs/pages/api-reference/next-config-js/env\n return (\n process.env.FXHASH_ENV === \"local\" ||\n process.env.NEXT_PUBLIC_FXHASH_ENV === \"local\" ||\n process.env.REACT_APP_FXHASH_ENV === \"local\" ||\n process.env.VITE_FXHASH_ENV === \"local\"\n )\n})()\n\nexport const isDockerLocal: boolean = (() => {\n const isBrowser = typeof window !== \"undefined\"\n if (isBrowser) return false\n let fs\n try {\n fs = require(\"fs\")\n } catch (e) {\n return false\n }\n if (!fs) return false\n return isLocal && fs.existsSync(\"/.dockerenv\")\n})()\n\nexport function getEnv(): TEnv {\n if (isProd) return \"prd\"\n if (isLocal) {\n return isDockerLocal ? \"localDocker\" : \"local\"\n }\n return \"dev\"\n}\n","import { getDockerInternalUrl } from \"../helpers.js\"\nimport { IFxhashApis, TEnv } from \"../types.js\"\n\n// list of APIs dev leverages\nexport const fxhashDevApis: IFxhashApis = {\n website: \"https://beta.fxhash-dev.xyz\",\n docs: \"https://docs.fxhash.xyz\",\n main: \"https://api.v2-temp.dev.fxhash-dev.xyz/graphql\",\n hasura: \"https://api.v2.dev.fxhash-dev.xyz\",\n hasuraGql: \"https://api.v2.dev.fxhash-dev.xyz/v1/graphql\",\n file: \"https://file-api.fxhash-dev.xyz\",\n fileInternal:\n \"http://fxhash-multichain-dev-testnet-file-api.fxhash-multichain-dev-testnet.svc.cluster.local:4004\",\n walletInternal:\n \"http://fxhash-multichain-dev-testnet-wallet-api.fxhash-multichain-dev-testnet.svc.cluster.local:3208\",\n fsEmulator: \"https://file-api.fxhash-dev.xyz/fs\",\n extract: \"https://extract.fxhash-dev.xyz\",\n extractInternal:\n \"http://fxhash-dev-testnet-extract-balancer.fxhash-dev-testnet.svc.cluster.local:4017\",\n media: \"https://media.dev.fxhash-dev.xyz\",\n ethMetadata: \"https://media.dev.fxhash-dev.xyz/metadata/ethereum/\",\n ipfsInternal:\n \"http://fxhash-dev-testnet-ipfs-cluster-api.fxhash-dev-testnet.svc.cluster.local:9094\",\n ipfsGateway: \"https://gateway.fxhash-dev.xyz\",\n ipfsGatewaySafe: \"https://gateway.fxhash-dev2.xyz\",\n ipfsGatewayInternal:\n \"http://fxhash-dev-testnet-ipfs-cluster-gateway.fxhash-dev-testnet.svc.cluster.local:8080\",\n onchfsProxy: \"https://onchfs.fxhash-dev2.xyz\",\n opensea: \"https://testnets-api.opensea.io/api/v2\",\n authority: {\n api: \"NONE\",\n },\n capture: {\n lambdas: {\n small:\n \"https://u5not5l323zczuwnrzxwkt34ra0eyidj.lambda-url.us-east-1.on.aws/\",\n medium:\n \"https://jgfz7a6km7fsqonej2sp3lqwvu0utnyy.lambda-url.us-east-1.on.aws/\",\n large:\n \"https://fzezvbp2f74yturkj4akjyrq3e0zswhb.lambda-url.us-east-1.on.aws/\",\n },\n proxy: {\n ipfs: \"ipfs://Qme6E5z1GDqrHyPomGEw5LChxmE9pdEYGWjwxrv6ZgwZRo\",\n onchfs:\n \"onchfs://4287364ed3219d3f2f77302a71eff0db49e971058ef87f163981ef89a445b143\",\n },\n },\n events: {\n liveBackend: \"_NONE\",\n },\n indexer: {\n tez: \"http://fxhash-multichain-dev-testnet-indexer-v2.fxhash-multichain-dev-testnet.svc.cluster.local:4001\",\n eth: \"http://fxhash-multichain-dev-testnet-eth-indexer.fxhash-multichain-dev-testnet.svc.cluster.local:3000\",\n base: \"http://fxhash-multichain-dev-testnet-base-indexer.fxhash-multichain-dev-testnet.svc.cluster.local:3000\",\n },\n}\n\n// list of APIs for when fxhash is ran locally\n// The ports must correspond to the ports the services are running on\n// defined in the root docker compose file of the monorepo\nexport const fxhashLocalApis: IFxhashApis = {\n ...fxhashDevApis,\n website: \"http://localhost:3200\",\n hasura: \"http://localhost:8888\",\n hasuraGql: \"http://localhost:8888/v1/graphql\",\n fileInternal: fxhashDevApis.file,\n ipfsGatewayInternal: fxhashDevApis.ipfsGateway,\n walletInternal: \"http://host.docker.internal:3208\",\n}\n\nexport const fxhashLocalDockerApis: IFxhashApis = {\n ...fxhashLocalApis,\n hasura: getDockerInternalUrl(fxhashLocalApis.hasura),\n hasuraGql: getDockerInternalUrl(fxhashLocalApis.hasuraGql),\n}\n\n// list of APIs prod leverages\nexport const fxhashPrdApis: IFxhashApis = {\n website: \"https://www.fxhash.xyz\",\n docs: \"https://docs.fxhash.xyz\",\n main: \"https://api.v2-temp.fxhash.xyz/graphql\",\n hasura: \"https://api.v2.fxhash.xyz\",\n hasuraGql: \"https://api.v2.fxhash.xyz/v1/graphql\",\n file: \"https://file-api.fxhash.xyz\",\n fileInternal:\n \"http://fxhash-multichain-prd-file-api.fxhash-multichain-prd.svc.cluster.local:4004\",\n walletInternal:\n \"http://fxhash-multichain-prd-wallet-api.fxhash-multichain-prd.svc.cluster.local:3208\",\n fsEmulator: \"https://file-api.fxhash.xyz/fs\",\n extract: \"https://extract.fxhash.xyz\",\n extractInternal:\n \"http://fxhash-prd-extract-balancer.fxhash-prd.svc.cluster.local:4017\",\n media: \"https://media.fxhash.xyz\",\n ethMetadata: \"https://media.fxhash.xyz/metadata/ethereum/\",\n ipfsInternal:\n \"http://fxhash-prd-ipfs-cluster-api.fxhash-prd.svc.cluster.local:9094\",\n ipfsGateway: \"https://gateway.fxhash.xyz\",\n ipfsGatewaySafe: \"https://gateway.fxhash2.xyz\",\n ipfsGatewayInternal:\n \"http://fxhash-prd-ipfs-cluster-gateway.fxhash-prd.svc.cluster.local:8080\",\n onchfsProxy: \"https://onchfs.fxhash2.xyz\",\n opensea: \"https://api.opensea.io/api/v2\",\n authority: {\n api: \"NONE\",\n },\n capture: {\n lambdas: {\n small:\n \"https://7sz7knaaw3obgqxjyv3m4e5myu0lsbdp.lambda-url.us-east-1.on.aws/\",\n medium:\n \"https://tuupcq6eesbfk4veuzdfrhu7zm0zwuqy.lambda-url.us-east-1.on.aws/\",\n large:\n \"https://bojj24y6ucxmsyfi4uccdmiliy0dzhji.lambda-url.us-east-1.on.aws/\",\n },\n proxy: {\n ipfs: \"ipfs://Qme6E5z1GDqrHyPomGEw5LChxmE9pdEYGWjwxrv6ZgwZRo\",\n onchfs:\n \"onchfs://4287364ed3219d3f2f77302a71eff0db49e971058ef87f163981ef89a445b143\",\n },\n },\n events: {\n liveBackend: \"_NONE\",\n },\n indexer: {\n tez: \"http://fxhash-multichain-prd-indexer-v2.fxhash-multichain-prd.svc.cluster.local:4001\",\n eth: \"http://fxhash-multichain-prd-eth-indexer.fxhash-multichain-prd.svc.cluster.local:3000\",\n base: \"http://fxhash-multichain-prd-base-indexer.fxhash-multichain-prd.svc.cluster.local:3000\",\n },\n}\n\nconst fxEnvToApisMap: Record<TEnv, IFxhashApis> = {\n local: fxhashLocalApis,\n localDocker: fxhashLocalDockerApis,\n dev: fxhashDevApis,\n prd: fxhashPrdApis,\n}\n\n/**\n * Given some env, returns the associated APIs config.\n */\nexport function fxApisByEnv(env: TEnv): IFxhashApis {\n return fxEnvToApisMap[env]\n}\n","export interface ITezosContracts {\n allowed_mint: string\n allowed_mint_issuer: string\n allowed_mint_issuer_v3: string\n allowed_mint_v3: string\n articles: string\n card_proxy: string\n collaboration_factory: string\n consumable_database: string\n cycles: string\n gentk_v1: string\n gentk_v1_data: string\n gentk_v2: string\n gentk_v3: string\n issuer_tickets: string\n issuer_v0: string\n issuer_v1: string\n issuer_v2: string\n issuer_v3: string\n marketplace_v1: string\n marketplace_v2: string\n marketplace_v3: string\n moderation_articles: string\n moderation_team: string\n moderation_token: string\n moderation_token_v3: string\n moderation_user: string\n pricing_dutch_auction: string\n pricing_dutch_auction_v3: string\n pricing_fixed: string\n pricing_fixed_v3: string\n randomizer: string\n randomizer_v2: string\n token_moderation: string\n treasury: string\n user_moderation: string\n user_register: string\n onchfs_files: string\n}\n// The Tezos Smart Contracts addresses on testnet\nexport const tezosTestnetContracts: ITezosContracts = {\n allowed_mint: \"KT1QwfqMUDRYVyxo9KhunY5YCx9qQ9LWcswr\",\n allowed_mint_issuer: \"KT1WDByFKQmgVynxSr2rzdijs5aSs7mo7eBM\",\n allowed_mint_issuer_v3: \"KT1S3UqrLgMpVivNWWmBUnkPCaSFHDJ4HYvb\",\n allowed_mint_v3: \"KT1HUE2A6CHNw4NZZBWjJyG38nysWWfusagu\",\n articles: \"KT1HV8NXUCKWC1tWNHSD8LPPiKPshQuXvb8r\",\n card_proxy: \"KT1R6N27Qdw4RqeSUnYkw436uZrFSRWtxqbd\",\n collaboration_factory: \"KT1WFXts7jwxpD9uGDKzyqTUTFaG222xmjoZ\",\n consumable_database: \"KT1FP9y1PJpJkXhdJCgYZhVbj9UBpxnA57Bx\",\n cycles: \"KT1BJBcvtgZM2Kf4rUapmp4AhXtWCmznxd6F\",\n gentk_v1: \"KT1ExHjELnDuat9io3HkDcrBhHmek7h8EVXG\",\n gentk_v1_data: \"KT1SquPSN9oiMUWHG9coKRJAwz8Afe4c6izT\",\n gentk_v2: \"KT1NkZho1yRkDdQnN4Mz93sDYyY2pPrEHTNs\",\n gentk_v3: \"KT1TtVAyjh4Ahdm8sLZwFnL7tqoLf59XrK2h\",\n issuer_tickets: \"KT19PBsvmB2CwFqXftzb5gNJfxrEDFdSxGKZ\",\n issuer_v0: \"KT1PyfrDD85RxUWz8dMHoC92MxdPzecSQ5t9\",\n issuer_v1: \"KT1QwWVZogqPZZtGSVxGpLkEWar7LFvAsMdd\",\n issuer_v2: \"KT1Sy7X6TubmZ39G8CHVrUcxjc3jiF68P8oB\",\n issuer_v3: \"KT1DfymMp3qD5Pd5ujPjp7UsQbppY9yY1Hbf\",\n marketplace_v1: \"KT1DbivePcuUzCp5RaAQWxPSLV9G2Ys4faUR\",\n marketplace_v2: \"KT1HFYtf4vNCr4xRDZxLKc5asUdCsPUTTW9R\",\n marketplace_v3: \"KT1J6rt4d9U785DZWYEPvQ2fR1e71gxP42Lj\",\n moderation_articles: \"KT1Qg78fa81Xyjh65yNqUgVucubHUyq6VmgL\",\n moderation_team: \"KT1RsfyWzHs1EEWMzFLmKnJTQwPqRzsnF3Dp\",\n moderation_token: \"KT1PokFR36CcXKh3jUnjncabcuPWm5BMiqjt\",\n moderation_token_v3: \"KT1C1J38YR6eDvRBDEDaypptCFda9aH7FRbJ\",\n moderation_user: \"KT1Q3s7mYpscCnwsyndrVZg9WqBCmw99n37g\",\n pricing_dutch_auction: \"KT1BqikbUisiBBd9WvPiqnTwLY8Pm68p2Aua\",\n pricing_dutch_auction_v3: \"KT1QCboxZ28SqsfyZWTDrkSpZzU6xjZXBsFb\",\n pricing_fixed: \"KT1PAsf9Zc9FGJA9iLE1Ab2vPkMDsh4hyZVi\",\n pricing_fixed_v3: \"KT1Mqyy5JPknNzNJtgF93SHpFHv4VcYrNZry\",\n randomizer: \"KT1QmdsrJWJgK3VXid8q7D4sPipVoc9jh12x\",\n randomizer_v2: \"KT1Eow4nBY3B9EhWcX1aEXva67VkNFfP1Tq6\",\n token_moderation: \"KT1BHfPDMRp2q48ZkmmnK7TRzQRdFnp6XVKq\",\n treasury: \"KT1MbDbRhZPs5TzZEXkT142ePoccFHfohBoo\",\n user_moderation: \"KT1LmZjoitx2itnB1qCbHMrT3V64RbuSPf3a\",\n user_register: \"KT1XaikgmBDQANBvkFqyFhSpgAZJAXpiDFGE\",\n onchfs_files: \"KT1FA8AGGcJha6S6MqfBUiibwTaYhK8u7s9Q\",\n}\n// The Tezos Smart Contracts on mainnet\nexport const tezosMainnetContracts: ITezosContracts = {\n allowed_mint: \"KT1VDQwskdfHkSbA9W6CSEnxnh1u1XU8K8Gu\",\n allowed_mint_issuer: \"KT1Djz5ix2yEGmV7PMq3GYq17TvMMkd1anT2\",\n allowed_mint_issuer_v3: \"KT1LJ4R4xoEWMgTjrGrdHJAeHLYFaB4RsoVK\",\n allowed_mint_v3: \"KT1KgEjxqfRCMwtCGifT6fDPwC35RptTUEvE\",\n articles: \"KT1GtbuswcNMGhHF2TSuH1Yfaqn16do8Qtva\",\n card_proxy: \"KT1DQGSRsgHcf2TPdKGc4qm5AT9JprJCAo7j\",\n collaboration_factory: \"KT1JrUPSCt1r2MB2J7Lk2KwiWSYr3Mr414ck\",\n consumable_database: \"KT1Mbfkqh5EhebWuMvqAfUPTpgiBPwmQCDSD\",\n cycles: \"KT1BgD9SPfysnMz3vkfm6ZEaGFKCVcE5ay91\",\n gentk_v1: \"KT1KEa8z6vWXDJrVqtMrAeDVzsvxat3kHaCE\",\n gentk_v1_data: \"KT1WRpPyXHSCbTfDQFWVXbMpxxvf7Y7KChxc\",\n gentk_v2: \"KT1U6EHmNxJTkvaWJ4ThczG4FSDaHC21ssvi\",\n gentk_v3: \"KT1EfsNuqwLAWDd3o4pvfUx1CAh5GMdTrRvr\",\n issuer_tickets: \"KT19etLCjCCzTLFFAxsxLFsVYMRPetr2bTD5\",\n issuer_v0: \"KT1AEVuykWeuuFX7QkEAMNtffzwhe1Z98hJS\",\n issuer_v1: \"KT1XCoGnfupWk7Sp8536EfrxcP73LmT68Nyr\",\n issuer_v2: \"KT1BJC12dG17CVvPKJ1VYaNnaT5mzfnUTwXv\",\n issuer_v3: \"KT1Xpmp15KfqoePNW9HczFmqaGNHwadV2a3b\",\n marketplace_v1: \"KT1Xo5B7PNBAeynZPmca4bRh6LQow4og1Zb9\",\n marketplace_v2: \"KT1GbyoDi7H1sfXmimXpptZJuCdHMh66WS9u\",\n marketplace_v3: \"KT1M1NyU9X4usEimt2f3kDaijZnDMNBu42Ja\",\n moderation_articles: \"KT1A36z7nG4zPDbhjyrzhYf9SCn5ipPZeRMQ\",\n moderation_team: \"KT1FvGQcPxzuJkJsdWFQiGkueSNT5mqpFDrf\",\n moderation_token: \"KT18tPu7uXy9PJ97i3qCLsr7an4X6sQ5qxU7\",\n moderation_token_v3: \"KT1UBWXN1KxTh4eurrCTCH7aEjqdrM3HjP6R\",\n moderation_user: \"KT1Wn2kkKmdbyLWBiLXWCkE7fKj1LsLKar2A\",\n pricing_dutch_auction: \"KT1EzLrXRCXij42pKfbZPn48PuxrnVki1aYY\",\n pricing_dutch_auction_v3: \"KT1MFgHKorMWXeVL6qrpgjZmemirafppSg9q\",\n pricing_fixed: \"KT1FHzHxuMaNLYG8LdniY45M6RCfkF3AoXFh\",\n pricing_fixed_v3: \"KT1V24J6FVuKPU3xy6gVF6wJ3zdRXBheQhaV\",\n randomizer: \"KT1XYgKrzBbzsckGvXTPgxFyN7KNZ9RPYVWf\",\n randomizer_v2: \"KT1CfmepqJkfZwqLPFVMKFoYUS7dPPZHyCTo\",\n token_moderation: \"KT1HgVuzNWVvnX16fahbV2LrnpwifYKoFMRd\",\n treasury: \"KT1P2BXYb894MekrCcSrnidzQYPVqitLoVLc\",\n user_moderation: \"KT1TWWQ6FtLoosVfZgTKV2q68TMZaENhGm54\",\n user_register: \"KT1Ezht4PDKZri7aVppVGT4Jkw39sesaFnww\",\n onchfs_files: \"KT1Ae7dT1gsLw2tRnUMXSCmEyF74KVkM6LUo\",\n}\n","export interface IEthContracts {\n multicall3: `0x${string}`\n seaport_zone: `0x${string}`\n issuer_factory_v1: `0x${string}`\n fixed_price_minter_v1: `0x${string}`\n dutch_auction_minter_v1: `0x${string}`\n mint_ticket_factory_v1: `0x${string}`\n ticket_redeemer_v1: `0x${string}`\n ipfs_renderer_v1: `0x${string}`\n onchfs_renderer_v1: `0x${string}`\n randomizer_v1: `0x${string}`\n role_registry_v1: `0x${string}`\n contract_registry_v1: `0x${string}`\n gen_art_token_impl_v1: `0x${string}`\n mint_ticket_impl_v1: `0x${string}`\n onchfs_file_system: `0x${string}`\n onchfs_content_store: `0x${string}`\n seaport: `0x${string}`\n fxhashTeamSafeAddress: `0x${string}`\n signerSafe: `0x${string}`\n moderationSafe: `0x${string}`\n farcaster_frame_fixed_price_minter_v1: `0x${string}`\n fx_token: `0x${string}`\n}\n\nexport const ethTestnetContracts: IEthContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0x4e9ef916F55B5d4a27E6406C7Ce8bcd29c2693d6\",\n mint_ticket_factory_v1: \"0xbaed21d8C57caf71578b9aE1E09a68721d0Dd02d\",\n dutch_auction_minter_v1: \"0x2F8ea350E7F29BCaC2AEE5889d64df07EE3Fa98d\",\n fixed_price_minter_v1: \"0xa6c9c758e80ec18e1a28d485b97400B11dCFCD64\",\n ticket_redeemer_v1: \"0xdd29eA613e0553fc03f5762Bf643710a7987A216\",\n ipfs_renderer_v1: \"0x17b9c8a7C6F9D3768D4DA75EBB6abDe9FBe900cf\",\n onchfs_renderer_v1: \"0x25B087D2c87a0b34188a530dC9cCfDa30822AA8e\",\n randomizer_v1: \"0x5962e4dEeDe2DB4A83259255D30c19F4397FD5A6\",\n role_registry_v1: \"0x92B70c5C6E676BdC395DfD911c07392fc7C36E4F\",\n contract_registry_v1: \"0xb7CFDcDb2c6a1D05D7b85FB4ae7B7bccd028010F\",\n gen_art_token_impl_v1: \"0x1feeb359e96E6Dd6F19F1FC98e8FffDdf5AeaD58\",\n mint_ticket_impl_v1: \"0x0303e3a5be6e9Fa21E72cE446a402a6AEec13c60\",\n onchfs_file_system: \"0x4f555d39e89f6d768f75831d610b3940fa94c6b1\",\n onchfs_content_store: \"0x070e5A608705aC4954eec054f9074eEe49bDcbfF\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0x4F073947573FF44621cA25061Fb035c73a3014ab\",\n signerSafe: \"0x4F073947573FF44621cA25061Fb035c73a3014ab\",\n moderationSafe: \"0x4F073947573FF44621cA25061Fb035c73a3014ab\",\n farcaster_frame_fixed_price_minter_v1:\n \"0xB0905f81167bD90ABD5a583E029D27DA77568084\",\n fx_token: \"0xfa2e08ebfa6dae5ff68c3a0e2eb33a78f363f9fe\",\n}\n\n/**\n * TODO\n * -----------------------------------------------------------------------------\n * Put the actual addresses.\n */\nexport const ethMainnetContracts: IEthContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0x442295de8A31d65026dBc09c29d469F6854f188a\",\n mint_ticket_factory_v1: \"0xDB92ed0e6265d042F05E5C2f6D2F99496e87D706\",\n dutch_auction_minter_v1: \"0x1bC736a2b144096a4752534C557D7E6C311CcAF1\",\n fixed_price_minter_v1: \"0xB645cFfD9bFB93c2c181d5Be0D6a8C1d81C2aEf3\",\n ticket_redeemer_v1: \"0x3D72011b1bB52e33f9D81Fc5553FF4765e3f32c1\",\n ipfs_renderer_v1: \"0x48F00F8314920ca0cd763D74acFe8cFE4024a274\",\n onchfs_renderer_v1: \"0xe9fE6b2e494E40404AcB2b8B0a0Bc7b79FD03c83\",\n randomizer_v1: \"0xED32Ed47A75e298433cF822E10645C04a0B95075\",\n role_registry_v1: \"0x22b9Dd17BA1132C027d780bC0A784f08f244022B\",\n contract_registry_v1: \"0x4DAc308c686D747A804B7E95db606695a529A750\",\n gen_art_token_impl_v1: \"0x429AC1aA66220573Da6928bcce7384fe50e1284f\",\n mint_ticket_impl_v1: \"0xc2743B0B901eDAA8ccd1A09914449A797e1079F1\",\n onchfs_file_system: \"0x9e0f2864c6f125bbf599df6ca6e6c3774c5b2e04\",\n onchfs_content_store: \"0xC6806fd75745bB5F5B32ADa19963898155f9DB91\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0xD8b1905022d70e74c6c8aaA2baaf275fBe1634f1\",\n signerSafe: \"0xB456aF77dEB65065462BD1f0D9098413E6CA4200\",\n moderationSafe: \"0x99CDaECbe1be4B7232a4f2c79EF76D403886FE1E\",\n farcaster_frame_fixed_price_minter_v1:\n \"0x6e625892C739bFD960671Db5544E260757480725\",\n fx_token: \"0xTODO\",\n}\n","export interface IBaseApis {\n rpcs: string[]\n reservoir: string\n safe: string\n whitelist: string\n alchemy: {\n rpc: string\n }\n}\n\nexport const baseTestnetApis: IBaseApis = {\n rpcs: [\"https://sepolia.base.org\"],\n reservoir: \"https://api-base-sepolia.reservoir.tools\",\n safe: \"https://safe-transaction-base-sepolia.safe.global/\",\n whitelist: \"http://localhost:9999/whitelist/new\",\n alchemy: {\n rpc: \"https://base-sepolia.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n\nexport const baseMainnetApis: IBaseApis = {\n rpcs: [\"https://mainnet.base.org\"],\n reservoir: \"https://api-base.reservoir.tools\",\n safe: \"https://safe-transaction-base.safe.global/\",\n whitelist: \"https://api.v2.dev.fxhash-dev.xyz/whitelist/new\",\n alchemy: {\n rpc: \"https://base-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n","import {\n type IRichErrorMessages,\n RichError,\n type RichErrorUnion,\n isRichErrorMessages,\n} from \"@fxhash/errors\"\n\nexport class AppMetadataInvalidTypeError extends RichError {\n name = \"AppMetadataInvalidTypeError\" as const\n messages = {\n dev: \"App metadata should be an object.\",\n }\n}\n\nexport class AppMetadataMissingPropertiesError extends RichError {\n name = \"AppMetadataMissingPropertiesError\" as const\n\n constructor(messages: IRichErrorMessages)\n constructor(properties: string[])\n constructor(par1: IRichErrorMessages | string[]) {\n super(\n isRichErrorMessages(par1)\n ? par1\n : {\n dev: `App metadata is missing required properties ${par1.map(p => `\"${p}\"`).join(\", \")}`,\n }\n )\n }\n}\n\nexport const AppMetadataErrors: (\n | typeof AppMetadataInvalidTypeError\n | typeof AppMetadataMissingPropertiesError\n)[] = [AppMetadataInvalidTypeError, AppMetadataMissingPropertiesError]\nexport type AppMetadataError = RichErrorUnion<typeof AppMetadataErrors>\n","import { type Result, failure, success } from \"@fxhash/utils\"\nimport { fxApisByEnv } from \"../api/fxhash.js\"\nimport {\n type AppMetadataError,\n AppMetadataInvalidTypeError,\n AppMetadataMissingPropertiesError,\n} from \"../errors/metadata.js\"\nimport { IAppMetadata, TEnv } from \"../types.js\"\n\n// shared between all envs\nconst crossEnvMetadata: Omit<IAppMetadata, \"url\"> = {\n name: \"FXHASH\",\n description: \"fxhash is a blockchain open platform for Generative Art\",\n icon: \"https://gateway.fxhash2.xyz/ipfs/QmUQUtCenBEYQLoHvfFCRxyHYDqBE49UGxtcp626FZnFDG\",\n}\n\n/**\n * Get application metadata by merging some cross-env metadata with an\n * environment-specific URL (application front-end).\n */\nexport function fxAppEnvMetadata(env: TEnv): IAppMetadata {\n return {\n ...crossEnvMetadata,\n url: fxApisByEnv(env).website,\n }\n}\n\n/**\n * Test whether some value is a valid {@link IAppMetadata} interface. If not,\n * the issue causing it to be invalid is returned as a failure.\n * @param value Any value which should be tested for being valid App Metadata\n * @returns A Result with void success or failure with the issue\n */\nexport function isAppMetadataValid(value: any): Result<void, AppMetadataError> {\n if (!(typeof value === \"object\"))\n return failure(new AppMetadataInvalidTypeError())\n\n const missingProperties: string[] = []\n const requiredProperties: (keyof Required<IAppMetadata>)[] = [\n \"name\",\n \"description\",\n \"url\",\n ]\n for (const prop of requiredProperties) {\n if (!value[prop]) missingProperties.push(prop)\n }\n if (missingProperties.length > 0)\n return failure(new AppMetadataMissingPropertiesError(missingProperties))\n\n return success()\n}\n","export type AlgoliaConfig = {\n appId: string\n enabled: boolean\n indexGenerativeTokens: string\n indexOffers: string\n indexUsers: string\n indexArticles: string\n indexAccounts: string\n}\n\nconst algoliaConfig = {\n enabled: true,\n indexGenerativeTokens: \"generative-tokens\",\n indexOffers: \"listings\",\n indexUsers: \"users\",\n indexArticles: \"articles\",\n indexAccounts: \"accounts\",\n}\n\nexport const algoliaConfigDev: AlgoliaConfig = {\n appId: \"T4XRS2LFQK\",\n ...algoliaConfig,\n}\n\nexport const algoliaConfigProd: AlgoliaConfig = {\n appId: \"F7M6D8T095\",\n ...algoliaConfig,\n}\n","const GPU_VERSIONS = [\"v111\", \"v132\"] as const\ntype GPUVersion = (typeof GPU_VERSIONS)[number]\n\ninterface GPURenderingVersionConfig {\n date: string\n version: string\n batchArn: string\n}\n\nexport type GPURenderingConfig = Record<GPUVersion, GPURenderingVersionConfig>\ntype GPURenderingConfigShared = Record<\n GPUVersion,\n Omit<GPURenderingVersionConfig, \"batchArn\">\n>\n\n// Shared config\nconst gpuRenderingConfigShared: GPURenderingConfigShared = {\n v111: {\n date: \"2023-03-06\",\n version: \"111.0.5563.64\",\n },\n v132: {\n date: \"2025-01-14\",\n version: \"132.0.6834.110\",\n },\n}\n\n// Helper function to create environment configs\nconst createEnvConfig = (\n batchArns: Record<GPUVersion, string>\n): GPURenderingConfig => {\n return Object.fromEntries(\n GPU_VERSIONS.map(version => [\n version,\n {\n ...gpuRenderingConfigShared[version],\n batchArn: batchArns[version],\n },\n ])\n ) as GPURenderingConfig\n}\n\n// Environment configs\nexport const gpuRenderingConfigDev: GPURenderingConfig = createEnvConfig({\n v111: \"arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v111\",\n v132: \"arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v132\",\n})\n\nexport const gpuRenderingConfigProd: GPURenderingConfig = createEnvConfig({\n v111: \"arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v111\",\n v132: \"arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v132\",\n})\n","export interface IBaseContracts {\n multicall3: `0x${string}`\n seaport_zone: `0x${string}`\n issuer_factory_v1: `0x${string}`\n fixed_price_minter_v1: `0x${string}`\n dutch_auction_minter_v1: `0x${string}`\n mint_ticket_factory_v1: `0x${string}`\n ticket_redeemer_v1: `0x${string}`\n ipfs_renderer_v1: `0x${string}`\n onchfs_renderer_v1: `0x${string}`\n randomizer_v1: `0x${string}`\n role_registry_v1: `0x${string}`\n contract_registry_v1: `0x${string}`\n gen_art_token_impl_v1: `0x${string}`\n mint_ticket_impl_v1: `0x${string}`\n onchfs_file_system: `0x${string}`\n onchfs_content_store: `0x${string}`\n seaport: `0x${string}`\n fxhashTeamSafeAddress: `0x${string}`\n signerSafe: `0x${string}`\n moderationSafe: `0x${string}`\n farcaster_frame_fixed_price_minter_v1: `0x${string}`\n fx_token: `0x${string}`\n fx_airdrop: `0x${string}`\n fx_tez_airdrop: `0x${string}`\n fx_token_launchpad: `0x${string}`\n fx_project_factory: `0x${string}`\n}\n\nexport const baseTestnetContracts: IBaseContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0x60cFDE3aaf6E938535767794088cf15EaaC50019\",\n mint_ticket_factory_v1: \"0x8A7e5eE0CeA42DBE1d2aAC4501262B0edC5B518B\",\n dutch_auction_minter_v1: \"0xeb5Cee0eD6A47BE2A463A0C9e83dA5DE6149d375\",\n fixed_price_minter_v1: \"0x29159d2DFbF93E991d39Dc080a5f8dcc5C90ebb8\",\n ticket_redeemer_v1: \"0xFfbC4F51AB33E14380893213d7C969e0626c4C43\",\n ipfs_renderer_v1: \"0x7657C31078d8bfB8d1BC127fC04dAd23B3f451ed\",\n onchfs_renderer_v1: \"0xf23C64BA846557c24E6F5086376047b0CE70d1cC\",\n randomizer_v1: \"0xCA6323f03B5113471BA3b7B2F4Ba0AA2D45aE257\",\n role_registry_v1: \"0x179f5B8FE1c270D7fC1807355F3fd981A30e21A6\",\n contract_registry_v1: \"0xd44B3b2Ee596613c1aFcF85c9b0E41A0ec8B79E2\",\n gen_art_token_impl_v1: \"0x06976f5C039497d8a79Cc0dCE7A95B3E9748164A\",\n mint_ticket_impl_v1: \"0xa71b5935366BA29332033217a9E83698acadfd2f\",\n onchfs_file_system: \"0x3fb48e03291b2490f939c961a1ad088437129f71\",\n onchfs_content_store: \"0x48AC7370df2d5982852172A4D857c29608AFa774\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0x8a4f6e1ae6Bb77EFE7646f9649Bfd519fA638871\",\n signerSafe: \"0x8a4f6e1ae6Bb77EFE7646f9649Bfd519fA638871\",\n moderationSafe: \"0x8a4f6e1ae6Bb77EFE7646f9649Bfd519fA638871\",\n farcaster_frame_fixed_price_minter_v1:\n \"0xB0905f81167bD90ABD5a583E029D27DA77568084\",\n fx_token: \"0xd89fdcB6c8D107f27CEe4452Ccfb70Dc4F9768a7\",\n fx_airdrop: \"0x1e4e821216582f0771528b848b4a51c8474be2c7\",\n fx_tez_airdrop: \"0x3c2b4c38d37affb023a1d2327af428909eb8a134\",\n fx_token_launchpad: \"0x2f949f7cD46F4D79d4FD6b234DB302cAeEe552e2\",\n fx_project_factory: \"0xcA9486e54FbBD6aCe6eB6AA0102ee97dd90A8a86\",\n}\n\nexport const baseMainnetContracts: IBaseContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0xf05636d65c7a10dF989eC2411D4F3230d3A02f3D\",\n mint_ticket_factory_v1: \"0xe5832D3a3da179e818e9E3bFF7b96A928b29Eda2\",\n dutch_auction_minter_v1: \"0x9667a1Cf26223c9de22207DD93cfEEc9237b8f4E\",\n fixed_price_minter_v1: \"0x4bDcaC532143d8d35ed759189EE22E3704580b9D\",\n ticket_redeemer_v1: \"0x972502Bc75A780D76495Ffa84Cf8DA301F162Df6\",\n ipfs_renderer_v1: \"0x9c4cC8403bE33B89a46794Ae409ce634ca567956\",\n onchfs_renderer_v1: \"0x4180D747e984C9CFEEfaF23944AE0C20c0742341\",\n randomizer_v1: \"0x6754E97b8eaeC13Fa24480E9d1240176Dd0f2911\",\n role_registry_v1: \"0x8d3C748e99066e15425BA1620cdD066d85D6d918\",\n contract_registry_v1: \"0xCa6e30B1C7cBE7cF605cE30B334f968C5E2EA016\",\n gen_art_token_impl_v1: \"0xC5769428823C9a0393DC66855DD3817b2A85BEFD\",\n mint_ticket_impl_v1: \"0x3e9754Da0fb002Fa13D69B2f313d5CB441fC8ef5\",\n onchfs_file_system: \"0x2983008f292a43f208bba0275afd7e9b3d39af3b\",\n onchfs_content_store: \"0x070e5A608705aC4954eec054f9074eEe49bDcbfF\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0x38D3a2F9c63D4a580f100B051ba137fa6d8e2560\",\n signerSafe: \"0x38D3a2F9c63D4a580f100B051ba137fa6d8e2560\",\n moderationSafe: \"0x38D3a2F9c63D4a580f100B051ba137fa6d8e2560\",\n farcaster_frame_fixed_price_minter_v1:\n \"0x6e625892C739bFD960671Db5544E260757480725\",\n fx_token: \"0x5Fc2843838e65eb0B5d33654628F446d54602791\",\n fx_airdrop: \"0x45BB9DF166Fda4afD7e533DE42B11579a1F09d43\",\n fx_tez_airdrop: \"0x5021910a5762F9C872Bf7D6CD5F09127aE8cCA84\",\n fx_token_launchpad: \"0xTODO\",\n fx_project_factory: \"0xTODO\",\n}\n","import { IBaseApis } from \"./api/base.js\"\nimport { IEthApis } from \"./api/eth.js\"\nimport { ITezosApis } from \"./api/tezos.js\"\nimport { AlgoliaConfig } from \"./config/algolia.js\"\nimport { GPURenderingConfig } from \"./config/gpu.js\"\nimport { IBaseContracts } from \"./contracts/base.js\"\nimport { IEthContracts } from \"./contracts/eth.js\"\nimport { ITezosContracts } from \"./contracts/tezos.js\"\n\nexport interface IFxhashApis {\n website: string\n docs: string\n main: string\n hasura: string\n hasuraGql: string\n file: string\n fileInternal: string\n walletInternal: string\n fsEmulator: string\n extract: string\n extractInternal: string\n media: string\n ethMetadata: string\n ipfsInternal: string\n ipfsGateway: string\n ipfsGatewaySafe: string\n ipfsGatewayInternal: string\n onchfsProxy: string\n opensea: string\n authority: {\n api: string\n }\n capture: {\n lambdas: {\n small: string\n medium: string\n large: string\n }\n proxy: {\n ipfs: string\n onchfs: string\n }\n }\n events: {\n liveBackend: string\n }\n indexer: {\n tez: string\n eth: string\n base: string\n }\n}\n\n/**\n * A mapping of blockchains in their \"human-readable\" format with their proper\n * blockchain identifier.\n */\nexport const BlockchainIdentifiers = {\n TezosGhostnet: \"tezos:NetXnHfVqm9iesp\",\n TezosMainnet: \"tezos:NetXdQprcVkpaWU\",\n EthereumMainnet: \"eip155:1\",\n EthereumGoerli: \"eip155:5\",\n EthereumSepolia: \"eip155:11155111\",\n BaseSepolia: \"eip155:84532\",\n BaseMainnet: \"eip155:8453\",\n} as const\n\n/**\n * An union of all the blockchains supported by fxhash, defined by their chain\n * identifier. Can be used to facilitate typescript auto-completion with string\n * when enums aren't as good.\n */\nexport type BlockchainIdentifier =\n (typeof BlockchainIdentifiers)[keyof typeof BlockchainIdentifiers]\n\n// the variations supported by the config\nexport type TBlockchain = \"tez\" | \"eth\" | \"base\"\nexport type TBlockchainNetwork = \"testnet\" | \"mainnet\"\nexport type TEnv = \"dev\" | \"prd\" | \"local\" | \"localDocker\"\nexport type TEnvName = \"development\" | \"production\" | \"local\" | \"localDocker\"\n\nexport interface IFxhashNetworkConfig {\n network: string\n chainId: BlockchainIdentifier\n ethFeeReceiver: `0x${string}`\n wertRelayer: string\n fxhashFees: {\n primary: number\n secondary: number\n }\n royaltyBasisPoint: number\n splitBasisPoint: number\n}\n\n/**\n * Meta info about the application. Can be used by wallets to scope the\n * application making requests for instance.\n */\nexport interface IAppMetadata {\n /**\n * Application name. Will be displayed by wallets when a request is made\n * (signing a message, sending a transaction)\n */\n name: string\n\n /**\n * A short sentence (<25 words) describing the app. Might be used by wallets\n * to display extra info about your app.\n */\n description: string\n\n /**\n * **IMPORTANT**: This should match the URL in which the JS context making\n * requests to wallets will be executed. **If doesn't match execution\n * context domain, wallets may display a red warning.\n */\n url: string\n\n /**\n * URL to your application icon. Recommended: PNG 256x256\n * May be used by wallet apps in their UI when users interact with your app.\n */\n icon?: string\n}\n\nexport interface IFxhashEnvConfig {\n envName: TEnvName\n metadata: IAppMetadata\n gtMinPrice: string\n walletConnectId: string\n splitsApiKey: string\n projectLockTime: number\n referrerShare: number\n cloudflareTurnstileSiteKey: string\n cloudflareTurnstileSiteKeyV2: string\n syndicateProjectId: string\n awsS3Bucket: string\n awsS3Region: string\n openTelemetryTarget: string\n algolia: AlgoliaConfig\n gpu: GPURenderingConfig\n authJwtPublicKey: string\n}\n\ntype TBlockchainContacts = {\n [B in TBlockchain]: {\n tez: ITezosContracts\n eth: IEthContracts\n base: IBaseContracts\n }[B]\n}\n\ntype TBlockchainApis = {\n [B in TBlockchain]: {\n tez: ITezosApis\n eth: IEthApis\n base: IBaseApis\n }[B]\n}\n\ntype TNetworkBlockchainConfig = {\n [B in TBlockchain]: {\n tez: IFxhashNetworkConfig\n eth: IFxhashNetworkConfig\n base: IFxhashNetworkConfig\n }[B]\n}\n\nexport type IFxhashConfig = {\n networks: {\n [N in TBlockchainNetwork]: {\n [B in TBlockchain]: {\n contracts: TBlockchainContacts[B]\n config: TNetworkBlockchainConfig[B]\n apis: TBlockchainApis[B]\n }\n }\n }\n envs: {\n [K in TEnv]: {\n apis: IFxhashApis\n config: IFxhashEnvConfig\n }\n }\n}\n\nexport type IFxhashConfigSingleEnv = {\n [B in TBlockchain]: {\n contracts: TBlockchainContacts[B]\n config: TNetworkBlockchainConfig[B]\n apis: TBlockchainApis[B]\n }\n} & {\n apis: IFxhashApis\n config: IFxhashEnvConfig\n}\n","export const AUTH_JWT_PK_DEV = `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1hF8JwAxIiFWzbXIgeOK\nBzf6SZlT3S1YampzVgy4pw1G0aKwHnyvC+HrRfkEOCGxX24DqbEpZby2LjKF9bfa\nOLrERrNSNrDLXbf3ipKQrnEBu2UdT2pE5UF/SwJUTdGczb78EId0yIjuZ26qZcQg\nPr1ji6FgdOOdEwdphl4x1dlQzgMgjhRcPwf9NsBx3R6l/ut2o38Qa8azxM7XBg8F\nUlsKGy4/jY2OIEKCravCoXmpeX9pxploED/DoJJI9FZXVB7/91iIb6MI0Ycby+xo\nGL/cF+ZYSVRoFexji4vpycJfltW5YJ8jHSveZWa6LXqM6LY7zRFmlxb3SF4tsDTT\nPQIDAQAB\n-----END PUBLIC KEY-----`\n\nexport const AUTH_JWT_PK_PRD = `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtwl1CRvpN7MZeGGDTy8x\n+W3EkZfBzZqEp3vahCaqBdMkMhy7oB1pUU7pjb34tg9epnKdKo0cZn+Bw1LkSKWh\nZ1DSbgCdNR47qKb4xN8mZ5VvEw/64+nUXbCOikX+rMqSE2tNeNU3KOYr8VQYt9dv\n/J0xFwsr0aa4m23dmJ/oPLA8eR8lZk++fEZsbezKH3i9zz73I0UAivijM0S9lYeB\nNkT5zOaAJARzl69hEMQAv9qUkokwPSHlcG+LakhTGYAyMe3w/KHXVRkWjuCUgUJf\n90oveckX4dhMbHbz9ba1p3hpmwdmlRzljIIE2GQYawA8eNLsOb/z6V8HGMbCL/N9\nJwIDAQAB\n-----END PUBLIC KEY-----`\n","import { baseMainnetApis, baseTestnetApis } from \"./api/base.js\"\nimport { ethMainnetApis, ethTestnetApis } from \"./api/eth.js\"\nimport { tezosMainnetApis, tezosTestnetApis } from \"./api/tezos.js\"\nimport {\n fxhashDevApis,\n fxhashLocalApis,\n fxhashLocalDockerApis,\n fxhashPrdApis,\n} from \"./api/fxhash.js\"\nimport { fxAppEnvMetadata } from \"./config/metadata.js\"\nimport { algoliaConfigDev, algoliaConfigProd } from \"./config/algolia.js\"\nimport { gpuRenderingConfigDev, gpuRenderingConfigProd } from \"./config/gpu.js\"\nimport {\n tezosMainnetContracts,\n tezosTestnetContracts,\n} from \"./contracts/tezos.js\"\nimport { ethMainnetContracts, ethTestnetContracts } from \"./contracts/eth.js\"\nimport { baseMainnetContracts, baseTestnetContracts } from \"./contracts/base.js\"\nimport { getEnv } from \"./helpers.js\"\nimport {\n BlockchainIdentifiers,\n type IFxhashConfig,\n type IFxhashConfigSingleEnv,\n type TBlockchainNetwork,\n type TEnv,\n} from \"./types.js\"\nimport { AUTH_JWT_PK_DEV, AUTH_JWT_PK_PRD } from \"./constants.js\"\n\n/**\n * ! Beware ! Changing these values will result in current\n * projects breaking.\n * https://github.com/fxhash/monorepo/issues/701\n */\nconst tezosFees = {\n primary: 500,\n secondary: 250,\n}\n\nconst ethFees = {\n primary: 1000,\n secondary: 2500,\n}\n\nconst baseFees = {\n primary: 1000,\n secondary: 2500,\n}\n/**\n * --------------------------------------------------------\n */\n\nconst fxhashConfig: IFxhashConfig = {\n networks: {\n testnet: {\n tez: {\n contracts: tezosTestnetContracts,\n config: {\n network: \"ghostnet\",\n chainId: BlockchainIdentifiers.TezosGhostnet,\n ethFeeReceiver: \"0x\",\n wertRelayer: \"tz1T2uyYTshSGrEg13VGJFqsWwbi2H175hZb\",\n fxhashFees: tezosFees,\n royaltyBasisPoint: 1000,\n splitBasisPoint: 1000,\n },\n apis: tezosTestnetApis,\n },\n eth: {\n contracts: ethTestnetContracts,\n config: {\n network: \"Sepolia\",\n chainId: BlockchainIdentifiers.EthereumSepolia,\n ethFeeReceiver: \"0xe1f04609f7bC45e23a1BA4CD4a76f476755beBA6\",\n wertRelayer: \"0x2ff0ec69341f43cc462251bd49bb63681adafcb0\",\n fxhashFees: ethFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: ethTestnetApis,\n },\n base: {\n contracts: baseTestnetContracts,\n config: {\n network: \"Base Sepolia\",\n chainId: BlockchainIdentifiers.BaseSepolia,\n ethFeeReceiver: \"0xF70DF285Bc6941b4760BcC041B0cA1cc50E27F8d\",\n wertRelayer: \"0x2ff0ec69341f43cc462251bd49bb63681adafcb0\",\n fxhashFees: baseFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: baseTestnetApis,\n },\n },\n mainnet: {\n tez: {\n contracts: tezosMainnetContracts,\n config: {\n network: \"mainnet\",\n chainId: BlockchainIdentifiers.TezosMainnet,\n ethFeeReceiver: \"0x\",\n wertRelayer: \"tz1KkPS1TWFyDWfQwrdvmTmsCLUNMegDrrSi\",\n fxhashFees: tezosFees,\n royaltyBasisPoint: 1000,\n splitBasisPoint: 1000,\n },\n apis: tezosMainnetApis,\n },\n eth: {\n contracts: ethMainnetContracts,\n config: {\n network: \"Ethereum\",\n chainId: BlockchainIdentifiers.EthereumMainnet,\n ethFeeReceiver: \"0xed650E40F7bd3812152D4BFA6740662F50e178DF\",\n wertRelayer: \"0xc16157e00b1bff1522c6f01246b4fb621da048d0\",\n fxhashFees: ethFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: ethMainnetApis,\n },\n base: {\n contracts: baseMainnetContracts,\n config: {\n network: \"Base\",\n chainId: BlockchainIdentifiers.BaseMainnet,\n ethFeeReceiver: \"0xF70DF285Bc6941b4760BcC041B0cA1cc50E27F8d\",\n wertRelayer: \"0xc16157e00b1bff1522c6f01246b4fb621da048d0\",\n fxhashFees: baseFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: baseMainnetApis,\n },\n },\n },\n envs: {\n local: {\n apis: fxhashLocalApis,\n config: {\n envName: \"local\",\n metadata: fxAppEnvMetadata(\"local\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"1x00000000000000000000AA\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-w_xThcj91jkA\",\n syndicateProjectId: \"9dd71e90-4605-45f4-94e0-4e533b01081d\",\n awsS3Bucket: \"fxh-media-assets-dev-testnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"http://localhost:14268\",\n algolia: algoliaConfigDev,\n gpu: gpuRenderingConfigDev,\n authJwtPublicKey: AUTH_JWT_PK_DEV,\n },\n },\n localDocker: {\n apis: fxhashLocalDockerApis,\n config: {\n envName: \"localDocker\",\n metadata: fxAppEnvMetadata(\"localDocker\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"1x00000000000000000000AA\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-w_xThcj91jkA\",\n syndicateProjectId: \"9dd71e90-4605-45f4-94e0-4e533b01081d\",\n awsS3Bucket: \"fxh-media-assets-dev-testnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"http://localhost:14268\",\n algolia: algoliaConfigDev,\n gpu: gpuRenderingConfigDev,\n authJwtPublicKey: AUTH_JWT_PK_DEV,\n },\n },\n dev: {\n apis: fxhashDevApis,\n config: {\n envName: \"development\",\n metadata: fxAppEnvMetadata(\"dev\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"0x4AAAAAAAVOb6invoeYS4EN\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-w_xThcj91jkA\",\n syndicateProjectId: \"9dd71e90-4605-45f4-94e0-4e533b01081d\",\n awsS3Bucket: \"fxh-media-assets-dev-testnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"https://tempo.ss.fxhash2.xyz\",\n algolia: algoliaConfigDev,\n gpu: gpuRenderingConfigDev,\n authJwtPublicKey: AUTH_JWT_PK_DEV,\n },\n },\n prd: {\n apis: fxhashPrdApis,\n config: {\n envName: \"production\",\n metadata: fxAppEnvMetadata(\"prd\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"0x4AAAAAAAVObp1YeuhbqNKB\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-yE4Q6Wdz6SNb\",\n syndicateProjectId: \"398ad73d-341c-4861-a038-f0ae1ca58e07\",\n awsS3Bucket: \"fxh-media-assets-prd-mainnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"https://tempo.ss.fxhash2.xyz\",\n algolia: algoliaConfigProd,\n gpu: gpuRenderingConfigProd,\n authJwtPublicKey: AUTH_JWT_PK_PRD,\n },\n },\n },\n}\n\nexport function getBlockchainNetworkForEnv(env: TEnv): TBlockchainNetwork {\n return env === \"prd\" ? \"mainnet\" : \"testnet\"\n}\n\nexport function getConfigForEnv(env: TEnv): IFxhashConfigSingleEnv {\n const blockchainNetwork = getBlockchainNetworkForEnv(env)\n return {\n ...fxhashConfig.networks[blockchainNetwork],\n ...fxhashConfig.envs[env],\n }\n}\n\nexport const localConfig: IFxhashConfigSingleEnv = getConfigForEnv(\"local\")\nexport const localDockerConfig: IFxhashConfigSingleEnv =\n getConfigForEnv(\"localDocker\")\nexport const devConfig: IFxhashConfigSingleEnv = getConfigForEnv(\"dev\")\nexport const prdConfig: IFxhashConfigSingleEnv = getConfigForEnv(\"prd\")\n\nconst currentEnv = getEnv()\nlet config: IFxhashConfigSingleEnv = getConfigForEnv(currentEnv)\n\nfunction setConfig(\n userConfig: Partial<IFxhashConfigSingleEnv>\n): IFxhashConfigSingleEnv {\n config = {\n ...config,\n ...userConfig,\n }\n return config\n}\n\nexport { fxhashConfig, config, setConfig }\n","export const onchfsRegex: RegExp = new RegExp(\"^onchfs://\")\n\n/**\n * Returns the CID or a resource, whether it's already a CID or an onchfs://<CID> resource\n * @param resource either a CID or a onchfs://<CID> string\n */\nexport function onchfsCidFromUriOrCid(resource: string): string {\n if (!onchfsRegex.test(resource)) return resource\n return resource.slice(9)\n}\n","import { config } from \"../config.js\"\n\nexport enum EGatewayIpfs {\n FXHASH = \"FXHASH\",\n FXHASH_SAFE = \"FXHASH_SAFE\",\n IPFSIO = \"IPFSIO\",\n}\n\nexport const ipfsRegex: RegExp = new RegExp(\"^ipfs://\")\n\n/**\n * Given a gateway enum, outputs the http url root of the gateway\n */\nexport function ipfsGatewayRoot(gateway: EGatewayIpfs): string {\n switch (gateway) {\n case EGatewayIpfs.FXHASH:\n return config.apis.ipfsGateway\n case EGatewayIpfs.FXHASH_SAFE:\n return config.apis.ipfsGatewaySafe\n case EGatewayIpfs.IPFSIO:\n default:\n return \"https://ipfs.io\"\n }\n}\n\n/**\n * Returns the CID or a resource, whether it's already a CID or an ipfs://<CID> resource\n * @param resource either a CID or a ipfs://<CID> string\n */\nexport function ipfsCidFromUriOrCid(resource: string): string {\n if (!ipfsRegex.test(resource)) return resource\n return resource.slice(7)\n}\n\n/**\n * Given a CID or ipfs://<CID>, returns an URL to a gateway pointing to the resource\n * @param resource the resource input, either a CID or ipfs://<CID>\n * @param gateway the gateway URL to use for the resource\n */\nexport function ipfsGatewayUrl(\n resource: string | null | undefined,\n gateway: EGatewayIpfs = EGatewayIpfs.FXHASH_SAFE\n): string {\n if (!resource) return \"\"\n const cid = ipfsCidFromUriOrCid(resource)\n return `${ipfsGatewayRoot(gateway)}/ipfs/${cid}`\n}\n\n/**\n * given a URI (either ipfs://<CID>, onchfs://<CID> or temp://<CID>),\n * returns the URL to the resource\n */\nexport function proxyUrl(uri: string): string {\n // let blobs be blobs\n if (uri.startsWith(\"blob:\") || uri.startsWith(\"data:\")) return uri\n\n const [protocol, cid] = uri.split(\"://\")\n switch (protocol) {\n case \"https\":\n return uri\n case \"temp\":\n return `${config.apis.fsEmulator}/resolve/${cid}`\n case \"onchfs\":\n return `${config.apis.onchfsProxy}/${cid}`\n default:\n return ipfsGatewayUrl(uri)\n }\n}\n","import { onchfsCidFromUriOrCid, onchfsRegex } from \"./onchfs\"\nimport { ipfsCidFromUriOrCid, ipfsRegex } from \"./ipfs\"\n\n/**\n * Returns the CID or a resource, whether it's already a CID or an ipfs://<CID> or onchfs://<CID> resource\n * @param resource either a CID or an ipfs://<CID> or onchfs://<CID> string\n */\nexport function cidFromUriOrCid(resource: string): string {\n if (ipfsRegex.test(resource)) {\n return ipfsCidFromUriOrCid(resource)\n } else if (onchfsRegex.test(resource)) {\n return onchfsCidFromUriOrCid(resource)\n }\n return resource\n}\n","import { config } from \"../config.js\"\n\nexport const tezosContractPrefixesByContractAddress: Record<string, string> = {\n [config.tez.contracts.gentk_v1]: \"FX0\",\n [config.tez.contracts.gentk_v2]: \"FX0\",\n [config.tez.contracts.gentk_v3]: \"FX1\",\n}\nexport function getObjktIdFromContract(contract: string, id: string): string {\n return `${tezosContractPrefixesByContractAddress[contract]}-${id}`\n}\n","import { type IEthApis, ethTestnetApis } from \"./api/eth.js\"\nimport {\n type ITezosApis,\n tezosTestnetApis,\n tezosMainnetApis,\n} from \"./api/tezos.js\"\nimport { fxhashDevApis, fxhashPrdApis } from \"./api/fxhash.js\"\nimport {\n type ITezosContracts,\n tezosMainnetContracts,\n tezosTestnetContracts,\n} from \"./contracts/tezos.js\"\nimport { type IEthContracts, ethTestnetContracts } from \"./contracts/eth.js\"\nimport { type GPURenderingConfig } from \"./config/gpu.js\"\nimport {\n fxhashConfig,\n prdConfig,\n devConfig,\n localConfig,\n config,\n setConfig,\n} from \"./config.js\"\nimport {\n type IFxhashEnvConfig,\n type IFxhashNetworkConfig,\n type TBlockchain,\n type TBlockchainNetwork,\n type TEnv,\n type IFxhashConfig,\n} from \"./types.js\"\n\nexport {\n ethTestnetApis,\n tezosTestnetApis,\n tezosMainnetApis,\n fxhashDevApis,\n fxhashPrdApis,\n tezosTestnetContracts,\n tezosMainnetContracts,\n ethTestnetContracts,\n fxhashConfig,\n devConfig,\n prdConfig,\n localConfig,\n config,\n setConfig,\n type IEthApis,\n type ITezosApis,\n type ITezosContracts,\n type IEthContracts,\n type IFxhashEnvConfig,\n type IFxhashNetworkConfig,\n type TBlockchain,\n type TBlockchainNetwork,\n type TEnv,\n type IFxhashConfig,\n type GPURenderingConfig,\n}\n\nexport * from \"./types.js\"\nexport * from \"./helpers.js\"\nexport * from \"./utils/index.js\"\n\nexport { isAppMetadataValid } from \"./config/metadata.js\"\n\nexport default fxhashConfig\n"],"mappings":";;;;;;;;;;;AAUA,MAAaA,iBAA2B;CACtC,MAAM,CACJ,uEACD;CACD,WAAW;CACX,MAAM;CACN,WAAW;CACX,SAAS,EACP,KAAK,wEACN;AACF;AAED,MAAaC,iBAA2B;CACtC,MAAM,CACJ,uEACD;CACD,WAAW;CACX,MAAM;CACN,WAAW;CACX,SAAS,EACP,KAAK,wEACN;AACF;;;;ACzBD,MAAaC,mBAA+B;CAC1C,MAAM;CACN,SAAS;CACT,aAAa;CACb,MAAM;EACJ;EACA;EACA;CACD;AACF;AAED,MAAaC,mBAA+B;CAC1C,MAAM;CACN,SAAS;CACT,aAAa;CACb,MAAM;EACJ;EACA;EACA;EACA;CACD;AACF;;;;AC1BD,MAAM,aAAa;AACnB,MAAM,uBAAuB;AAE7B,SAAgB,qBAAqBC,KAAqB;AACxD,QAAO,IAAI,QAAQ,YAAY,qBAAqB;AACrD;AAED,MAAaC,SAAkB,CAAC,MAAM;AAGpC,QACE,QAAQ,IAAI,eAAe,SAC3B,QAAQ,IAAI,eAAe,gBAC3B,QAAQ,IAAI,2BAA2B,SACvC,QAAQ,IAAI,2BAA2B,gBACvC,QAAQ,IAAI,yBAAyB,SACrC,QAAQ,IAAI,yBAAyB,gBACrC,QAAQ,IAAI,oBAAoB,SAChC,QAAQ,IAAI,oBAAoB;AAEnC,IAAG;AAEJ,MAAaC,UAAmB,CAAC,MAAM;AAGrC,QACE,QAAQ,IAAI,eAAe,WAC3B,QAAQ,IAAI,2BAA2B,WACvC,QAAQ,IAAI,yBAAyB,WACrC,QAAQ,IAAI,oBAAoB;AAEnC,IAAG;AAEJ,MAAaC,gBAAyB,CAAC,MAAM;CAC3C,MAAM,mBAAmB,WAAW;AACpC,KAAI,UAAW,QAAO;CACtB,IAAI;AACJ,KAAI;AACF,OAAK,UAAQ,KAAK;CACnB,SAAQ,GAAG;AACV,SAAO;CACR;AACD,MAAK,GAAI,QAAO;AAChB,QAAO,WAAW,GAAG,WAAW,cAAc;AAC/C,IAAG;AAEJ,SAAgB,SAAe;AAC7B,KAAI,OAAQ,QAAO;AACnB,KAAI,QACF,QAAO,gBAAgB,gBAAgB;AAEzC,QAAO;AACR;;;;AClDD,MAAaC,gBAA6B;CACxC,SAAS;CACT,MAAM;CACN,MAAM;CACN,QAAQ;CACR,WAAW;CACX,MAAM;CACN,cACE;CACF,gBACE;CACF,YAAY;CACZ,SAAS;CACT,iBACE;CACF,OAAO;CACP,aAAa;CACb,cACE;CACF,aAAa;CACb,iBAAiB;CACjB,qBACE;CACF,aAAa;CACb,SAAS;CACT,WAAW,EACT,KAAK,OACN;CACD,SAAS;EACP,SAAS;GACP,OACE;GACF,QACE;GACF,OACE;EACH;EACD,OAAO;GACL,MAAM;GACN,QACE;EACH;CACF;CACD,QAAQ,EACN,aAAa,QACd;CACD,SAAS;EACP,KAAK;EACL,KAAK;EACL,MAAM;CACP;AACF;AAKD,MAAaC,kBAA+B;CAC1C,GAAG;CACH,SAAS;CACT,QAAQ;CACR,WAAW;CACX,cAAc,cAAc;CAC5B,qBAAqB,cAAc;CACnC,gBAAgB;AACjB;AAED,MAAaC,wBAAqC;CAChD,GAAG;CACH,QAAQ,qBAAqB,gBAAgB,OAAO;CACpD,WAAW,qBAAqB,gBAAgB,UAAU;AAC3D;AAGD,MAAaC,gBAA6B;CACxC,SAAS;CACT,MAAM;CACN,MAAM;CACN,QAAQ;CACR,WAAW;CACX,MAAM;CACN,cACE;CACF,gBACE;CACF,YAAY;CACZ,SAAS;CACT,iBACE;CACF,OAAO;CACP,aAAa;CACb,cACE;CACF,aAAa;CACb,iBAAiB;CACjB,qBACE;CACF,aAAa;CACb,SAAS;CACT,WAAW,EACT,KAAK,OACN;CACD,SAAS;EACP,SAAS;GACP,OACE;GACF,QACE;GACF,OACE;EACH;EACD,OAAO;GACL,MAAM;GACN,QACE;EACH;CACF;CACD,QAAQ,EACN,aAAa,QACd;CACD,SAAS;EACP,KAAK;EACL,KAAK;EACL,MAAM;CACP;AACF;AAED,MAAMC,iBAA4C;CAChD,OAAO;CACP,aAAa;CACb,KAAK;CACL,KAAK;AACN;;;;AAKD,SAAgB,YAAYC,KAAwB;AAClD,QAAO,eAAe;AACvB;;;;ACtGD,MAAaC,wBAAyC;CACpD,cAAc;CACd,qBAAqB;CACrB,wBAAwB;CACxB,iBAAiB;CACjB,UAAU;CACV,YAAY;CACZ,uBAAuB;CACvB,qBAA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"}
1
+ {"version":3,"file":"index.js","names":["ethTestnetApis: IEthApis","ethMainnetApis: IEthApis","url: string","isProd: boolean","isLocal: boolean","isDockerLocal: boolean","fxhashDevApis: IFxhashApis","fxhashLocalApis: IFxhashApis","fxhashLocalDockerApis: IFxhashApis","fxhashPrdApis: IFxhashApis","fxEnvToApisMap: Record<TEnv, IFxhashApis>","env: TEnv","tezosTestnetApis: ITezosApis","tezosMainnetApis: ITezosApis","baseTestnetApis: IBaseApis","baseMainnetApis: IBaseApis","algoliaConfigDev: AlgoliaConfig","algoliaConfigProd: AlgoliaConfig","gpuRenderingConfigShared: GPURenderingConfigShared","batchArns: Record<GPUVersion, string>","gpuRenderingConfigDev: GPURenderingConfig","gpuRenderingConfigProd: GPURenderingConfig","par1: IRichErrorMessages | string[]","crossEnvMetadata: Omit<IAppMetadata, \"url\">","env: TEnv","value: any","missingProperties: string[]","requiredProperties: (keyof Required<IAppMetadata>)[]","baseTestnetContracts: IBaseContracts","baseMainnetContracts: IBaseContracts","ethTestnetContracts: IEthContracts","ethMainnetContracts: IEthContracts","tezosTestnetContracts: ITezosContracts","tezosMainnetContracts: ITezosContracts","fxhashConfig: IFxhashConfig","env: TEnv","localConfig: IFxhashConfigSingleEnv","localDockerConfig: IFxhashConfigSingleEnv","devConfig: IFxhashConfigSingleEnv","prdConfig: IFxhashConfigSingleEnv","config: IFxhashConfigSingleEnv","userConfig: Partial<IFxhashConfigSingleEnv>","onchfsRegex: RegExp","resource: string","ipfsRegex: RegExp","gateway: EGatewayIpfs","resource: string","resource: string | null | undefined","uri: string","resource: string","tezosContractPrefixesByContractAddress: Record<string, string>","contract: string","id: string"],"sources":["../src/api/eth.ts","../src/helpers.ts","../src/api/fxhash.ts","../src/api/tezos.ts","../src/api/base.ts","../src/config/algolia.ts","../src/config/gpu.ts","../src/errors/metadata.ts","../src/config/metadata.ts","../src/constants.ts","../src/contracts/base.ts","../src/contracts/eth.ts","../src/contracts/tezos.ts","../src/types.ts","../src/config.ts","../src/utils/onchfs.ts","../src/utils/ipfs.ts","../src/utils/cid.ts","../src/utils/contracts.ts","../src/index.ts"],"sourcesContent":["export interface IEthApis {\n rpcs: string[]\n reservoir: string\n safe: string\n whitelist: string\n alchemy: {\n rpc: string\n }\n}\n\nexport const ethTestnetApis: IEthApis = {\n rpcs: [\n \"https://eth-sepolia.g.alchemy.com/v2/fATxHNjMh0rR9DnHCtZKDpPPxkEY48Qb\",\n ],\n reservoir: \"https://api-sepolia.reservoir.tools\",\n safe: \"https://safe-transaction-sepolia.safe.global\",\n whitelist: \"http://localhost:9999/whitelist/new\",\n alchemy: {\n rpc: \"https://eth-sepolia.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n\nexport const ethMainnetApis: IEthApis = {\n rpcs: [\n \"https://eth-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n ],\n reservoir: \"https://api.reservoir.tools\",\n safe: \"https://safe-transaction-mainnet.safe.global/\",\n whitelist: \"https://api.v2.dev.fxhash-dev.xyz/whitelist/new\",\n alchemy: {\n rpc: \"https://eth-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n","import { TEnv } from \"./types.js\"\n\nconst HOST_LOCAL = \"localhost\"\nconst HOST_DOCKER_INTERNAL = \"host.docker.internal\"\n\nexport function getDockerInternalUrl(url: string): string {\n return url.replace(HOST_LOCAL, HOST_DOCKER_INTERNAL)\n}\n\nexport const isProd: boolean = (() => {\n // We can't destructure process.envs\n // https://nextjs.org/docs/pages/api-reference/next-config-js/env\n return (\n process.env.FXHASH_ENV === \"prd\" ||\n process.env.FXHASH_ENV === \"production\" ||\n process.env.NEXT_PUBLIC_FXHASH_ENV === \"prd\" ||\n process.env.NEXT_PUBLIC_FXHASH_ENV === \"production\" ||\n process.env.REACT_APP_FXHASH_ENV === \"prd\" ||\n process.env.REACT_APP_FXHASH_ENV === \"production\" ||\n process.env.VITE_FXHASH_ENV === \"prd\" ||\n process.env.VITE_FXHASH_ENV === \"production\"\n )\n})()\n\nexport const isLocal: boolean = (() => {\n // We can't destructure process.envs\n // https://nextjs.org/docs/pages/api-reference/next-config-js/env\n return (\n process.env.FXHASH_ENV === \"local\" ||\n process.env.NEXT_PUBLIC_FXHASH_ENV === \"local\" ||\n process.env.REACT_APP_FXHASH_ENV === \"local\" ||\n process.env.VITE_FXHASH_ENV === \"local\"\n )\n})()\n\nexport const isDockerLocal: boolean = (() => {\n const isBrowser = typeof window !== \"undefined\"\n if (isBrowser) return false\n let fs\n try {\n fs = require(\"fs\")\n } catch (e) {\n return false\n }\n if (!fs) return false\n return isLocal && fs.existsSync(\"/.dockerenv\")\n})()\n\nexport function getEnv(): TEnv {\n if (isProd) return \"prd\"\n if (isLocal) {\n return isDockerLocal ? \"localDocker\" : \"local\"\n }\n return \"dev\"\n}\n","import { getDockerInternalUrl } from \"../helpers.js\"\nimport { IFxhashApis, TEnv } from \"../types.js\"\n\n// list of APIs dev leverages\nexport const fxhashDevApis: IFxhashApis = {\n website: \"https://beta.fxhash-dev.xyz\",\n docs: \"https://docs.fxhash.xyz\",\n main: \"https://api.v2-temp.dev.fxhash-dev.xyz/graphql\",\n hasura: \"https://api.v2.dev.fxhash-dev.xyz\",\n hasuraGql: \"https://api.v2.dev.fxhash-dev.xyz/v1/graphql\",\n file: \"https://file-api.fxhash-dev.xyz\",\n fileInternal:\n \"http://fxhash-multichain-dev-testnet-file-api.fxhash-multichain-dev-testnet.svc.cluster.local:4004\",\n baseIndexerInternal:\n \"http://fxhash-multichain-dev-testnet-base-indexer.fxhash-multichain-dev-testnet.svc.cluster.local:3000\",\n walletInternal:\n \"http://fxhash-multichain-dev-testnet-wallet-api.fxhash-multichain-dev-testnet.svc.cluster.local:3208\",\n fsEmulator: \"https://file-api.fxhash-dev.xyz/fs\",\n extract: \"https://extract.fxhash-dev.xyz\",\n extractInternal:\n \"http://fxhash-dev-testnet-extract-balancer.fxhash-dev-testnet.svc.cluster.local:4017\",\n media: \"https://media.dev.fxhash-dev.xyz\",\n ethMetadata: \"https://media.dev.fxhash-dev.xyz/metadata/ethereum/\",\n ipfsInternal:\n \"http://fxhash-dev-testnet-ipfs-cluster-api.fxhash-dev-testnet.svc.cluster.local:9094\",\n ipfsGateway: \"https://gateway.fxhash-dev.xyz\",\n ipfsGatewaySafe: \"https://gateway.fxhash-dev2.xyz\",\n ipfsGatewayInternal:\n \"http://fxhash-dev-testnet-ipfs-cluster-gateway.fxhash-dev-testnet.svc.cluster.local:8080\",\n onchfsProxy: \"https://onchfs.fxhash-dev2.xyz\",\n opensea: \"https://testnets-api.opensea.io/api/v2\",\n authority: {\n api: \"NONE\",\n },\n capture: {\n lambdas: {\n small:\n \"https://u5not5l323zczuwnrzxwkt34ra0eyidj.lambda-url.us-east-1.on.aws/\",\n medium:\n \"https://jgfz7a6km7fsqonej2sp3lqwvu0utnyy.lambda-url.us-east-1.on.aws/\",\n large:\n \"https://fzezvbp2f74yturkj4akjyrq3e0zswhb.lambda-url.us-east-1.on.aws/\",\n },\n proxy: {\n ipfs: \"ipfs://Qme6E5z1GDqrHyPomGEw5LChxmE9pdEYGWjwxrv6ZgwZRo\",\n onchfs:\n \"onchfs://4287364ed3219d3f2f77302a71eff0db49e971058ef87f163981ef89a445b143\",\n },\n },\n events: {\n liveBackend: \"_NONE\",\n },\n indexer: {\n tez: \"http://fxhash-multichain-dev-testnet-indexer-v2.fxhash-multichain-dev-testnet.svc.cluster.local:4001\",\n eth: \"http://fxhash-multichain-dev-testnet-eth-indexer.fxhash-multichain-dev-testnet.svc.cluster.local:3000\",\n base: \"http://fxhash-multichain-dev-testnet-base-indexer.fxhash-multichain-dev-testnet.svc.cluster.local:3000\",\n },\n}\n\n// list of APIs for when fxhash is ran locally\n// The ports must correspond to the ports the services are running on\n// defined in the root docker compose file of the monorepo\nexport const fxhashLocalApis: IFxhashApis = {\n ...fxhashDevApis,\n website: \"http://localhost:3200\",\n hasura: \"http://localhost:8888\",\n hasuraGql: \"http://localhost:8888/v1/graphql\",\n fileInternal: fxhashDevApis.file,\n ipfsGatewayInternal: fxhashDevApis.ipfsGateway,\n walletInternal: \"http://host.docker.internal:3208\",\n}\n\nexport const fxhashLocalDockerApis: IFxhashApis = {\n ...fxhashLocalApis,\n hasura: getDockerInternalUrl(fxhashLocalApis.hasura),\n hasuraGql: getDockerInternalUrl(fxhashLocalApis.hasuraGql),\n}\n\n// list of APIs prod leverages\nexport const fxhashPrdApis: IFxhashApis = {\n website: \"https://www.fxhash.xyz\",\n docs: \"https://docs.fxhash.xyz\",\n main: \"https://api.v2-temp.fxhash.xyz/graphql\",\n hasura: \"https://api.v2.fxhash.xyz\",\n hasuraGql: \"https://api.v2.fxhash.xyz/v1/graphql\",\n file: \"https://file-api.fxhash.xyz\",\n fileInternal:\n \"http://fxhash-multichain-prd-file-api.fxhash-multichain-prd.svc.cluster.local:4004\",\n baseIndexerInternal:\n \"http://fxhash-multichain-prd-base-indexer.fxhash-multichain-prd.svc.cluster.local:3000\",\n walletInternal:\n \"http://fxhash-multichain-prd-wallet-api.fxhash-multichain-prd.svc.cluster.local:3208\",\n fsEmulator: \"https://file-api.fxhash.xyz/fs\",\n extract: \"https://extract.fxhash.xyz\",\n extractInternal:\n \"http://fxhash-prd-extract-balancer.fxhash-prd.svc.cluster.local:4017\",\n media: \"https://media.fxhash.xyz\",\n ethMetadata: \"https://media.fxhash.xyz/metadata/ethereum/\",\n ipfsInternal:\n \"http://fxhash-prd-ipfs-cluster-api.fxhash-prd.svc.cluster.local:9094\",\n ipfsGateway: \"https://gateway.fxhash.xyz\",\n ipfsGatewaySafe: \"https://gateway.fxhash2.xyz\",\n ipfsGatewayInternal:\n \"http://fxhash-prd-ipfs-cluster-gateway.fxhash-prd.svc.cluster.local:8080\",\n onchfsProxy: \"https://onchfs.fxhash2.xyz\",\n opensea: \"https://api.opensea.io/api/v2\",\n authority: {\n api: \"NONE\",\n },\n capture: {\n lambdas: {\n small:\n \"https://7sz7knaaw3obgqxjyv3m4e5myu0lsbdp.lambda-url.us-east-1.on.aws/\",\n medium:\n \"https://tuupcq6eesbfk4veuzdfrhu7zm0zwuqy.lambda-url.us-east-1.on.aws/\",\n large:\n \"https://bojj24y6ucxmsyfi4uccdmiliy0dzhji.lambda-url.us-east-1.on.aws/\",\n },\n proxy: {\n ipfs: \"ipfs://Qme6E5z1GDqrHyPomGEw5LChxmE9pdEYGWjwxrv6ZgwZRo\",\n onchfs:\n \"onchfs://4287364ed3219d3f2f77302a71eff0db49e971058ef87f163981ef89a445b143\",\n },\n },\n events: {\n liveBackend: \"_NONE\",\n },\n indexer: {\n tez: \"http://fxhash-multichain-prd-indexer-v2.fxhash-multichain-prd.svc.cluster.local:4001\",\n eth: \"http://fxhash-multichain-prd-eth-indexer.fxhash-multichain-prd.svc.cluster.local:3000\",\n base: \"http://fxhash-multichain-prd-base-indexer.fxhash-multichain-prd.svc.cluster.local:3000\",\n },\n}\n\nconst fxEnvToApisMap: Record<TEnv, IFxhashApis> = {\n local: fxhashLocalApis,\n localDocker: fxhashLocalDockerApis,\n dev: fxhashDevApis,\n prd: fxhashPrdApis,\n}\n\n/**\n * Given some env, returns the associated APIs config.\n */\nexport function fxApisByEnv(env: TEnv): IFxhashApis {\n return fxEnvToApisMap[env]\n}\n","export interface ITezosApis {\n tzktWebsite: string\n tzkt: string\n tzktPro: string\n rpcs: string[]\n}\n\nexport const tezosTestnetApis: ITezosApis = {\n tzkt: \"https://api.ghostnet.tzkt.io/v1/\",\n tzktPro: \"https://api.ghostnet.tzkt.io/v1/\",\n tzktWebsite: \"https://ghostnet.tzkt.io/\",\n rpcs: [\n \"https://ghostnet.ecadinfra.com\",\n \"https://ghostnet.smartpy.io\",\n \"https://ghostnet.tezos.marigold.dev/\",\n ],\n}\n\nexport const tezosMainnetApis: ITezosApis = {\n tzkt: \"https://api.tzkt.io/v1/\",\n tzktPro: \"https://pro.tzkt.io/v1/\",\n tzktWebsite: \"https://tzkt.io/\",\n rpcs: [\n \"https://rpc1.fxhash.xyz\",\n \"https://mainnet.smartpy.io\",\n \"https://mainnet.api.tez.ie\",\n \"https://teznode.letzbake.com\",\n ],\n}\n","export interface IBaseApis {\n rpcs: string[]\n reservoir: string\n safe: string\n whitelist: string\n alchemy: {\n rpc: string\n }\n}\n\nexport const baseTestnetApis: IBaseApis = {\n rpcs: [\"https://sepolia.base.org\"],\n reservoir: \"https://api-base-sepolia.reservoir.tools\",\n safe: \"https://safe-transaction-base-sepolia.safe.global/\",\n whitelist: \"http://localhost:9999/whitelist/new\",\n alchemy: {\n rpc: \"https://base-sepolia.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n\nexport const baseMainnetApis: IBaseApis = {\n rpcs: [\"https://mainnet.base.org\"],\n reservoir: \"https://api-base.reservoir.tools\",\n safe: \"https://safe-transaction-base.safe.global/\",\n whitelist: \"https://api.v2.dev.fxhash-dev.xyz/whitelist/new\",\n alchemy: {\n rpc: \"https://base-mainnet.g.alchemy.com/v2/xTtlsglqRKcFwSkg2bilqp7U2smOt3g9\",\n },\n}\n","export type AlgoliaConfig = {\n appId: string\n enabled: boolean\n indexGenerativeTokens: string\n indexOffers: string\n indexUsers: string\n indexArticles: string\n indexAccounts: string\n}\n\nconst algoliaConfig = {\n enabled: true,\n indexGenerativeTokens: \"generative-tokens\",\n indexOffers: \"listings\",\n indexUsers: \"users\",\n indexArticles: \"articles\",\n indexAccounts: \"accounts\",\n}\n\nexport const algoliaConfigDev: AlgoliaConfig = {\n appId: \"T4XRS2LFQK\",\n ...algoliaConfig,\n}\n\nexport const algoliaConfigProd: AlgoliaConfig = {\n appId: \"F7M6D8T095\",\n ...algoliaConfig,\n}\n","const GPU_VERSIONS = [\"v111\", \"v132\"] as const\ntype GPUVersion = (typeof GPU_VERSIONS)[number]\n\ninterface GPURenderingVersionConfig {\n date: string\n version: string\n batchArn: string\n}\n\nexport type GPURenderingConfig = Record<GPUVersion, GPURenderingVersionConfig>\ntype GPURenderingConfigShared = Record<\n GPUVersion,\n Omit<GPURenderingVersionConfig, \"batchArn\">\n>\n\n// Shared config\nconst gpuRenderingConfigShared: GPURenderingConfigShared = {\n v111: {\n date: \"2023-03-06\",\n version: \"111.0.5563.64\",\n },\n v132: {\n date: \"2025-01-14\",\n version: \"132.0.6834.110\",\n },\n}\n\n// Helper function to create environment configs\nconst createEnvConfig = (\n batchArns: Record<GPUVersion, string>\n): GPURenderingConfig => {\n return Object.fromEntries(\n GPU_VERSIONS.map(version => [\n version,\n {\n ...gpuRenderingConfigShared[version],\n batchArn: batchArns[version],\n },\n ])\n ) as GPURenderingConfig\n}\n\n// Environment configs\nexport const gpuRenderingConfigDev: GPURenderingConfig = createEnvConfig({\n v111: \"arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v111\",\n v132: \"arn:aws:batch:us-east-1:409089350506:job-definition/fxhash-batch-dev-fxhash-extract-chrome-v132\",\n})\n\nexport const gpuRenderingConfigProd: GPURenderingConfig = createEnvConfig({\n v111: \"arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v111\",\n v132: \"arn:aws:batch:us-east-1:759392670381:job-definition/fxhash-batch-prd-fxhash-extract-chrome-v132\",\n})\n","import {\n type IRichErrorMessages,\n RichError,\n type RichErrorUnion,\n isRichErrorMessages,\n} from \"@fxhash/errors\"\n\nexport class AppMetadataInvalidTypeError extends RichError {\n name = \"AppMetadataInvalidTypeError\" as const\n messages = {\n dev: \"App metadata should be an object.\",\n }\n}\n\nexport class AppMetadataMissingPropertiesError extends RichError {\n name = \"AppMetadataMissingPropertiesError\" as const\n\n constructor(messages: IRichErrorMessages)\n constructor(properties: string[])\n constructor(par1: IRichErrorMessages | string[]) {\n super(\n isRichErrorMessages(par1)\n ? par1\n : {\n dev: `App metadata is missing required properties ${par1.map(p => `\"${p}\"`).join(\", \")}`,\n }\n )\n }\n}\n\nexport const AppMetadataErrors: (\n | typeof AppMetadataInvalidTypeError\n | typeof AppMetadataMissingPropertiesError\n)[] = [AppMetadataInvalidTypeError, AppMetadataMissingPropertiesError]\nexport type AppMetadataError = RichErrorUnion<typeof AppMetadataErrors>\n","import { type Result, failure, success } from \"@fxhash/utils\"\nimport { fxApisByEnv } from \"../api/fxhash.js\"\nimport {\n type AppMetadataError,\n AppMetadataInvalidTypeError,\n AppMetadataMissingPropertiesError,\n} from \"../errors/metadata.js\"\nimport { IAppMetadata, TEnv } from \"../types.js\"\n\n// shared between all envs\nconst crossEnvMetadata: Omit<IAppMetadata, \"url\"> = {\n name: \"FXHASH\",\n description: \"fxhash is a blockchain open platform for Generative Art\",\n icon: \"https://gateway.fxhash2.xyz/ipfs/QmUQUtCenBEYQLoHvfFCRxyHYDqBE49UGxtcp626FZnFDG\",\n}\n\n/**\n * Get application metadata by merging some cross-env metadata with an\n * environment-specific URL (application front-end).\n */\nexport function fxAppEnvMetadata(env: TEnv): IAppMetadata {\n return {\n ...crossEnvMetadata,\n url: fxApisByEnv(env).website,\n }\n}\n\n/**\n * Test whether some value is a valid {@link IAppMetadata} interface. If not,\n * the issue causing it to be invalid is returned as a failure.\n * @param value Any value which should be tested for being valid App Metadata\n * @returns A Result with void success or failure with the issue\n */\nexport function isAppMetadataValid(value: any): Result<void, AppMetadataError> {\n if (!(typeof value === \"object\"))\n return failure(new AppMetadataInvalidTypeError())\n\n const missingProperties: string[] = []\n const requiredProperties: (keyof Required<IAppMetadata>)[] = [\n \"name\",\n \"description\",\n \"url\",\n ]\n for (const prop of requiredProperties) {\n if (!value[prop]) missingProperties.push(prop)\n }\n if (missingProperties.length > 0)\n return failure(new AppMetadataMissingPropertiesError(missingProperties))\n\n return success()\n}\n","export const AUTH_JWT_PK_DEV = `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1hF8JwAxIiFWzbXIgeOK\nBzf6SZlT3S1YampzVgy4pw1G0aKwHnyvC+HrRfkEOCGxX24DqbEpZby2LjKF9bfa\nOLrERrNSNrDLXbf3ipKQrnEBu2UdT2pE5UF/SwJUTdGczb78EId0yIjuZ26qZcQg\nPr1ji6FgdOOdEwdphl4x1dlQzgMgjhRcPwf9NsBx3R6l/ut2o38Qa8azxM7XBg8F\nUlsKGy4/jY2OIEKCravCoXmpeX9pxploED/DoJJI9FZXVB7/91iIb6MI0Ycby+xo\nGL/cF+ZYSVRoFexji4vpycJfltW5YJ8jHSveZWa6LXqM6LY7zRFmlxb3SF4tsDTT\nPQIDAQAB\n-----END PUBLIC KEY-----`\n\nexport const AUTH_JWT_PK_PRD = `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtwl1CRvpN7MZeGGDTy8x\n+W3EkZfBzZqEp3vahCaqBdMkMhy7oB1pUU7pjb34tg9epnKdKo0cZn+Bw1LkSKWh\nZ1DSbgCdNR47qKb4xN8mZ5VvEw/64+nUXbCOikX+rMqSE2tNeNU3KOYr8VQYt9dv\n/J0xFwsr0aa4m23dmJ/oPLA8eR8lZk++fEZsbezKH3i9zz73I0UAivijM0S9lYeB\nNkT5zOaAJARzl69hEMQAv9qUkokwPSHlcG+LakhTGYAyMe3w/KHXVRkWjuCUgUJf\n90oveckX4dhMbHbz9ba1p3hpmwdmlRzljIIE2GQYawA8eNLsOb/z6V8HGMbCL/N9\nJwIDAQAB\n-----END PUBLIC KEY-----`\n","export interface IBaseContracts {\n multicall3: `0x${string}`\n seaport_zone: `0x${string}`\n issuer_factory_v1: `0x${string}`\n fixed_price_minter_v1: `0x${string}`\n dutch_auction_minter_v1: `0x${string}`\n mint_ticket_factory_v1: `0x${string}`\n ticket_redeemer_v1: `0x${string}`\n ipfs_renderer_v1: `0x${string}`\n onchfs_renderer_v1: `0x${string}`\n randomizer_v1: `0x${string}`\n role_registry_v1: `0x${string}`\n contract_registry_v1: `0x${string}`\n gen_art_token_impl_v1: `0x${string}`\n mint_ticket_impl_v1: `0x${string}`\n onchfs_file_system: `0x${string}`\n onchfs_content_store: `0x${string}`\n seaport: `0x${string}`\n fxhashTeamSafeAddress: `0x${string}`\n signerSafe: `0x${string}`\n moderationSafe: `0x${string}`\n farcaster_frame_fixed_price_minter_v1: `0x${string}`\n fx_token: `0x${string}`\n fx_airdrop: `0x${string}`\n fx_tez_airdrop: `0x${string}`\n fx_token_launchpad: `0x${string}`\n fx_project_factory: `0x${string}`\n}\n\nexport const baseTestnetContracts: IBaseContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0x60cFDE3aaf6E938535767794088cf15EaaC50019\",\n mint_ticket_factory_v1: \"0x8A7e5eE0CeA42DBE1d2aAC4501262B0edC5B518B\",\n dutch_auction_minter_v1: \"0xeb5Cee0eD6A47BE2A463A0C9e83dA5DE6149d375\",\n fixed_price_minter_v1: \"0x29159d2DFbF93E991d39Dc080a5f8dcc5C90ebb8\",\n ticket_redeemer_v1: \"0xFfbC4F51AB33E14380893213d7C969e0626c4C43\",\n ipfs_renderer_v1: \"0x7657C31078d8bfB8d1BC127fC04dAd23B3f451ed\",\n onchfs_renderer_v1: \"0xf23C64BA846557c24E6F5086376047b0CE70d1cC\",\n randomizer_v1: \"0xCA6323f03B5113471BA3b7B2F4Ba0AA2D45aE257\",\n role_registry_v1: \"0x179f5B8FE1c270D7fC1807355F3fd981A30e21A6\",\n contract_registry_v1: \"0xd44B3b2Ee596613c1aFcF85c9b0E41A0ec8B79E2\",\n gen_art_token_impl_v1: \"0x06976f5C039497d8a79Cc0dCE7A95B3E9748164A\",\n mint_ticket_impl_v1: \"0xa71b5935366BA29332033217a9E83698acadfd2f\",\n onchfs_file_system: \"0x3fb48e03291b2490f939c961a1ad088437129f71\",\n onchfs_content_store: \"0x48AC7370df2d5982852172A4D857c29608AFa774\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0x8a4f6e1ae6Bb77EFE7646f9649Bfd519fA638871\",\n signerSafe: \"0x8a4f6e1ae6Bb77EFE7646f9649Bfd519fA638871\",\n moderationSafe: \"0x8a4f6e1ae6Bb77EFE7646f9649Bfd519fA638871\",\n farcaster_frame_fixed_price_minter_v1:\n \"0xB0905f81167bD90ABD5a583E029D27DA77568084\",\n fx_token: \"0xd89fdcB6c8D107f27CEe4452Ccfb70Dc4F9768a7\",\n fx_airdrop: \"0x1e4e821216582f0771528b848b4a51c8474be2c7\",\n fx_tez_airdrop: \"0x3c2b4c38d37affb023a1d2327af428909eb8a134\",\n fx_token_launchpad: \"0x2f949f7cD46F4D79d4FD6b234DB302cAeEe552e2\",\n fx_project_factory: \"0xcA9486e54FbBD6aCe6eB6AA0102ee97dd90A8a86\",\n}\n\nexport const baseMainnetContracts: IBaseContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0xf05636d65c7a10dF989eC2411D4F3230d3A02f3D\",\n mint_ticket_factory_v1: \"0xe5832D3a3da179e818e9E3bFF7b96A928b29Eda2\",\n dutch_auction_minter_v1: \"0x9667a1Cf26223c9de22207DD93cfEEc9237b8f4E\",\n fixed_price_minter_v1: \"0x4bDcaC532143d8d35ed759189EE22E3704580b9D\",\n ticket_redeemer_v1: \"0x972502Bc75A780D76495Ffa84Cf8DA301F162Df6\",\n ipfs_renderer_v1: \"0x9c4cC8403bE33B89a46794Ae409ce634ca567956\",\n onchfs_renderer_v1: \"0x4180D747e984C9CFEEfaF23944AE0C20c0742341\",\n randomizer_v1: \"0x6754E97b8eaeC13Fa24480E9d1240176Dd0f2911\",\n role_registry_v1: \"0x8d3C748e99066e15425BA1620cdD066d85D6d918\",\n contract_registry_v1: \"0xCa6e30B1C7cBE7cF605cE30B334f968C5E2EA016\",\n gen_art_token_impl_v1: \"0xC5769428823C9a0393DC66855DD3817b2A85BEFD\",\n mint_ticket_impl_v1: \"0x3e9754Da0fb002Fa13D69B2f313d5CB441fC8ef5\",\n onchfs_file_system: \"0x2983008f292a43f208bba0275afd7e9b3d39af3b\",\n onchfs_content_store: \"0x070e5A608705aC4954eec054f9074eEe49bDcbfF\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0x38D3a2F9c63D4a580f100B051ba137fa6d8e2560\",\n signerSafe: \"0x38D3a2F9c63D4a580f100B051ba137fa6d8e2560\",\n moderationSafe: \"0x38D3a2F9c63D4a580f100B051ba137fa6d8e2560\",\n farcaster_frame_fixed_price_minter_v1:\n \"0x6e625892C739bFD960671Db5544E260757480725\",\n fx_token: \"0x5Fc2843838e65eb0B5d33654628F446d54602791\",\n fx_airdrop: \"0x45BB9DF166Fda4afD7e533DE42B11579a1F09d43\",\n fx_tez_airdrop: \"0x5021910a5762F9C872Bf7D6CD5F09127aE8cCA84\",\n fx_token_launchpad: \"0x6FE49c842dAEE3C709772e5727Fd863ad858f1F5\",\n fx_project_factory: \"0x0612ec1A199617A5b3DF627755A34F69469AEA25\",\n}\n","export interface IEthContracts {\n multicall3: `0x${string}`\n seaport_zone: `0x${string}`\n issuer_factory_v1: `0x${string}`\n fixed_price_minter_v1: `0x${string}`\n dutch_auction_minter_v1: `0x${string}`\n mint_ticket_factory_v1: `0x${string}`\n ticket_redeemer_v1: `0x${string}`\n ipfs_renderer_v1: `0x${string}`\n onchfs_renderer_v1: `0x${string}`\n randomizer_v1: `0x${string}`\n role_registry_v1: `0x${string}`\n contract_registry_v1: `0x${string}`\n gen_art_token_impl_v1: `0x${string}`\n mint_ticket_impl_v1: `0x${string}`\n onchfs_file_system: `0x${string}`\n onchfs_content_store: `0x${string}`\n seaport: `0x${string}`\n fxhashTeamSafeAddress: `0x${string}`\n signerSafe: `0x${string}`\n moderationSafe: `0x${string}`\n farcaster_frame_fixed_price_minter_v1: `0x${string}`\n fx_token: `0x${string}`\n}\n\nexport const ethTestnetContracts: IEthContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0x4e9ef916F55B5d4a27E6406C7Ce8bcd29c2693d6\",\n mint_ticket_factory_v1: \"0xbaed21d8C57caf71578b9aE1E09a68721d0Dd02d\",\n dutch_auction_minter_v1: \"0x2F8ea350E7F29BCaC2AEE5889d64df07EE3Fa98d\",\n fixed_price_minter_v1: \"0xa6c9c758e80ec18e1a28d485b97400B11dCFCD64\",\n ticket_redeemer_v1: \"0xdd29eA613e0553fc03f5762Bf643710a7987A216\",\n ipfs_renderer_v1: \"0x17b9c8a7C6F9D3768D4DA75EBB6abDe9FBe900cf\",\n onchfs_renderer_v1: \"0x25B087D2c87a0b34188a530dC9cCfDa30822AA8e\",\n randomizer_v1: \"0x5962e4dEeDe2DB4A83259255D30c19F4397FD5A6\",\n role_registry_v1: \"0x92B70c5C6E676BdC395DfD911c07392fc7C36E4F\",\n contract_registry_v1: \"0xb7CFDcDb2c6a1D05D7b85FB4ae7B7bccd028010F\",\n gen_art_token_impl_v1: \"0x1feeb359e96E6Dd6F19F1FC98e8FffDdf5AeaD58\",\n mint_ticket_impl_v1: \"0x0303e3a5be6e9Fa21E72cE446a402a6AEec13c60\",\n onchfs_file_system: \"0x4f555d39e89f6d768f75831d610b3940fa94c6b1\",\n onchfs_content_store: \"0x070e5A608705aC4954eec054f9074eEe49bDcbfF\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0x4F073947573FF44621cA25061Fb035c73a3014ab\",\n signerSafe: \"0x4F073947573FF44621cA25061Fb035c73a3014ab\",\n moderationSafe: \"0x4F073947573FF44621cA25061Fb035c73a3014ab\",\n farcaster_frame_fixed_price_minter_v1:\n \"0xB0905f81167bD90ABD5a583E029D27DA77568084\",\n fx_token: \"0xfa2e08ebfa6dae5ff68c3a0e2eb33a78f363f9fe\",\n}\n\n/**\n * TODO\n * -----------------------------------------------------------------------------\n * Put the actual addresses.\n */\nexport const ethMainnetContracts: IEthContracts = {\n multicall3: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n seaport_zone: \"0x0000000006B429721d1F4c4cD256BF3A38c09Ac6\",\n issuer_factory_v1: \"0x442295de8A31d65026dBc09c29d469F6854f188a\",\n mint_ticket_factory_v1: \"0xDB92ed0e6265d042F05E5C2f6D2F99496e87D706\",\n dutch_auction_minter_v1: \"0x1bC736a2b144096a4752534C557D7E6C311CcAF1\",\n fixed_price_minter_v1: \"0xB645cFfD9bFB93c2c181d5Be0D6a8C1d81C2aEf3\",\n ticket_redeemer_v1: \"0x3D72011b1bB52e33f9D81Fc5553FF4765e3f32c1\",\n ipfs_renderer_v1: \"0x48F00F8314920ca0cd763D74acFe8cFE4024a274\",\n onchfs_renderer_v1: \"0xe9fE6b2e494E40404AcB2b8B0a0Bc7b79FD03c83\",\n randomizer_v1: \"0xED32Ed47A75e298433cF822E10645C04a0B95075\",\n role_registry_v1: \"0x22b9Dd17BA1132C027d780bC0A784f08f244022B\",\n contract_registry_v1: \"0x4DAc308c686D747A804B7E95db606695a529A750\",\n gen_art_token_impl_v1: \"0x429AC1aA66220573Da6928bcce7384fe50e1284f\",\n mint_ticket_impl_v1: \"0xc2743B0B901eDAA8ccd1A09914449A797e1079F1\",\n onchfs_file_system: \"0x9e0f2864c6f125bbf599df6ca6e6c3774c5b2e04\",\n onchfs_content_store: \"0xC6806fd75745bB5F5B32ADa19963898155f9DB91\",\n seaport: \"0x00cA04c45da318d5b7E7B14D5381Ca59F09C73f0\",\n fxhashTeamSafeAddress: \"0xD8b1905022d70e74c6c8aaA2baaf275fBe1634f1\",\n signerSafe: \"0xB456aF77dEB65065462BD1f0D9098413E6CA4200\",\n moderationSafe: \"0x99CDaECbe1be4B7232a4f2c79EF76D403886FE1E\",\n farcaster_frame_fixed_price_minter_v1:\n \"0x6e625892C739bFD960671Db5544E260757480725\",\n fx_token: \"0xTODO\",\n}\n","export interface ITezosContracts {\n allowed_mint: string\n allowed_mint_issuer: string\n allowed_mint_issuer_v3: string\n allowed_mint_v3: string\n articles: string\n card_proxy: string\n collaboration_factory: string\n consumable_database: string\n cycles: string\n gentk_v1: string\n gentk_v1_data: string\n gentk_v2: string\n gentk_v3: string\n issuer_tickets: string\n issuer_v0: string\n issuer_v1: string\n issuer_v2: string\n issuer_v3: string\n marketplace_v1: string\n marketplace_v2: string\n marketplace_v3: string\n moderation_articles: string\n moderation_team: string\n moderation_token: string\n moderation_token_v3: string\n moderation_user: string\n pricing_dutch_auction: string\n pricing_dutch_auction_v3: string\n pricing_fixed: string\n pricing_fixed_v3: string\n randomizer: string\n randomizer_v2: string\n token_moderation: string\n treasury: string\n user_moderation: string\n user_register: string\n onchfs_files: string\n}\n// The Tezos Smart Contracts addresses on testnet\nexport const tezosTestnetContracts: ITezosContracts = {\n allowed_mint: \"KT1QwfqMUDRYVyxo9KhunY5YCx9qQ9LWcswr\",\n allowed_mint_issuer: \"KT1WDByFKQmgVynxSr2rzdijs5aSs7mo7eBM\",\n allowed_mint_issuer_v3: \"KT1S3UqrLgMpVivNWWmBUnkPCaSFHDJ4HYvb\",\n allowed_mint_v3: \"KT1HUE2A6CHNw4NZZBWjJyG38nysWWfusagu\",\n articles: \"KT1HV8NXUCKWC1tWNHSD8LPPiKPshQuXvb8r\",\n card_proxy: \"KT1R6N27Qdw4RqeSUnYkw436uZrFSRWtxqbd\",\n collaboration_factory: \"KT1WFXts7jwxpD9uGDKzyqTUTFaG222xmjoZ\",\n consumable_database: \"KT1FP9y1PJpJkXhdJCgYZhVbj9UBpxnA57Bx\",\n cycles: \"KT1BJBcvtgZM2Kf4rUapmp4AhXtWCmznxd6F\",\n gentk_v1: \"KT1ExHjELnDuat9io3HkDcrBhHmek7h8EVXG\",\n gentk_v1_data: \"KT1SquPSN9oiMUWHG9coKRJAwz8Afe4c6izT\",\n gentk_v2: \"KT1NkZho1yRkDdQnN4Mz93sDYyY2pPrEHTNs\",\n gentk_v3: \"KT1TtVAyjh4Ahdm8sLZwFnL7tqoLf59XrK2h\",\n issuer_tickets: \"KT19PBsvmB2CwFqXftzb5gNJfxrEDFdSxGKZ\",\n issuer_v0: \"KT1PyfrDD85RxUWz8dMHoC92MxdPzecSQ5t9\",\n issuer_v1: \"KT1QwWVZogqPZZtGSVxGpLkEWar7LFvAsMdd\",\n issuer_v2: \"KT1Sy7X6TubmZ39G8CHVrUcxjc3jiF68P8oB\",\n issuer_v3: \"KT1DfymMp3qD5Pd5ujPjp7UsQbppY9yY1Hbf\",\n marketplace_v1: \"KT1DbivePcuUzCp5RaAQWxPSLV9G2Ys4faUR\",\n marketplace_v2: \"KT1HFYtf4vNCr4xRDZxLKc5asUdCsPUTTW9R\",\n marketplace_v3: \"KT1J6rt4d9U785DZWYEPvQ2fR1e71gxP42Lj\",\n moderation_articles: \"KT1Qg78fa81Xyjh65yNqUgVucubHUyq6VmgL\",\n moderation_team: \"KT1RsfyWzHs1EEWMzFLmKnJTQwPqRzsnF3Dp\",\n moderation_token: \"KT1PokFR36CcXKh3jUnjncabcuPWm5BMiqjt\",\n moderation_token_v3: \"KT1C1J38YR6eDvRBDEDaypptCFda9aH7FRbJ\",\n moderation_user: \"KT1Q3s7mYpscCnwsyndrVZg9WqBCmw99n37g\",\n pricing_dutch_auction: \"KT1BqikbUisiBBd9WvPiqnTwLY8Pm68p2Aua\",\n pricing_dutch_auction_v3: \"KT1QCboxZ28SqsfyZWTDrkSpZzU6xjZXBsFb\",\n pricing_fixed: \"KT1PAsf9Zc9FGJA9iLE1Ab2vPkMDsh4hyZVi\",\n pricing_fixed_v3: \"KT1Mqyy5JPknNzNJtgF93SHpFHv4VcYrNZry\",\n randomizer: \"KT1QmdsrJWJgK3VXid8q7D4sPipVoc9jh12x\",\n randomizer_v2: \"KT1Eow4nBY3B9EhWcX1aEXva67VkNFfP1Tq6\",\n token_moderation: \"KT1BHfPDMRp2q48ZkmmnK7TRzQRdFnp6XVKq\",\n treasury: \"KT1MbDbRhZPs5TzZEXkT142ePoccFHfohBoo\",\n user_moderation: \"KT1LmZjoitx2itnB1qCbHMrT3V64RbuSPf3a\",\n user_register: \"KT1XaikgmBDQANBvkFqyFhSpgAZJAXpiDFGE\",\n onchfs_files: \"KT1FA8AGGcJha6S6MqfBUiibwTaYhK8u7s9Q\",\n}\n// The Tezos Smart Contracts on mainnet\nexport const tezosMainnetContracts: ITezosContracts = {\n allowed_mint: \"KT1VDQwskdfHkSbA9W6CSEnxnh1u1XU8K8Gu\",\n allowed_mint_issuer: \"KT1Djz5ix2yEGmV7PMq3GYq17TvMMkd1anT2\",\n allowed_mint_issuer_v3: \"KT1LJ4R4xoEWMgTjrGrdHJAeHLYFaB4RsoVK\",\n allowed_mint_v3: \"KT1KgEjxqfRCMwtCGifT6fDPwC35RptTUEvE\",\n articles: \"KT1GtbuswcNMGhHF2TSuH1Yfaqn16do8Qtva\",\n card_proxy: \"KT1DQGSRsgHcf2TPdKGc4qm5AT9JprJCAo7j\",\n collaboration_factory: \"KT1JrUPSCt1r2MB2J7Lk2KwiWSYr3Mr414ck\",\n consumable_database: \"KT1Mbfkqh5EhebWuMvqAfUPTpgiBPwmQCDSD\",\n cycles: \"KT1BgD9SPfysnMz3vkfm6ZEaGFKCVcE5ay91\",\n gentk_v1: \"KT1KEa8z6vWXDJrVqtMrAeDVzsvxat3kHaCE\",\n gentk_v1_data: \"KT1WRpPyXHSCbTfDQFWVXbMpxxvf7Y7KChxc\",\n gentk_v2: \"KT1U6EHmNxJTkvaWJ4ThczG4FSDaHC21ssvi\",\n gentk_v3: \"KT1EfsNuqwLAWDd3o4pvfUx1CAh5GMdTrRvr\",\n issuer_tickets: \"KT19etLCjCCzTLFFAxsxLFsVYMRPetr2bTD5\",\n issuer_v0: \"KT1AEVuykWeuuFX7QkEAMNtffzwhe1Z98hJS\",\n issuer_v1: \"KT1XCoGnfupWk7Sp8536EfrxcP73LmT68Nyr\",\n issuer_v2: \"KT1BJC12dG17CVvPKJ1VYaNnaT5mzfnUTwXv\",\n issuer_v3: \"KT1Xpmp15KfqoePNW9HczFmqaGNHwadV2a3b\",\n marketplace_v1: \"KT1Xo5B7PNBAeynZPmca4bRh6LQow4og1Zb9\",\n marketplace_v2: \"KT1GbyoDi7H1sfXmimXpptZJuCdHMh66WS9u\",\n marketplace_v3: \"KT1M1NyU9X4usEimt2f3kDaijZnDMNBu42Ja\",\n moderation_articles: \"KT1A36z7nG4zPDbhjyrzhYf9SCn5ipPZeRMQ\",\n moderation_team: \"KT1FvGQcPxzuJkJsdWFQiGkueSNT5mqpFDrf\",\n moderation_token: \"KT18tPu7uXy9PJ97i3qCLsr7an4X6sQ5qxU7\",\n moderation_token_v3: \"KT1UBWXN1KxTh4eurrCTCH7aEjqdrM3HjP6R\",\n moderation_user: \"KT1Wn2kkKmdbyLWBiLXWCkE7fKj1LsLKar2A\",\n pricing_dutch_auction: \"KT1EzLrXRCXij42pKfbZPn48PuxrnVki1aYY\",\n pricing_dutch_auction_v3: \"KT1MFgHKorMWXeVL6qrpgjZmemirafppSg9q\",\n pricing_fixed: \"KT1FHzHxuMaNLYG8LdniY45M6RCfkF3AoXFh\",\n pricing_fixed_v3: \"KT1V24J6FVuKPU3xy6gVF6wJ3zdRXBheQhaV\",\n randomizer: \"KT1XYgKrzBbzsckGvXTPgxFyN7KNZ9RPYVWf\",\n randomizer_v2: \"KT1CfmepqJkfZwqLPFVMKFoYUS7dPPZHyCTo\",\n token_moderation: \"KT1HgVuzNWVvnX16fahbV2LrnpwifYKoFMRd\",\n treasury: \"KT1P2BXYb894MekrCcSrnidzQYPVqitLoVLc\",\n user_moderation: \"KT1TWWQ6FtLoosVfZgTKV2q68TMZaENhGm54\",\n user_register: \"KT1Ezht4PDKZri7aVppVGT4Jkw39sesaFnww\",\n onchfs_files: \"KT1Ae7dT1gsLw2tRnUMXSCmEyF74KVkM6LUo\",\n}\n","import { IBaseApis } from \"./api/base.js\"\nimport { IEthApis } from \"./api/eth.js\"\nimport { ITezosApis } from \"./api/tezos.js\"\nimport { AlgoliaConfig } from \"./config/algolia.js\"\nimport { GPURenderingConfig } from \"./config/gpu.js\"\nimport { IBaseContracts } from \"./contracts/base.js\"\nimport { IEthContracts } from \"./contracts/eth.js\"\nimport { ITezosContracts } from \"./contracts/tezos.js\"\n\nexport interface IFxhashApis {\n website: string\n docs: string\n main: string\n hasura: string\n hasuraGql: string\n file: string\n fileInternal: string\n walletInternal: string\n baseIndexerInternal: string\n fsEmulator: string\n extract: string\n extractInternal: string\n media: string\n ethMetadata: string\n ipfsInternal: string\n ipfsGateway: string\n ipfsGatewaySafe: string\n ipfsGatewayInternal: string\n onchfsProxy: string\n opensea: string\n authority: {\n api: string\n }\n capture: {\n lambdas: {\n small: string\n medium: string\n large: string\n }\n proxy: {\n ipfs: string\n onchfs: string\n }\n }\n events: {\n liveBackend: string\n }\n indexer: {\n tez: string\n eth: string\n base: string\n }\n}\n\n/**\n * A mapping of blockchains in their \"human-readable\" format with their proper\n * blockchain identifier.\n */\nexport const BlockchainIdentifiers = {\n TezosGhostnet: \"tezos:NetXnHfVqm9iesp\",\n TezosMainnet: \"tezos:NetXdQprcVkpaWU\",\n EthereumMainnet: \"eip155:1\",\n EthereumGoerli: \"eip155:5\",\n EthereumSepolia: \"eip155:11155111\",\n BaseSepolia: \"eip155:84532\",\n BaseMainnet: \"eip155:8453\",\n} as const\n\n/**\n * An union of all the blockchains supported by fxhash, defined by their chain\n * identifier. Can be used to facilitate typescript auto-completion with string\n * when enums aren't as good.\n */\nexport type BlockchainIdentifier =\n (typeof BlockchainIdentifiers)[keyof typeof BlockchainIdentifiers]\n\n// the variations supported by the config\nexport type TBlockchain = \"tez\" | \"eth\" | \"base\"\nexport type TBlockchainNetwork = \"testnet\" | \"mainnet\"\nexport type TEnv = \"dev\" | \"prd\" | \"local\" | \"localDocker\"\nexport type TEnvName = \"development\" | \"production\" | \"local\" | \"localDocker\"\n\nexport interface IFxhashNetworkConfig {\n network: string\n chainId: BlockchainIdentifier\n ethFeeReceiver: `0x${string}`\n wertRelayer: string\n fxhashFees: {\n primary: number\n secondary: number\n }\n royaltyBasisPoint: number\n splitBasisPoint: number\n}\n\n/**\n * Meta info about the application. Can be used by wallets to scope the\n * application making requests for instance.\n */\nexport interface IAppMetadata {\n /**\n * Application name. Will be displayed by wallets when a request is made\n * (signing a message, sending a transaction)\n */\n name: string\n\n /**\n * A short sentence (<25 words) describing the app. Might be used by wallets\n * to display extra info about your app.\n */\n description: string\n\n /**\n * **IMPORTANT**: This should match the URL in which the JS context making\n * requests to wallets will be executed. **If doesn't match execution\n * context domain, wallets may display a red warning.\n */\n url: string\n\n /**\n * URL to your application icon. Recommended: PNG 256x256\n * May be used by wallet apps in their UI when users interact with your app.\n */\n icon?: string\n}\n\nexport interface IFxhashEnvConfig {\n envName: TEnvName\n metadata: IAppMetadata\n gtMinPrice: string\n walletConnectId: string\n splitsApiKey: string\n projectLockTime: number\n referrerShare: number\n cloudflareTurnstileSiteKey: string\n cloudflareTurnstileSiteKeyV2: string\n syndicateProjectId: string\n awsS3Bucket: string\n awsS3Region: string\n openTelemetryTarget: string\n algolia: AlgoliaConfig\n gpu: GPURenderingConfig\n authJwtPublicKey: string\n}\n\ntype TBlockchainContacts = {\n [B in TBlockchain]: {\n tez: ITezosContracts\n eth: IEthContracts\n base: IBaseContracts\n }[B]\n}\n\ntype TBlockchainApis = {\n [B in TBlockchain]: {\n tez: ITezosApis\n eth: IEthApis\n base: IBaseApis\n }[B]\n}\n\ntype TNetworkBlockchainConfig = {\n [B in TBlockchain]: {\n tez: IFxhashNetworkConfig\n eth: IFxhashNetworkConfig\n base: IFxhashNetworkConfig\n }[B]\n}\n\nexport type IFxhashConfig = {\n networks: {\n [N in TBlockchainNetwork]: {\n [B in TBlockchain]: {\n contracts: TBlockchainContacts[B]\n config: TNetworkBlockchainConfig[B]\n apis: TBlockchainApis[B]\n }\n }\n }\n envs: {\n [K in TEnv]: {\n apis: IFxhashApis\n config: IFxhashEnvConfig\n }\n }\n}\n\nexport type IFxhashConfigSingleEnv = {\n [B in TBlockchain]: {\n contracts: TBlockchainContacts[B]\n config: TNetworkBlockchainConfig[B]\n apis: TBlockchainApis[B]\n }\n} & {\n apis: IFxhashApis\n config: IFxhashEnvConfig\n}\n","import { baseMainnetApis, baseTestnetApis } from \"./api/base.js\"\nimport { ethMainnetApis, ethTestnetApis } from \"./api/eth.js\"\nimport {\n fxhashDevApis,\n fxhashLocalApis,\n fxhashLocalDockerApis,\n fxhashPrdApis,\n} from \"./api/fxhash.js\"\nimport { tezosMainnetApis, tezosTestnetApis } from \"./api/tezos.js\"\nimport { algoliaConfigDev, algoliaConfigProd } from \"./config/algolia.js\"\nimport { gpuRenderingConfigDev, gpuRenderingConfigProd } from \"./config/gpu.js\"\nimport { fxAppEnvMetadata } from \"./config/metadata.js\"\nimport { AUTH_JWT_PK_DEV, AUTH_JWT_PK_PRD } from \"./constants.js\"\nimport { baseMainnetContracts, baseTestnetContracts } from \"./contracts/base.js\"\nimport { ethMainnetContracts, ethTestnetContracts } from \"./contracts/eth.js\"\nimport {\n tezosMainnetContracts,\n tezosTestnetContracts,\n} from \"./contracts/tezos.js\"\nimport { getEnv } from \"./helpers.js\"\nimport {\n BlockchainIdentifiers,\n type IFxhashConfig,\n type IFxhashConfigSingleEnv,\n type TBlockchainNetwork,\n type TEnv,\n} from \"./types.js\"\n\n/**\n * ! Beware ! Changing these values will result in current\n * projects breaking.\n * https://github.com/fxhash/monorepo/issues/701\n */\nconst tezosFees = {\n primary: 500,\n secondary: 250,\n}\n\nconst ethFees = {\n primary: 1000,\n secondary: 2500,\n}\n\nconst baseFees = {\n primary: 1000,\n secondary: 2500,\n}\n/**\n * --------------------------------------------------------\n */\n\nconst fxhashConfig: IFxhashConfig = {\n networks: {\n testnet: {\n tez: {\n contracts: tezosTestnetContracts,\n config: {\n network: \"ghostnet\",\n chainId: BlockchainIdentifiers.TezosGhostnet,\n ethFeeReceiver: \"0x\",\n wertRelayer: \"tz1T2uyYTshSGrEg13VGJFqsWwbi2H175hZb\",\n fxhashFees: tezosFees,\n royaltyBasisPoint: 1000,\n splitBasisPoint: 1000,\n },\n apis: tezosTestnetApis,\n },\n eth: {\n contracts: ethTestnetContracts,\n config: {\n network: \"Sepolia\",\n chainId: BlockchainIdentifiers.EthereumSepolia,\n ethFeeReceiver: \"0xe1f04609f7bC45e23a1BA4CD4a76f476755beBA6\",\n wertRelayer: \"0x2ff0ec69341f43cc462251bd49bb63681adafcb0\",\n fxhashFees: ethFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: ethTestnetApis,\n },\n base: {\n contracts: baseTestnetContracts,\n config: {\n network: \"Base Sepolia\",\n chainId: BlockchainIdentifiers.BaseSepolia,\n ethFeeReceiver: \"0xF70DF285Bc6941b4760BcC041B0cA1cc50E27F8d\",\n wertRelayer: \"0x2ff0ec69341f43cc462251bd49bb63681adafcb0\",\n fxhashFees: baseFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: baseTestnetApis,\n },\n },\n mainnet: {\n tez: {\n contracts: tezosMainnetContracts,\n config: {\n network: \"mainnet\",\n chainId: BlockchainIdentifiers.TezosMainnet,\n ethFeeReceiver: \"0x\",\n wertRelayer: \"tz1KkPS1TWFyDWfQwrdvmTmsCLUNMegDrrSi\",\n fxhashFees: tezosFees,\n royaltyBasisPoint: 1000,\n splitBasisPoint: 1000,\n },\n apis: tezosMainnetApis,\n },\n eth: {\n contracts: ethMainnetContracts,\n config: {\n network: \"Ethereum\",\n chainId: BlockchainIdentifiers.EthereumMainnet,\n ethFeeReceiver: \"0xed650E40F7bd3812152D4BFA6740662F50e178DF\",\n wertRelayer: \"0xc16157e00b1bff1522c6f01246b4fb621da048d0\",\n fxhashFees: ethFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: ethMainnetApis,\n },\n base: {\n contracts: baseMainnetContracts,\n config: {\n network: \"Base\",\n chainId: BlockchainIdentifiers.BaseMainnet,\n ethFeeReceiver: \"0xF70DF285Bc6941b4760BcC041B0cA1cc50E27F8d\",\n wertRelayer: \"0xc16157e00b1bff1522c6f01246b4fb621da048d0\",\n fxhashFees: baseFees,\n royaltyBasisPoint: 10_000,\n splitBasisPoint: 1_000_000,\n },\n apis: baseMainnetApis,\n },\n },\n },\n envs: {\n local: {\n apis: fxhashLocalApis,\n config: {\n envName: \"local\",\n metadata: fxAppEnvMetadata(\"local\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"1x00000000000000000000AA\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-w_xThcj91jkA\",\n syndicateProjectId: \"9dd71e90-4605-45f4-94e0-4e533b01081d\",\n awsS3Bucket: \"fxh-media-assets-dev-testnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"http://localhost:14268\",\n algolia: algoliaConfigDev,\n gpu: gpuRenderingConfigDev,\n authJwtPublicKey: AUTH_JWT_PK_DEV,\n },\n },\n localDocker: {\n apis: fxhashLocalDockerApis,\n config: {\n envName: \"localDocker\",\n metadata: fxAppEnvMetadata(\"localDocker\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"1x00000000000000000000AA\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-w_xThcj91jkA\",\n syndicateProjectId: \"9dd71e90-4605-45f4-94e0-4e533b01081d\",\n awsS3Bucket: \"fxh-media-assets-dev-testnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"http://localhost:14268\",\n algolia: algoliaConfigDev,\n gpu: gpuRenderingConfigDev,\n authJwtPublicKey: AUTH_JWT_PK_DEV,\n },\n },\n dev: {\n apis: fxhashDevApis,\n config: {\n envName: \"development\",\n metadata: fxAppEnvMetadata(\"dev\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"0x4AAAAAAAVOb6invoeYS4EN\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-w_xThcj91jkA\",\n syndicateProjectId: \"9dd71e90-4605-45f4-94e0-4e533b01081d\",\n awsS3Bucket: \"fxh-media-assets-dev-testnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"https://tempo.ss.fxhash2.xyz\",\n algolia: algoliaConfigDev,\n gpu: gpuRenderingConfigDev,\n authJwtPublicKey: AUTH_JWT_PK_DEV,\n },\n },\n prd: {\n apis: fxhashPrdApis,\n config: {\n envName: \"production\",\n metadata: fxAppEnvMetadata(\"prd\"),\n gtMinPrice: \"0\",\n walletConnectId: \"111994543d1b754bab82c368d0e61ae5\",\n projectLockTime: 3600,\n referrerShare: 0,\n splitsApiKey: \"75348d57d6cf60fa4551766c\",\n cloudflareTurnstileSiteKey: \"0x4AAAAAAAVObp1YeuhbqNKB\",\n cloudflareTurnstileSiteKeyV2: \"0x4AAAAAAAW-yE4Q6Wdz6SNb\",\n syndicateProjectId: \"398ad73d-341c-4861-a038-f0ae1ca58e07\",\n awsS3Bucket: \"fxh-media-assets-prd-mainnet-us-east-1\",\n awsS3Region: \"us-east-1\",\n openTelemetryTarget: \"https://tempo.ss.fxhash2.xyz\",\n algolia: algoliaConfigProd,\n gpu: gpuRenderingConfigProd,\n authJwtPublicKey: AUTH_JWT_PK_PRD,\n },\n },\n },\n}\n\nexport function getBlockchainNetworkForEnv(env: TEnv): TBlockchainNetwork {\n return env === \"prd\" ? \"mainnet\" : \"testnet\"\n}\n\nexport function getConfigForEnv(env: TEnv): IFxhashConfigSingleEnv {\n const blockchainNetwork = getBlockchainNetworkForEnv(env)\n return {\n ...fxhashConfig.networks[blockchainNetwork],\n ...fxhashConfig.envs[env],\n }\n}\n\nexport const localConfig: IFxhashConfigSingleEnv = getConfigForEnv(\"local\")\nexport const localDockerConfig: IFxhashConfigSingleEnv =\n getConfigForEnv(\"localDocker\")\nexport const devConfig: IFxhashConfigSingleEnv = getConfigForEnv(\"dev\")\nexport const prdConfig: IFxhashConfigSingleEnv = getConfigForEnv(\"prd\")\n\nconst currentEnv = getEnv()\nlet config: IFxhashConfigSingleEnv = getConfigForEnv(currentEnv)\n\nfunction setConfig(\n userConfig: Partial<IFxhashConfigSingleEnv>\n): IFxhashConfigSingleEnv {\n config = {\n ...config,\n ...userConfig,\n }\n return config\n}\n\nexport { config, fxhashConfig, setConfig }\n","export const onchfsRegex: RegExp = new RegExp(\"^onchfs://\")\n\n/**\n * Returns the CID or a resource, whether it's already a CID or an onchfs://<CID> resource\n * @param resource either a CID or a onchfs://<CID> string\n */\nexport function onchfsCidFromUriOrCid(resource: string): string {\n if (!onchfsRegex.test(resource)) return resource\n return resource.slice(9)\n}\n","import { config } from \"../config.js\"\n\nexport enum EGatewayIpfs {\n FXHASH = \"FXHASH\",\n FXHASH_SAFE = \"FXHASH_SAFE\",\n IPFSIO = \"IPFSIO\",\n}\n\nexport const ipfsRegex: RegExp = new RegExp(\"^ipfs://\")\n\n/**\n * Given a gateway enum, outputs the http url root of the gateway\n */\nexport function ipfsGatewayRoot(gateway: EGatewayIpfs): string {\n switch (gateway) {\n case EGatewayIpfs.FXHASH:\n return config.apis.ipfsGateway\n case EGatewayIpfs.FXHASH_SAFE:\n return config.apis.ipfsGatewaySafe\n case EGatewayIpfs.IPFSIO:\n default:\n return \"https://ipfs.io\"\n }\n}\n\n/**\n * Returns the CID or a resource, whether it's already a CID or an ipfs://<CID> resource\n * @param resource either a CID or a ipfs://<CID> string\n */\nexport function ipfsCidFromUriOrCid(resource: string): string {\n if (!ipfsRegex.test(resource)) return resource\n return resource.slice(7)\n}\n\n/**\n * Given a CID or ipfs://<CID>, returns an URL to a gateway pointing to the resource\n * @param resource the resource input, either a CID or ipfs://<CID>\n * @param gateway the gateway URL to use for the resource\n */\nexport function ipfsGatewayUrl(\n resource: string | null | undefined,\n gateway: EGatewayIpfs = EGatewayIpfs.FXHASH_SAFE\n): string {\n if (!resource) return \"\"\n const cid = ipfsCidFromUriOrCid(resource)\n return `${ipfsGatewayRoot(gateway)}/ipfs/${cid}`\n}\n\n/**\n * given a URI (either ipfs://<CID>, onchfs://<CID> or temp://<CID>),\n * returns the URL to the resource\n */\nexport function proxyUrl(uri: string): string {\n // let blobs be blobs\n if (uri.startsWith(\"blob:\") || uri.startsWith(\"data:\")) return uri\n\n const [protocol, cid] = uri.split(\"://\")\n switch (protocol) {\n case \"https\":\n return uri\n case \"temp\":\n return `${config.apis.fsEmulator}/resolve/${cid}`\n case \"onchfs\":\n return `${config.apis.onchfsProxy}/${cid}`\n default:\n return ipfsGatewayUrl(uri)\n }\n}\n","import { onchfsCidFromUriOrCid, onchfsRegex } from \"./onchfs\"\nimport { ipfsCidFromUriOrCid, ipfsRegex } from \"./ipfs\"\n\n/**\n * Returns the CID or a resource, whether it's already a CID or an ipfs://<CID> or onchfs://<CID> resource\n * @param resource either a CID or an ipfs://<CID> or onchfs://<CID> string\n */\nexport function cidFromUriOrCid(resource: string): string {\n if (ipfsRegex.test(resource)) {\n return ipfsCidFromUriOrCid(resource)\n } else if (onchfsRegex.test(resource)) {\n return onchfsCidFromUriOrCid(resource)\n }\n return resource\n}\n","import { config } from \"../config.js\"\n\nexport const tezosContractPrefixesByContractAddress: Record<string, string> = {\n [config.tez.contracts.gentk_v1]: \"FX0\",\n [config.tez.contracts.gentk_v2]: \"FX0\",\n [config.tez.contracts.gentk_v3]: \"FX1\",\n}\nexport function getObjktIdFromContract(contract: string, id: string): string {\n return `${tezosContractPrefixesByContractAddress[contract]}-${id}`\n}\n","import { type IEthApis, ethTestnetApis } from \"./api/eth.js\"\nimport { fxhashDevApis, fxhashPrdApis } from \"./api/fxhash.js\"\nimport {\n type ITezosApis,\n tezosMainnetApis,\n tezosTestnetApis,\n} from \"./api/tezos.js\"\nimport {\n config,\n devConfig,\n fxhashConfig,\n localConfig,\n prdConfig,\n setConfig,\n} from \"./config.js\"\nimport { type GPURenderingConfig } from \"./config/gpu.js\"\nimport { type IEthContracts, ethTestnetContracts } from \"./contracts/eth.js\"\nimport {\n type ITezosContracts,\n tezosMainnetContracts,\n tezosTestnetContracts,\n} from \"./contracts/tezos.js\"\nimport {\n type IFxhashConfig,\n type IFxhashEnvConfig,\n type IFxhashNetworkConfig,\n type TBlockchain,\n type TBlockchainNetwork,\n type TEnv,\n} from \"./types.js\"\n\nexport {\n config,\n devConfig,\n ethTestnetApis,\n ethTestnetContracts,\n fxhashConfig,\n fxhashDevApis,\n fxhashPrdApis,\n localConfig,\n prdConfig,\n setConfig,\n tezosMainnetApis,\n tezosMainnetContracts,\n tezosTestnetApis,\n tezosTestnetContracts,\n type GPURenderingConfig,\n type IEthApis,\n type IEthContracts,\n type IFxhashConfig,\n type IFxhashEnvConfig,\n type IFxhashNetworkConfig,\n type ITezosApis,\n type ITezosContracts,\n type TBlockchain,\n type TBlockchainNetwork,\n type TEnv,\n}\n\nexport * from \"./helpers.js\"\nexport * from \"./types.js\"\nexport * from \"./utils/index.js\"\n\nexport { isAppMetadataValid } from \"./config/metadata.js\"\n\nexport default fxhashConfig\n"],"mappings":";;;;;;;;;;;AAUA,MAAaA,iBAA2B;CACtC,MAAM,CACJ,uEACD;CACD,WAAW;CACX,MAAM;CACN,WAAW;CACX,SAAS,EACP,KAAK,wEACN;AACF;AAED,MAAaC,iBAA2B;CACtC,MAAM,CACJ,uEACD;CACD,WAAW;CACX,MAAM;CACN,WAAW;CACX,SAAS,EACP,KAAK,wEACN;AACF;;;;AC9BD,MAAM,aAAa;AACnB,MAAM,uBAAuB;AAE7B,SAAgB,qBAAqBC,KAAqB;AACxD,QAAO,IAAI,QAAQ,YAAY,qBAAqB;AACrD;AAED,MAAaC,SAAkB,CAAC,MAAM;AAGpC,QACE,QAAQ,IAAI,eAAe,SAC3B,QAAQ,IAAI,eAAe,gBAC3B,QAAQ,IAAI,2BAA2B,SACvC,QAAQ,IAAI,2BAA2B,gBACvC,QAAQ,IAAI,yBAAyB,SACrC,QAAQ,IAAI,yBAAyB,gBACrC,QAAQ,IAAI,oBAAoB,SAChC,QAAQ,IAAI,oBAAoB;AAEnC,IAAG;AAEJ,MAAaC,UAAmB,CAAC,MAAM;AAGrC,QACE,QAAQ,IAAI,eAAe,WAC3B,QAAQ,IAAI,2BAA2B,WACvC,QAAQ,IAAI,yBAAyB,WACrC,QAAQ,IAAI,oBAAoB;AAEnC,IAAG;AAEJ,MAAaC,gBAAyB,CAAC,MAAM;CAC3C,MAAM,mBAAmB,WAAW;AACpC,KAAI,UAAW,QAAO;CACtB,IAAI;AACJ,KAAI;AACF,OAAK,UAAQ,KAAK;CACnB,SAAQ,GAAG;AACV,SAAO;CACR;AACD,MAAK,GAAI,QAAO;AAChB,QAAO,WAAW,GAAG,WAAW,cAAc;AAC/C,IAAG;AAEJ,SAAgB,SAAe;AAC7B,KAAI,OAAQ,QAAO;AACnB,KAAI,QACF,QAAO,gBAAgB,gBAAgB;AAEzC,QAAO;AACR;;;;AClDD,MAAaC,gBAA6B;CACxC,SAAS;CACT,MAAM;CACN,MAAM;CACN,QAAQ;CACR,WAAW;CACX,MAAM;CACN,cACE;CACF,qBACE;CACF,gBACE;CACF,YAAY;CACZ,SAAS;CACT,iBACE;CACF,OAAO;CACP,aAAa;CACb,cACE;CACF,aAAa;CACb,iBAAiB;CACjB,qBACE;CACF,aAAa;CACb,SAAS;CACT,WAAW,EACT,KAAK,OACN;CACD,SAAS;EACP,SAAS;GACP,OACE;GACF,QACE;GACF,OACE;EACH;EACD,OAAO;GACL,MAAM;GACN,QACE;EACH;CACF;CACD,QAAQ,EACN,aAAa,QACd;CACD,SAAS;EACP,KAAK;EACL,KAAK;EACL,MAAM;CACP;AACF;AAKD,MAAaC,kBAA+B;CAC1C,GAAG;CACH,SAAS;CACT,QAAQ;CACR,WAAW;CACX,cAAc,cAAc;CAC5B,qBAAqB,cAAc;CACnC,gBAAgB;AACjB;AAED,MAAaC,wBAAqC;CAChD,GAAG;CACH,QAAQ,qBAAqB,gBAAgB,OAAO;CACpD,WAAW,qBAAqB,gBAAgB,UAAU;AAC3D;AAGD,MAAaC,gBAA6B;CACxC,SAAS;CACT,MAAM;CACN,MAAM;CACN,QAAQ;CACR,WAAW;CACX,MAAM;CACN,cACE;CACF,qBACE;CACF,gBACE;CACF,YAAY;CACZ,SAAS;CACT,iBACE;CACF,OAAO;CACP,aAAa;CACb,cACE;CACF,aAAa;CACb,iBAAiB;CACjB,qBACE;CACF,aAAa;CACb,SAAS;CACT,WAAW,EACT,KAAK,OACN;CACD,SAAS;EACP,SAAS;GACP,OACE;GACF,QACE;GACF,OACE;EACH;EACD,OAAO;GACL,MAAM;GACN,QACE;EACH;CACF;CACD,QAAQ,EACN,aAAa,QACd;CACD,SAAS;EACP,KAAK;EACL,KAAK;EACL,MAAM;CACP;AACF;AAED,MAAMC,iBAA4C;CAChD,OAAO;CACP,aAAa;CACb,KAAK;CACL,KAAK;AACN;;;;AAKD,SAAgB,YAAYC,KAAwB;AAClD,QAAO,eAAe;AACvB;;;;AC3ID,MAAaC,mBAA+B;CAC1C,MAAM;CACN,SAAS;CACT,aAAa;CACb,MAAM;EACJ;EACA;EACA;CACD;AACF;AAED,MAAaC,mBAA+B;CAC1C,MAAM;CACN,SAAS;CACT,aAAa;CACb,MAAM;EACJ;EACA;EACA;EACA;CACD;AACF;;;;AClBD,MAAaC,kBAA6B;CACxC,MAAM,CAAC,0BAA2B;CAClC,WAAW;CACX,MAAM;CACN,WAAW;CACX,SAAS,EACP,K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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@fxhash/config",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "author": "fxhash",
5
5
  "dependencies": {
6
- "@fxhash/utils": "0.0.5",
7
- "@fxhash/errors": "0.0.12"
6
+ "@fxhash/errors": "0.0.13",
7
+ "@fxhash/utils": "0.0.5"
8
8
  },
9
9
  "devDependencies": {
10
10
  "@types/node": "18.7.13",