@bitshard.io/bitshard-sdk 0.0.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 (117) hide show
  1. package/dist/BitShardSDK.d.ts +156 -0
  2. package/dist/BitShardSDK.d.ts.map +1 -0
  3. package/dist/BitShardSDK.js +350 -0
  4. package/dist/BitShardSDK.js.map +1 -0
  5. package/dist/chains/bitcoin/BitcoinChain.d.ts +6 -0
  6. package/dist/chains/bitcoin/BitcoinChain.d.ts.map +1 -0
  7. package/dist/chains/bitcoin/BitcoinChain.js +10 -0
  8. package/dist/chains/bitcoin/BitcoinChain.js.map +1 -0
  9. package/dist/chains/config.d.ts +5 -0
  10. package/dist/chains/config.d.ts.map +1 -0
  11. package/dist/chains/config.js +7 -0
  12. package/dist/chains/config.js.map +1 -0
  13. package/dist/chains/evm/EVMChain.d.ts +6 -0
  14. package/dist/chains/evm/EVMChain.d.ts.map +1 -0
  15. package/dist/chains/evm/EVMChain.js +10 -0
  16. package/dist/chains/evm/EVMChain.js.map +1 -0
  17. package/dist/core/DKLSParty.d.ts +132 -0
  18. package/dist/core/DKLSParty.d.ts.map +1 -0
  19. package/dist/core/DKLSParty.js +267 -0
  20. package/dist/core/DKLSParty.js.map +1 -0
  21. package/dist/core/DKLSService.d.ts +83 -0
  22. package/dist/core/DKLSService.d.ts.map +1 -0
  23. package/dist/core/DKLSService.js +325 -0
  24. package/dist/core/DKLSService.js.map +1 -0
  25. package/dist/core/ThresholdConfig.d.ts +76 -0
  26. package/dist/core/ThresholdConfig.d.ts.map +1 -0
  27. package/dist/core/ThresholdConfig.js +127 -0
  28. package/dist/core/ThresholdConfig.js.map +1 -0
  29. package/dist/core/types.d.ts +238 -0
  30. package/dist/core/types.d.ts.map +1 -0
  31. package/dist/core/types.js +3 -0
  32. package/dist/core/types.js.map +1 -0
  33. package/dist/crypto/addresses.d.ts +82 -0
  34. package/dist/crypto/addresses.d.ts.map +1 -0
  35. package/dist/crypto/addresses.js +242 -0
  36. package/dist/crypto/addresses.js.map +1 -0
  37. package/dist/crypto/elliptic.d.ts +19 -0
  38. package/dist/crypto/elliptic.d.ts.map +1 -0
  39. package/dist/crypto/elliptic.js +114 -0
  40. package/dist/crypto/elliptic.js.map +1 -0
  41. package/dist/crypto/encoding.d.ts +111 -0
  42. package/dist/crypto/encoding.d.ts.map +1 -0
  43. package/dist/crypto/encoding.js +224 -0
  44. package/dist/crypto/encoding.js.map +1 -0
  45. package/dist/index.d.ts +23 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +58 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/protocols/keygen.d.ts +6 -0
  50. package/dist/protocols/keygen.d.ts.map +1 -0
  51. package/dist/protocols/keygen.js +12 -0
  52. package/dist/protocols/keygen.js.map +1 -0
  53. package/dist/protocols/presignature.d.ts +68 -0
  54. package/dist/protocols/presignature.d.ts.map +1 -0
  55. package/dist/protocols/presignature.js +147 -0
  56. package/dist/protocols/presignature.js.map +1 -0
  57. package/dist/protocols/refresh.d.ts +5 -0
  58. package/dist/protocols/refresh.d.ts.map +1 -0
  59. package/dist/protocols/refresh.js +10 -0
  60. package/dist/protocols/refresh.js.map +1 -0
  61. package/dist/protocols/signing.d.ts +7 -0
  62. package/dist/protocols/signing.d.ts.map +1 -0
  63. package/dist/protocols/signing.js +12 -0
  64. package/dist/protocols/signing.js.map +1 -0
  65. package/dist/rpc/RPCProvider.d.ts +6 -0
  66. package/dist/rpc/RPCProvider.d.ts.map +1 -0
  67. package/dist/rpc/RPCProvider.js +6 -0
  68. package/dist/rpc/RPCProvider.js.map +1 -0
  69. package/dist/rpc/methods.d.ts +5 -0
  70. package/dist/rpc/methods.d.ts.map +1 -0
  71. package/dist/rpc/methods.js +10 -0
  72. package/dist/rpc/methods.js.map +1 -0
  73. package/dist/websocket/coordinator.d.ts +6 -0
  74. package/dist/websocket/coordinator.d.ts.map +1 -0
  75. package/dist/websocket/coordinator.js +10 -0
  76. package/dist/websocket/coordinator.js.map +1 -0
  77. package/dist/websocket/messages.d.ts +9 -0
  78. package/dist/websocket/messages.d.ts.map +1 -0
  79. package/dist/websocket/messages.js +7 -0
  80. package/dist/websocket/messages.js.map +1 -0
  81. package/dist/websocket/session.d.ts +5 -0
  82. package/dist/websocket/session.d.ts.map +1 -0
  83. package/dist/websocket/session.js +7 -0
  84. package/dist/websocket/session.js.map +1 -0
  85. package/dist/wire/format.d.ts +8 -0
  86. package/dist/wire/format.d.ts.map +1 -0
  87. package/dist/wire/format.js +11 -0
  88. package/dist/wire/format.js.map +1 -0
  89. package/dist/wire/validation.d.ts +6 -0
  90. package/dist/wire/validation.d.ts.map +1 -0
  91. package/dist/wire/validation.js +13 -0
  92. package/dist/wire/validation.js.map +1 -0
  93. package/package.json +67 -0
  94. package/src/BitShardSDK.ts +428 -0
  95. package/src/chains/bitcoin/BitcoinChain.ts +7 -0
  96. package/src/chains/config.ts +7 -0
  97. package/src/chains/evm/EVMChain.ts +7 -0
  98. package/src/core/DKLSParty.ts +317 -0
  99. package/src/core/DKLSService.ts +426 -0
  100. package/src/core/ThresholdConfig.ts +159 -0
  101. package/src/core/types.ts +253 -0
  102. package/src/crypto/addresses.ts +282 -0
  103. package/src/crypto/elliptic.ts +133 -0
  104. package/src/crypto/encoding.ts +227 -0
  105. package/src/index.ts +40 -0
  106. package/src/protocols/keygen.ts +8 -0
  107. package/src/protocols/presignature.ts +196 -0
  108. package/src/protocols/refresh.ts +7 -0
  109. package/src/protocols/signing.ts +9 -0
  110. package/src/rpc/RPCProvider.ts +7 -0
  111. package/src/rpc/methods.ts +7 -0
  112. package/src/websocket/coordinator.ts +7 -0
  113. package/src/websocket/messages.ts +11 -0
  114. package/src/websocket/session.ts +7 -0
  115. package/src/wire/format.ts +10 -0
  116. package/src/wire/validation.ts +14 -0
  117. package/test-sdk.js +234 -0
