@the_library/network-config 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,556 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ APPLICATION_ENVIRONMENTS: () => APPLICATION_ENVIRONMENTS,
24
+ BACKEND_ENVIRONMENTS: () => BACKEND_ENVIRONMENTS,
25
+ BRAND_LOGOS: () => BRAND_LOGOS,
26
+ CANONICAL: () => CANONICAL,
27
+ CANONICAL_CHAIN_IDS: () => CANONICAL_CHAIN_IDS,
28
+ DEFAULT_CHAIN_ID: () => DEFAULT_CHAIN_ID,
29
+ DEFAULT_DEV_CHAIN_ID: () => DEFAULT_DEV_CHAIN_ID,
30
+ DEFAULT_STAGING_CHAIN_ID: () => DEFAULT_STAGING_CHAIN_ID,
31
+ EVM_CHAINS: () => EVM_CHAINS,
32
+ MEMBERSHIP_TIERS: () => MEMBERSHIP_TIERS,
33
+ NETWORKS: () => NETWORKS,
34
+ SITE_CONTACTS: () => SITE_CONTACTS,
35
+ STRIPE_ENVIRONMENTS: () => STRIPE_ENVIRONMENTS,
36
+ ShortNames: () => ShortNames,
37
+ getApplicationEnvironmentConfig: () => getApplicationEnvironmentConfig,
38
+ getBackendConfig: () => getBackendConfig,
39
+ getCanonicalChainId: () => getCanonicalChainId,
40
+ getCanonicalRole: () => getCanonicalRole,
41
+ getCanonicalTarget: () => getCanonicalTarget,
42
+ getChain: () => getChain,
43
+ getDeploymentEnvironment: () => getDeploymentEnvironment,
44
+ getSiteContact: () => getSiteContact,
45
+ getStripeConfig: () => getStripeConfig,
46
+ isChainDeployedForRole: () => isChainDeployedForRole,
47
+ resolveApplicationEnvironment: () => resolveApplicationEnvironment
48
+ });
49
+ module.exports = __toCommonJS(src_exports);
50
+
51
+ // src/short-names.ts
52
+ var ShortNames = {
53
+ SONIC: "SONIC",
54
+ SONIC_BLAZE: "SONIC_BLAZE",
55
+ GNOSIS: "GNOSIS",
56
+ CHIADO: "CHIADO"
57
+ };
58
+
59
+ // src/networks.ts
60
+ var NETWORKS = {
61
+ [ShortNames.SONIC_BLAZE]: {
62
+ enabled: false,
63
+ chainId: 14601,
64
+ main: false,
65
+ symbol: "S",
66
+ shortName: "WATER",
67
+ // testnet shorthand
68
+ original: "Sonic TestNet",
69
+ faucet: "https://testnet.soniclabs.com/account",
70
+ faucetAmount: 1,
71
+ decimals: 18,
72
+ brand: "SONIC",
73
+ pyth: "0x2880aB155794e7179c9eE2e38200202908C17B43",
74
+ pythUsdPriceId: "0xf490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d",
75
+ website: "https://soniclabs.com/",
76
+ rpc: "https://rpc.testnet.soniclabs.com/",
77
+ explorer: "https://testnet.sonicscan.org",
78
+ name: "Sonic Blaze",
79
+ memberFundingTarget: "1",
80
+ staffFundingTarget: "0.5",
81
+ verifyApi: { kind: "etherscan", url: "https://api.testnet.sonicscan.org/api" }
82
+ },
83
+ [ShortNames.SONIC]: {
84
+ enabled: false,
85
+ chainId: 146,
86
+ main: true,
87
+ symbol: "S",
88
+ shortName: "TREE",
89
+ // mainnet shorthand
90
+ original: "Sonic MainNet",
91
+ decimals: 18,
92
+ brand: "SONIC",
93
+ pyth: "0x2b9Bb0042dB2F30650d73BB83CBAE584807d2FE4",
94
+ pythUsdPriceId: "0xf490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d",
95
+ website: "https://soniclabs.com/",
96
+ rpc: "https://rpc.soniclabs.com",
97
+ explorer: "https://sonicscan.org",
98
+ name: "Sonic",
99
+ // 1 S: one save() of ~25 new actions cost ~0.084 S at the 50 gwei base-fee floor.
100
+ memberFundingTarget: "1",
101
+ staffFundingTarget: "0.5",
102
+ verifyApi: { kind: "etherscan", url: "https://api.sonicscan.org/api" }
103
+ },
104
+ [ShortNames.GNOSIS]: {
105
+ enabled: true,
106
+ chainId: 100,
107
+ main: true,
108
+ symbol: "XDAI",
109
+ brand: "GNOSIS",
110
+ decimals: 18,
111
+ explorer: "https://gnosisscan.io",
112
+ name: "Gnosis",
113
+ original: "Gnosis Mainnet",
114
+ pyth: "",
115
+ pythUsdPriceId: "",
116
+ rpc: "https://rpc.gnosischain.com",
117
+ shortName: "TREE",
118
+ website: "https://www.gnosis.io/",
119
+ // ~29 saves of ~0.69M gas at a busy 1 gwei (suggested 2026-10-17 — confirm before launch).
120
+ memberFundingTarget: "0.02",
121
+ // The same 10M gas as Sonic's 0.5 S at its 50 gwei floor, at a busy 1 gwei (suggested).
122
+ staffFundingTarget: "0.01",
123
+ verifyApi: { kind: "blockscout", url: "https://gnosisscan.io/api" }
124
+ },
125
+ [ShortNames.CHIADO]: {
126
+ enabled: true,
127
+ chainId: 10200,
128
+ main: false,
129
+ symbol: "XDAI",
130
+ brand: "GNOSIS",
131
+ decimals: 18,
132
+ explorer: "https://gnosis-chiado.blockscout.com",
133
+ name: "Gnosis Chiado",
134
+ original: "Gnosis Chiado",
135
+ pyth: "",
136
+ pythUsdPriceId: "",
137
+ rpc: "https://rpc.chiadochain.net",
138
+ shortName: "WATER",
139
+ website: "https://www.gnosis.io/",
140
+ // Testnet: fees stay ~14 wei per gas and the faucet is small, so 0.0001 still covers
141
+ // thousands of saves (user's choice, 2026-10-18).
142
+ memberFundingTarget: "0.0001",
143
+ staffFundingTarget: "0.0001",
144
+ verifyApi: { kind: "blockscout", url: "https://gnosis-chiado.blockscout.com/api" }
145
+ }
146
+ //
147
+ // [ShortNames.tCORE2]: {
148
+ // enabled: false,
149
+ // chainId: 1114,
150
+ // main: false,
151
+ // symbol: 'tCORE2',
152
+ // shortName: 'SUN',
153
+ // original: 'Core Blockchain TestNet',
154
+ // faucet: 'https://scan.test2.btcs.network/faucet',
155
+ // faucetAmount: 1,
156
+ // decimals: 18,
157
+ // brand: 'CORE',
158
+ // pyth: '0x2880aB155794e7179c9eE2e38200202908C17B43',
159
+ // pythUsdPriceId: '0x9b4503710cc8c53f75c30e6e4fda1a7064680ef2e0ee97acd2e3a7c37b3c830c',
160
+ // website: 'https://coredao.org/',
161
+ // rpc: 'https://rpc.test2.btcs.network',
162
+ // explorer: 'https://scan.test2.btcs.network',
163
+ // name: 'Core Test',
164
+ // },
165
+ // [ShortNames.CORE]: {
166
+ // enabled: true,
167
+ // chainId: 1116,
168
+ // main: true,
169
+ // symbol: 'CORE',
170
+ // shortName: 'TREE',
171
+ // decimals: 18,
172
+ // brand: 'CORE',
173
+ // pyth: '0xA2aa501b19aff244D90cc15a4Cf739D2725B5729',
174
+ // pythUsdPriceId: '0x9b4503710cc8c53f75c30e6e4fda1a7064680ef2e0ee97acd2e3a7c37b3c830c',
175
+ // website: 'https://coredao.org/',
176
+ // rpc: 'https://rpc.coredao.org',
177
+ // explorer: 'https://scan.coredao.org',
178
+ // name: 'Main',
179
+ // original: 'Core Blockchain MainNet',
180
+ // },
181
+ };
182
+ var APPLICATION_ENVIRONMENTS = {
183
+ production: {
184
+ canonicalRole: "production",
185
+ networkKey: ShortNames.GNOSIS,
186
+ maintenanceMode: false,
187
+ apiUrl: "https://aj1bg165gc.execute-api.ap-southeast-2.amazonaws.com/prod"
188
+ },
189
+ staging: {
190
+ canonicalRole: "staging",
191
+ networkKey: ShortNames.CHIADO,
192
+ maintenanceMode: false,
193
+ apiUrl: "https://udpkacwxd0.execute-api.ap-southeast-2.amazonaws.com/prod"
194
+ }
195
+ };
196
+ function getApplicationEnvironmentConfig(environment) {
197
+ return APPLICATION_ENVIRONMENTS[environment];
198
+ }
199
+ function getCanonicalRole(environment) {
200
+ return getApplicationEnvironmentConfig(environment).canonicalRole;
201
+ }
202
+ function resolveApplicationEnvironment(mode, override) {
203
+ for (const candidate of [override, mode]) {
204
+ if (candidate === "production" || candidate === "staging") {
205
+ return candidate;
206
+ }
207
+ if (candidate === "development") return "staging";
208
+ }
209
+ return "staging";
210
+ }
211
+ var CANONICAL = {
212
+ production: APPLICATION_ENVIRONMENTS.production.networkKey,
213
+ staging: APPLICATION_ENVIRONMENTS.staging.networkKey
214
+ };
215
+ function getCanonicalTarget(environment) {
216
+ const applicationConfig = getApplicationEnvironmentConfig(environment);
217
+ const role = applicationConfig.canonicalRole;
218
+ const networkKey = applicationConfig.networkKey;
219
+ const network = NETWORKS[networkKey];
220
+ if (!network) throw new Error(`application environment ${environment} references unknown network "${networkKey}"`);
221
+ return { environment, role, networkKey, network, chainId: network.chainId };
222
+ }
223
+
224
+ // src/media/sonic-logo.avif
225
+ var sonic_logo_default = "data:image/avif;base64,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";
226
+
227
+ // src/branding.ts
228
+ var BRAND_LOGOS = {
229
+ SONIC: sonic_logo_default
230
+ };
231
+
232
+ // src/sites.ts
233
+ var SITE_CONTACTS = {
234
+ "dsafe.us": { domain: "dsafe.us", websiteUrl: "https://dsafe.us", contactEmail: "hello@dsafe.us" },
235
+ "worldbibliotech.net": { domain: "worldbibliotech.net", websiteUrl: "https://worldbibliotech.net", contactEmail: "hello@worldbibliotech.net" },
236
+ "worldbibliotech.com": { domain: "worldbibliotech.com", websiteUrl: "https://worldbibliotech.com", contactEmail: "hello@worldbibliotech.com" },
237
+ "worldbibliotech.org": { domain: "worldbibliotech.org", websiteUrl: "https://worldbibliotech.org", contactEmail: "hello@worldbibliotech.org" },
238
+ "datapond.earth": { domain: "datapond.earth", websiteUrl: "https://datapond.earth", contactEmail: "data@datapond.earth" },
239
+ "pondenterprise.com": { domain: "pondenterprise.com", websiteUrl: "https://pondenterprise.com", contactEmail: "hello@pondenterprise.com" }
240
+ };
241
+ function getSiteContact(domainOrUrl) {
242
+ const host = domainOrUrl.trim().toLowerCase().replace(/^[a-z]+:\/\//, "").replace(/[/:?#].*$/, "").replace(/^www\./, "");
243
+ if (!Object.prototype.hasOwnProperty.call(SITE_CONTACTS, host)) {
244
+ throw new Error(`No site contact configured for "${domainOrUrl}". Add it to SITE_CONTACTS in @the_library/network-config (src/sites.ts).`);
245
+ }
246
+ return SITE_CONTACTS[host];
247
+ }
248
+
249
+ // src/backend.ts
250
+ var BACKEND_ENVIRONMENTS = {
251
+ production: {
252
+ stage: "prod",
253
+ awsRegion: "ap-southeast-2",
254
+ secretId: "/prod/d-library/keys",
255
+ tables: {
256
+ paymentsLog: "BookCollective-Payments-Log",
257
+ loginRateLimit: "EmailRecoveryRequests",
258
+ emailRecovery: "BookCollective-EmailRecovery",
259
+ recoveryAnomalies: "anomalies",
260
+ trackerLeads: "PondEnterprise-AdLeads"
261
+ },
262
+ frontendUrl: "https://worldbibliotech.com"
263
+ },
264
+ staging: {
265
+ stage: "staging",
266
+ awsRegion: "ap-southeast-2",
267
+ secretId: "/staging/d-library/keys",
268
+ tables: {
269
+ paymentsLog: "BookCollective-Payments-Log-staging",
270
+ loginRateLimit: "EmailRecoveryRequests-staging",
271
+ emailRecovery: "BookCollective-EmailRecovery-staging",
272
+ recoveryAnomalies: "anomalies-staging",
273
+ trackerLeads: "PondEnterprise-AdLeads-staging"
274
+ },
275
+ // No hosted staging frontend: `pnpm run dev:staging` (Vite, :3000).
276
+ frontendUrl: "http://localhost:3000"
277
+ }
278
+ };
279
+ function getBackendConfig(environment) {
280
+ return BACKEND_ENVIRONMENTS[environment];
281
+ }
282
+
283
+ // src/stripe.ts
284
+ var MEMBERSHIP_TIERS = {
285
+ account: {
286
+ usd: 2,
287
+ votes: 0
288
+ },
289
+ supporter: {
290
+ usd: 10,
291
+ votes: 8
292
+ },
293
+ pioneer: {
294
+ usd: 20,
295
+ votes: 18
296
+ },
297
+ visionary: {
298
+ usd: 50,
299
+ votes: 48
300
+ }
301
+ };
302
+ var STRIPE_ENVIRONMENTS = {
303
+ production: {
304
+ enabled: true,
305
+ prices: {
306
+ memberAccount: "price_1UK1qXQeGVzwKmoGyaR44j8l",
307
+ voteCredit: "price_1UK2ZWQeGVzwKmoG5dgc3qrX"
308
+ },
309
+ paymentLinks: {
310
+ account: null,
311
+ supporter: null,
312
+ pioneer: null,
313
+ visionary: null
314
+ }
315
+ },
316
+ staging: {
317
+ enabled: true,
318
+ prices: {
319
+ memberAccount: "price_1UK1qXQeGVzwKmoGyaR44j8l",
320
+ voteCredit: "price_1UK2ZWQeGVzwKmoG5dgc3qrX"
321
+ },
322
+ paymentLinks: {
323
+ account: null,
324
+ supporter: null,
325
+ pioneer: null,
326
+ visionary: null
327
+ }
328
+ }
329
+ };
330
+ function getStripeConfig(environment) {
331
+ return STRIPE_ENVIRONMENTS[environment];
332
+ }
333
+
334
+ // src/deployments.generated.ts
335
+ var DEPLOYMENTS = {
336
+ "100": {
337
+ "deployed": true,
338
+ "stagingDeployed": true,
339
+ "addressRegistry": "0xC121FB1A294A52D4175E5D937A3e6D717B98FEc7",
340
+ "stagingAddressRegistry": "0xC121FB1A294A52D4175E5D937A3e6D717B98FEc7",
341
+ "factory": "0x938dcbA1aD805BE0e585f3b4d06cA210CeDE8629",
342
+ "stagingFactory": "0x938dcbA1aD805BE0e585f3b4d06cA210CeDE8629",
343
+ "backupStorage": "0x8f25eBA09b1188ae571DE3BA0fc62893c40C9B55",
344
+ "stagingBackupStorage": "0x8f25eBA09b1188ae571DE3BA0fc62893c40C9B55",
345
+ "bouncerStorage": "0x669766fD75368659B78e61BD82CB55405F3e7Aae",
346
+ "stagingBouncerStorage": "0x669766fD75368659B78e61BD82CB55405F3e7Aae",
347
+ "scientistStorage": "0x9cCdb8E4a979AeF7bd56d485aB2B7cA1404F25C5",
348
+ "stagingScientistStorage": "0x9cCdb8E4a979AeF7bd56d485aB2B7cA1404F25C5",
349
+ "projectManagerStorage": "0x83e1f5f0a799Bf154BF78e4a37CB66Dd1E1d7F2b",
350
+ "stagingProjectManagerStorage": "0x83e1f5f0a799Bf154BF78e4a37CB66Dd1E1d7F2b",
351
+ "subscriptionManager": "0xAc47559D305d2ACA094B51E879E25cbB3D9C3Ed8",
352
+ "stagingSubscriptionManager": "0xAc47559D305d2ACA094B51E879E25cbB3D9C3Ed8",
353
+ "libraryRegistryStorage": "0x8e613b6D564803a8Cdc71cB8CE7F3EB205981462",
354
+ "stagingLibraryRegistryStorage": "0x8e613b6D564803a8Cdc71cB8CE7F3EB205981462",
355
+ "publicLibraryStorage": "0x2647f241d8Fa1E3C11a8d424109aE9A8D9624e21",
356
+ "stagingPublicLibraryStorage": "0x2647f241d8Fa1E3C11a8d424109aE9A8D9624e21",
357
+ "dSafeHRStorage": "0x7d1437158aE169A1E5C4188872888d622Ef7F6FA",
358
+ "stagingDSafeHRStorage": "0x7d1437158aE169A1E5C4188872888d622Ef7F6FA",
359
+ "statsPivotStorage": "0x57778210bf8De1B24707874957eB6De5cbCEEcfA",
360
+ "stagingStatsPivotStorage": "0x57778210bf8De1B24707874957eB6De5cbCEEcfA",
361
+ "relationshipIndexerStorage": "0x4749aed97EDf0502D6416C1d71502001E153181a",
362
+ "stagingRelationshipIndexerStorage": "0x4749aed97EDf0502D6416C1d71502001E153181a",
363
+ "emailRecoveryManager": "0x3F18c8a9473097B2bF4aA3D0C3eD808AEDFd17A5",
364
+ "stagingEmailRecoveryManager": "0x3F18c8a9473097B2bF4aA3D0C3eD808AEDFd17A5",
365
+ "accountManager": "0xEBD7fC6BAfFBF97782CdDBaBB3564c996eE22ab7",
366
+ "stagingAccountManager": "0xEBD7fC6BAfFBF97782CdDBaBB3564c996eE22ab7"
367
+ },
368
+ "146": {
369
+ "deployed": true,
370
+ "stagingDeployed": true,
371
+ "addressRegistry": "0x96233a42a809ECDb14D3bd44b23a0e70F75E8519",
372
+ "stagingAddressRegistry": "0x96233a42a809ECDb14D3bd44b23a0e70F75E8519",
373
+ "factory": "0x98ed1705270730299079C5D9137416445FFAd7a7",
374
+ "stagingFactory": "0x98ed1705270730299079C5D9137416445FFAd7a7",
375
+ "backupStorage": "0xB936Cb4A1007Ee179f65C75eC62f986F040df913",
376
+ "stagingBackupStorage": "0xB936Cb4A1007Ee179f65C75eC62f986F040df913",
377
+ "bouncerStorage": "0xb2A80025fB10a1F238e72077cD3695AEFd3C9A03",
378
+ "stagingBouncerStorage": "0xb2A80025fB10a1F238e72077cD3695AEFd3C9A03",
379
+ "scientistStorage": "0x4689C7639c21cc615Fa92Cefa48ed0FFf130902C",
380
+ "stagingScientistStorage": "0x4689C7639c21cc615Fa92Cefa48ed0FFf130902C",
381
+ "projectManagerStorage": "0x82c9638AAF614070BA2427Af1691c38b8a973740",
382
+ "stagingProjectManagerStorage": "0x82c9638AAF614070BA2427Af1691c38b8a973740",
383
+ "subscriptionManager": "0x909B28aF430280C0D3b784EC14Df8fd22Db61066",
384
+ "stagingSubscriptionManager": "0x909B28aF430280C0D3b784EC14Df8fd22Db61066",
385
+ "libraryRegistryStorage": "0x40F33095Ac9fbf0c24bfE9642809E9A835978392",
386
+ "stagingLibraryRegistryStorage": "0x40F33095Ac9fbf0c24bfE9642809E9A835978392",
387
+ "publicLibraryStorage": "0x7fa224B1f0CFBA68701888C50Dc168A298792db8",
388
+ "stagingPublicLibraryStorage": "0x7fa224B1f0CFBA68701888C50Dc168A298792db8",
389
+ "dSafeHRStorage": "0xE4926FA79f41Ba0630d6734299F236b190387D2F",
390
+ "stagingDSafeHRStorage": "0xE4926FA79f41Ba0630d6734299F236b190387D2F",
391
+ "statsPivotStorage": "0x834a04670d8c343658Fe182710897fe306E955E4",
392
+ "stagingStatsPivotStorage": "0x834a04670d8c343658Fe182710897fe306E955E4",
393
+ "relationshipIndexerStorage": "0xEe52c2814A6a5F400ed8318752DF3CD37168c480",
394
+ "stagingRelationshipIndexerStorage": "0xEe52c2814A6a5F400ed8318752DF3CD37168c480",
395
+ "emailRecoveryManager": "0x4B7b5cDD0aCCad89931f3282Cd0FF73729221AC9",
396
+ "stagingEmailRecoveryManager": "0x4B7b5cDD0aCCad89931f3282Cd0FF73729221AC9",
397
+ "accountManager": "0xF62388AE786977B6F6113693eEFF1926596EF5Ac",
398
+ "stagingAccountManager": "0xF62388AE786977B6F6113693eEFF1926596EF5Ac"
399
+ },
400
+ "10200": {
401
+ "deployed": true,
402
+ "stagingDeployed": true,
403
+ "addressRegistry": "0x0bBe33489bF3d5b027851C2D488f70DcCf13733c",
404
+ "stagingAddressRegistry": "0x0bBe33489bF3d5b027851C2D488f70DcCf13733c",
405
+ "factory": "0x68A80A3422B21bCe61808CF1E3ED9601Ad958b09",
406
+ "stagingFactory": "0x68A80A3422B21bCe61808CF1E3ED9601Ad958b09",
407
+ "backupStorage": "0x9D3F50977b83f5795CC21c7C590a464be63686Cd",
408
+ "stagingBackupStorage": "0x9D3F50977b83f5795CC21c7C590a464be63686Cd",
409
+ "bouncerStorage": "0x45fA65bADC2d1185284614D61f99273Eea7A9510",
410
+ "stagingBouncerStorage": "0x45fA65bADC2d1185284614D61f99273Eea7A9510",
411
+ "scientistStorage": "0xa975e9C546BAd16fFFd7Aa2Fa659d8750aA69713",
412
+ "stagingScientistStorage": "0xa975e9C546BAd16fFFd7Aa2Fa659d8750aA69713",
413
+ "projectManagerStorage": "0xD12431217cd1F8b41f29C608400119F97c6d37F1",
414
+ "stagingProjectManagerStorage": "0xD12431217cd1F8b41f29C608400119F97c6d37F1",
415
+ "subscriptionManager": "0x65818AEF65a2475af09c4B2C7EeBE7c474877Adb",
416
+ "stagingSubscriptionManager": "0x65818AEF65a2475af09c4B2C7EeBE7c474877Adb",
417
+ "libraryRegistryStorage": "0x500d1e6b5B36D4cbc077684F32e98D0a0FFCF56E",
418
+ "stagingLibraryRegistryStorage": "0x500d1e6b5B36D4cbc077684F32e98D0a0FFCF56E",
419
+ "publicLibraryStorage": "0x5293599e4d67d4f18137FDc3818E1e7b7306C926",
420
+ "stagingPublicLibraryStorage": "0x5293599e4d67d4f18137FDc3818E1e7b7306C926",
421
+ "dSafeHRStorage": "0x8fdA91F4547227e50Ef448332fA8E1D5e01f0524",
422
+ "stagingDSafeHRStorage": "0x8fdA91F4547227e50Ef448332fA8E1D5e01f0524",
423
+ "statsPivotStorage": "0x7a4602175f6beA4393BF886037b36E2EeC261bcE",
424
+ "stagingStatsPivotStorage": "0x7a4602175f6beA4393BF886037b36E2EeC261bcE",
425
+ "relationshipIndexerStorage": "0xF9d92B41124F0bAB0Ea8334B258D3952bAdBC0a3",
426
+ "stagingRelationshipIndexerStorage": "0xF9d92B41124F0bAB0Ea8334B258D3952bAdBC0a3",
427
+ "emailRecoveryManager": "0x613DB14219Ea366041381C6cCF9c09968aD7F43E",
428
+ "stagingEmailRecoveryManager": "0x613DB14219Ea366041381C6cCF9c09968aD7F43E",
429
+ "accountManager": "0xc5e5EfAFBa46B0dBcF0c57ea63B3BD2d615E853c",
430
+ "stagingAccountManager": "0xc5e5EfAFBa46B0dBcF0c57ea63B3BD2d615E853c"
431
+ },
432
+ "14601": {
433
+ "deployed": true,
434
+ "stagingDeployed": true,
435
+ "addressRegistry": "0x9D53A99A60BaA5eEB071833bAE07058F5846D668",
436
+ "stagingAddressRegistry": "0x9D53A99A60BaA5eEB071833bAE07058F5846D668",
437
+ "factory": "0xdF29cBC8CDf9bf25c5a135011d89857F18b9C5E5",
438
+ "stagingFactory": "0xdF29cBC8CDf9bf25c5a135011d89857F18b9C5E5",
439
+ "backupStorage": "0x0998409E88362d76E6B703AfEE938C5fBa2196d8",
440
+ "stagingBackupStorage": "0x0998409E88362d76E6B703AfEE938C5fBa2196d8",
441
+ "bouncerStorage": "0xC947fe2638Db4fB3A0a6be8B8588571a1f874ADA",
442
+ "stagingBouncerStorage": "0xC947fe2638Db4fB3A0a6be8B8588571a1f874ADA",
443
+ "scientistStorage": "0x29215Aa0Fd5CF12EbCF77C0f754f4B2B9320f57e",
444
+ "stagingScientistStorage": "0x29215Aa0Fd5CF12EbCF77C0f754f4B2B9320f57e",
445
+ "projectManagerStorage": "0x3879c30284F4ddcBa634F1E8AE977420fc24c9Af",
446
+ "stagingProjectManagerStorage": "0x3879c30284F4ddcBa634F1E8AE977420fc24c9Af",
447
+ "subscriptionManager": "0xDcD683c8c774adBEc63e353182E6Feb172EFD4b6",
448
+ "stagingSubscriptionManager": "0xDcD683c8c774adBEc63e353182E6Feb172EFD4b6",
449
+ "libraryRegistryStorage": "0x4Cbc2AeE051680C40C3A97DA0BF3da0660Aa192c",
450
+ "stagingLibraryRegistryStorage": "0x4Cbc2AeE051680C40C3A97DA0BF3da0660Aa192c",
451
+ "publicLibraryStorage": "0x95Ad7E48123dFEc03E338617fc5747E646a177f7",
452
+ "stagingPublicLibraryStorage": "0x95Ad7E48123dFEc03E338617fc5747E646a177f7",
453
+ "dSafeHRStorage": "0x1Dd9B351F7Db00cdf1148343022B05e3D5b8578F",
454
+ "stagingDSafeHRStorage": "0x1Dd9B351F7Db00cdf1148343022B05e3D5b8578F",
455
+ "statsPivotStorage": "0xb01cE8E906BeCb24341d8Fe3EB5950826D96f7F8",
456
+ "stagingStatsPivotStorage": "0xb01cE8E906BeCb24341d8Fe3EB5950826D96f7F8",
457
+ "relationshipIndexerStorage": "0x29e4f99400Bc77CD4CaE155F355BbE8520eA2367",
458
+ "stagingRelationshipIndexerStorage": "0x29e4f99400Bc77CD4CaE155F355BbE8520eA2367",
459
+ "emailRecoveryManager": "0x5D9581b8867a71CDD34Fc5C4F90c8f92bAEd56D5",
460
+ "stagingEmailRecoveryManager": "0x5D9581b8867a71CDD34Fc5C4F90c8f92bAEd56D5",
461
+ "accountManager": "0xfc77749ED8794C5d9Cf7b73C506f94DC45C3e379",
462
+ "stagingAccountManager": "0xfc77749ED8794C5d9Cf7b73C506f94DC45C3e379"
463
+ }
464
+ };
465
+
466
+ // src/chains.ts
467
+ function toChainConfig(data) {
468
+ const price = data.pyth ? { pythOracle: data.pyth, usdPriceId: data.pythUsdPriceId || "" } : { stable: true };
469
+ const deployment = DEPLOYMENTS[data.chainId] || {};
470
+ const addresses = {};
471
+ for (const [field, value] of Object.entries(deployment)) {
472
+ if (field === "deployed" || field === "stagingDeployed") continue;
473
+ if (typeof value === "string") addresses[field] = value;
474
+ }
475
+ return {
476
+ chainId: data.chainId,
477
+ name: data.original,
478
+ symbol: data.symbol,
479
+ shortName: data.shortName,
480
+ decimals: data.decimals,
481
+ explorer: data.explorer,
482
+ rpc: data.rpc,
483
+ website: data.website,
484
+ main: data.main,
485
+ brand: data.brand,
486
+ // A brand without its own logo shows the production network's ('' if that has none either).
487
+ logo: BRAND_LOGOS[data.brand] ?? BRAND_LOGOS[NETWORKS[CANONICAL.production].brand] ?? "",
488
+ price,
489
+ memberFundingTarget: data.memberFundingTarget,
490
+ staffFundingTarget: data.staffFundingTarget,
491
+ deployed: deployment.deployed,
492
+ stagingDeployed: deployment.stagingDeployed,
493
+ addresses: Object.keys(addresses).length ? addresses : void 0
494
+ };
495
+ }
496
+ var EVM_CHAINS = Object.fromEntries(
497
+ Object.values(NETWORKS).map((data) => [data.chainId, toChainConfig(data)])
498
+ );
499
+ function getChain(chainId) {
500
+ const id = typeof chainId === "string" ? parseInt(chainId, 10) : chainId;
501
+ const chain = EVM_CHAINS[id];
502
+ if (!chain) throw new Error(`Chain ${chainId} not configured`);
503
+ return chain;
504
+ }
505
+ function getDeploymentEnvironment(chainId, environment) {
506
+ const chain = getChain(chainId);
507
+ const role = getCanonicalRole(environment);
508
+ const isCanonicalChain = getCanonicalTarget(environment).chainId === chain.chainId;
509
+ if (isCanonicalChain) return chain.main ? "production" : "staging";
510
+ return chain.main ? role : "staging";
511
+ }
512
+ function isChainDeployedForRole(chainId, environment) {
513
+ const chain = getChain(chainId);
514
+ return getDeploymentEnvironment(chain.chainId, environment) === "staging" ? chain.stagingDeployed === true : chain.deployed === true;
515
+ }
516
+
517
+ // src/index.ts
518
+ function getCanonicalChainId(environment) {
519
+ return getCanonicalTarget(environment).chainId;
520
+ }
521
+ var CANONICAL_CHAIN_IDS = {
522
+ production: getCanonicalChainId("production"),
523
+ staging: getCanonicalChainId("staging")
524
+ };
525
+ var DEFAULT_CHAIN_ID = CANONICAL_CHAIN_IDS.production;
526
+ var DEFAULT_STAGING_CHAIN_ID = CANONICAL_CHAIN_IDS.staging;
527
+ var DEFAULT_DEV_CHAIN_ID = CANONICAL_CHAIN_IDS.staging;
528
+ // Annotate the CommonJS export names for ESM import in node:
529
+ 0 && (module.exports = {
530
+ APPLICATION_ENVIRONMENTS,
531
+ BACKEND_ENVIRONMENTS,
532
+ BRAND_LOGOS,
533
+ CANONICAL,
534
+ CANONICAL_CHAIN_IDS,
535
+ DEFAULT_CHAIN_ID,
536
+ DEFAULT_DEV_CHAIN_ID,
537
+ DEFAULT_STAGING_CHAIN_ID,
538
+ EVM_CHAINS,
539
+ MEMBERSHIP_TIERS,
540
+ NETWORKS,
541
+ SITE_CONTACTS,
542
+ STRIPE_ENVIRONMENTS,
543
+ ShortNames,
544
+ getApplicationEnvironmentConfig,
545
+ getBackendConfig,
546
+ getCanonicalChainId,
547
+ getCanonicalRole,
548
+ getCanonicalTarget,
549
+ getChain,
550
+ getDeploymentEnvironment,
551
+ getSiteContact,
552
+ getStripeConfig,
553
+ isChainDeployedForRole,
554
+ resolveApplicationEnvironment
555
+ });
556
+ //# sourceMappingURL=index.cjs.map