@bitshard.io/bitshard-sdk 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -5
- package/dist/BitShardSDK.d.ts +2 -5
- package/dist/BitShardSDK.d.ts.map +1 -1
- package/dist/BitShardSDK.js +6 -93
- package/dist/BitShardSDK.js.map +1 -1
- package/dist/chains/config.d.ts +8 -4
- package/dist/chains/config.d.ts.map +1 -1
- package/dist/chains/config.js +88 -4
- package/dist/chains/config.js.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/BitShardSDK.ts +6 -99
- package/src/chains/config.ts +91 -5
- package/src/core/types.ts +6 -0
package/README.md
CHANGED
|
@@ -47,8 +47,9 @@ console.log('Bitcoin address:', addresses.bitcoin);
|
|
|
47
47
|
|
|
48
48
|
// Sign a message
|
|
49
49
|
const message = 'Hello BitShard!';
|
|
50
|
-
const signature = await sdk.personalSign(message, wallet.keyshares, {
|
|
51
|
-
threshold: 2
|
|
50
|
+
const signature = await sdk.personalSign(message, wallet.keyshares, {
|
|
51
|
+
threshold: 2,
|
|
52
|
+
publicKey: wallet.publicKey
|
|
52
53
|
});
|
|
53
54
|
```
|
|
54
55
|
|
|
@@ -92,8 +93,6 @@ The SDK is organized into several modules:
|
|
|
92
93
|
|
|
93
94
|
Reusing pre-signatures will expose your private key. The SDK includes built-in protection against pre-signature reuse, but developers must ensure proper handling in their applications.
|
|
94
95
|
|
|
95
|
-
See [SECURITY.md](./SECURITY.md) for detailed security considerations.
|
|
96
|
-
|
|
97
96
|
## Documentation
|
|
98
97
|
|
|
99
98
|
- [Architecture Design](./ARCHITECTURE_DESIGN.md)
|
|
@@ -117,6 +116,96 @@ MIT
|
|
|
117
116
|
|
|
118
117
|
Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.
|
|
119
118
|
|
|
119
|
+
# Releasing new version guide
|
|
120
|
+
|
|
121
|
+
This document describes the standard release process for publishing the `@bitshard.io/bitshard-sdk` package.
|
|
122
|
+
|
|
123
|
+
> **Rule:** Always push commits and tags to GitHub **before** publishing to npm.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Release Steps
|
|
128
|
+
|
|
129
|
+
### 1. Commit your changes
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
git add .
|
|
133
|
+
git commit -m "feat: describe your change"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### 2. Bump version and create a Git tag
|
|
139
|
+
|
|
140
|
+
Patch release example (`0.0.1` → `0.0.2`):
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npm version patch
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
This will:
|
|
147
|
+
- Update `package.json`
|
|
148
|
+
- Create an annotated Git tag (e.g. `v0.0.2`)
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### 3. Push commits and tags to GitHub
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
git push origin main --follow-tags
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
This ensures Git is the source of truth before publishing.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 4. Build the package
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
npm run build
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Verify:
|
|
169
|
+
- Build output exists (e.g. `dist/`)
|
|
170
|
+
- `package.json` points to built files (`main`, `module`, `types`)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### 5. Publish to npm
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npm publish --access public
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
> Scoped packages default to private unless published with `--access public` or `publishConfig.access = "public"`.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### 6. Verify release
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npm view @bitshard.io/bitshard-sdk version
|
|
188
|
+
git tag --list
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Release Checklist
|
|
194
|
+
|
|
195
|
+
- [ ] Changes committed
|
|
196
|
+
- [ ] Version bumped via `npm version`
|
|
197
|
+
- [ ] Commits and tags pushed to GitHub
|
|
198
|
+
- [ ] Build successful
|
|
199
|
+
- [ ] npm publish successful
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Notes
|
|
204
|
+
|
|
205
|
+
- Do not publish to npm without a Git tag
|
|
206
|
+
- Ensure you are authenticated with npm using a publish-capable token (2FA-compliant)
|
|
207
|
+
- Prefer annotated tags for all releases
|
|
208
|
+
|
|
120
209
|
## Support
|
|
121
210
|
|
|
122
|
-
For support, please open an issue on GitHub or contact
|
|
211
|
+
For support, please open an issue on GitHub or contact dev@bitshard.io
|
package/dist/BitShardSDK.d.ts
CHANGED
|
@@ -67,9 +67,9 @@ export declare class BitShardSDK {
|
|
|
67
67
|
* @param options Signing options including publicKey for v calculation
|
|
68
68
|
* @returns Signature result
|
|
69
69
|
*/
|
|
70
|
-
personalSign(message: string, keyshares: Keyshare[], options
|
|
70
|
+
personalSign(message: string, keyshares: Keyshare[], options: {
|
|
71
71
|
threshold?: number;
|
|
72
|
-
publicKey
|
|
72
|
+
publicKey: string;
|
|
73
73
|
}): Promise<SignatureResult>;
|
|
74
74
|
/**
|
|
75
75
|
* Sign a personal message using a wallet (convenience method)
|
|
@@ -149,9 +149,6 @@ export declare class BitShardSDK {
|
|
|
149
149
|
* @returns Bitcoin configuration or undefined
|
|
150
150
|
*/
|
|
151
151
|
getBitcoinConfig(): BitcoinConfig | undefined;
|
|
152
|
-
/**
|
|
153
|
-
* Initialize default chain configurations
|
|
154
|
-
*/
|
|
155
152
|
private initializeDefaultChains;
|
|
156
153
|
/**
|
|
157
154
|
* Get preset chain configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitShardSDK.d.ts","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EACR,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,aAAa,EAChB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"BitShardSDK.d.ts","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":"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"}
|
package/dist/BitShardSDK.js
CHANGED
|
@@ -5,6 +5,7 @@ const dkls_wasm_ll_node_1 = require("@silencelaboratories/dkls-wasm-ll-node");
|
|
|
5
5
|
const DKLSService_1 = require("./core/DKLSService");
|
|
6
6
|
const DKLSParty_1 = require("./core/DKLSParty");
|
|
7
7
|
const addresses_1 = require("./crypto/addresses");
|
|
8
|
+
const config_1 = require("./chains/config");
|
|
8
9
|
/**
|
|
9
10
|
* Main SDK class for BitShard MPC operations
|
|
10
11
|
*/
|
|
@@ -122,7 +123,7 @@ class BitShardSDK {
|
|
|
122
123
|
* @param options Signing options including publicKey for v calculation
|
|
123
124
|
* @returns Signature result
|
|
124
125
|
*/
|
|
125
|
-
async personalSign(message, keyshares, options
|
|
126
|
+
async personalSign(message, keyshares, options) {
|
|
126
127
|
// Prepare message with EIP-191 prefix
|
|
127
128
|
const messageBytes = Buffer.from(message, 'utf8');
|
|
128
129
|
const prefix = `\x19Ethereum Signed Message:\n${messageBytes.length}`;
|
|
@@ -133,7 +134,7 @@ class BitShardSDK {
|
|
|
133
134
|
// Hash the prefixed message with Keccak256 (Ethereum standard)
|
|
134
135
|
const { keccak256 } = require('viem');
|
|
135
136
|
const messageHash = Buffer.from(keccak256(prefixedMessage).slice(2), 'hex');
|
|
136
|
-
// Sign with DKLS (
|
|
137
|
+
// Sign with DKLS (public key required for v calculation)
|
|
137
138
|
const threshold = options.threshold ?? keyshares.length;
|
|
138
139
|
const publicKey = options.publicKey;
|
|
139
140
|
return this.dklsService.signMessage(messageHash, keyshares, threshold, publicKey);
|
|
@@ -258,98 +259,10 @@ class BitShardSDK {
|
|
|
258
259
|
getBitcoinConfig() {
|
|
259
260
|
return this.bitcoinConfig;
|
|
260
261
|
}
|
|
261
|
-
/**
|
|
262
|
-
* Initialize default chain configurations
|
|
263
|
-
*/
|
|
264
262
|
initializeDefaultChains() {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
name: 'Ethereum Mainnet',
|
|
269
|
-
rpcUrl: 'https://eth.llamarpc.com',
|
|
270
|
-
explorer: 'https://etherscan.io',
|
|
271
|
-
nativeCurrency: {
|
|
272
|
-
name: 'Ether',
|
|
273
|
-
symbol: 'ETH',
|
|
274
|
-
decimals: 18
|
|
275
|
-
}
|
|
276
|
-
});
|
|
277
|
-
// Arbitrum One
|
|
278
|
-
this.chains.set('arbitrum-one', {
|
|
279
|
-
chainId: 42161,
|
|
280
|
-
name: 'Arbitrum One',
|
|
281
|
-
rpcUrl: 'https://arb1.arbitrum.io/rpc',
|
|
282
|
-
explorer: 'https://arbiscan.io',
|
|
283
|
-
nativeCurrency: {
|
|
284
|
-
name: 'Ether',
|
|
285
|
-
symbol: 'ETH',
|
|
286
|
-
decimals: 18
|
|
287
|
-
},
|
|
288
|
-
gasConfig: {
|
|
289
|
-
maxFeePerGas: '0.1',
|
|
290
|
-
maxPriorityFeePerGas: '0.01'
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
// Arbitrum Nova
|
|
294
|
-
this.chains.set('arbitrum-nova', {
|
|
295
|
-
chainId: 42170,
|
|
296
|
-
name: 'Arbitrum Nova',
|
|
297
|
-
rpcUrl: 'https://nova.arbitrum.io/rpc',
|
|
298
|
-
explorer: 'https://nova.arbiscan.io',
|
|
299
|
-
nativeCurrency: {
|
|
300
|
-
name: 'Ether',
|
|
301
|
-
symbol: 'ETH',
|
|
302
|
-
decimals: 18
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
// Arbitrum Sepolia
|
|
306
|
-
this.chains.set('arbitrum-sepolia', {
|
|
307
|
-
chainId: 421614,
|
|
308
|
-
name: 'Arbitrum Sepolia',
|
|
309
|
-
rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
310
|
-
explorer: 'https://sepolia.arbiscan.io',
|
|
311
|
-
nativeCurrency: {
|
|
312
|
-
name: 'Ether',
|
|
313
|
-
symbol: 'ETH',
|
|
314
|
-
decimals: 18
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
// Polygon
|
|
318
|
-
this.chains.set('polygon', {
|
|
319
|
-
chainId: 137,
|
|
320
|
-
name: 'Polygon',
|
|
321
|
-
rpcUrl: 'https://polygon-rpc.com',
|
|
322
|
-
explorer: 'https://polygonscan.com',
|
|
323
|
-
nativeCurrency: {
|
|
324
|
-
name: 'MATIC',
|
|
325
|
-
symbol: 'MATIC',
|
|
326
|
-
decimals: 18
|
|
327
|
-
}
|
|
328
|
-
});
|
|
329
|
-
// BNB Smart Chain
|
|
330
|
-
this.chains.set('bnb', {
|
|
331
|
-
chainId: 56,
|
|
332
|
-
name: 'BNB Smart Chain',
|
|
333
|
-
rpcUrl: 'https://bsc-dataseed.binance.org',
|
|
334
|
-
explorer: 'https://bscscan.com',
|
|
335
|
-
nativeCurrency: {
|
|
336
|
-
name: 'BNB',
|
|
337
|
-
symbol: 'BNB',
|
|
338
|
-
decimals: 18
|
|
339
|
-
}
|
|
340
|
-
});
|
|
341
|
-
// Avalanche C-Chain
|
|
342
|
-
this.chains.set('avalanche', {
|
|
343
|
-
chainId: 43114,
|
|
344
|
-
name: 'Avalanche C-Chain',
|
|
345
|
-
rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
|
|
346
|
-
explorer: 'https://snowtrace.io',
|
|
347
|
-
nativeCurrency: {
|
|
348
|
-
name: 'AVAX',
|
|
349
|
-
symbol: 'AVAX',
|
|
350
|
-
decimals: 18
|
|
351
|
-
}
|
|
352
|
-
});
|
|
263
|
+
for (const [name, config] of Object.entries(config_1.ALL_CHAINS)) {
|
|
264
|
+
this.chains.set(name, config);
|
|
265
|
+
}
|
|
353
266
|
}
|
|
354
267
|
/**
|
|
355
268
|
* Get preset chain configuration
|
package/dist/BitShardSDK.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitShardSDK.js","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":";;;AAAA,8EAAkE;AAClE,oDAAiD;AACjD,gDAA6C;AAU7C,kDAAqD;
|
|
1
|
+
{"version":3,"file":"BitShardSDK.js","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":";;;AAAA,8EAAkE;AAClE,oDAAiD;AACjD,gDAA6C;AAU7C,kDAAqD;AACrD,4CAA6C;AAE7C;;GAEG;AACH,MAAa,WAAW;IAKpB;;;OAGG;IACH,YAAY,SAAoB,EAAE;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QAExB,4BAA4B;QAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,gCAAgC;QAChC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;gBAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAIpB,EAAE;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtF,uBAAuB;QACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAExF,oCAAoC;QACpC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAC3C,4BAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CACtE,CAAC;QAEF,OAAO;YACH,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS;YACT,MAAM,EAAE;gBACJ,YAAY;gBACZ,SAAS;gBACT,QAAQ;aACX;SACJ,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,SAAqB;QAC3C,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CAAC,UAAoB;QAC5C,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACxB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YACzD,OAAO,4BAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAmB;QAC3B,OAAO,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAQ;QAClB,OAAO,yBAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,IAAS;QACrB,OAAO,yBAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,YAAoB;QAChC,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,YAAY,CAAC,CAAC;QAChD,OAAO;YACH,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS,EAAE,SAAS,CAAC,SAAS;SACjC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CACd,OAAe,EACf,SAAqB,EACrB,OAAkD;QAElD,sCAAsC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,iCAAiC,YAAY,CAAC,MAAM,EAAE,CAAC;QACtE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3B,YAAY;SACf,CAAC,CAAC;QAEH,+DAA+D;QAC/D,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE5E,yDAAyD;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,sBAAsB,CACxB,OAAe,EACf,MAAmB,EACnB,UAAkC,EAAE;QAEpC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE;YAChD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;YACvD,SAAS,EAAE,MAAM,CAAC,SAAS;SAC9B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CACV,IAAyB,EACzB,SAAqB,EACrB,UAAsD,EAAE;QAExD,uCAAuC;QACvC,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ;YACtC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,yBAAyB,CAC3B,IAAyB,EACzB,MAAmB,EACnB,UAAkC,EAAE;QAEpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;YACvD,SAAS,EAAE,MAAM,CAAC,SAAS;SAC9B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACjB,SAAc,EACd,SAAqB,EACrB,UAAkC,EAAE;QAEpC,yCAAyC;QACzC,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;QAEjF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CACpB,EAAO,EACP,SAAqB,EACrB,UAAkC,EAAE;QAEpC,6CAA6C;QAC7C,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QAE5E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEjF,OAAO,SAAS,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,IAAY,EAAE,MAAmB;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,IAAY;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,MAAqB;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAEO,uBAAuB;QAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAU,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,IAAY;QAC/B,4BAA4B;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;CACJ;AApVD,kCAoVC"}
|
package/dist/chains/config.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
1
|
+
import type { ChainConfig, BitcoinConfig } from '../core/types';
|
|
2
|
+
export type { ChainConfig, BitcoinConfig };
|
|
3
|
+
export declare const ARBITRUM_CHAINS: Record<string, ChainConfig>;
|
|
4
|
+
export declare const EVM_CHAINS: Record<string, ChainConfig>;
|
|
5
|
+
export declare const ALL_CHAINS: Record<string, ChainConfig>;
|
|
6
|
+
export declare function getChain(network: string): ChainConfig;
|
|
7
|
+
export declare function getArbitrumChains(): Record<string, ChainConfig>;
|
|
8
|
+
export declare function getSupportedChains(): Record<string, ChainConfig>;
|
|
5
9
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEhE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AAE3C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA8BvD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAmClD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAGlD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAMrD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAE/D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAEhE"}
|
package/dist/chains/config.js
CHANGED
|
@@ -1,7 +1,91 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Chain configuration registry
|
|
4
|
-
*/
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
3
|
+
exports.ALL_CHAINS = exports.EVM_CHAINS = exports.ARBITRUM_CHAINS = void 0;
|
|
4
|
+
exports.getChain = getChain;
|
|
5
|
+
exports.getArbitrumChains = getArbitrumChains;
|
|
6
|
+
exports.getSupportedChains = getSupportedChains;
|
|
7
|
+
exports.ARBITRUM_CHAINS = {
|
|
8
|
+
'arbitrum-one': {
|
|
9
|
+
chainId: 42161,
|
|
10
|
+
name: 'Arbitrum One',
|
|
11
|
+
rpcUrl: 'https://arb1.arbitrum.io/rpc',
|
|
12
|
+
explorer: 'https://arbiscan.io',
|
|
13
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
14
|
+
gasConfig: { maxFeePerGas: '0.1', maxPriorityFeePerGas: '0.01' },
|
|
15
|
+
isTestnet: false,
|
|
16
|
+
alchemySubdomain: 'arb-mainnet',
|
|
17
|
+
},
|
|
18
|
+
'arbitrum-nova': {
|
|
19
|
+
chainId: 42170,
|
|
20
|
+
name: 'Arbitrum Nova',
|
|
21
|
+
rpcUrl: 'https://nova.arbitrum.io/rpc',
|
|
22
|
+
explorer: 'https://nova.arbiscan.io',
|
|
23
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
24
|
+
isTestnet: false,
|
|
25
|
+
alchemySubdomain: 'arbnova-mainnet',
|
|
26
|
+
},
|
|
27
|
+
'arbitrum-sepolia': {
|
|
28
|
+
chainId: 421614,
|
|
29
|
+
name: 'Arbitrum Sepolia',
|
|
30
|
+
rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
31
|
+
explorer: 'https://sepolia.arbiscan.io',
|
|
32
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
33
|
+
isTestnet: true,
|
|
34
|
+
faucetUrl: 'https://faucet.quicknode.com/arbitrum/sepolia',
|
|
35
|
+
alchemySubdomain: 'arb-sepolia',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
exports.EVM_CHAINS = {
|
|
39
|
+
'ethereum': {
|
|
40
|
+
chainId: 1,
|
|
41
|
+
name: 'Ethereum Mainnet',
|
|
42
|
+
rpcUrl: 'https://eth.llamarpc.com',
|
|
43
|
+
explorer: 'https://etherscan.io',
|
|
44
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
45
|
+
isTestnet: false,
|
|
46
|
+
alchemySubdomain: 'eth-mainnet',
|
|
47
|
+
},
|
|
48
|
+
'polygon': {
|
|
49
|
+
chainId: 137,
|
|
50
|
+
name: 'Polygon',
|
|
51
|
+
rpcUrl: 'https://polygon-rpc.com',
|
|
52
|
+
explorer: 'https://polygonscan.com',
|
|
53
|
+
nativeCurrency: { name: 'MATIC', symbol: 'MATIC', decimals: 18 },
|
|
54
|
+
isTestnet: false,
|
|
55
|
+
alchemySubdomain: 'polygon-mainnet',
|
|
56
|
+
},
|
|
57
|
+
'bnb': {
|
|
58
|
+
chainId: 56,
|
|
59
|
+
name: 'BNB Smart Chain',
|
|
60
|
+
rpcUrl: 'https://bsc-dataseed.binance.org',
|
|
61
|
+
explorer: 'https://bscscan.com',
|
|
62
|
+
nativeCurrency: { name: 'BNB', symbol: 'BNB', decimals: 18 },
|
|
63
|
+
isTestnet: false,
|
|
64
|
+
},
|
|
65
|
+
'avalanche': {
|
|
66
|
+
chainId: 43114,
|
|
67
|
+
name: 'Avalanche C-Chain',
|
|
68
|
+
rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
|
|
69
|
+
explorer: 'https://snowtrace.io',
|
|
70
|
+
nativeCurrency: { name: 'AVAX', symbol: 'AVAX', decimals: 18 },
|
|
71
|
+
isTestnet: false,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
exports.ALL_CHAINS = {
|
|
75
|
+
...exports.ARBITRUM_CHAINS,
|
|
76
|
+
...exports.EVM_CHAINS,
|
|
77
|
+
};
|
|
78
|
+
function getChain(network) {
|
|
79
|
+
const chain = exports.ALL_CHAINS[network];
|
|
80
|
+
if (!chain) {
|
|
81
|
+
throw new Error(`Unknown chain: ${network}. Supported: ${Object.keys(exports.ALL_CHAINS).join(', ')}`);
|
|
82
|
+
}
|
|
83
|
+
return chain;
|
|
84
|
+
}
|
|
85
|
+
function getArbitrumChains() {
|
|
86
|
+
return { ...exports.ARBITRUM_CHAINS };
|
|
87
|
+
}
|
|
88
|
+
function getSupportedChains() {
|
|
89
|
+
return { ...exports.ALL_CHAINS };
|
|
90
|
+
}
|
|
7
91
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -190,6 +190,12 @@ export interface ChainConfig {
|
|
|
190
190
|
maxFeePerGas?: string;
|
|
191
191
|
maxPriorityFeePerGas?: string;
|
|
192
192
|
};
|
|
193
|
+
/** Whether this is a testnet */
|
|
194
|
+
isTestnet?: boolean;
|
|
195
|
+
/** Faucet URL for testnets */
|
|
196
|
+
faucetUrl?: string;
|
|
197
|
+
/** Alchemy subdomain for API access (e.g. "arb-sepolia") */
|
|
198
|
+
alchemySubdomain?: string;
|
|
193
199
|
}
|
|
194
200
|
/**
|
|
195
201
|
* Bitcoin network configuration
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/BitShardSDK.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type {
|
|
|
11
11
|
BitcoinConfig
|
|
12
12
|
} from './core/types';
|
|
13
13
|
import { deriveAddresses } from './crypto/addresses';
|
|
14
|
+
import { ALL_CHAINS } from './chains/config';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Main SDK class for BitShard MPC operations
|
|
@@ -156,7 +157,7 @@ export class BitShardSDK {
|
|
|
156
157
|
async personalSign(
|
|
157
158
|
message: string,
|
|
158
159
|
keyshares: Keyshare[],
|
|
159
|
-
options: { threshold?: number; publicKey
|
|
160
|
+
options: { threshold?: number; publicKey: string }
|
|
160
161
|
): Promise<SignatureResult> {
|
|
161
162
|
// Prepare message with EIP-191 prefix
|
|
162
163
|
const messageBytes = Buffer.from(message, 'utf8');
|
|
@@ -170,7 +171,7 @@ export class BitShardSDK {
|
|
|
170
171
|
const { keccak256 } = require('viem');
|
|
171
172
|
const messageHash = Buffer.from(keccak256(prefixedMessage).slice(2), 'hex');
|
|
172
173
|
|
|
173
|
-
// Sign with DKLS (
|
|
174
|
+
// Sign with DKLS (public key required for v calculation)
|
|
174
175
|
const threshold = options.threshold ?? keyshares.length;
|
|
175
176
|
const publicKey = options.publicKey;
|
|
176
177
|
|
|
@@ -332,104 +333,10 @@ export class BitShardSDK {
|
|
|
332
333
|
return this.bitcoinConfig;
|
|
333
334
|
}
|
|
334
335
|
|
|
335
|
-
/**
|
|
336
|
-
* Initialize default chain configurations
|
|
337
|
-
*/
|
|
338
336
|
private initializeDefaultChains(): void {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
name: 'Ethereum Mainnet',
|
|
343
|
-
rpcUrl: 'https://eth.llamarpc.com',
|
|
344
|
-
explorer: 'https://etherscan.io',
|
|
345
|
-
nativeCurrency: {
|
|
346
|
-
name: 'Ether',
|
|
347
|
-
symbol: 'ETH',
|
|
348
|
-
decimals: 18
|
|
349
|
-
}
|
|
350
|
-
});
|
|
351
|
-
|
|
352
|
-
// Arbitrum One
|
|
353
|
-
this.chains.set('arbitrum-one', {
|
|
354
|
-
chainId: 42161,
|
|
355
|
-
name: 'Arbitrum One',
|
|
356
|
-
rpcUrl: 'https://arb1.arbitrum.io/rpc',
|
|
357
|
-
explorer: 'https://arbiscan.io',
|
|
358
|
-
nativeCurrency: {
|
|
359
|
-
name: 'Ether',
|
|
360
|
-
symbol: 'ETH',
|
|
361
|
-
decimals: 18
|
|
362
|
-
},
|
|
363
|
-
gasConfig: {
|
|
364
|
-
maxFeePerGas: '0.1',
|
|
365
|
-
maxPriorityFeePerGas: '0.01'
|
|
366
|
-
}
|
|
367
|
-
});
|
|
368
|
-
|
|
369
|
-
// Arbitrum Nova
|
|
370
|
-
this.chains.set('arbitrum-nova', {
|
|
371
|
-
chainId: 42170,
|
|
372
|
-
name: 'Arbitrum Nova',
|
|
373
|
-
rpcUrl: 'https://nova.arbitrum.io/rpc',
|
|
374
|
-
explorer: 'https://nova.arbiscan.io',
|
|
375
|
-
nativeCurrency: {
|
|
376
|
-
name: 'Ether',
|
|
377
|
-
symbol: 'ETH',
|
|
378
|
-
decimals: 18
|
|
379
|
-
}
|
|
380
|
-
});
|
|
381
|
-
|
|
382
|
-
// Arbitrum Sepolia
|
|
383
|
-
this.chains.set('arbitrum-sepolia', {
|
|
384
|
-
chainId: 421614,
|
|
385
|
-
name: 'Arbitrum Sepolia',
|
|
386
|
-
rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
387
|
-
explorer: 'https://sepolia.arbiscan.io',
|
|
388
|
-
nativeCurrency: {
|
|
389
|
-
name: 'Ether',
|
|
390
|
-
symbol: 'ETH',
|
|
391
|
-
decimals: 18
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
|
|
395
|
-
// Polygon
|
|
396
|
-
this.chains.set('polygon', {
|
|
397
|
-
chainId: 137,
|
|
398
|
-
name: 'Polygon',
|
|
399
|
-
rpcUrl: 'https://polygon-rpc.com',
|
|
400
|
-
explorer: 'https://polygonscan.com',
|
|
401
|
-
nativeCurrency: {
|
|
402
|
-
name: 'MATIC',
|
|
403
|
-
symbol: 'MATIC',
|
|
404
|
-
decimals: 18
|
|
405
|
-
}
|
|
406
|
-
});
|
|
407
|
-
|
|
408
|
-
// BNB Smart Chain
|
|
409
|
-
this.chains.set('bnb', {
|
|
410
|
-
chainId: 56,
|
|
411
|
-
name: 'BNB Smart Chain',
|
|
412
|
-
rpcUrl: 'https://bsc-dataseed.binance.org',
|
|
413
|
-
explorer: 'https://bscscan.com',
|
|
414
|
-
nativeCurrency: {
|
|
415
|
-
name: 'BNB',
|
|
416
|
-
symbol: 'BNB',
|
|
417
|
-
decimals: 18
|
|
418
|
-
}
|
|
419
|
-
});
|
|
420
|
-
|
|
421
|
-
// Avalanche C-Chain
|
|
422
|
-
this.chains.set('avalanche', {
|
|
423
|
-
chainId: 43114,
|
|
424
|
-
name: 'Avalanche C-Chain',
|
|
425
|
-
rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
|
|
426
|
-
explorer: 'https://snowtrace.io',
|
|
427
|
-
nativeCurrency: {
|
|
428
|
-
name: 'AVAX',
|
|
429
|
-
symbol: 'AVAX',
|
|
430
|
-
decimals: 18
|
|
431
|
-
}
|
|
432
|
-
});
|
|
337
|
+
for (const [name, config] of Object.entries(ALL_CHAINS)) {
|
|
338
|
+
this.chains.set(name, config);
|
|
339
|
+
}
|
|
433
340
|
}
|
|
434
341
|
|
|
435
342
|
/**
|
package/src/chains/config.ts
CHANGED
|
@@ -1,7 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
* Chain configuration registry
|
|
3
|
-
*/
|
|
1
|
+
import type { ChainConfig, BitcoinConfig } from '../core/types';
|
|
4
2
|
|
|
5
|
-
export type { ChainConfig, BitcoinConfig }
|
|
3
|
+
export type { ChainConfig, BitcoinConfig };
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
export const ARBITRUM_CHAINS: Record<string, ChainConfig> = {
|
|
6
|
+
'arbitrum-one': {
|
|
7
|
+
chainId: 42161,
|
|
8
|
+
name: 'Arbitrum One',
|
|
9
|
+
rpcUrl: 'https://arb1.arbitrum.io/rpc',
|
|
10
|
+
explorer: 'https://arbiscan.io',
|
|
11
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
12
|
+
gasConfig: { maxFeePerGas: '0.1', maxPriorityFeePerGas: '0.01' },
|
|
13
|
+
isTestnet: false,
|
|
14
|
+
alchemySubdomain: 'arb-mainnet',
|
|
15
|
+
},
|
|
16
|
+
'arbitrum-nova': {
|
|
17
|
+
chainId: 42170,
|
|
18
|
+
name: 'Arbitrum Nova',
|
|
19
|
+
rpcUrl: 'https://nova.arbitrum.io/rpc',
|
|
20
|
+
explorer: 'https://nova.arbiscan.io',
|
|
21
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
22
|
+
isTestnet: false,
|
|
23
|
+
alchemySubdomain: 'arbnova-mainnet',
|
|
24
|
+
},
|
|
25
|
+
'arbitrum-sepolia': {
|
|
26
|
+
chainId: 421614,
|
|
27
|
+
name: 'Arbitrum Sepolia',
|
|
28
|
+
rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
29
|
+
explorer: 'https://sepolia.arbiscan.io',
|
|
30
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
31
|
+
isTestnet: true,
|
|
32
|
+
faucetUrl: 'https://faucet.quicknode.com/arbitrum/sepolia',
|
|
33
|
+
alchemySubdomain: 'arb-sepolia',
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const EVM_CHAINS: Record<string, ChainConfig> = {
|
|
38
|
+
'ethereum': {
|
|
39
|
+
chainId: 1,
|
|
40
|
+
name: 'Ethereum Mainnet',
|
|
41
|
+
rpcUrl: 'https://eth.llamarpc.com',
|
|
42
|
+
explorer: 'https://etherscan.io',
|
|
43
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
44
|
+
isTestnet: false,
|
|
45
|
+
alchemySubdomain: 'eth-mainnet',
|
|
46
|
+
},
|
|
47
|
+
'polygon': {
|
|
48
|
+
chainId: 137,
|
|
49
|
+
name: 'Polygon',
|
|
50
|
+
rpcUrl: 'https://polygon-rpc.com',
|
|
51
|
+
explorer: 'https://polygonscan.com',
|
|
52
|
+
nativeCurrency: { name: 'MATIC', symbol: 'MATIC', decimals: 18 },
|
|
53
|
+
isTestnet: false,
|
|
54
|
+
alchemySubdomain: 'polygon-mainnet',
|
|
55
|
+
},
|
|
56
|
+
'bnb': {
|
|
57
|
+
chainId: 56,
|
|
58
|
+
name: 'BNB Smart Chain',
|
|
59
|
+
rpcUrl: 'https://bsc-dataseed.binance.org',
|
|
60
|
+
explorer: 'https://bscscan.com',
|
|
61
|
+
nativeCurrency: { name: 'BNB', symbol: 'BNB', decimals: 18 },
|
|
62
|
+
isTestnet: false,
|
|
63
|
+
},
|
|
64
|
+
'avalanche': {
|
|
65
|
+
chainId: 43114,
|
|
66
|
+
name: 'Avalanche C-Chain',
|
|
67
|
+
rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
|
|
68
|
+
explorer: 'https://snowtrace.io',
|
|
69
|
+
nativeCurrency: { name: 'AVAX', symbol: 'AVAX', decimals: 18 },
|
|
70
|
+
isTestnet: false,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export const ALL_CHAINS: Record<string, ChainConfig> = {
|
|
75
|
+
...ARBITRUM_CHAINS,
|
|
76
|
+
...EVM_CHAINS,
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export function getChain(network: string): ChainConfig {
|
|
80
|
+
const chain = ALL_CHAINS[network];
|
|
81
|
+
if (!chain) {
|
|
82
|
+
throw new Error(`Unknown chain: ${network}. Supported: ${Object.keys(ALL_CHAINS).join(', ')}`);
|
|
83
|
+
}
|
|
84
|
+
return chain;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export function getArbitrumChains(): Record<string, ChainConfig> {
|
|
88
|
+
return { ...ARBITRUM_CHAINS };
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export function getSupportedChains(): Record<string, ChainConfig> {
|
|
92
|
+
return { ...ALL_CHAINS };
|
|
93
|
+
}
|
package/src/core/types.ts
CHANGED
|
@@ -201,6 +201,12 @@ export interface ChainConfig {
|
|
|
201
201
|
maxFeePerGas?: string;
|
|
202
202
|
maxPriorityFeePerGas?: string;
|
|
203
203
|
};
|
|
204
|
+
/** Whether this is a testnet */
|
|
205
|
+
isTestnet?: boolean;
|
|
206
|
+
/** Faucet URL for testnets */
|
|
207
|
+
faucetUrl?: string;
|
|
208
|
+
/** Alchemy subdomain for API access (e.g. "arb-sepolia") */
|
|
209
|
+
alchemySubdomain?: string;
|
|
204
210
|
}
|
|
205
211
|
|
|
206
212
|
/**
|