@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.
- package/dist/BitShardSDK.d.ts +156 -0
- package/dist/BitShardSDK.d.ts.map +1 -0
- package/dist/BitShardSDK.js +350 -0
- package/dist/BitShardSDK.js.map +1 -0
- package/dist/chains/bitcoin/BitcoinChain.d.ts +6 -0
- package/dist/chains/bitcoin/BitcoinChain.d.ts.map +1 -0
- package/dist/chains/bitcoin/BitcoinChain.js +10 -0
- package/dist/chains/bitcoin/BitcoinChain.js.map +1 -0
- package/dist/chains/config.d.ts +5 -0
- package/dist/chains/config.d.ts.map +1 -0
- package/dist/chains/config.js +7 -0
- package/dist/chains/config.js.map +1 -0
- package/dist/chains/evm/EVMChain.d.ts +6 -0
- package/dist/chains/evm/EVMChain.d.ts.map +1 -0
- package/dist/chains/evm/EVMChain.js +10 -0
- package/dist/chains/evm/EVMChain.js.map +1 -0
- package/dist/core/DKLSParty.d.ts +132 -0
- package/dist/core/DKLSParty.d.ts.map +1 -0
- package/dist/core/DKLSParty.js +267 -0
- package/dist/core/DKLSParty.js.map +1 -0
- package/dist/core/DKLSService.d.ts +83 -0
- package/dist/core/DKLSService.d.ts.map +1 -0
- package/dist/core/DKLSService.js +325 -0
- package/dist/core/DKLSService.js.map +1 -0
- package/dist/core/ThresholdConfig.d.ts +76 -0
- package/dist/core/ThresholdConfig.d.ts.map +1 -0
- package/dist/core/ThresholdConfig.js +127 -0
- package/dist/core/ThresholdConfig.js.map +1 -0
- package/dist/core/types.d.ts +238 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/crypto/addresses.d.ts +82 -0
- package/dist/crypto/addresses.d.ts.map +1 -0
- package/dist/crypto/addresses.js +242 -0
- package/dist/crypto/addresses.js.map +1 -0
- package/dist/crypto/elliptic.d.ts +19 -0
- package/dist/crypto/elliptic.d.ts.map +1 -0
- package/dist/crypto/elliptic.js +114 -0
- package/dist/crypto/elliptic.js.map +1 -0
- package/dist/crypto/encoding.d.ts +111 -0
- package/dist/crypto/encoding.d.ts.map +1 -0
- package/dist/crypto/encoding.js +224 -0
- package/dist/crypto/encoding.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/protocols/keygen.d.ts +6 -0
- package/dist/protocols/keygen.d.ts.map +1 -0
- package/dist/protocols/keygen.js +12 -0
- package/dist/protocols/keygen.js.map +1 -0
- package/dist/protocols/presignature.d.ts +68 -0
- package/dist/protocols/presignature.d.ts.map +1 -0
- package/dist/protocols/presignature.js +147 -0
- package/dist/protocols/presignature.js.map +1 -0
- package/dist/protocols/refresh.d.ts +5 -0
- package/dist/protocols/refresh.d.ts.map +1 -0
- package/dist/protocols/refresh.js +10 -0
- package/dist/protocols/refresh.js.map +1 -0
- package/dist/protocols/signing.d.ts +7 -0
- package/dist/protocols/signing.d.ts.map +1 -0
- package/dist/protocols/signing.js +12 -0
- package/dist/protocols/signing.js.map +1 -0
- package/dist/rpc/RPCProvider.d.ts +6 -0
- package/dist/rpc/RPCProvider.d.ts.map +1 -0
- package/dist/rpc/RPCProvider.js +6 -0
- package/dist/rpc/RPCProvider.js.map +1 -0
- package/dist/rpc/methods.d.ts +5 -0
- package/dist/rpc/methods.d.ts.map +1 -0
- package/dist/rpc/methods.js +10 -0
- package/dist/rpc/methods.js.map +1 -0
- package/dist/websocket/coordinator.d.ts +6 -0
- package/dist/websocket/coordinator.d.ts.map +1 -0
- package/dist/websocket/coordinator.js +10 -0
- package/dist/websocket/coordinator.js.map +1 -0
- package/dist/websocket/messages.d.ts +9 -0
- package/dist/websocket/messages.d.ts.map +1 -0
- package/dist/websocket/messages.js +7 -0
- package/dist/websocket/messages.js.map +1 -0
- package/dist/websocket/session.d.ts +5 -0
- package/dist/websocket/session.d.ts.map +1 -0
- package/dist/websocket/session.js +7 -0
- package/dist/websocket/session.js.map +1 -0
- package/dist/wire/format.d.ts +8 -0
- package/dist/wire/format.d.ts.map +1 -0
- package/dist/wire/format.js +11 -0
- package/dist/wire/format.js.map +1 -0
- package/dist/wire/validation.d.ts +6 -0
- package/dist/wire/validation.d.ts.map +1 -0
- package/dist/wire/validation.js +13 -0
- package/dist/wire/validation.js.map +1 -0
- package/package.json +67 -0
- package/src/BitShardSDK.ts +428 -0
- package/src/chains/bitcoin/BitcoinChain.ts +7 -0
- package/src/chains/config.ts +7 -0
- package/src/chains/evm/EVMChain.ts +7 -0
- package/src/core/DKLSParty.ts +317 -0
- package/src/core/DKLSService.ts +426 -0
- package/src/core/ThresholdConfig.ts +159 -0
- package/src/core/types.ts +253 -0
- package/src/crypto/addresses.ts +282 -0
- package/src/crypto/elliptic.ts +133 -0
- package/src/crypto/encoding.ts +227 -0
- package/src/index.ts +40 -0
- package/src/protocols/keygen.ts +8 -0
- package/src/protocols/presignature.ts +196 -0
- package/src/protocols/refresh.ts +7 -0
- package/src/protocols/signing.ts +9 -0
- package/src/rpc/RPCProvider.ts +7 -0
- package/src/rpc/methods.ts +7 -0
- package/src/websocket/coordinator.ts +7 -0
- package/src/websocket/messages.ts +11 -0
- package/src/websocket/session.ts +7 -0
- package/src/wire/format.ts +10 -0
- package/src/wire/validation.ts +14 -0
- 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":";;;AAAA,8EAAkE;AAClE,oDAAiD;AACjD,gDAA6C;AAU7C,kDAAqD;AAErD;;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,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,UAAsD,EAAE;QAExD,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,kEAAkE;QAClE,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;IAED;;OAEG;IACK,uBAAuB;QAC3B,WAAW;QACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE;YACxB,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,0BAA0B;YAClC,QAAQ,EAAE,sBAAsB;YAChC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,eAAe;QACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;YAC5B,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,8BAA8B;YACtC,QAAQ,EAAE,qBAAqB;YAC/B,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;YACD,SAAS,EAAE;gBACP,YAAY,EAAE,KAAK;gBACnB,oBAAoB,EAAE,MAAM;aAC/B;SACJ,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;YAC7B,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,8BAA8B;YACtC,QAAQ,EAAE,0BAA0B;YACpC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;YAChC,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,wCAAwC;YAChD,QAAQ,EAAE,6BAA6B;YACvC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,UAAU;QACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;YACvB,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,yBAAyB;YACjC,QAAQ,EAAE,yBAAyB;YACnC,cAAc,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;YACnB,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,kCAAkC;YAC1C,QAAQ,EAAE,qBAAqB;YAC/B,cAAc,EAAE;gBACZ,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE;YACzB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,uCAAuC;YAC/C,QAAQ,EAAE,sBAAsB;YAChC,cAAc,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,EAAE;aACf;SACJ,CAAC,CAAC;IACP,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;AA1ZD,kCA0ZC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/chains/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,iCAAiC"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"EVMChain.js","sourceRoot":"","sources":["../../../src/chains/evm/EVMChain.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAa,QAAQ;CAEpB;AAFD,4BAEC"}
|