@alchemy/common 0.0.0-alpha.8 → 5.0.0-beta.1

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.
Files changed (52) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +36 -0
  3. package/dist/esm/chains.d.ts +54 -0
  4. package/dist/esm/index.d.ts +0 -11
  5. package/dist/esm/index.js +4 -9
  6. package/dist/esm/index.js.map +1 -1
  7. package/dist/esm/internal.d.ts +6 -0
  8. package/dist/esm/internal.js +6 -0
  9. package/dist/esm/internal.js.map +1 -0
  10. package/dist/esm/tracing/traceHeader.d.ts +8 -4
  11. package/dist/esm/tracing/traceHeader.js +8 -4
  12. package/dist/esm/tracing/traceHeader.js.map +1 -1
  13. package/dist/esm/transport/chainRegistry.d.ts +2 -1
  14. package/dist/esm/transport/chainRegistry.js +85 -49
  15. package/dist/esm/transport/chainRegistry.js.map +1 -1
  16. package/dist/esm/utils/bigint.js +3 -2
  17. package/dist/esm/utils/bigint.js.map +1 -1
  18. package/dist/esm/version.d.ts +1 -1
  19. package/dist/esm/version.js +1 -1
  20. package/dist/esm/version.js.map +1 -1
  21. package/dist/types/chains.d.ts +54 -0
  22. package/dist/types/chains.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +0 -11
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/internal.d.ts +7 -0
  26. package/dist/types/internal.d.ts.map +1 -0
  27. package/dist/types/tracing/traceHeader.d.ts +8 -4
  28. package/dist/types/tracing/traceHeader.d.ts.map +1 -1
  29. package/dist/types/transport/chainRegistry.d.ts +2 -1
  30. package/dist/types/transport/chainRegistry.d.ts.map +1 -1
  31. package/dist/types/utils/bigint.d.ts.map +1 -1
  32. package/dist/types/version.d.ts +1 -1
  33. package/dist/types/version.d.ts.map +1 -1
  34. package/package.json +8 -3
  35. package/src/index.ts +4 -24
  36. package/src/internal.ts +15 -0
  37. package/src/tracing/traceHeader.ts +8 -4
  38. package/src/transport/chainRegistry.ts +103 -52
  39. package/src/utils/bigint.ts +4 -2
  40. package/src/version.ts +1 -1
  41. package/dist/esm/transport/connection.d.ts +0 -20
  42. package/dist/esm/transport/connection.js +0 -2
  43. package/dist/esm/transport/connection.js.map +0 -1
  44. package/dist/esm/utils/createEip1193HandlerFactory.d.ts +0 -18
  45. package/dist/esm/utils/createEip1193HandlerFactory.js +0 -11
  46. package/dist/esm/utils/createEip1193HandlerFactory.js.map +0 -1
  47. package/dist/types/transport/connection.d.ts +0 -21
  48. package/dist/types/transport/connection.d.ts.map +0 -1
  49. package/dist/types/utils/createEip1193HandlerFactory.d.ts +0 -19
  50. package/dist/types/utils/createEip1193HandlerFactory.d.ts.map +0 -1
  51. package/src/transport/connection.ts +0 -19
  52. package/src/utils/createEip1193HandlerFactory.ts +0 -25
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 Alchemy Insights, Inc.
3
+ Copyright (c) 2026 Alchemy Insights, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # @alchemy/common
2
+
3
+ Shared foundation for the Alchemy Smart Wallets SDK. Provides the core interfaces and utilities used by all other `@alchemy/*` packages.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @alchemy/common viem
9
+ ```
10
+
11
+ ## Key Exports
12
+
13
+ - **`alchemyTransport`** - viem-compatible HTTP transport for Alchemy APIs (supports API key, JWT, or direct URL auth)
14
+ - **Chain registry** - `getAlchemyRpcUrl`, `isChainSupported`, `getSupportedChainIds`
15
+ - **Custom chain definitions** (via `@alchemy/common/chains`) - chains not yet in viem
16
+ - **`AlchemyRestClient`** - typed REST client for non-JSON-RPC Alchemy APIs
17
+ - **Error classes** - `BaseError`, `ChainNotFoundError`, `AccountNotFoundError`, `ConnectionConfigError`, etc.
18
+ - **Logging** - `createLogger`, `setGlobalLoggerConfig`, `LogLevel`
19
+ - **Utilities** - `bigIntMultiply`, `bigIntMax`, `lowerAddress`, `assertNever`
20
+
21
+ ## Usage
22
+
23
+ ```ts
24
+ import { alchemyTransport } from "@alchemy/common";
25
+ import { sepolia } from "viem/chains";
26
+ import { createPublicClient } from "viem";
27
+
28
+ const client = createPublicClient({
29
+ chain: sepolia,
30
+ transport: alchemyTransport({ apiKey: "YOUR_API_KEY" }),
31
+ });
32
+ ```
33
+
34
+ ## License
35
+
36
+ MIT
@@ -38,9 +38,18 @@ export declare const fraxtalSepolia: {
38
38
  sourceId?: number | undefined | undefined;
39
39
  testnet: true;
40
40
  custom?: Record<string, unknown> | undefined;
41
+ extendSchema?: Record<string, unknown> | undefined;
41
42
  fees?: import("viem").ChainFees<undefined> | undefined;
42
43
  formatters?: undefined;
44
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
45
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
46
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
47
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
48
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
49
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
50
+ }] | undefined;
43
51
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
52
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
44
53
  };
45
54
  export declare const openlootSepolia: {
46
55
  blockExplorers: {
@@ -76,9 +85,18 @@ export declare const openlootSepolia: {
76
85
  sourceId?: number | undefined | undefined;
77
86
  testnet: true;
78
87
  custom?: Record<string, unknown> | undefined;
88
+ extendSchema?: Record<string, unknown> | undefined;
79
89
  fees?: import("viem").ChainFees<undefined> | undefined;
80
90
  formatters?: undefined;
91
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
92
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
93
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
94
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
95
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
96
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
97
+ }] | undefined;
81
98
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
99
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
82
100
  };
83
101
  export declare const gensynTestnet: {
84
102
  blockExplorers: {
@@ -114,9 +132,18 @@ export declare const gensynTestnet: {
114
132
  sourceId?: number | undefined | undefined;
115
133
  testnet: true;
116
134
  custom?: Record<string, unknown> | undefined;
135
+ extendSchema?: Record<string, unknown> | undefined;
117
136
  fees?: import("viem").ChainFees<undefined> | undefined;
118
137
  formatters?: undefined;
138
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
139
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
140
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
141
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
142
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
143
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
144
+ }] | undefined;
119
145
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
146
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
120
147
  };
121
148
  export declare const riseTestnet: {
122
149
  blockExplorers: {
@@ -152,9 +179,18 @@ export declare const riseTestnet: {
152
179
  sourceId?: number | undefined | undefined;
153
180
  testnet: true;
154
181
  custom?: Record<string, unknown> | undefined;
182
+ extendSchema?: Record<string, unknown> | undefined;
155
183
  fees?: import("viem").ChainFees<undefined> | undefined;
156
184
  formatters?: undefined;
185
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
186
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
187
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
188
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
189
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
190
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
191
+ }] | undefined;
157
192
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
193
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
158
194
  };
159
195
  export declare const storyMainnet: {
160
196
  blockExplorers: {
@@ -190,9 +226,18 @@ export declare const storyMainnet: {
190
226
  sourceId?: number | undefined | undefined;
191
227
  testnet?: boolean | undefined | undefined;
192
228
  custom?: Record<string, unknown> | undefined;
229
+ extendSchema?: Record<string, unknown> | undefined;
193
230
  fees?: import("viem").ChainFees<undefined> | undefined;
194
231
  formatters?: undefined;
232
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
233
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
234
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
235
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
236
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
237
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
238
+ }] | undefined;
195
239
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
240
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
196
241
  };
197
242
  export declare const teaSepolia: {
198
243
  blockExplorers: {
@@ -228,7 +273,16 @@ export declare const teaSepolia: {
228
273
  sourceId?: number | undefined | undefined;
229
274
  testnet: true;
230
275
  custom?: Record<string, unknown> | undefined;
276
+ extendSchema?: Record<string, unknown> | undefined;
231
277
  fees?: import("viem").ChainFees<undefined> | undefined;
232
278
  formatters?: undefined;
279
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
280
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
281
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
282
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
283
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
284
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
285
+ }] | undefined;
233
286
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
287
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
234
288
  };
@@ -1,6 +1,3 @@
1
- export type * from "./rest/restClient.js";
2
- export type * from "./rest/types.js";
3
- export { AlchemyRestClient } from "./rest/restClient.js";
4
1
  export type * from "./transport/alchemy.js";
5
2
  export { alchemyTransport, isAlchemyTransport } from "./transport/alchemy.js";
6
3
  export { getAlchemyRpcUrl, isChainSupported, getSupportedChainIds, } from "./transport/chainRegistry.js";
@@ -9,7 +6,6 @@ export { assertNever } from "./utils/assertNever.js";
9
6
  export { raise } from "./utils/raise.js";
10
7
  export { bigIntMultiply, bigIntMax } from "./utils/bigint.js";
11
8
  export { lowerAddress } from "./utils/lowerAddress.js";
12
- export { createEip1193HandlerFactory } from "./utils/createEip1193HandlerFactory.js";
13
9
  export type { AlchemyConnectionConfig } from "./transport/connectionSchema.js";
14
10
  export { AlchemyConnectionConfigSchema, validateAlchemyConnectionConfig, isAlchemyConnectionConfig, } from "./transport/connectionSchema.js";
15
11
  export { BaseError } from "./errors/BaseError.js";
@@ -20,10 +16,3 @@ export { FetchError } from "./errors/FetchError.js";
20
16
  export { ServerError } from "./errors/ServerError.js";
21
17
  export { InvalidRequestError } from "./errors/InvalidRequestError.js";
22
18
  export { MethodUnsupportedError } from "./errors/MethodUnsupportedError.js";
23
- export type * from "./actions/addBreadCrumb.js";
24
- export { addBreadCrumb } from "./actions/addBreadCrumb.js";
25
- export * from "./chains.js";
26
- export { createLogger } from "./logging/logger.js";
27
- export { setGlobalLoggerConfig, getGlobalLoggerConfig, LogLevel, isLevelEnabled, isNamespaceEnabled, } from "./logging/config.js";
28
- export type { DiagnosticsLogger } from "./logging/logger.js";
29
- export { InMemorySink } from "./logging/sinks.js";
package/dist/esm/index.js CHANGED
@@ -1,4 +1,7 @@
1
- export { AlchemyRestClient } from "./rest/restClient.js";
1
+ // http -- TODO(v5): not currently exported
2
+ // export type * from "./rest/restClient.js";
3
+ // export type * from "./rest/types.js";
4
+ // export { AlchemyRestClient } from "./rest/restClient.js";
2
5
  export { alchemyTransport, isAlchemyTransport } from "./transport/alchemy.js";
3
6
  // chain registry utilities
4
7
  export { getAlchemyRpcUrl, isChainSupported, getSupportedChainIds, } from "./transport/chainRegistry.js";
@@ -6,7 +9,6 @@ export { assertNever } from "./utils/assertNever.js";
6
9
  export { raise } from "./utils/raise.js";
7
10
  export { bigIntMultiply, bigIntMax } from "./utils/bigint.js";
8
11
  export { lowerAddress } from "./utils/lowerAddress.js";
9
- export { createEip1193HandlerFactory } from "./utils/createEip1193HandlerFactory.js";
10
12
  export { AlchemyConnectionConfigSchema, validateAlchemyConnectionConfig, isAlchemyConnectionConfig, } from "./transport/connectionSchema.js";
11
13
  // errors
12
14
  export { BaseError } from "./errors/BaseError.js";
@@ -17,11 +19,4 @@ export { FetchError } from "./errors/FetchError.js";
17
19
  export { ServerError } from "./errors/ServerError.js";
18
20
  export { InvalidRequestError } from "./errors/InvalidRequestError.js";
19
21
  export { MethodUnsupportedError } from "./errors/MethodUnsupportedError.js";
20
- export { addBreadCrumb } from "./actions/addBreadCrumb.js";
21
- // chains (convenience exports for Alchemy-supported chains)
22
- export * from "./chains.js";
23
- // diagnostics logging
24
- export { createLogger } from "./logging/logger.js";
25
- export { setGlobalLoggerConfig, getGlobalLoggerConfig, LogLevel, isLevelEnabled, isNamespaceEnabled, } from "./logging/config.js";
26
- export { InMemorySink } from "./logging/sinks.js";
27
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAIrF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAEzC,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAI5E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,4DAA4D;AAC5D,cAAc,aAAa,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["// http\nexport type * from \"./rest/restClient.js\";\nexport type * from \"./rest/types.js\";\nexport { AlchemyRestClient } from \"./rest/restClient.js\";\n\n// transport\nexport type * from \"./transport/alchemy.js\";\nexport { alchemyTransport, isAlchemyTransport } from \"./transport/alchemy.js\";\n\n// chain registry utilities\nexport {\n getAlchemyRpcUrl,\n isChainSupported,\n getSupportedChainIds,\n} from \"./transport/chainRegistry.js\";\n\n// utils\nexport type * from \"./utils/types.js\";\nexport { assertNever } from \"./utils/assertNever.js\";\nexport { raise } from \"./utils/raise.js\";\nexport { bigIntMultiply, bigIntMax } from \"./utils/bigint.js\";\nexport { lowerAddress } from \"./utils/lowerAddress.js\";\nexport { createEip1193HandlerFactory } from \"./utils/createEip1193HandlerFactory.js\";\n\n// config\nexport type { AlchemyConnectionConfig } from \"./transport/connectionSchema.js\";\nexport {\n AlchemyConnectionConfigSchema,\n validateAlchemyConnectionConfig,\n isAlchemyConnectionConfig,\n} from \"./transport/connectionSchema.js\";\n\n// errors\nexport { BaseError } from \"./errors/BaseError.js\";\nexport { ChainNotFoundError } from \"./errors/ChainNotFoundError.js\";\nexport { AccountNotFoundError } from \"./errors/AccountNotFoundError.js\";\nexport { ConnectionConfigError } from \"./errors/ConnectionConfigError.js\";\nexport { FetchError } from \"./errors/FetchError.js\";\nexport { ServerError } from \"./errors/ServerError.js\";\nexport { InvalidRequestError } from \"./errors/InvalidRequestError.js\";\nexport { MethodUnsupportedError } from \"./errors/MethodUnsupportedError.js\";\n\n// actions\nexport type * from \"./actions/addBreadCrumb.js\";\nexport { addBreadCrumb } from \"./actions/addBreadCrumb.js\";\n\n// chains (convenience exports for Alchemy-supported chains)\nexport * from \"./chains.js\";\n\n// diagnostics logging\nexport { createLogger } from \"./logging/logger.js\";\nexport {\n setGlobalLoggerConfig,\n getGlobalLoggerConfig,\n LogLevel,\n isLevelEnabled,\n isNamespaceEnabled,\n} from \"./logging/config.js\";\nexport type { DiagnosticsLogger } from \"./logging/logger.js\";\nexport { InMemorySink } from \"./logging/sinks.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,6CAA6C;AAC7C,wCAAwC;AACxC,4DAA4D;AAI5D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAEzC,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC","sourcesContent":["// http -- TODO(v5): not currently exported\n// export type * from \"./rest/restClient.js\";\n// export type * from \"./rest/types.js\";\n// export { AlchemyRestClient } from \"./rest/restClient.js\";\n\n// transport\nexport type * from \"./transport/alchemy.js\";\nexport { alchemyTransport, isAlchemyTransport } from \"./transport/alchemy.js\";\n\n// chain registry utilities\nexport {\n getAlchemyRpcUrl,\n isChainSupported,\n getSupportedChainIds,\n} from \"./transport/chainRegistry.js\";\n\n// utils\nexport type * from \"./utils/types.js\";\nexport { assertNever } from \"./utils/assertNever.js\";\nexport { raise } from \"./utils/raise.js\";\nexport { bigIntMultiply, bigIntMax } from \"./utils/bigint.js\";\nexport { lowerAddress } from \"./utils/lowerAddress.js\";\n\n// config\nexport type { AlchemyConnectionConfig } from \"./transport/connectionSchema.js\";\nexport {\n AlchemyConnectionConfigSchema,\n validateAlchemyConnectionConfig,\n isAlchemyConnectionConfig,\n} from \"./transport/connectionSchema.js\";\n\n// errors\nexport { BaseError } from \"./errors/BaseError.js\";\nexport { ChainNotFoundError } from \"./errors/ChainNotFoundError.js\";\nexport { AccountNotFoundError } from \"./errors/AccountNotFoundError.js\";\nexport { ConnectionConfigError } from \"./errors/ConnectionConfigError.js\";\nexport { FetchError } from \"./errors/FetchError.js\";\nexport { ServerError } from \"./errors/ServerError.js\";\nexport { InvalidRequestError } from \"./errors/InvalidRequestError.js\";\nexport { MethodUnsupportedError } from \"./errors/MethodUnsupportedError.js\";\n"]}
@@ -0,0 +1,6 @@
1
+ export type * from "./actions/addBreadCrumb.js";
2
+ export { addBreadCrumb } from "./actions/addBreadCrumb.js";
3
+ export { createLogger } from "./logging/logger.js";
4
+ export { setGlobalLoggerConfig, getGlobalLoggerConfig, LogLevel, isLevelEnabled, isNamespaceEnabled, } from "./logging/config.js";
5
+ export type { DiagnosticsLogger } from "./logging/logger.js";
6
+ export { InMemorySink } from "./logging/sinks.js";
@@ -0,0 +1,6 @@
1
+ export { addBreadCrumb } from "./actions/addBreadCrumb.js";
2
+ // diagnostics logging
3
+ export { createLogger } from "./logging/logger.js";
4
+ export { setGlobalLoggerConfig, getGlobalLoggerConfig, LogLevel, isLevelEnabled, isNamespaceEnabled, } from "./logging/config.js";
5
+ export { InMemorySink } from "./logging/sinks.js";
6
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["// actions\nexport type * from \"./actions/addBreadCrumb.js\";\nexport { addBreadCrumb } from \"./actions/addBreadCrumb.js\";\n\n// diagnostics logging\nexport { createLogger } from \"./logging/logger.js\";\nexport {\n setGlobalLoggerConfig,\n getGlobalLoggerConfig,\n LogLevel,\n isLevelEnabled,\n isNamespaceEnabled,\n} from \"./logging/config.js\";\nexport type { DiagnosticsLogger } from \"./logging/logger.js\";\nexport { InMemorySink } from \"./logging/sinks.js\";\n"]}
@@ -33,7 +33,8 @@ export declare class TraceHeader {
33
33
  /**
34
34
  * Creating a default trace id that is a random setup for both trace id and parent id
35
35
  *
36
- * @example ```ts
36
+ * @example
37
+ * ```ts
37
38
  * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();
38
39
  * ```
