@shapeshiftoss/hdwallet-vultisig 1.62.5
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/LICENSE.md +21 -0
- package/dist/adapter.d.ts +22 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +84 -0
- package/dist/adapter.js.map +1 -0
- package/dist/bitcoin.d.ts +6 -0
- package/dist/bitcoin.d.ts.map +1 -0
- package/dist/bitcoin.js +184 -0
- package/dist/bitcoin.js.map +1 -0
- package/dist/cosmos.d.ts +6 -0
- package/dist/cosmos.d.ts.map +1 -0
- package/dist/cosmos.js +47 -0
- package/dist/cosmos.js.map +1 -0
- package/dist/ethereum.d.ts +12 -0
- package/dist/ethereum.d.ts.map +1 -0
- package/dist/ethereum.js +193 -0
- package/dist/ethereum.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/solana.d.ts +9 -0
- package/dist/solana.d.ts.map +1 -0
- package/dist/solana.js +55 -0
- package/dist/solana.js.map +1 -0
- package/dist/thorchain.d.ts +6 -0
- package/dist/thorchain.d.ts.map +1 -0
- package/dist/thorchain.js +46 -0
- package/dist/thorchain.js.map +1 -0
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/vultisig.d.ts +123 -0
- package/dist/vultisig.d.ts.map +1 -0
- package/dist/vultisig.js +482 -0
- package/dist/vultisig.js.map +1 -0
- package/package.json +31 -0
- package/src/adapter.ts +72 -0
- package/src/bitcoin.ts +171 -0
- package/src/cosmos.ts +43 -0
- package/src/ethereum.ts +169 -0
- package/src/index.ts +2 -0
- package/src/solana.ts +31 -0
- package/src/thorchain.ts +43 -0
- package/src/types.ts +62 -0
- package/src/vultisig.test.ts +253 -0
- package/src/vultisig.ts +459 -0
- package/tsconfig.json +10 -0
- package/tsconfig.tsbuildinfo +1 -0
package/dist/vultisig.js
ADDED
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.VultisigHDWallet = exports.VultisigHDWalletInfo = void 0;
|
|
39
|
+
exports.isVultisig = isVultisig;
|
|
40
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
41
|
+
const base64_js_1 = __importDefault(require("base64-js"));
|
|
42
|
+
const bitcoinMsg = __importStar(require("bitcoinjs-message"));
|
|
43
|
+
const utils_js_1 = require("ethers/lib/utils.js");
|
|
44
|
+
const isObject_1 = __importDefault(require("lodash/isObject"));
|
|
45
|
+
const btc = __importStar(require("./bitcoin"));
|
|
46
|
+
const cosmos = __importStar(require("./cosmos"));
|
|
47
|
+
const eth = __importStar(require("./ethereum"));
|
|
48
|
+
const solana_1 = require("./solana");
|
|
49
|
+
const thorchain = __importStar(require("./thorchain"));
|
|
50
|
+
function isVultisig(wallet) {
|
|
51
|
+
return (0, isObject_1.default)(wallet) && wallet._isVultisig;
|
|
52
|
+
}
|
|
53
|
+
class VultisigHDWalletInfo {
|
|
54
|
+
constructor() {
|
|
55
|
+
// TODO(gomes): turn me back once signPSBT is fixed upstream
|
|
56
|
+
this._supportsBTCInfo = false;
|
|
57
|
+
this._supportsETHInfo = true;
|
|
58
|
+
this._supportsSolanaInfo = true;
|
|
59
|
+
this._supportsThorchainInfo = true;
|
|
60
|
+
this._supportsCosmosInfo = true;
|
|
61
|
+
}
|
|
62
|
+
getVendor() {
|
|
63
|
+
return "Vultisig";
|
|
64
|
+
}
|
|
65
|
+
hasOnDevicePinEntry() {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
hasOnDevicePassphrase() {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
hasOnDeviceDisplay() {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
hasOnDeviceRecovery() {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
78
|
+
hasNativeShapeShift(srcCoin, dstCoin) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
supportsBip44Accounts() {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
supportsOfflineSigning() {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
supportsBroadcast() {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
describePath(msg) {
|
|
91
|
+
switch (msg.coin.toLowerCase()) {
|
|
92
|
+
case "bitcoin": {
|
|
93
|
+
// case "zcash": // case "bitcoincash": // case "dogecoin": // case "litecoin":
|
|
94
|
+
const unknown = core.unknownUTXOPath(msg.path, msg.coin, msg.scriptType);
|
|
95
|
+
if (!msg.scriptType)
|
|
96
|
+
return unknown;
|
|
97
|
+
if (!this.btcSupportsCoin(msg.coin))
|
|
98
|
+
return unknown;
|
|
99
|
+
if (!this.btcSupportsScriptType(msg.coin, msg.scriptType))
|
|
100
|
+
return unknown;
|
|
101
|
+
return core.describeUTXOPath(msg.path, msg.coin, msg.scriptType);
|
|
102
|
+
}
|
|
103
|
+
case "ethereum": {
|
|
104
|
+
return core.describeETHPath(msg.path);
|
|
105
|
+
}
|
|
106
|
+
case "solana":
|
|
107
|
+
return core.solanaDescribePath(msg.path);
|
|
108
|
+
case "cosmos":
|
|
109
|
+
return core.cosmosDescribePath(msg.path);
|
|
110
|
+
case "thorchain":
|
|
111
|
+
return core.thorchainDescribePath(msg.path);
|
|
112
|
+
default:
|
|
113
|
+
throw new Error(`Unsupported path for coin: ${msg.coin}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** Ethereum */
|
|
117
|
+
ethSupportsNetwork() {
|
|
118
|
+
return __awaiter(this, arguments, void 0, function* (chainId = 1) {
|
|
119
|
+
return chainId === 1;
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
ethSupportsSecureTransfer() {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
return false;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
ethSupportsNativeShapeShift() {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
ethSupportsEIP1559() {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
return true;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
ethGetAccountPaths(msg) {
|
|
136
|
+
return eth.ethGetAccountPaths(msg);
|
|
137
|
+
}
|
|
138
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
139
|
+
ethNextAccountPath(msg) {
|
|
140
|
+
console.error("Method not implemented");
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
/** Bitcoin */
|
|
144
|
+
btcSupportsCoin(coin) {
|
|
145
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
146
|
+
const vultisigSupportedCoins = ["bitcoin"]; // Just BTC for first part of integration, we will enable it progressively
|
|
147
|
+
return vultisigSupportedCoins.includes(coin.toLowerCase());
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
btcSupportsScriptType(coin, scriptType) {
|
|
151
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
if (!this.btcSupportsCoin(coin))
|
|
153
|
+
return false;
|
|
154
|
+
const c = coin.toLowerCase();
|
|
155
|
+
switch (scriptType) {
|
|
156
|
+
case core.BTCInputScriptType.SpendAddress:
|
|
157
|
+
return ["bitcoin"].includes(c);
|
|
158
|
+
case core.BTCInputScriptType.SpendWitness:
|
|
159
|
+
return ["bitcoin"].includes(c);
|
|
160
|
+
default:
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
btcSupportsSecureTransfer() {
|
|
166
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
+
return false;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
btcSupportsNativeShapeShift() {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
174
|
+
btcGetAccountPaths(msg) {
|
|
175
|
+
return btc.btcGetAccountPaths(msg);
|
|
176
|
+
}
|
|
177
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
178
|
+
btcNextAccountPath(msg) {
|
|
179
|
+
throw new Error("Method not implemented");
|
|
180
|
+
}
|
|
181
|
+
/** Solana */
|
|
182
|
+
solanaGetAccountPaths(msg) {
|
|
183
|
+
return core.solanaGetAccountPaths(msg);
|
|
184
|
+
}
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
186
|
+
solanaNextAccountPath(msg) {
|
|
187
|
+
throw new Error("Method not implemented");
|
|
188
|
+
}
|
|
189
|
+
thorchainGetAccountPaths(msg) {
|
|
190
|
+
return thorchain.thorchainGetAccountPaths(msg);
|
|
191
|
+
}
|
|
192
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
193
|
+
thorchainNextAccountPath(msg) {
|
|
194
|
+
throw new Error("Method not implemented.");
|
|
195
|
+
}
|
|
196
|
+
cosmosGetAccountPaths(msg) {
|
|
197
|
+
return cosmos.cosmosGetAccountPaths(msg);
|
|
198
|
+
}
|
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
200
|
+
cosmosNextAccountPath(_msg) {
|
|
201
|
+
throw new Error("Method not implemented.");
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
exports.VultisigHDWalletInfo = VultisigHDWalletInfo;
|
|
205
|
+
class VultisigHDWallet extends VultisigHDWalletInfo {
|
|
206
|
+
constructor(providers) {
|
|
207
|
+
super();
|
|
208
|
+
// TODO(gomes): turn me back once signPSBT is fixed upstream
|
|
209
|
+
this._supportsBTC = false;
|
|
210
|
+
this._supportsETH = true;
|
|
211
|
+
this._supportsEthSwitchChain = true;
|
|
212
|
+
this._supportsAvalanche = true;
|
|
213
|
+
this._supportsOptimism = true;
|
|
214
|
+
this._supportsPolygon = true;
|
|
215
|
+
this._supportsGnosis = false;
|
|
216
|
+
this._supportsArbitrum = true;
|
|
217
|
+
this._supportsArbitrumNova = false;
|
|
218
|
+
this._supportsBase = true;
|
|
219
|
+
this._supportsBSC = true;
|
|
220
|
+
this._supportsSolana = true;
|
|
221
|
+
this._supportsThorchain = true;
|
|
222
|
+
this._supportsCosmos = true;
|
|
223
|
+
this._isVultisig = true;
|
|
224
|
+
this.evmProvider = providers.evmProvider;
|
|
225
|
+
this.bitcoinProvider = providers.bitcoinProvider;
|
|
226
|
+
this.solanaProvider = providers.solanaProvider;
|
|
227
|
+
this.thorchainProvider = providers.thorchainProvider;
|
|
228
|
+
this.cosmosProvider = providers.cosmosProvider;
|
|
229
|
+
}
|
|
230
|
+
getDeviceID() {
|
|
231
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
232
|
+
return "vultisig:" + (yield this.getVault());
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
getFeatures() {
|
|
236
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
237
|
+
return {};
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
getFirmwareVersion() {
|
|
241
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
242
|
+
return "vultisig";
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
getModel() {
|
|
246
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
247
|
+
return "Vultisig";
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
getLabel() {
|
|
251
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
252
|
+
return "Vultisig";
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
isInitialized() {
|
|
256
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
257
|
+
return true;
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
isLocked() {
|
|
261
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
262
|
+
return false;
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
clearSession() {
|
|
266
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
267
|
+
}
|
|
268
|
+
initialize() {
|
|
269
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
270
|
+
}
|
|
271
|
+
ping(msg) {
|
|
272
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
273
|
+
return { msg: msg.msg };
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
277
|
+
sendPin(pin) {
|
|
278
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
279
|
+
}
|
|
280
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
281
|
+
sendPassphrase(passphrase) {
|
|
282
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
283
|
+
}
|
|
284
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
285
|
+
sendCharacter(charater) {
|
|
286
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
287
|
+
}
|
|
288
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
289
|
+
sendWord(word) {
|
|
290
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
291
|
+
}
|
|
292
|
+
cancel() {
|
|
293
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
294
|
+
}
|
|
295
|
+
wipe() {
|
|
296
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
297
|
+
}
|
|
298
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
299
|
+
reset(msg) {
|
|
300
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
301
|
+
}
|
|
302
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
303
|
+
recover(msg) {
|
|
304
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
305
|
+
}
|
|
306
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
307
|
+
loadDevice(msg) {
|
|
308
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
309
|
+
}
|
|
310
|
+
disconnect() {
|
|
311
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
312
|
+
}
|
|
313
|
+
getPublicKeys(msg) {
|
|
314
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
315
|
+
return yield Promise.all(msg.map((getPublicKey) => __awaiter(this, void 0, void 0, function* () {
|
|
316
|
+
const { coin, scriptType } = getPublicKey;
|
|
317
|
+
if (scriptType !== undefined) {
|
|
318
|
+
const isSupported = yield this.btcSupportsScriptType(coin, scriptType);
|
|
319
|
+
if (!isSupported) {
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
switch (coin) {
|
|
324
|
+
case "Bitcoin": {
|
|
325
|
+
// Note this is a pubKey, not an xpub, however vultisig does not support utxo derivation,
|
|
326
|
+
// so this functions as an account (xpub) for all intents and purposes
|
|
327
|
+
const pubKey = yield this.btcGetAddress({ coin, scriptType });
|
|
328
|
+
return { xpub: pubKey };
|
|
329
|
+
}
|
|
330
|
+
default:
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
throw new Error("Vultisig does not support");
|
|
334
|
+
})));
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
/** Ethereum */
|
|
338
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
339
|
+
ethGetAddress(_msg) {
|
|
340
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
341
|
+
const address = yield eth.ethGetAddress(this.evmProvider);
|
|
342
|
+
if (address) {
|
|
343
|
+
this.ethAddress = address;
|
|
344
|
+
return address;
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
this.ethAddress = null;
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
353
|
+
ethSignTx(msg) {
|
|
354
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
355
|
+
console.error("Method not implemented");
|
|
356
|
+
return null;
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
ethSendTx(msg) {
|
|
360
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
361
|
+
const address = yield this.ethGetAddress({ addressNList: [] });
|
|
362
|
+
return address ? eth.ethSendTx(msg, this.evmProvider, address) : null;
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
ethSignMessage(msg) {
|
|
366
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
367
|
+
const address = yield this.ethGetAddress({ addressNList: [] });
|
|
368
|
+
return address ? eth.ethSignMessage(msg, this.evmProvider, address) : null;
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
ethSignTypedData(msg) {
|
|
372
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
373
|
+
const address = yield this.ethGetAddress({ addressNList: [] });
|
|
374
|
+
return address ? eth.ethSignTypedData(msg, this.evmProvider, address) : null;
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
ethVerifyMessage(msg) {
|
|
378
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
379
|
+
if (!msg.signature.startsWith("0x"))
|
|
380
|
+
msg.signature = `0x${msg.signature}`;
|
|
381
|
+
const digest = (0, utils_js_1.keccak256)(core.buildMessage(msg.message));
|
|
382
|
+
return (0, utils_js_1.recoverAddress)(digest, msg.signature) === msg.address;
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
ethGetChainId() {
|
|
386
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
387
|
+
return eth.ethGetChainId(this.evmProvider);
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
ethAddChain(params) {
|
|
391
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
392
|
+
return eth.ethAddChain(this.evmProvider, params);
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
ethSwitchChain(params) {
|
|
396
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
397
|
+
return eth.ethSwitchChain(this.evmProvider, params);
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
/** Bitcoin */
|
|
401
|
+
btcGetAddress(msg) {
|
|
402
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
403
|
+
return btc.btcGetAddress(this.bitcoinProvider, msg);
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
btcSignTx(msg) {
|
|
407
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
408
|
+
const { coin } = msg;
|
|
409
|
+
switch (coin) {
|
|
410
|
+
case "Bitcoin":
|
|
411
|
+
return btc.bitcoinSignTx(msg, this.bitcoinProvider);
|
|
412
|
+
default:
|
|
413
|
+
throw new Error("Vultisig does not support");
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
418
|
+
btcSignMessage(msg) {
|
|
419
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
420
|
+
throw new Error("not supported");
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
btcVerifyMessage(msg) {
|
|
424
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
425
|
+
const signature = base64_js_1.default.fromByteArray(core.fromHexString(msg.signature));
|
|
426
|
+
return bitcoinMsg.verify(msg.message, msg.address, signature);
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
/** get vault */
|
|
430
|
+
getVault() {
|
|
431
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
432
|
+
var _a;
|
|
433
|
+
const vault = yield ((_a = window.vultisig) === null || _a === void 0 ? void 0 : _a.getVault());
|
|
434
|
+
return (vault === null || vault === void 0 ? void 0 : vault.uid) || null;
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
/** Solana */
|
|
438
|
+
solanaGetAddress() {
|
|
439
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
440
|
+
const { publicKey } = yield this.solanaProvider.connect();
|
|
441
|
+
return publicKey.toString();
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
solanaSignTx(msg) {
|
|
445
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
446
|
+
const address = yield this.solanaGetAddress();
|
|
447
|
+
return address ? (0, solana_1.solanaSignTx)(msg, this.solanaProvider, address) : null;
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
solanaSendTx(msg) {
|
|
451
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
452
|
+
const address = yield this.solanaGetAddress();
|
|
453
|
+
return address ? (0, solana_1.solanaSendTx)(msg, this.solanaProvider, address) : null;
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
/** THORChain */
|
|
457
|
+
thorchainGetAddress() {
|
|
458
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
459
|
+
const address = yield thorchain.thorchainGetAddress(this.thorchainProvider);
|
|
460
|
+
return address || null;
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
thorchainSignTx(msg) {
|
|
464
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
465
|
+
return thorchain.thorchainSignTx(this.thorchainProvider, msg);
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
/** Cosmos */
|
|
469
|
+
cosmosGetAddress() {
|
|
470
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
471
|
+
const address = yield cosmos.cosmosGetAddress(this.cosmosProvider);
|
|
472
|
+
return address || null;
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
cosmosSignTx(msg) {
|
|
476
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
477
|
+
return cosmos.cosmosSignTx(this.cosmosProvider, msg);
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
exports.VultisigHDWallet = VultisigHDWallet;
|
|
482
|
+
//# sourceMappingURL=vultisig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vultisig.js","sourceRoot":"","sources":["../src/vultisig.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@shapeshiftoss/hdwallet-vultisig",
|
|
3
|
+
"version": "1.62.5",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"source": "src/index.ts",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc --build",
|
|
13
|
+
"clean": "rm -rf dist node_modules tsconfig.tsbuildinfo",
|
|
14
|
+
"prepublishOnly": "yarn clean && yarn build"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@cosmjs/amino": "^0.28.13",
|
|
18
|
+
"@cosmjs/stargate": "^0.28.13",
|
|
19
|
+
"@shapeshiftoss/bitcoinjs-lib": "7.0.0-shapeshift.0",
|
|
20
|
+
"@shapeshiftoss/hdwallet-core": "1.62.5",
|
|
21
|
+
"@solana/web3.js": "1.95.8",
|
|
22
|
+
"base64-js": "^1.5.1",
|
|
23
|
+
"bitcoinjs-message": "^2.0.0",
|
|
24
|
+
"ethers": "5.7.2",
|
|
25
|
+
"lodash": "^4.17.21"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/lodash": "^4.14.168"
|
|
29
|
+
},
|
|
30
|
+
"gitHead": "33d4d52dbd26dc30004ac04cd254f3df508b1745"
|
|
31
|
+
}
|
package/src/adapter.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
VultisigEvmProvider,
|
|
5
|
+
VultisigGetVault,
|
|
6
|
+
VultisigOfflineProvider,
|
|
7
|
+
VultisigSolanaProvider,
|
|
8
|
+
VultisigUtxoProvider,
|
|
9
|
+
} from "./types";
|
|
10
|
+
import { VultisigHDWallet } from "./vultisig";
|
|
11
|
+
|
|
12
|
+
declare global {
|
|
13
|
+
interface Window {
|
|
14
|
+
vultisig?: {
|
|
15
|
+
getVault: () => Promise<VultisigGetVault>;
|
|
16
|
+
ethereum?: VultisigEvmProvider;
|
|
17
|
+
bitcoin?: VultisigUtxoProvider;
|
|
18
|
+
solana?: VultisigSolanaProvider;
|
|
19
|
+
keplr?: VultisigOfflineProvider;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export class VultisigAdapter {
|
|
25
|
+
keyring: core.Keyring;
|
|
26
|
+
|
|
27
|
+
private constructor(keyring: core.Keyring) {
|
|
28
|
+
this.keyring = keyring;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public static useKeyring(keyring: core.Keyring) {
|
|
32
|
+
return new VultisigAdapter(keyring);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public async initialize(): Promise<number> {
|
|
36
|
+
return Object.keys(this.keyring.wallets).length;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public async pairDevice(): Promise<VultisigHDWallet | undefined> {
|
|
40
|
+
const evmProvider = window.vultisig?.ethereum;
|
|
41
|
+
const bitcoinProvider = window.vultisig?.bitcoin;
|
|
42
|
+
const solanaProvider = window.vultisig?.solana;
|
|
43
|
+
const thorchainProvider = window.vultisig?.keplr;
|
|
44
|
+
const cosmosProvider = window.vultisig?.keplr;
|
|
45
|
+
|
|
46
|
+
if (!evmProvider || !bitcoinProvider || !solanaProvider || !thorchainProvider || !cosmosProvider) {
|
|
47
|
+
window.open("https://vultisig.com/", "_blank");
|
|
48
|
+
console.error("Please install Vultisig!");
|
|
49
|
+
throw new Error("Vultisig provider not found");
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Request authorization before accessing vault
|
|
53
|
+
if (!evmProvider.request) {
|
|
54
|
+
throw new Error("Vultisig EVM provider missing request method");
|
|
55
|
+
}
|
|
56
|
+
await evmProvider.request({ method: "eth_requestAccounts", params: [] });
|
|
57
|
+
|
|
58
|
+
const wallet = new VultisigHDWallet({
|
|
59
|
+
evmProvider,
|
|
60
|
+
bitcoinProvider,
|
|
61
|
+
solanaProvider,
|
|
62
|
+
thorchainProvider,
|
|
63
|
+
cosmosProvider,
|
|
64
|
+
});
|
|
65
|
+
await wallet.initialize();
|
|
66
|
+
const deviceID = await wallet.getDeviceID();
|
|
67
|
+
this.keyring.add(wallet, deviceID);
|
|
68
|
+
this.keyring.emit(["Vultisig", deviceID, core.Events.CONNECT], deviceID);
|
|
69
|
+
|
|
70
|
+
return wallet;
|
|
71
|
+
}
|
|
72
|
+
}
|