@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,147 @@
1
+ "use strict";
2
+ /**
3
+ * Pre-signature generation and management
4
+ *
5
+ * CRITICAL SECURITY WARNING:
6
+ * Pre-signatures MUST NOT be reused. Reusing a pre-signature will expose the private key.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.preSignatureManager = exports.PreSignatureManager = void 0;
10
+ const dkls_wasm_ll_node_1 = require("@silencelaboratories/dkls-wasm-ll-node");
11
+ /**
12
+ * Pre-signature manager for secure pre-signature generation and tracking
13
+ */
14
+ class PreSignatureManager {
15
+ constructor() {
16
+ this.consumedPreSignatures = new Set();
17
+ this.preSignaturePool = new Map();
18
+ }
19
+ /**
20
+ * Generate pre-signatures that can be computed ahead of time
21
+ * @param keyshares Array of keyshares
22
+ * @param threshold Threshold value
23
+ * @param count Number of pre-signatures to generate
24
+ * @returns Array of pre-signatures
25
+ */
26
+ async generatePreSignatures(keyshares, threshold, count = 1) {
27
+ if (keyshares.length < threshold) {
28
+ throw new Error(`Insufficient keyshares: need ${threshold}, got ${keyshares.length}`);
29
+ }
30
+ const preSignatures = [];
31
+ for (let i = 0; i < count; i++) {
32
+ const id = this.generateId();
33
+ // Use first threshold keyshares
34
+ const signingShares = keyshares.slice(0, threshold);
35
+ // Create sign sessions
36
+ const parties = signingShares.map(ks => new dkls_wasm_ll_node_1.SignSession(ks, "m"));
37
+ // Execute pre-signature rounds
38
+ const preSignature = await this.executePreSignatureRounds(parties, id);
39
+ preSignatures.push(preSignature);
40
+ this.preSignaturePool.set(id, preSignature);
41
+ }
42
+ return preSignatures;
43
+ }
44
+ /**
45
+ * Execute pre-signature generation rounds
46
+ */
47
+ async executePreSignatureRounds(parties, id) {
48
+ // Round 1: Create first messages
49
+ const msg1 = parties.map(p => p.createFirstMessage());
50
+ const selfIds = msg1.map(m => m.from_id);
51
+ // Round 2: Broadcast first messages
52
+ const msg2 = parties.flatMap((p, idx) => p.handleMessages(this.filterMessages(msg1, selfIds[idx])));
53
+ // Round 3: Handle P2P messages
54
+ const msg3 = parties.flatMap((p, idx) => p.handleMessages(this.selectMessages(msg2, selfIds[idx])));
55
+ // Round 4: Complete pre-signature
56
+ parties.forEach((p, idx) => p.handleMessages(this.selectMessages(msg3, selfIds[idx])));
57
+ return {
58
+ id,
59
+ parties,
60
+ createdAt: new Date(),
61
+ consumed: false
62
+ };
63
+ }
64
+ /**
65
+ * Use a pre-signature to sign a message
66
+ * @param messageHash Message hash to sign
67
+ * @param preSignature Pre-signature to consume
68
+ * @returns Signature components
69
+ */
70
+ async signWithPreSignature(messageHash, preSignature) {
71
+ // Check if pre-signature has already been used
72
+ if (this.consumedPreSignatures.has(preSignature.id)) {
73
+ throw new Error('CRITICAL: Pre-signature has already been used! ' +
74
+ 'Reusing pre-signatures exposes the private key!');
75
+ }
76
+ if (preSignature.consumed) {
77
+ throw new Error('Pre-signature has already been consumed');
78
+ }
79
+ // Mark as consumed IMMEDIATELY
80
+ this.consumedPreSignatures.add(preSignature.id);
81
+ preSignature.consumed = true;
82
+ const { parties } = preSignature;
83
+ const selfIds = parties.map((_, idx) => idx);
84
+ // Generate last message with actual message hash
85
+ const msg4 = parties.map(p => p.lastMessage(messageHash));
86
+ // Combine to produce signature (consumes session)
87
+ const signatures = parties.map((p, idx) => p.combine(this.filterMessages(msg4, selfIds[idx])));
88
+ // All parties should produce the same signature
89
+ return signatures[0];
90
+ }
91
+ /**
92
+ * Check if a pre-signature has been consumed
93
+ * @param id Pre-signature ID
94
+ * @returns True if consumed
95
+ */
96
+ isConsumed(id) {
97
+ return this.consumedPreSignatures.has(id);
98
+ }
99
+ /**
100
+ * Get available pre-signature count
101
+ * @returns Number of unused pre-signatures
102
+ */
103
+ getAvailableCount() {
104
+ return Array.from(this.preSignaturePool.values())
105
+ .filter(ps => !ps.consumed).length;
106
+ }
107
+ /**
108
+ * Get next available pre-signature
109
+ * @returns Pre-signature or undefined
110
+ */
111
+ getNextAvailable() {
112
+ return Array.from(this.preSignaturePool.values())
113
+ .find(ps => !ps.consumed);
114
+ }
115
+ /**
116
+ * Clear consumed pre-signatures from pool
117
+ */
118
+ cleanupConsumed() {
119
+ for (const [id, preSignature] of this.preSignaturePool.entries()) {
120
+ if (preSignature.consumed) {
121
+ this.preSignaturePool.delete(id);
122
+ }
123
+ }
124
+ }
125
+ /**
126
+ * Generate unique ID
127
+ */
128
+ generateId() {
129
+ return `presig-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
130
+ }
131
+ /**
132
+ * Filter messages for broadcast
133
+ */
134
+ filterMessages(msgs, party) {
135
+ return msgs.filter((m) => m.from_id !== party).map(m => m.clone());
136
+ }
137
+ /**
138
+ * Select P2P messages
139
+ */
140
+ selectMessages(msgs, party) {
141
+ return msgs.filter((m) => m.to_id === party).map(m => m.clone());
142
+ }
143
+ }
144
+ exports.PreSignatureManager = PreSignatureManager;
145
+ // Export singleton instance
146
+ exports.preSignatureManager = new PreSignatureManager();
147
+ //# sourceMappingURL=presignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presignature.js","sourceRoot":"","sources":["../../src/protocols/presignature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Key refresh/rotation protocol
3
+ */
4
+ export { DKLSService } from '../core/DKLSService';
5
+ //# sourceMappingURL=refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/protocols/refresh.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Key refresh/rotation protocol
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DKLSService = void 0;
7
+ var DKLSService_1 = require("../core/DKLSService");
8
+ Object.defineProperty(exports, "DKLSService", { enumerable: true, get: function () { return DKLSService_1.DKLSService; } });
9
+ // TODO: Implement key refresh protocol helpers
10
+ //# sourceMappingURL=refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../src/protocols/refresh.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,+CAA+C"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Signing protocol implementation
3
+ */
4
+ export { DKLSService } from '../core/DKLSService';
5
+ export { DKLSParty } from '../core/DKLSParty';
6
+ export type { SignatureResult } from '../core/types';
7
+ //# sourceMappingURL=signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/protocols/signing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Signing protocol implementation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DKLSParty = exports.DKLSService = void 0;
7
+ var DKLSService_1 = require("../core/DKLSService");
8
+ Object.defineProperty(exports, "DKLSService", { enumerable: true, get: function () { return DKLSService_1.DKLSService; } });
9
+ var DKLSParty_1 = require("../core/DKLSParty");
10
+ Object.defineProperty(exports, "DKLSParty", { enumerable: true, get: function () { return DKLSParty_1.DKLSParty; } });
11
+ // TODO: Implement signing protocol helpers
12
+ //# sourceMappingURL=signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/protocols/signing.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AACpB,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAGlB,2CAA2C"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * RPC provider interface
3
+ */
4
+ export interface RPCProvider {
5
+ }
6
+ //# sourceMappingURL=RPCProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RPCProvider.d.ts","sourceRoot":"","sources":["../../src/rpc/RPCProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;CAE3B"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * RPC provider interface
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=RPCProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RPCProvider.js","sourceRoot":"","sources":["../../src/rpc/RPCProvider.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * RPC method registry
3
+ */
4
+ export declare const RPC_METHODS: {};
5
+ //# sourceMappingURL=methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/rpc/methods.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW,IAEvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * RPC method registry
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RPC_METHODS = void 0;
7
+ exports.RPC_METHODS = {
8
+ // TODO: Implement RPC methods
9
+ };
10
+ //# sourceMappingURL=methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/rpc/methods.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,WAAW,GAAG;AACvB,8BAA8B;CACjC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WebSocket coordinator for multi-party protocols
3
+ */
4
+ export declare class WebSocketCoordinator {
5
+ }
6
+ //# sourceMappingURL=coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/websocket/coordinator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,oBAAoB;CAEhC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * WebSocket coordinator for multi-party protocols
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WebSocketCoordinator = void 0;
7
+ class WebSocketCoordinator {
8
+ }
9
+ exports.WebSocketCoordinator = WebSocketCoordinator;
10
+ //# sourceMappingURL=coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/websocket/coordinator.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAa,oBAAoB;CAEhC;AAFD,oDAEC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * WebSocket protocol messages
3
+ */
4
+ export interface WebSocketMessage {
5
+ type: string;
6
+ sessionId: string;
7
+ payload: any;
8
+ }
9
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/websocket/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;CAChB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * WebSocket protocol messages
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // TODO: Implement protocol messages
7
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/websocket/messages.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAQH,oCAAoC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * WebSocket session management
3
+ */
4
+ export type { WebSocketSession } from '../core/types';
5
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/websocket/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * WebSocket session management
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // TODO: Implement session management
7
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/websocket/session.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,qCAAqC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Wire message format utilities
3
+ */
4
+ export type { WireMessage } from '../core/types';
5
+ import { DKLSService } from '../core/DKLSService';
6
+ export declare const toWireMessage: typeof DKLSService.toWireMessage;
7
+ export declare const fromWireMessage: typeof DKLSService.fromWireMessage;
8
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/wire/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,eAAO,MAAM,aAAa,kCAA4B,CAAC;AACvD,eAAO,MAAM,eAAe,oCAA8B,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * Wire message format utilities
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fromWireMessage = exports.toWireMessage = void 0;
7
+ const DKLSService_1 = require("../core/DKLSService");
8
+ // Re-export wire format methods
9
+ exports.toWireMessage = DKLSService_1.DKLSService.toWireMessage;
10
+ exports.fromWireMessage = DKLSService_1.DKLSService.fromWireMessage;
11
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/wire/format.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,qDAAkD;AAElD,gCAAgC;AACnB,QAAA,aAAa,GAAG,yBAAW,CAAC,aAAa,CAAC;AAC1C,QAAA,eAAe,GAAG,yBAAW,CAAC,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Wire message validation
3
+ */
4
+ import type { WireMessage } from '../core/types';
5
+ export declare function validateWireMessage(message: any): message is WireMessage;
6
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/wire/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,WAAW,CAOxE"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Wire message validation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateWireMessage = validateWireMessage;
7
+ function validateWireMessage(message) {
8
+ return (typeof message === 'object' &&
9
+ typeof message.from_id === 'number' &&
10
+ typeof message.payload === 'string' &&
11
+ (message.to_id === undefined || typeof message.to_id === 'number'));
12
+ }
13
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/wire/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,kDAOC;AAPD,SAAgB,mBAAmB,CAAC,OAAY;IAC5C,OAAO,CACH,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CACrE,CAAC;AACN,CAAC"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@bitshard.io/bitshard-sdk",
3
+ "version": "0.0.1",
4
+ "description": "BitShard MPC SDK for distributed key generation and threshold signatures",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "src",
10
+ "test-sdk.js"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc -p tsconfig.build.json",
14
+ "dev": "tsc -p tsconfig.build.json --watch",
15
+ "test": "jest",
16
+ "test:watch": "jest --watch",
17
+ "typecheck": "tsc --noEmit",
18
+ "lint": "eslint src --ext .ts",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "keywords": [
22
+ "mpc",
23
+ "threshold-signatures",
24
+ "dkls",
25
+ "distributed-key-generation",
26
+ "wallet",
27
+ "crypto",
28
+ "bitcoin",
29
+ "ethereum",
30
+ "arbitrum"
31
+ ],
32
+ "author": "bitshard.io",
33
+ "license": "MIT",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/bitshard-io/bitshard-sdk"
37
+ },
38
+ "dependencies": {
39
+ "@silencelaboratories/dkls-wasm-ll-node": "^1.2.0",
40
+ "bitcoinjs-lib": "^6.1.5",
41
+ "ethers": "^5.8.0",
42
+ "viem": "^2.7.0",
43
+ "ws": "^8.16.0"
44
+ },
45
+ "devDependencies": {
46
+ "@types/jest": "^29.5.11",
47
+ "@types/node": "^20.10.5",
48
+ "@types/ws": "^8.5.10",
49
+ "@typescript-eslint/eslint-plugin": "^6.15.0",
50
+ "@typescript-eslint/parser": "^6.15.0",
51
+ "eslint": "^8.56.0",
52
+ "jest": "^29.7.0",
53
+ "ts-jest": "^29.1.1",
54
+ "typescript": "^5.3.3"
55
+ },
56
+ "peerDependencies": {
57
+ "@silencelaboratories/dkls-wasm-ll-web": "^1.2.0"
58
+ },
59
+ "peerDependenciesMeta": {
60
+ "@silencelaboratories/dkls-wasm-ll-web": {
61
+ "optional": true
62
+ }
63
+ },
64
+ "engines": {
65
+ "node": ">=16"
66
+ }
67
+ }