39
40
  *
@@ -43,7 +44,8 @@ export declare class TraceHeader {
43
44
  /**
44
45
  * Should be able to consume a trace header from the headers of an http request
45
46
  *
46
- * @example ```ts
47
+ * @example
48
+ * ```ts
47
49
  * const traceHeader = TraceHeader.fromTraceHeader(headers);
48
50
  * ```
49
51
  *
@@ -54,7 +56,8 @@ export declare class TraceHeader {
54
56
  /**
55
57
  * Should be able to convert the trace header to the format that is used in the headers of an http request
56
58
  *
57
- * @example ```ts
59
+ * @example
60
+ * ```ts
58
61
  * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();
59
62
  * const headers = traceHeader.toTraceHeader();
60
63
  * ```
@@ -70,7 +73,8 @@ export declare class TraceHeader {
70
73
  * as the key of the eventName as breadcrumbs appending onto previous breadcrumbs with the - infix if exists. And the
71
74
  * trace parent gets updated as according to the docs
72
75
  *
73
- * @example ```ts
76
+ * @example
77
+ * ```ts
74
78
  * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();
75
79
  * const newTraceHeader = traceHeader.withEvent("newEvent");
76
80
  * ```
@@ -65,7 +65,8 @@ export class TraceHeader {
65
65
  /**
66
66
  * Creating a default trace id that is a random setup for both trace id and parent id
67
67
  *
68
- * @example ```ts
68
+ * @example
69
+ * ```ts
69
70
  * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();
70
71
  * ```
71
72
  *
@@ -78,7 +79,8 @@ export class TraceHeader {
78
79
  /**
79
80
  * Should be able to consume a trace header from the headers of an http request
80
81
  *
81
- * @example ```ts
82
+ * @example
83
+ * ```ts
82
84
  * const traceHeader = TraceHeader.fromTraceHeader(headers);
83
85
  * ```
84
86
  *
@@ -104,7 +106,8 @@ export class TraceHeader {
104
106
  /**
105
107
  * Should be able to convert the trace header to the format that is used in the headers of an http request
106
108
  *
107
- * @example ```ts
109
+ * @example
110
+ * ```ts
108
111
  * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();
109
112
  * const headers = traceHeader.toTraceHeader();
110
113
  * ```
@@ -124,7 +127,8 @@ export class TraceHeader {
124
127
  * as the key of the eventName as breadcrumbs appending onto previous breadcrumbs with the - infix if exists. And the
125
128
  * trace parent gets updated as according to the docs
126
129
  *
127
- * @example ```ts
130
+ * @example
131
+ * ```ts
128
132
  * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();
129
133
  * const newTraceHeader = traceHeader.withEvent("newEvent");
130
134
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"traceHeader.js","sourceRoot":"","sources":["../../../src/tracing/traceHeader.ts"],"names":[],"mappings":"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","sourcesContent":["function generateRandomHexString(numBytes: number) {\n const hexPairs = new Array(numBytes).fill(0).map(() =>\n Math.floor(Math.random() * 16)\n .toString(16)\n .padStart(2, \"0\"),\n );\n return hexPairs.join(\"\");\n}\n\n/**\n * These are the headers that are used in the trace headers, could be found in the spec\n *\n * @see https://www.w3.org/TR/trace-context/#design-overview\n */\n\nexport const TRACE_HEADER_NAME = \"traceparent\";\n/**\n * These are the headers that are used in the trace headers, could be found in the spec\n *\n * @see https://www.w3.org/TR/trace-context/#design-overview\n */\nexport const TRACE_HEADER_STATE = \"tracestate\";\n\nconst clientTraceId = generateRandomHexString(16);\n/**\n * Some tools that are useful when dealing with the values\n * of the trace header. Follows the W3C trace context standard.\n *\n * @see https://www.w3.org/TR/trace-context/\n */\nexport class TraceHeader {\n readonly traceId: string;\n readonly parentId: string;\n readonly traceFlags: string;\n readonly traceState: Record<string, string>;\n\n /**\n * Initializes a new instance with the provided trace identifiers and state information.\n *\n * @param {string} traceId The unique identifier for the trace\n * @param {string} parentId The identifier of the parent trace\n * @param {string} traceFlags Flags containing trace-related options\n * @param {TraceHeader[\"traceState\"]} traceState The trace state information for additional trace context\n */\n constructor(\n traceId: string,\n parentId: string,\n traceFlags: string,\n traceState: TraceHeader[\"traceState\"],\n ) {\n this.traceId = traceId;\n this.parentId = parentId;\n this.traceFlags = traceFlags;\n this.traceState = traceState;\n }\n\n /**\n * Creating a default trace id that is a random setup for both trace id and parent id\n *\n * @example ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();\n * ```\n *\n * @returns {TraceHeader} A default trace header\n */\n static default() {\n return new TraceHeader(\n clientTraceId,\n generateRandomHexString(8),\n \"00\", //Means no flag have been set, and no sampled state https://www.w3.org/TR/trace-context/#trace-flags\n {},\n );\n }\n /**\n * Should be able to consume a trace header from the headers of an http request\n *\n * @example ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers);\n * ```\n *\n * @param {Record<string,string>} headers The headers from the http request\n * @returns {TraceHeader | undefined} The trace header object, or nothing if not found\n */\n static fromTraceHeader(\n headers: Record<string, string>,\n ): TraceHeader | undefined {\n if (!headers[TRACE_HEADER_NAME]) {\n return undefined;\n }\n const [version, traceId, parentId, traceFlags] =\n headers[TRACE_HEADER_NAME]?.split(\"-\");\n\n const traceState =\n headers[TRACE_HEADER_STATE]?.split(\",\").reduce(\n (acc, curr) => {\n const [key, value] = curr.split(\"=\");\n acc[key] = value;\n return acc;\n },\n {} as Record<string, string>,\n ) || {};\n if (version !== \"00\") {\n console.debug(\n new Error(\n `Invalid version for traceheader: ${headers[TRACE_HEADER_NAME]}`,\n ),\n );\n return undefined;\n }\n return new TraceHeader(traceId, parentId, traceFlags, traceState);\n }\n\n /**\n * Should be able to convert the trace header to the format that is used in the headers of an http request\n *\n * @example ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();\n * const headers = traceHeader.toTraceHeader();\n * ```\n *\n * @returns {{traceparent: string, tracestate: string}} The trace header in the format of a record, used in our http client\n */\n toTraceHeader() {\n return {\n [TRACE_HEADER_NAME]: `00-${this.traceId}-${this.parentId}-${this.traceFlags}`,\n [TRACE_HEADER_STATE]: Object.entries(this.traceState)\n .map(([key, value]) => `${key}=${value}`)\n .join(\",\"),\n } as const;\n }\n\n /**\n * Should be able to create a new trace header with a new event in the trace state,\n * as the key of the eventName as breadcrumbs appending onto previous breadcrumbs with the - infix if exists. And the\n * trace parent gets updated as according to the docs\n *\n * @example ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();\n * const newTraceHeader = traceHeader.withEvent(\"newEvent\");\n * ```\n *\n * @param {string} eventName The key of the new event\n * @returns {TraceHeader} The new trace header\n */\n withEvent(eventName: string): TraceHeader {\n const breadcrumbs = this.traceState.breadcrumbs\n ? `${this.traceState.breadcrumbs}-${eventName}`\n : eventName;\n return new TraceHeader(this.traceId, this.parentId, this.traceFlags, {\n ...this.traceState,\n breadcrumbs,\n });\n }\n}\n"]}
1
+ {"version":3,"file":"traceHeader.js","sourceRoot":"","sources":["../../../src/tracing/traceHeader.ts"],"names":[],"mappings":"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","sourcesContent":["function generateRandomHexString(numBytes: number) {\n const hexPairs = new Array(numBytes).fill(0).map(() =>\n Math.floor(Math.random() * 16)\n .toString(16)\n .padStart(2, \"0\"),\n );\n return hexPairs.join(\"\");\n}\n\n/**\n * These are the headers that are used in the trace headers, could be found in the spec\n *\n * @see https://www.w3.org/TR/trace-context/#design-overview\n */\n\nexport const TRACE_HEADER_NAME = \"traceparent\";\n/**\n * These are the headers that are used in the trace headers, could be found in the spec\n *\n * @see https://www.w3.org/TR/trace-context/#design-overview\n */\nexport const TRACE_HEADER_STATE = \"tracestate\";\n\nconst clientTraceId = generateRandomHexString(16);\n/**\n * Some tools that are useful when dealing with the values\n * of the trace header. Follows the W3C trace context standard.\n *\n * @see https://www.w3.org/TR/trace-context/\n */\nexport class TraceHeader {\n readonly traceId: string;\n readonly parentId: string;\n readonly traceFlags: string;\n readonly traceState: Record<string, string>;\n\n /**\n * Initializes a new instance with the provided trace identifiers and state information.\n *\n * @param {string} traceId The unique identifier for the trace\n * @param {string} parentId The identifier of the parent trace\n * @param {string} traceFlags Flags containing trace-related options\n * @param {TraceHeader[\"traceState\"]} traceState The trace state information for additional trace context\n */\n constructor(\n traceId: string,\n parentId: string,\n traceFlags: string,\n traceState: TraceHeader[\"traceState\"],\n ) {\n this.traceId = traceId;\n this.parentId = parentId;\n this.traceFlags = traceFlags;\n this.traceState = traceState;\n }\n\n /**\n * Creating a default trace id that is a random setup for both trace id and parent id\n *\n * @example\n * ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();\n * ```\n *\n * @returns {TraceHeader} A default trace header\n */\n static default() {\n return new TraceHeader(\n clientTraceId,\n generateRandomHexString(8),\n \"00\", //Means no flag have been set, and no sampled state https://www.w3.org/TR/trace-context/#trace-flags\n {},\n );\n }\n /**\n * Should be able to consume a trace header from the headers of an http request\n *\n * @example\n * ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers);\n * ```\n *\n * @param {Record<string,string>} headers The headers from the http request\n * @returns {TraceHeader | undefined} The trace header object, or nothing if not found\n */\n static fromTraceHeader(\n headers: Record<string, string>,\n ): TraceHeader | undefined {\n if (!headers[TRACE_HEADER_NAME]) {\n return undefined;\n }\n const [version, traceId, parentId, traceFlags] =\n headers[TRACE_HEADER_NAME]?.split(\"-\");\n\n const traceState =\n headers[TRACE_HEADER_STATE]?.split(\",\").reduce(\n (acc, curr) => {\n const [key, value] = curr.split(\"=\");\n acc[key] = value;\n return acc;\n },\n {} as Record<string, string>,\n ) || {};\n if (version !== \"00\") {\n console.debug(\n new Error(\n `Invalid version for traceheader: ${headers[TRACE_HEADER_NAME]}`,\n ),\n );\n return undefined;\n }\n return new TraceHeader(traceId, parentId, traceFlags, traceState);\n }\n\n /**\n * Should be able to convert the trace header to the format that is used in the headers of an http request\n *\n * @example\n * ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();\n * const headers = traceHeader.toTraceHeader();\n * ```\n *\n * @returns {{traceparent: string, tracestate: string}} The trace header in the format of a record, used in our http client\n */\n toTraceHeader() {\n return {\n [TRACE_HEADER_NAME]: `00-${this.traceId}-${this.parentId}-${this.traceFlags}`,\n [TRACE_HEADER_STATE]: Object.entries(this.traceState)\n .map(([key, value]) => `${key}=${value}`)\n .join(\",\"),\n } as const;\n }\n\n /**\n * Should be able to create a new trace header with a new event in the trace state,\n * as the key of the eventName as breadcrumbs appending onto previous breadcrumbs with the - infix if exists. And the\n * trace parent gets updated as according to the docs\n *\n * @example\n * ```ts\n * const traceHeader = TraceHeader.fromTraceHeader(headers) || TraceHeader.default();\n * const newTraceHeader = traceHeader.withEvent(\"newEvent\");\n * ```\n *\n * @param {string} eventName The key of the new event\n * @returns {TraceHeader} The new trace header\n */\n withEvent(eventName: string): TraceHeader {\n const breadcrumbs = this.traceState.breadcrumbs\n ? `${this.traceState.breadcrumbs}-${eventName}`\n : eventName;\n return new TraceHeader(this.traceId, this.parentId, this.traceFlags, {\n ...this.traceState,\n breadcrumbs,\n });\n }\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Internal registry mapping chain IDs to Alchemy RPC base URLs.
3
3
  * This replaces the need for custom chain exports with embedded Alchemy URLs.
4
+ *
5
+ * Auto-generated by the ws-tools CLI — do not manually edit.
4
6
  */
5
7
  export declare const ALCHEMY_RPC_MAPPING: Record<number, string>;
6
8
  /**
@@ -12,7 +14,6 @@ export declare const ALCHEMY_RPC_MAPPING: Record<number, string>;
12
14
  * @example
13
15
  * ```ts
14
16
  * const rpcUrl = getAlchemyRpcUrl(1); // "https://eth-mainnet.g.alchemy.com/v2"
15
- * const customUrl = getAlchemyRpcUrl(999); // undefined
16
17
  * ```
17
18
  */
18
19
  export declare function getAlchemyRpcUrl(chainId: number): string | undefined;
@@ -1,64 +1,101 @@
1
1
  /**
2
2
  * Internal registry mapping chain IDs to Alchemy RPC base URLs.
3
3
  * This replaces the need for custom chain exports with embedded Alchemy URLs.
4
+ *
5
+ * Auto-generated by the ws-tools CLI — do not manually edit.
4
6
  */
5
7
  export const ALCHEMY_RPC_MAPPING = {
6
- // Ethereum networks
7
- 1: "https://eth-mainnet.g.alchemy.com/v2", // mainnet
8
- 11155111: "https://eth-sepolia.g.alchemy.com/v2", // sepolia
9
- 5: "https://eth-goerli.g.alchemy.com/v2", // goerli
10
- // Arbitrum networks
11
- 42161: "https://arb-mainnet.g.alchemy.com/v2", // arbitrum
12
- 421613: "https://arb-goerli.g.alchemy.com/v2", // arbitrumGoerli
13
- 421614: "https://arb-sepolia.g.alchemy.com/v2", // arbitrumSepolia
14
- // Optimism networks
15
- 10: "https://opt-mainnet.g.alchemy.com/v2", // optimism
16
- 420: "https://opt-goerli.g.alchemy.com/v2", // optimismGoerli
17
- 11155420: "https://opt-sepolia.g.alchemy.com/v2", // optimismSepolia
18
- // Base networks
19
- 8453: "https://base-mainnet.g.alchemy.com/v2", // base
20
- 84531: "https://base-goerli.g.alchemy.com/v2", // baseGoerli
8
+ // ANIME networks
9
+ 6900: "https://anime-sepolia.g.alchemy.com/v2", // animeSepolia
10
+ 69000: "https://anime-mainnet.g.alchemy.com/v2", // animeMainnet
11
+ // APECHAIN networks
12
+ 33139: "https://apechain-mainnet.g.alchemy.com/v2", // apechainMainnet
13
+ 33111: "https://apechain-curtis.g.alchemy.com/v2", // apechainCurtis
14
+ // ARB networks
15
+ 421614: "https://arb-sepolia.g.alchemy.com/v2", // arbSepolia
16
+ 42161: "https://arb-mainnet.g.alchemy.com/v2", // arbMainnet
17
+ // ARBNOVA networks
18
+ 42170: "https://arbnova-mainnet.g.alchemy.com/v2", // arbnovaMainnet
19
+ // ARC networks
20
+ 5042002: "https://arc-testnet.g.alchemy.com/v2", // arcTestnet
21
+ // BASE networks
22
+ 8453: "https://base-mainnet.g.alchemy.com/v2", // baseMainnet
21
23
  84532: "https://base-sepolia.g.alchemy.com/v2", // baseSepolia
22
- // Polygon networks
23
- 137: "https://polygon-mainnet.g.alchemy.com/v2", // polygon
24
- 80001: "https://polygon-mumbai.g.alchemy.com/v2", // polygonMumbai
25
- 80002: "https://polygon-amoy.g.alchemy.com/v2", // polygonAmoy
26
- // World Chain networks
27
- 480: "https://worldchain-mainnet.g.alchemy.com/v2", // worldChain
28
- 4801: "https://worldchain-sepolia.g.alchemy.com/v2", // worldChainSepolia
29
- // Shape networks
30
- 360: "https://shape-mainnet.g.alchemy.com/v2", // shape
31
- 11011: "https://shape-sepolia.g.alchemy.com/v2", // shapeSepolia
32
- // Unichain networks
33
- 130: "https://unichain-mainnet.g.alchemy.com/v2", // unichainMainnet
34
- 1301: "https://unichain-sepolia.g.alchemy.com/v2", // unichainSepolia
35
- // Soneium networks
36
- 1868: "https://soneium-mainnet.g.alchemy.com/v2", // soneiumMainnet
37
- 1946: "https://soneium-minato.g.alchemy.com/v2", // soneiumMinato
38
- // OPBNB networks
39
- 204: "https://opbnb-mainnet.g.alchemy.com/v2", // opbnbMainnet
40
- 5611: "https://opbnb-testnet.g.alchemy.com/v2", // opbnbTestnet
41
- // BeraChain networks
42
- 80084: "https://berachain-bartio.g.alchemy.com/v2", // beraChainBartio
43
- // Ink networks
24
+ // BERACHAIN networks
25
+ 80094: "https://berachain-mainnet.g.alchemy.com/v2", // berachainMainnet
26
+ 80069: "https://berachain-bepolia.g.alchemy.com/v2", // berachainBepolia
27
+ // BNB networks
28
+ 97: "https://bnb-testnet.g.alchemy.com/v2", // bnbTestnet
29
+ 56: "https://bnb-mainnet.g.alchemy.com/v2", // bnbMainnet
30
+ // CELO networks
31
+ 11142220: "https://celo-sepolia.g.alchemy.com/v2", // celoSepolia
32
+ 42220: "https://celo-mainnet.g.alchemy.com/v2", // celoMainnet
33
+ // CLANKERMON networks
34
+ 510525: "https://clankermon-mainnet.g.alchemy.com/v2", // clankermonMainnet
35
+ // ETH networks
36
+ 1: "https://eth-mainnet.g.alchemy.com/v2", // ethMainnet
37
+ 11155111: "https://eth-sepolia.g.alchemy.com/v2", // ethSepolia
38
+ // FRAX networks
39
+ 252: "https://frax-mainnet.g.alchemy.com/v2", // fraxMainnet
40
+ // GENSYN networks
41
+ 685685: "https://gensyn-testnet.g.alchemy.com/v2", // gensynTestnet
42
+ // HYPERLIQUID networks
43
+ 999: "https://hyperliquid-mainnet.g.alchemy.com/v2", // hyperliquidMainnet
44
+ // INK networks
44
45
  57073: "https://ink-mainnet.g.alchemy.com/v2", // inkMainnet
45
46
  763373: "https://ink-sepolia.g.alchemy.com/v2", // inkSepolia
46
- // Monad networks
47
+ // MATIC networks
48
+ 80002: "https://polygon-amoy.g.alchemy.com/v2", // maticAmoy
49
+ 137: "https://polygon-mainnet.g.alchemy.com/v2", // maticMainnet
50
+ // MEGAETH networks
51
+ 4326: "https://megaeth-mainnet.g.alchemy.com/v2", // megaethMainnet
52
+ 6343: "https://megaeth-testnet.g.alchemy.com/v2", // megaethTestnet
53
+ // MONAD networks
47
54
  10143: "https://monad-testnet.g.alchemy.com/v2", // monadTestnet
48
- // Openloot networks
55
+ 143: "https://monad-mainnet.g.alchemy.com/v2", // monadMainnet
56
+ // MYTHOS networks
57
+ 42018: "https://mythos-mainnet.g.alchemy.com/v2", // mythosMainnet
58
+ // OPBNB networks
59
+ 5611: "https://opbnb-testnet.g.alchemy.com/v2", // opbnbTestnet
60
+ 204: "https://opbnb-mainnet.g.alchemy.com/v2", // opbnbMainnet
61
+ // OPENLOOT networks
49
62
  905905: "https://openloot-sepolia.g.alchemy.com/v2", // openlootSepolia
50
- // Gensyn networks
51
- 685685: "https://gensyn-testnet.g.alchemy.com/v2", // gensynTestnet
52
- // Rise networks
63
+ // OPT networks
64
+ 10: "https://opt-mainnet.g.alchemy.com/v2", // optMainnet
65
+ 11155420: "https://opt-sepolia.g.alchemy.com/v2", // optSepolia
66
+ // PLASMA networks
67
+ 9746: "https://plasma-testnet.g.alchemy.com/v2", // plasmaTestnet
68
+ 9745: "https://plasma-mainnet.g.alchemy.com/v2", // plasmaMainnet
69
+ // POLYNOMIAL networks
70
+ 8008: "https://polynomial-mainnet.g.alchemy.com/v2", // polynomialMainnet
71
+ 80008: "https://polynomial-sepolia.g.alchemy.com/v2", // polynomialSepolia
72
+ // RISE networks
53
73
  11155931: "https://rise-testnet.g.alchemy.com/v2", // riseTestnet
54
- // Story networks
74
+ // ROBINHOOD networks
75
+ 46630: "https://robinhood-testnet.g.alchemy.com/v2", // robinhoodTestnet
76
+ // SHAPE networks
77
+ 11011: "https://shape-sepolia.g.alchemy.com/v2", // shapeSepolia
78
+ 360: "https://shape-mainnet.g.alchemy.com/v2", // shapeMainnet
79
+ // SONEIUM networks
80
+ 1946: "https://soneium-minato.g.alchemy.com/v2", // soneiumMinato
81
+ 1868: "https://soneium-mainnet.g.alchemy.com/v2", // soneiumMainnet
82
+ // STABLE networks
83
+ 988: "https://stable-mainnet.g.alchemy.com/v2", // stableMainnet
84
+ 2201: "https://stable-testnet.g.alchemy.com/v2", // stableTestnet
85
+ // STORY networks
55
86
  1514: "https://story-mainnet.g.alchemy.com/v2", // storyMainnet
56
87
  1315: "https://story-aeneid.g.alchemy.com/v2", // storyAeneid
57
- // Celo networks
58
- 42220: "https://celo-mainnet.g.alchemy.com/v2", // celoMainnet
59
- 44787: "https://celo-alfajores.g.alchemy.com/v2", // celoAlfajores
60
- // Tea networks
61
- 10218: "https://tea-sepolia.g.alchemy.com/v2", // teaSepolia
88
+ // UNICHAIN networks
89
+ 1301: "https://unichain-sepolia.g.alchemy.com/v2", // unichainSepolia
90
+ 130: "https://unichain-mainnet.g.alchemy.com/v2", // unichainMainnet
91
+ // WORLDCHAIN networks
92
+ 4801: "https://worldchain-sepolia.g.alchemy.com/v2", // worldchainSepolia
93
+ 480: "https://worldchain-mainnet.g.alchemy.com/v2", // worldchainMainnet
94
+ // WORLDMOBILECHAIN networks
95
+ 869: "https://worldmobilechain-mainnet.g.alchemy.com/v2", // worldmobilechainMainnet
96
+ // ZORA networks
97
+ 7777777: "https://zora-mainnet.g.alchemy.com/v2", // zoraMainnet
98
+ 999999999: "https://zora-sepolia.g.alchemy.com/v2", // zoraSepolia
62
99
  };
63
100
  /**
64
101
  * Gets the Alchemy RPC base URL for a given chain ID.
@@ -69,7 +106,6 @@ export const ALCHEMY_RPC_MAPPING = {
69
106
  * @example
70
107
  * ```ts
71
108
  * const rpcUrl = getAlchemyRpcUrl(1); // "https://eth-mainnet.g.alchemy.com/v2"
72
- * const customUrl = getAlchemyRpcUrl(999); // undefined
73
109
  * ```
74
110
  */
75
111
  export function getAlchemyRpcUrl(chainId) {
@@ -1 +1 @@
1
- {"version":3,"file":"chainRegistry.js","sourceRoot":"","sources":["../../../src/transport/chainRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,oBAAoB;IACpB,CAAC,EAAE,sCAAsC,EAAE,UAAU;IACrD,QAAQ,EAAE,sCAAsC,EAAE,UAAU;IAC5D,CAAC,EAAE,qCAAqC,EAAE,SAAS;IAEnD,oBAAoB;IACpB,KAAK,EAAE,sCAAsC,EAAE,WAAW;IAC1D,MAAM,EAAE,qCAAqC,EAAE,iBAAiB;IAChE,MAAM,EAAE,sCAAsC,EAAE,kBAAkB;IAElE,oBAAoB;IACpB,EAAE,EAAE,sCAAsC,EAAE,WAAW;IACvD,GAAG,EAAE,qCAAqC,EAAE,iBAAiB;IAC7D,QAAQ,EAAE,sCAAsC,EAAE,kBAAkB;IAEpE,gBAAgB;IAChB,IAAI,EAAE,uCAAuC,EAAE,OAAO;IACtD,KAAK,EAAE,sCAAsC,EAAE,aAAa;IAC5D,KAAK,EAAE,uCAAuC,EAAE,cAAc;IAE9D,mBAAmB;IACnB,GAAG,EAAE,0CAA0C,EAAE,UAAU;IAC3D,KAAK,EAAE,yCAAyC,EAAE,gBAAgB;IAClE,KAAK,EAAE,uCAAuC,EAAE,cAAc;IAE9D,uBAAuB;IACvB,GAAG,EAAE,6CAA6C,EAAE,aAAa;IACjE,IAAI,EAAE,6CAA6C,EAAE,oBAAoB;IAEzE,iBAAiB;IACjB,GAAG,EAAE,wCAAwC,EAAE,QAAQ;IACvD,KAAK,EAAE,wCAAwC,EAAE,eAAe;IAEhE,oBAAoB;IACpB,GAAG,EAAE,2CAA2C,EAAE,kBAAkB;IACpE,IAAI,EAAE,2CAA2C,EAAE,kBAAkB;IAErE,mBAAmB;IACnB,IAAI,EAAE,0CAA0C,EAAE,iBAAiB;IACnE,IAAI,EAAE,yCAAyC,EAAE,gBAAgB;IAEjE,iBAAiB;IACjB,GAAG,EAAE,wCAAwC,EAAE,eAAe;IAC9D,IAAI,EAAE,wCAAwC,EAAE,eAAe;IAE/D,qBAAqB;IACrB,KAAK,EAAE,2CAA2C,EAAE,kBAAkB;IAEtE,eAAe;IACf,KAAK,EAAE,sCAAsC,EAAE,aAAa;IAC5D,MAAM,EAAE,sCAAsC,EAAE,aAAa;IAE7D,iBAAiB;IACjB,KAAK,EAAE,wCAAwC,EAAE,eAAe;IAEhE,oBAAoB;IACpB,MAAM,EAAE,2CAA2C,EAAE,kBAAkB;IAEvE,kBAAkB;IAClB,MAAM,EAAE,yCAAyC,EAAE,gBAAgB;IAEnE,gBAAgB;IAChB,QAAQ,EAAE,uCAAuC,EAAE,cAAc;IAEjE,iBAAiB;IACjB,IAAI,EAAE,wCAAwC,EAAE,eAAe;IAC/D,IAAI,EAAE,uCAAuC,EAAE,cAAc;IAE7D,gBAAgB;IAChB,KAAK,EAAE,uCAAuC,EAAE,cAAc;IAC9D,KAAK,EAAE,yCAAyC,EAAE,gBAAgB;IAElE,eAAe;IACf,KAAK,EAAE,sCAAsC,EAAE,aAAa;CAC7D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,OAAO,IAAI,mBAAmB,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC","sourcesContent":["/**\n * Internal registry mapping chain IDs to Alchemy RPC base URLs.\n * This replaces the need for custom chain exports with embedded Alchemy URLs.\n */\nexport const ALCHEMY_RPC_MAPPING: Record<number, string> = {\n // Ethereum networks\n 1: \"https://eth-mainnet.g.alchemy.com/v2\", // mainnet\n 11155111: \"https://eth-sepolia.g.alchemy.com/v2\", // sepolia\n 5: \"https://eth-goerli.g.alchemy.com/v2\", // goerli\n\n // Arbitrum networks\n 42161: \"https://arb-mainnet.g.alchemy.com/v2\", // arbitrum\n 421613: \"https://arb-goerli.g.alchemy.com/v2\", // arbitrumGoerli\n 421614: \"https://arb-sepolia.g.alchemy.com/v2\", // arbitrumSepolia\n\n // Optimism networks\n 10: \"https://opt-mainnet.g.alchemy.com/v2\", // optimism\n 420: \"https://opt-goerli.g.alchemy.com/v2\", // optimismGoerli\n 11155420: \"https://opt-sepolia.g.alchemy.com/v2\", // optimismSepolia\n\n // Base networks\n 8453: \"https://base-mainnet.g.alchemy.com/v2\", // base\n 84531: \"https://base-goerli.g.alchemy.com/v2\", // baseGoerli\n 84532: \"https://base-sepolia.g.alchemy.com/v2\", // baseSepolia\n\n // Polygon networks\n 137: \"https://polygon-mainnet.g.alchemy.com/v2\", // polygon\n 80001: \"https://polygon-mumbai.g.alchemy.com/v2\", // polygonMumbai\n 80002: \"https://polygon-amoy.g.alchemy.com/v2\", // polygonAmoy\n\n // World Chain networks\n 480: \"https://worldchain-mainnet.g.alchemy.com/v2\", // worldChain\n 4801: \"https://worldchain-sepolia.g.alchemy.com/v2\", // worldChainSepolia\n\n // Shape networks\n 360: \"https://shape-mainnet.g.alchemy.com/v2\", // shape\n 11011: \"https://shape-sepolia.g.alchemy.com/v2\", // shapeSepolia\n\n // Unichain networks\n 130: \"https://unichain-mainnet.g.alchemy.com/v2\", // unichainMainnet\n 1301: \"https://unichain-sepolia.g.alchemy.com/v2\", // unichainSepolia\n\n // Soneium networks\n 1868: \"https://soneium-mainnet.g.alchemy.com/v2\", // soneiumMainnet\n 1946: \"https://soneium-minato.g.alchemy.com/v2\", // soneiumMinato\n\n // OPBNB networks\n 204: \"https://opbnb-mainnet.g.alchemy.com/v2\", // opbnbMainnet\n 5611: \"https://opbnb-testnet.g.alchemy.com/v2\", // opbnbTestnet\n\n // BeraChain networks\n 80084: \"https://berachain-bartio.g.alchemy.com/v2\", // beraChainBartio\n\n // Ink networks\n 57073: \"https://ink-mainnet.g.alchemy.com/v2\", // inkMainnet\n 763373: \"https://ink-sepolia.g.alchemy.com/v2\", // inkSepolia\n\n // Monad networks\n 10143: \"https://monad-testnet.g.alchemy.com/v2\", // monadTestnet\n\n // Openloot networks\n 905905: \"https://openloot-sepolia.g.alchemy.com/v2\", // openlootSepolia\n\n // Gensyn networks\n 685685: \"https://gensyn-testnet.g.alchemy.com/v2\", // gensynTestnet\n\n // Rise networks\n 11155931: \"https://rise-testnet.g.alchemy.com/v2\", // riseTestnet\n\n // Story networks\n 1514: \"https://story-mainnet.g.alchemy.com/v2\", // storyMainnet\n 1315: \"https://story-aeneid.g.alchemy.com/v2\", // storyAeneid\n\n // Celo networks\n 42220: \"https://celo-mainnet.g.alchemy.com/v2\", // celoMainnet\n 44787: \"https://celo-alfajores.g.alchemy.com/v2\", // celoAlfajores\n\n // Tea networks\n 10218: \"https://tea-sepolia.g.alchemy.com/v2\", // teaSepolia\n};\n\n/**\n * Gets the Alchemy RPC base URL for a given chain ID.\n *\n * @param {number} chainId The chain ID to lookup\n * @returns {string | undefined} The Alchemy RPC base URL or undefined if not supported\n *\n * @example\n * ```ts\n * const rpcUrl = getAlchemyRpcUrl(1); // \"https://eth-mainnet.g.alchemy.com/v2\"\n * const customUrl = getAlchemyRpcUrl(999); // undefined\n * ```\n */\nexport function getAlchemyRpcUrl(chainId: number): string | undefined {\n return ALCHEMY_RPC_MAPPING[chainId];\n}\n\n/**\n * Checks if a chain ID is supported by the Alchemy RPC registry.\n *\n * @param {number} chainId The chain ID to check\n * @returns {boolean} True if the chain is supported, false otherwise\n */\nexport function isChainSupported(chainId: number): boolean {\n return chainId in ALCHEMY_RPC_MAPPING;\n}\n\n/**\n * Gets all supported chain IDs from the registry.\n *\n * @returns {number[]} Array of supported chain IDs\n */\nexport function getSupportedChainIds(): number[] {\n return Object.keys(ALCHEMY_RPC_MAPPING).map(Number);\n}\n"]}
1
+ {"version":3,"file":"chainRegistry.js","sourceRoot":"","sources":["../../../src/transport/chainRegistry.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Internal registry mapping chain IDs to Alchemy RPC base URLs.\n * This replaces the need for custom chain exports with embedded Alchemy URLs.\n *\n * Auto-generated by the ws-tools CLI — do not manually edit.\n */\nexport const ALCHEMY_RPC_MAPPING: Record<number, string> = {\n // ANIME networks\n 6900: \"https://anime-sepolia.g.alchemy.com/v2\", // animeSepolia\n 69000: \"https://anime-mainnet.g.alchemy.com/v2\", // animeMainnet\n\n // APECHAIN networks\n 33139: \"https://apechain-mainnet.g.alchemy.com/v2\", // apechainMainnet\n 33111: \"https://apechain-curtis.g.alchemy.com/v2\", // apechainCurtis\n\n // ARB networks\n 421614: \"https://arb-sepolia.g.alchemy.com/v2\", // arbSepolia\n 42161: \"https://arb-mainnet.g.alchemy.com/v2\", // arbMainnet\n\n // ARBNOVA networks\n 42170: \"https://arbnova-mainnet.g.alchemy.com/v2\", // arbnovaMainnet\n\n // ARC networks\n 5042002: \"https://arc-testnet.g.alchemy.com/v2\", // arcTestnet\n\n // BASE networks\n 8453: \"https://base-mainnet.g.alchemy.com/v2\", // baseMainnet\n 84532: \"https://base-sepolia.g.alchemy.com/v2\", // baseSepolia\n\n // BERACHAIN networks\n 80094: \"https://berachain-mainnet.g.alchemy.com/v2\", // berachainMainnet\n 80069: \"https://berachain-bepolia.g.alchemy.com/v2\", // berachainBepolia\n\n // BNB networks\n 97: \"https://bnb-testnet.g.alchemy.com/v2\", // bnbTestnet\n 56: \"https://bnb-mainnet.g.alchemy.com/v2\", // bnbMainnet\n\n // CELO networks\n 11142220: \"https://celo-sepolia.g.alchemy.com/v2\", // celoSepolia\n 42220: \"https://celo-mainnet.g.alchemy.com/v2\", // celoMainnet\n\n // CLANKERMON networks\n 510525: \"https://clankermon-mainnet.g.alchemy.com/v2\", // clankermonMainnet\n\n // ETH networks\n 1: \"https://eth-mainnet.g.alchemy.com/v2\", // ethMainnet\n 11155111: \"https://eth-sepolia.g.alchemy.com/v2\", // ethSepolia\n\n // FRAX networks\n 252: \"https://frax-mainnet.g.alchemy.com/v2\", // fraxMainnet\n\n // GENSYN networks\n 685685: \"https://gensyn-testnet.g.alchemy.com/v2\", // gensynTestnet\n\n // HYPERLIQUID networks\n 999: \"https://hyperliquid-mainnet.g.alchemy.com/v2\", // hyperliquidMainnet\n\n // INK networks\n 57073: \"https://ink-mainnet.g.alchemy.com/v2\", // inkMainnet\n 763373: \"https://ink-sepolia.g.alchemy.com/v2\", // inkSepolia\n\n // MATIC networks\n 80002: \"https://polygon-amoy.g.alchemy.com/v2\", // maticAmoy\n 137: \"https://polygon-mainnet.g.alchemy.com/v2\", // maticMainnet\n\n // MEGAETH networks\n 4326: \"https://megaeth-mainnet.g.alchemy.com/v2\", // megaethMainnet\n 6343: \"https://megaeth-testnet.g.alchemy.com/v2\", // megaethTestnet\n\n // MONAD networks\n 10143: \"https://monad-testnet.g.alchemy.com/v2\", // monadTestnet\n 143: \"https://monad-mainnet.g.alchemy.com/v2\", // monadMainnet\n\n // MYTHOS networks\n 42018: \"https://mythos-mainnet.g.alchemy.com/v2\", // mythosMainnet\n\n // OPBNB networks\n 5611: \"https://opbnb-testnet.g.alchemy.com/v2\", // opbnbTestnet\n 204: \"https://opbnb-mainnet.g.alchemy.com/v2\", // opbnbMainnet\n\n // OPENLOOT networks\n 905905: \"https://openloot-sepolia.g.alchemy.com/v2\", // openlootSepolia\n\n // OPT networks\n 10: \"https://opt-mainnet.g.alchemy.com/v2\", // optMainnet\n 11155420: \"https://opt-sepolia.g.alchemy.com/v2\", // optSepolia\n\n // PLASMA networks\n 9746: \"https://plasma-testnet.g.alchemy.com/v2\", // plasmaTestnet\n 9745: \"https://plasma-mainnet.g.alchemy.com/v2\", // plasmaMainnet\n\n // POLYNOMIAL networks\n 8008: \"https://polynomial-mainnet.g.alchemy.com/v2\", // polynomialMainnet\n 80008: \"https://polynomial-sepolia.g.alchemy.com/v2\", // polynomialSepolia\n\n // RISE networks\n 11155931: \"https://rise-testnet.g.alchemy.com/v2\", // riseTestnet\n\n // ROBINHOOD networks\n 46630: \"https://robinhood-testnet.g.alchemy.com/v2\", // robinhoodTestnet\n\n // SHAPE networks\n 11011: \"https://shape-sepolia.g.alchemy.com/v2\", // shapeSepolia\n 360: \"https://shape-mainnet.g.alchemy.com/v2\", // shapeMainnet\n\n // SONEIUM networks\n 1946: \"https://soneium-minato.g.alchemy.com/v2\", // soneiumMinato\n 1868: \"https://soneium-mainnet.g.alchemy.com/v2\", // soneiumMainnet\n\n // STABLE networks\n 988: \"https://stable-mainnet.g.alchemy.com/v2\", // stableMainnet\n 2201: \"https://stable-testnet.g.alchemy.com/v2\", // stableTestnet\n\n // STORY networks\n 1514: \"https://story-mainnet.g.alchemy.com/v2\", // storyMainnet\n 1315: \"https://story-aeneid.g.alchemy.com/v2\", // storyAeneid\n\n // UNICHAIN networks\n 1301: \"https://unichain-sepolia.g.alchemy.com/v2\", // unichainSepolia\n 130: \"https://unichain-mainnet.g.alchemy.com/v2\", // unichainMainnet\n\n // WORLDCHAIN networks\n 4801: \"https://worldchain-sepolia.g.alchemy.com/v2\", // worldchainSepolia\n 480: \"https://worldchain-mainnet.g.alchemy.com/v2\", // worldchainMainnet\n\n // WORLDMOBILECHAIN networks\n 869: \"https://worldmobilechain-mainnet.g.alchemy.com/v2\", // worldmobilechainMainnet\n\n // ZORA networks\n 7777777: \"https://zora-mainnet.g.alchemy.com/v2\", // zoraMainnet\n 999999999: \"https://zora-sepolia.g.alchemy.com/v2\", // zoraSepolia\n};\n\n/**\n * Gets the Alchemy RPC base URL for a given chain ID.\n *\n * @param {number} chainId The chain ID to lookup\n * @returns {string | undefined} The Alchemy RPC base URL or undefined if not supported\n *\n * @example\n * ```ts\n * const rpcUrl = getAlchemyRpcUrl(1); // \"https://eth-mainnet.g.alchemy.com/v2\"\n * ```\n */\nexport function getAlchemyRpcUrl(chainId: number): string | undefined {\n return ALCHEMY_RPC_MAPPING[chainId];\n}\n\n/**\n * Checks if a chain ID is supported by the Alchemy RPC registry.\n *\n * @param {number} chainId The chain ID to check\n * @returns {boolean} True if the chain is supported, false otherwise\n */\nexport function isChainSupported(chainId: number): boolean {\n return chainId in ALCHEMY_RPC_MAPPING;\n}\n\n/**\n * Gets all supported chain IDs from the registry.\n *\n * @returns {number[]} Array of supported chain IDs\n */\nexport function getSupportedChainIds(): number[] {\n return Object.keys(ALCHEMY_RPC_MAPPING).map(Number);\n}\n"]}