@@ -0,0 +1,156 @@
1
+ import { Keyshare } from '@silencelaboratories/dkls-wasm-ll-node';
2
+ import { DKLSService } from './core/DKLSService';
3
+ import { DKLSParty } from './core/DKLSParty';
4
+ import type { SDKConfig, LocalWallet, PartyConfig, SignatureResult, BlockchainAddresses, ChainConfig, BitcoinConfig } from './core/types';
5
+ /**
6
+ * Main SDK class for BitShard MPC operations
7
+ */
8
+ export declare class BitShardSDK {
9
+ private readonly dklsService;
10
+ private readonly chains;
11
+ private bitcoinConfig?;
12
+ /**
13
+ * Create a new BitShardSDK instance
14
+ * @param config SDK configuration options
15
+ */
16
+ constructor(config?: SDKConfig);
17
+ /**
18
+ * Create a local wallet for testing (all parties in one process)
19
+ * @param config Wallet configuration
20
+ * @returns Local wallet with all keyshares
21
+ */
22
+ createLocalWallet(config?: {
23
+ totalParties?: number;
24
+ threshold?: number;
25
+ partyIds?: number[];
26
+ }): Promise<LocalWallet>;
27
+ /**
28
+ * Create a party for distributed setup
29
+ * @param config Party configuration
30
+ * @returns DKLS party instance
31
+ */
32
+ createParty(config: PartyConfig): DKLSParty;
33
+ /**
34
+ * Convert DKLS Message to wire format
35
+ * @param msg DKLS Message
36
+ * @returns Wire format message
37
+ */
38
+ toWireMessage(msg: any): any;
39
+ /**
40
+ * Convert wire format to DKLS Message
41
+ * @param wire Wire format message
42
+ * @returns DKLS Message
43
+ */
44
+ fromWireMessage(wire: any): any;
45
+ /**
46
+ * Derive addresses from public key
47
+ * @param publicKeyHex Public key in hex format
48
+ * @returns Blockchain addresses
49
+ */
50
+ deriveAddresses(publicKeyHex: string): BlockchainAddresses;
51
+ /**
52
+ * Sign a personal message (EIP-191)
53
+ * @param message Message to sign
54
+ * @param keyshares Keyshares for signing
55
+ * @param options Signing options including publicKey for v calculation
56
+ * @returns Signature result
57
+ */
58
+ personalSign(message: string, keyshares: Keyshare[], options?: {
59
+ threshold?: number;
60
+ publicKey?: string;
61
+ }): Promise<SignatureResult>;
62
+ /**
63
+ * Sign a personal message using a wallet (convenience method)
64
+ * @param message Message to sign
65
+ * @param wallet Local wallet containing keyshares and public key
66
+ * @param options Additional signing options
67
+ * @returns Signature result
68
+ */
69
+ personalSignWithWallet(message: string, wallet: LocalWallet, options?: {
70
+ threshold?: number;
71
+ }): Promise<SignatureResult>;
72
+ /**
73
+ * Sign a raw hash (for transactions)
74
+ * @param hash Hash to sign (32 bytes)
75
+ * @param keyshares Keyshares for signing
76
+ * @param options Signing options including publicKey for v calculation
77
+ * @returns Signature result
78
+ */
79
+ signHash(hash: string | Uint8Array, keyshares: Keyshare[], options?: {
80
+ threshold?: number;
81
+ publicKey?: string;
82
+ }): Promise<SignatureResult>;
83
+ /**
84
+ * Sign a transaction hash using a wallet
85
+ * @param hash Transaction hash to sign
86
+ * @param wallet Local wallet containing keyshares and public key
87
+ * @param options Additional signing options
88
+ * @returns Signature result
89
+ */
90
+ signTransactionWithWallet(hash: string | Uint8Array, wallet: LocalWallet, options?: {
91
+ threshold?: number;
92
+ }): Promise<SignatureResult>;
93
+ /**
94
+ * Sign typed data (EIP-712)
95
+ * @param typedData Typed data to sign
96
+ * @param keyshares Keyshares for signing
97
+ * @param options Signing options
98
+ * @returns Signature result
99
+ */
100
+ signTypedDataV4(typedData: any, keyshares: Keyshare[], options?: {
101
+ threshold?: number;
102
+ }): Promise<SignatureResult>;
103
+ /**
104
+ * Send raw transaction (sign and prepare for broadcast)
105
+ * @param tx Transaction data
106
+ * @param keyshares Keyshares for signing
107
+ * @param options Signing options
108
+ * @returns Signed transaction hash
109
+ */
110
+ sendRawTransaction(tx: any, keyshares: Keyshare[], options?: {
111
+ threshold?: number;
112
+ }): Promise<string>;
113
+ /**
114
+ * Configure a custom chain
115
+ * @param name Chain name
116
+ * @param config Chain configuration
117
+ */
118
+ configureChain(name: string, config: ChainConfig): void;
119
+ /**
120
+ * Use a preset chain configuration
121
+ * @param name Preset name
122
+ */
123
+ usePresetChain(name: string): void;
124
+ /**
125
+ * Configure Bitcoin network
126
+ * @param config Bitcoin configuration
127
+ */
128
+ configureBitcoin(config: BitcoinConfig): void;
129
+ /**
130
+ * Get chain configuration
131
+ * @param name Chain name
132
+ * @returns Chain configuration or undefined
133
+ */
134
+ getChainConfig(name: string): ChainConfig | undefined;
135
+ /**
136
+ * Get Bitcoin configuration
137
+ * @returns Bitcoin configuration or undefined
138
+ */
139
+ getBitcoinConfig(): BitcoinConfig | undefined;
140
+ /**
141
+ * Initialize default chain configurations
142
+ */
143
+ private initializeDefaultChains;
144
+ /**
145
+ * Get preset chain configuration
146
+ * @param name Preset name
147
+ * @returns Chain configuration or undefined
148
+ */
149
+ private getPresetChain;
150
+ /**
151
+ * Get DKLS service instance (for advanced usage)
152
+ * @returns DKLSService instance
153
+ */
154
+ getDKLSService(): DKLSService;
155
+ }
156
+ //# sourceMappingURL=BitShardSDK.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitShardSDK.d.ts","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BitShardSDK = void 0;
4
+ const dkls_wasm_ll_node_1 = require("@silencelaboratories/dkls-wasm-ll-node");
5
+ const DKLSService_1 = require("./core/DKLSService");
6
+ const DKLSParty_1 = require("./core/DKLSParty");
7
+ const addresses_1 = require("./crypto/addresses");
8
+ /**
9
+ * Main SDK class for BitShard MPC operations
10
+ */
11
+ class BitShardSDK {
12
+ /**
13
+ * Create a new BitShardSDK instance
14
+ * @param config SDK configuration options
15
+ */
16
+ constructor(config = {}) {
17
+ this.dklsService = new DKLSService_1.DKLSService();
18
+ this.chains = new Map();
19
+ // Initialize default chains
20
+ this.initializeDefaultChains();
21
+ // Add custom chains from config
22
+ if (config.chains) {
23
+ Object.entries(config.chains).forEach(([name, chainConfig]) => {
24
+ this.chains.set(name, chainConfig);
25
+ });
26
+ }
27
+ // Set Bitcoin config
28
+ if (config.bitcoin) {
29
+ this.bitcoinConfig = config.bitcoin;
30
+ }
31
+ }
32
+ /**
33
+ * Create a local wallet for testing (all parties in one process)
34
+ * @param config Wallet configuration
35
+ * @returns Local wallet with all keyshares
36
+ */
37
+ async createLocalWallet(config = {}) {
38
+ const totalParties = config.totalParties ?? 3;
39
+ const threshold = config.threshold ?? 2;
40
+ const partyIds = config.partyIds ?? Array.from({ length: totalParties }, (_, i) => i);
41
+ // Generate DKG locally
42
+ const dkgResult = await this.dklsService.generateDKG(totalParties, threshold, partyIds);
43
+ // Reconstruct keyshares from base64
44
+ const keyshares = dkgResult.keyshares.map(pk => dkls_wasm_ll_node_1.Keyshare.fromBytes(new Uint8Array(Buffer.from(pk.share, 'base64'))));
45
+ return {
46
+ publicKey: dkgResult.publicKey,
47
+ keyshares,
48
+ config: {
49
+ totalParties,
50
+ threshold,
51
+ partyIds
52
+ }
53
+ };
54
+ }
55
+ /**
56
+ * Create a party for distributed setup
57
+ * @param config Party configuration
58
+ * @returns DKLS party instance
59
+ */
60
+ createParty(config) {
61
+ return new DKLSParty_1.DKLSParty(config);
62
+ }
63
+ /**
64
+ * Convert DKLS Message to wire format
65
+ * @param msg DKLS Message
66
+ * @returns Wire format message
67
+ */
68
+ toWireMessage(msg) {
69
+ return DKLSService_1.DKLSService.toWireMessage(msg);
70
+ }
71
+ /**
72
+ * Convert wire format to DKLS Message
73
+ * @param wire Wire format message
74
+ * @returns DKLS Message
75
+ */
76
+ fromWireMessage(wire) {
77
+ return DKLSService_1.DKLSService.fromWireMessage(wire);
78
+ }
79
+ /**
80
+ * Derive addresses from public key
81
+ * @param publicKeyHex Public key in hex format
82
+ * @returns Blockchain addresses
83
+ */
84
+ deriveAddresses(publicKeyHex) {
85
+ const addresses = (0, addresses_1.deriveAddresses)(publicKeyHex);
86
+ return {
87
+ ethereum: addresses.ethereum,
88
+ bitcoin: addresses.bitcoin,
89
+ cosmos: addresses.cosmos,
90
+ arbitrum: addresses.arbitrum,
91
+ polygon: addresses.polygon,
92
+ bnb: addresses.bnb,
93
+ avalanche: addresses.avalanche
94
+ };
95
+ }
96
+ /**
97
+ * Sign a personal message (EIP-191)
98
+ * @param message Message to sign
99
+ * @param keyshares Keyshares for signing
100
+ * @param options Signing options including publicKey for v calculation
101
+ * @returns Signature result
102
+ */
103
+ async personalSign(message, keyshares, options = {}) {
104
+ // Prepare message with EIP-191 prefix
105
+ const messageBytes = Buffer.from(message, 'utf8');
106
+ const prefix = `\x19Ethereum Signed Message:\n${messageBytes.length}`;
107
+ const prefixedMessage = Buffer.concat([
108
+ Buffer.from(prefix, 'utf8'),
109
+ messageBytes
110
+ ]);
111
+ // Hash the prefixed message with Keccak256 (Ethereum standard)
112
+ const { keccak256 } = require('viem');
113
+ const messageHash = Buffer.from(keccak256(prefixedMessage).slice(2), 'hex');
114
+ // Sign with DKLS (pass public key if available for v calculation)
115
+ const threshold = options.threshold ?? keyshares.length;
116
+ const publicKey = options.publicKey;
117
+ return this.dklsService.signMessage(messageHash, keyshares, threshold, publicKey);
118
+ }
119
+ /**
120
+ * Sign a personal message using a wallet (convenience method)
121
+ * @param message Message to sign
122
+ * @param wallet Local wallet containing keyshares and public key
123
+ * @param options Additional signing options
124
+ * @returns Signature result
125
+ */
126
+ async personalSignWithWallet(message, wallet, options = {}) {
127
+ return this.personalSign(message, wallet.keyshares, {
128
+ threshold: options.threshold ?? wallet.config.threshold,
129
+ publicKey: wallet.publicKey
130
+ });
131
+ }
132
+ /**
133
+ * Sign a raw hash (for transactions)
134
+ * @param hash Hash to sign (32 bytes)
135
+ * @param keyshares Keyshares for signing
136
+ * @param options Signing options including publicKey for v calculation
137
+ * @returns Signature result
138
+ */
139
+ async signHash(hash, keyshares, options = {}) {
140
+ // Convert hash to Uint8Array if needed
141
+ const hashBytes = typeof hash === 'string'
142
+ ? Buffer.from(hash.replace('0x', ''), 'hex')
143
+ : hash;
144
+ if (hashBytes.length !== 32) {
145
+ throw new Error(`Invalid hash length: expected 32 bytes, got ${hashBytes.length}`);
146
+ }
147
+ // Sign with DKLS
148
+ const threshold = options.threshold ?? keyshares.length;
149
+ const publicKey = options.publicKey;
150
+ return this.dklsService.signMessage(hashBytes, keyshares, threshold, publicKey);
151
+ }
152
+ /**
153
+ * Sign a transaction hash using a wallet
154
+ * @param hash Transaction hash to sign
155
+ * @param wallet Local wallet containing keyshares and public key
156
+ * @param options Additional signing options
157
+ * @returns Signature result
158
+ */
159
+ async signTransactionWithWallet(hash, wallet, options = {}) {
160
+ return this.signHash(hash, wallet.keyshares, {
161
+ threshold: options.threshold ?? wallet.config.threshold,
162
+ publicKey: wallet.publicKey
163
+ });
164
+ }
165
+ /**
166
+ * Sign typed data (EIP-712)
167
+ * @param typedData Typed data to sign
168
+ * @param keyshares Keyshares for signing
169
+ * @param options Signing options
170
+ * @returns Signature result
171
+ */
172
+ async signTypedDataV4(typedData, keyshares, options = {}) {
173
+ // TODO: Implement proper EIP-712 hashing
174
+ // For now, use a placeholder
175
+ const messageHash = Buffer.from(JSON.stringify(typedData), 'utf8');
176
+ const hash = require('crypto').createHash('sha256').update(messageHash).digest();
177
+ const threshold = options.threshold ?? keyshares.length;
178
+ return this.dklsService.signMessage(hash, keyshares, threshold);
179
+ }
180
+ /**
181
+ * Send raw transaction (sign and prepare for broadcast)
182
+ * @param tx Transaction data
183
+ * @param keyshares Keyshares for signing
184
+ * @param options Signing options
185
+ * @returns Signed transaction hash
186
+ */
187
+ async sendRawTransaction(tx, keyshares, options = {}) {
188
+ // TODO: Implement proper transaction signing
189
+ // This is a placeholder
190
+ const txHash = Buffer.from(JSON.stringify(tx), 'utf8');
191
+ const hash = require('crypto').createHash('sha256').update(txHash).digest();
192
+ const threshold = options.threshold ?? keyshares.length;
193
+ const signature = await this.dklsService.signMessage(hash, keyshares, threshold);
194
+ return signature.signature;
195
+ }
196
+ /**
197
+ * Configure a custom chain
198
+ * @param name Chain name
199
+ * @param config Chain configuration
200
+ */
201
+ configureChain(name, config) {
202
+ this.chains.set(name, config);
203
+ }
204
+ /**
205
+ * Use a preset chain configuration
206
+ * @param name Preset name
207
+ */
208
+ usePresetChain(name) {
209
+ const preset = this.getPresetChain(name);
210
+ if (preset) {
211
+ this.chains.set(name, preset);
212
+ }
213
+ else {
214
+ throw new Error(`Unknown preset chain: ${name}`);
215
+ }
216
+ }
217
+ /**
218
+ * Configure Bitcoin network
219
+ * @param config Bitcoin configuration
220
+ */
221
+ configureBitcoin(config) {
222
+ this.bitcoinConfig = config;
223
+ }
224
+ /**
225
+ * Get chain configuration
226
+ * @param name Chain name
227
+ * @returns Chain configuration or undefined
228
+ */
229
+ getChainConfig(name) {
230
+ return this.chains.get(name);
231
+ }
232
+ /**
233
+ * Get Bitcoin configuration
234
+ * @returns Bitcoin configuration or undefined
235
+ */
236
+ getBitcoinConfig() {
237
+ return this.bitcoinConfig;
238
+ }
239
+ /**
240
+ * Initialize default chain configurations
241
+ */
242
+ initializeDefaultChains() {
243
+ // Ethereum
244
+ this.chains.set('ethereum', {
245
+ chainId: 1,
246
+ name: 'Ethereum Mainnet',
247
+ rpcUrl: 'https://eth.llamarpc.com',
248
+ explorer: 'https://etherscan.io',
249
+ nativeCurrency: {
250
+ name: 'Ether',
251
+ symbol: 'ETH',
252
+ decimals: 18
253
+ }
254
+ });
255
+ // Arbitrum One
256
+ this.chains.set('arbitrum-one', {
257
+ chainId: 42161,
258
+ name: 'Arbitrum One',
259
+ rpcUrl: 'https://arb1.arbitrum.io/rpc',
260
+ explorer: 'https://arbiscan.io',
261
+ nativeCurrency: {
262
+ name: 'Ether',
263
+ symbol: 'ETH',
264
+ decimals: 18
265
+ },
266
+ gasConfig: {
267
+ maxFeePerGas: '0.1',
268
+ maxPriorityFeePerGas: '0.01'
269
+ }
270
+ });
271
+ // Arbitrum Nova
272
+ this.chains.set('arbitrum-nova', {
273
+ chainId: 42170,
274
+ name: 'Arbitrum Nova',
275
+ rpcUrl: 'https://nova.arbitrum.io/rpc',
276
+ explorer: 'https://nova.arbiscan.io',
277
+ nativeCurrency: {
278
+ name: 'Ether',
279
+ symbol: 'ETH',
280
+ decimals: 18
281
+ }
282
+ });
283
+ // Arbitrum Sepolia
284
+ this.chains.set('arbitrum-sepolia', {
285
+ chainId: 421614,
286
+ name: 'Arbitrum Sepolia',
287
+ rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
288
+ explorer: 'https://sepolia.arbiscan.io',
289
+ nativeCurrency: {
290
+ name: 'Ether',
291
+ symbol: 'ETH',
292
+ decimals: 18
293
+ }
294
+ });
295
+ // Polygon
296
+ this.chains.set('polygon', {
297
+ chainId: 137,
298
+ name: 'Polygon',
299
+ rpcUrl: 'https://polygon-rpc.com',
300
+ explorer: 'https://polygonscan.com',
301
+ nativeCurrency: {
302
+ name: 'MATIC',
303
+ symbol: 'MATIC',
304
+ decimals: 18
305
+ }
306
+ });
307
+ // BNB Smart Chain
308
+ this.chains.set('bnb', {
309
+ chainId: 56,
310
+ name: 'BNB Smart Chain',
311
+ rpcUrl: 'https://bsc-dataseed.binance.org',
312
+ explorer: 'https://bscscan.com',
313
+ nativeCurrency: {
314
+ name: 'BNB',
315
+ symbol: 'BNB',
316
+ decimals: 18
317
+ }
318
+ });
319
+ // Avalanche C-Chain
320
+ this.chains.set('avalanche', {
321
+ chainId: 43114,
322
+ name: 'Avalanche C-Chain',
323
+ rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',
324
+ explorer: 'https://snowtrace.io',
325
+ nativeCurrency: {
326
+ name: 'AVAX',
327
+ symbol: 'AVAX',
328
+ decimals: 18
329
+ }
330
+ });
331
+ }
332
+ /**
333
+ * Get preset chain configuration
334
+ * @param name Preset name
335
+ * @returns Chain configuration or undefined
336
+ */
337
+ getPresetChain(name) {
338
+ // Re-use initialized chains
339
+ return this.chains.get(name);
340
+ }
341
+ /**
342
+ * Get DKLS service instance (for advanced usage)
343
+ * @returns DKLSService instance
344
+ */
345
+ getDKLSService() {
346
+ return this.dklsService;
347
+ }
348
+ }
349
+ exports.BitShardSDK = BitShardSDK;
350
+ //# sourceMappingURL=BitShardSDK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitShardSDK.js","sourceRoot":"","sources":["../src/BitShardSDK.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Bitcoin chain base class
3
+ */
4
+ export declare class BitcoinChain {
5
+ }
6
+ //# sourceMappingURL=BitcoinChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitcoinChain.d.ts","sourceRoot":"","sources":["../../../src/chains/bitcoin/BitcoinChain.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,YAAY;CAExB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Bitcoin chain base class
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BitcoinChain = void 0;
7
+ class BitcoinChain {
8
+ }
9
+ exports.BitcoinChain = BitcoinChain;
10
+ //# sourceMappingURL=BitcoinChain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitcoinChain.js","sourceRoot":"","sources":["../../../src/chains/bitcoin/BitcoinChain.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAa,YAAY;CAExB;AAFD,oCAEC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Chain configuration registry
3
+ */
4
+ export type { ChainConfig, BitcoinConfig } from '../core/types';
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Chain configuration registry
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // TODO: Implement chain registry
7
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,iCAAiC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * EVM chain base class
3
+ */
4
+ export declare class EVMChain {
5
+ }
6
+ //# sourceMappingURL=EVMChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EVMChain.d.ts","sourceRoot":"","sources":["../../../src/chains/evm/EVMChain.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,QAAQ;CAEpB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * EVM chain base class
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EVMChain = void 0;
7
+ class EVMChain {
8
+ }
9
+ exports.EVMChain = EVMChain;
10
+ //# sourceMappingURL=EVMChain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EVMChain.js","sourceRoot":"","sources":["../../../src/chains/evm/EVMChain.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAa,QAAQ;CAEpB;AAFD,4BAEC"}