@shapeshiftoss/hdwallet-gridplus 1.62.15 → 1.62.17
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/adapter.d.ts +7 -3
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +19 -6
- package/dist/adapter.js.map +1 -1
- package/dist/gridplus.d.ts +13 -0
- package/dist/gridplus.d.ts.map +1 -1
- package/dist/gridplus.js +63 -3
- package/dist/gridplus.js.map +1 -1
- package/package.json +3 -3
- package/src/adapter.ts +30 -6
- package/src/gridplus.ts +75 -3
- package/tsconfig.tsbuildinfo +1 -1
package/dist/adapter.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
-
import { GridPlusHDWallet } from "./gridplus";
|
|
2
|
+
import { GridPlusHDWallet, SafeCardType } from "./gridplus";
|
|
3
3
|
export declare class GridPlusAdapter {
|
|
4
4
|
keyring: core.Keyring;
|
|
5
5
|
private client?;
|
|
6
6
|
constructor(keyring: core.Keyring);
|
|
7
7
|
static useKeyring(keyring: core.Keyring): GridPlusAdapter;
|
|
8
|
-
connectDevice(deviceId: string,
|
|
9
|
-
pairDevice(pairingCode: string): Promise<
|
|
8
|
+
connectDevice(deviceId: string, expectedActiveWalletId?: string, expectedType?: SafeCardType): Promise<GridPlusHDWallet | undefined>;
|
|
9
|
+
pairDevice(pairingCode: string): Promise<{
|
|
10
|
+
wallet: GridPlusHDWallet;
|
|
11
|
+
activeWalletId: string;
|
|
12
|
+
type: SafeCardType;
|
|
13
|
+
}>;
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=adapter.d.ts.map
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAIrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAIrD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK5D,qBAAa,eAAe;IAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;IAEtB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,IAAI,CAAC,OAAO;WAInB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO;IAIjC,aAAa,CACxB,QAAQ,EAAE,MAAM,EAChB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAuB3B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QACpD,MAAM,EAAE,gBAAgB,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;CAqBH"}
|
package/dist/adapter.js
CHANGED
|
@@ -22,10 +22,10 @@ class GridPlusAdapter {
|
|
|
22
22
|
static useKeyring(keyring) {
|
|
23
23
|
return new GridPlusAdapter(keyring);
|
|
24
24
|
}
|
|
25
|
-
connectDevice(
|
|
26
|
-
return __awaiter(this,
|
|
25
|
+
connectDevice(deviceId, expectedActiveWalletId, expectedType) {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
27
|
const privKey = (0, crypto_1.createHash)("sha256")
|
|
28
|
-
.update(deviceId +
|
|
28
|
+
.update(deviceId + name)
|
|
29
29
|
.digest();
|
|
30
30
|
if (!this.client) {
|
|
31
31
|
this.client = new gridplus_sdk_1.Client({ name, baseUrl, privKey, deviceId });
|
|
@@ -36,8 +36,12 @@ class GridPlusAdapter {
|
|
|
36
36
|
this.client.resetActiveWallets();
|
|
37
37
|
}
|
|
38
38
|
const isPaired = yield this.client.connect(deviceId);
|
|
39
|
-
if (isPaired)
|
|
40
|
-
return
|
|
39
|
+
if (!isPaired)
|
|
40
|
+
return undefined;
|
|
41
|
+
const wallet = new gridplus_1.GridPlusHDWallet(this.client);
|
|
42
|
+
if (expectedActiveWalletId)
|
|
43
|
+
yield wallet.validateActiveWallet(expectedActiveWalletId, expectedType);
|
|
44
|
+
return wallet;
|
|
41
45
|
});
|
|
42
46
|
}
|
|
43
47
|
pairDevice(pairingCode) {
|
|
@@ -49,7 +53,16 @@ class GridPlusAdapter {
|
|
|
49
53
|
throw new Error("Failed to pair.");
|
|
50
54
|
const wallet = new gridplus_1.GridPlusHDWallet(this.client);
|
|
51
55
|
this.keyring.add(wallet, this.client.getDeviceId());
|
|
52
|
-
|
|
56
|
+
const activeWallet = this.client.getActiveWallet();
|
|
57
|
+
if (!activeWallet)
|
|
58
|
+
throw new Error("No active wallet found on device");
|
|
59
|
+
const activeWalletId = activeWallet.uid.toString("hex");
|
|
60
|
+
const type = activeWallet.external ? "external" : "internal";
|
|
61
|
+
return {
|
|
62
|
+
wallet,
|
|
63
|
+
activeWalletId,
|
|
64
|
+
type,
|
|
65
|
+
};
|
|
53
66
|
});
|
|
54
67
|
}
|
|
55
68
|
}
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAoC;AACpC,+CAAsC;AAEtC,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAoC;AACpC,+CAAsC;AAEtC,yCAA4D;AAE5D,MAAM,IAAI,GAAG,YAAY,CAAC;AAC1B,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAE5C,MAAa,eAAe;IAK1B,YAAY,OAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAqB;QAC5C,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEY,aAAa,CACxB,QAAgB,EAChB,sBAA+B,EAC/B,YAA2B;;YAE3B,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC;iBACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACvB,MAAM,EAAE,CAAC;YAEZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,uFAAuF;gBACvF,6FAA6F;gBAC7F,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAEhC,MAAM,MAAM,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,sBAAsB;gBAAE,MAAM,MAAM,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;YAEpG,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEY,UAAU,CAAC,WAAmB;;YAKzC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAEpF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAEjD,MAAM,MAAM,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAEvE,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;YAE7D,OAAO;gBACL,MAAM;gBACN,cAAc;gBACd,IAAI;aACL,CAAC;QACJ,CAAC;KAAA;CACF;AAjED,0CAiEC"}
|
package/dist/gridplus.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
2
|
import { Client } from "gridplus-sdk";
|
|
3
|
+
export type SafeCardType = "external" | "internal";
|
|
3
4
|
export declare function isGridPlus(wallet: core.HDWallet): wallet is GridPlusHDWallet;
|
|
4
5
|
export declare class GridPlusWalletInfo implements core.HDWalletInfo, core.BTCWalletInfo, core.CosmosWalletInfo, core.ETHWalletInfo, core.MayachainWalletInfo, core.SolanaWalletInfo, core.ThorchainWalletInfo {
|
|
5
6
|
readonly _supportsBTCInfo = true;
|
|
@@ -52,6 +53,7 @@ export declare class GridPlusHDWallet extends GridPlusWalletInfo implements core
|
|
|
52
53
|
readonly _supportsBSC = true;
|
|
53
54
|
readonly _supportsBTC = true;
|
|
54
55
|
readonly _supportsBase = true;
|
|
56
|
+
readonly _supportsMonad = false;
|
|
55
57
|
readonly _supportsCosmos = true;
|
|
56
58
|
readonly _supportsETH = true;
|
|
57
59
|
readonly _supportsEthSwitchChain = false;
|
|
@@ -63,7 +65,10 @@ export declare class GridPlusHDWallet extends GridPlusWalletInfo implements core
|
|
|
63
65
|
readonly _supportsThorchain = true;
|
|
64
66
|
readonly _isGridPlus = true;
|
|
65
67
|
client: Client | undefined;
|
|
68
|
+
private expectedActiveWalletId?;
|
|
69
|
+
private expectedType?;
|
|
66
70
|
constructor(client: Client);
|
|
71
|
+
setExpectedActiveWalletId(activeWalletId: string, type?: SafeCardType): void;
|
|
67
72
|
cancel(): Promise<void>;
|
|
68
73
|
clearSession(): Promise<void>;
|
|
69
74
|
initialize(): Promise<void>;
|
|
@@ -85,6 +90,14 @@ export declare class GridPlusHDWallet extends GridPlusWalletInfo implements core
|
|
|
85
90
|
ping(msg: core.Ping): Promise<core.Pong>;
|
|
86
91
|
disconnect(): Promise<void>;
|
|
87
92
|
getActiveWalletId(): Promise<string | undefined>;
|
|
93
|
+
/**
|
|
94
|
+
* Validate that the currently active wallet matches expectations
|
|
95
|
+
* Throws if expectedActiveWalletId is provided and doesn't match
|
|
96
|
+
*/
|
|
97
|
+
validateActiveWallet(expectedActiveWalletId?: string, expectedType?: SafeCardType): Promise<{
|
|
98
|
+
activeWalletId: string;
|
|
99
|
+
type: SafeCardType;
|
|
100
|
+
}>;
|
|
88
101
|
getPublicKeys(msg: Array<core.GetPublicKey>): Promise<Array<core.PublicKey | null>>;
|
|
89
102
|
btcGetAddress(msg: core.BTCGetAddress): Promise<string | null>;
|
|
90
103
|
btcSignTx(msg: core.BTCSignTx): Promise<core.BTCSignedTx | null>;
|
package/dist/gridplus.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gridplus.d.ts","sourceRoot":"","sources":["../src/gridplus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAa,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"gridplus.d.ts","sourceRoot":"","sources":["../src/gridplus.ts"],"names":[],"mappings":"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"}
|
package/dist/gridplus.js
CHANGED
|
@@ -40,13 +40,14 @@ exports.isGridPlus = isGridPlus;
|
|
|
40
40
|
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
41
41
|
const gridplus_sdk_1 = require("gridplus-sdk");
|
|
42
42
|
const isObject_1 = __importDefault(require("lodash/isObject"));
|
|
43
|
+
const viem_1 = require("viem");
|
|
43
44
|
const btc = __importStar(require("./bitcoin"));
|
|
44
45
|
const cosmos = __importStar(require("./cosmos"));
|
|
45
46
|
const eth = __importStar(require("./ethereum"));
|
|
46
47
|
const mayachain = __importStar(require("./mayachain"));
|
|
47
48
|
const solana = __importStar(require("./solana"));
|
|
48
49
|
const thorchain = __importStar(require("./thorchain"));
|
|
49
|
-
const
|
|
50
|
+
const isSafecardConnected = (uid) => !!uid && `0x${uid.toString("hex")}` !== viem_1.zeroHash;
|
|
50
51
|
function isGridPlus(wallet) {
|
|
51
52
|
return (0, isObject_1.default)(wallet) && wallet._isGridPlus;
|
|
52
53
|
}
|
|
@@ -276,6 +277,7 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
276
277
|
this._supportsBSC = true;
|
|
277
278
|
this._supportsBTC = true;
|
|
278
279
|
this._supportsBase = true;
|
|
280
|
+
this._supportsMonad = false;
|
|
279
281
|
this._supportsCosmos = true;
|
|
280
282
|
this._supportsETH = true;
|
|
281
283
|
this._supportsEthSwitchChain = false;
|
|
@@ -288,6 +290,10 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
288
290
|
this._isGridPlus = true;
|
|
289
291
|
this.client = client;
|
|
290
292
|
}
|
|
293
|
+
setExpectedActiveWalletId(activeWalletId, type) {
|
|
294
|
+
this.expectedActiveWalletId = activeWalletId;
|
|
295
|
+
this.expectedType = type;
|
|
296
|
+
}
|
|
291
297
|
cancel() {
|
|
292
298
|
return __awaiter(this, void 0, void 0, function* () { });
|
|
293
299
|
}
|
|
@@ -382,12 +388,42 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
382
388
|
if (!this.client)
|
|
383
389
|
throw new Error("Device not connected");
|
|
384
390
|
const { external, internal } = yield this.client.fetchActiveWallet();
|
|
385
|
-
if (
|
|
391
|
+
if (isSafecardConnected(external.uid))
|
|
386
392
|
return external.uid.toString("hex");
|
|
387
|
-
if (
|
|
393
|
+
if (isSafecardConnected(internal.uid))
|
|
388
394
|
return internal.uid.toString("hex");
|
|
389
395
|
});
|
|
390
396
|
}
|
|
397
|
+
/**
|
|
398
|
+
* Validate that the currently active wallet matches expectations
|
|
399
|
+
* Throws if expectedActiveWalletId is provided and doesn't match
|
|
400
|
+
*/
|
|
401
|
+
validateActiveWallet(expectedActiveWalletId, expectedType) {
|
|
402
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
403
|
+
if (!this.client)
|
|
404
|
+
throw new Error("Device not connected");
|
|
405
|
+
const activeWallets = yield this.client.fetchActiveWallet();
|
|
406
|
+
// Determine active wallet type (external SafeCard takes priority)
|
|
407
|
+
const type = (() => {
|
|
408
|
+
var _a, _b;
|
|
409
|
+
if (isSafecardConnected((_a = activeWallets.external) === null || _a === void 0 ? void 0 : _a.uid))
|
|
410
|
+
return "external";
|
|
411
|
+
if (isSafecardConnected((_b = activeWallets.internal) === null || _b === void 0 ? void 0 : _b.uid))
|
|
412
|
+
return "internal";
|
|
413
|
+
throw new Error("No active wallet found on device");
|
|
414
|
+
})();
|
|
415
|
+
const activeWallet = activeWallets[type];
|
|
416
|
+
const activeWalletId = activeWallet.uid.toString("hex");
|
|
417
|
+
// Validate against expected activeWalletId if provided
|
|
418
|
+
if (expectedActiveWalletId && activeWalletId !== expectedActiveWalletId) {
|
|
419
|
+
if (expectedType === "internal") {
|
|
420
|
+
throw new Error("Remove inserted SafeCard to access internal GridPlus wallet");
|
|
421
|
+
}
|
|
422
|
+
throw new Error("Active SafeCard doesn't match expected SafeCard");
|
|
423
|
+
}
|
|
424
|
+
return { activeWalletId, type };
|
|
425
|
+
});
|
|
426
|
+
}
|
|
391
427
|
getPublicKeys(msg) {
|
|
392
428
|
return __awaiter(this, void 0, void 0, function* () {
|
|
393
429
|
if (!this.client)
|
|
@@ -442,6 +478,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
442
478
|
return __awaiter(this, void 0, void 0, function* () {
|
|
443
479
|
if (!this.client)
|
|
444
480
|
throw new Error("Device not connected");
|
|
481
|
+
if (!this.expectedActiveWalletId)
|
|
482
|
+
throw new Error("Expected SafeCard ID not set");
|
|
483
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
445
484
|
return btc.btcSignTx(this.client, msg);
|
|
446
485
|
});
|
|
447
486
|
}
|
|
@@ -466,6 +505,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
466
505
|
return __awaiter(this, void 0, void 0, function* () {
|
|
467
506
|
if (!this.client)
|
|
468
507
|
throw new Error("Device not connected");
|
|
508
|
+
if (!this.expectedActiveWalletId)
|
|
509
|
+
throw new Error("Expected SafeCard ID not set");
|
|
510
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
469
511
|
return eth.ethSignTx(this.client, msg);
|
|
470
512
|
});
|
|
471
513
|
}
|
|
@@ -473,6 +515,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
473
515
|
return __awaiter(this, void 0, void 0, function* () {
|
|
474
516
|
if (!this.client)
|
|
475
517
|
throw new Error("Device not connected");
|
|
518
|
+
if (!this.expectedActiveWalletId)
|
|
519
|
+
throw new Error("Expected SafeCard ID not set");
|
|
520
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
476
521
|
return eth.ethSignTypedData(this.client, msg);
|
|
477
522
|
});
|
|
478
523
|
}
|
|
@@ -480,6 +525,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
480
525
|
return __awaiter(this, void 0, void 0, function* () {
|
|
481
526
|
if (!this.client)
|
|
482
527
|
throw new Error("Device not connected");
|
|
528
|
+
if (!this.expectedActiveWalletId)
|
|
529
|
+
throw new Error("Expected SafeCard ID not set");
|
|
530
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
483
531
|
return eth.ethSignMessage(this.client, msg);
|
|
484
532
|
});
|
|
485
533
|
}
|
|
@@ -505,6 +553,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
505
553
|
solanaSignTx(msg) {
|
|
506
554
|
return __awaiter(this, void 0, void 0, function* () {
|
|
507
555
|
this.assertSolanaFwSupport();
|
|
556
|
+
if (!this.expectedActiveWalletId)
|
|
557
|
+
throw new Error("Expected SafeCard ID not set");
|
|
558
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
508
559
|
return solana.solanaSignTx(this.client, msg);
|
|
509
560
|
});
|
|
510
561
|
}
|
|
@@ -519,6 +570,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
519
570
|
return __awaiter(this, void 0, void 0, function* () {
|
|
520
571
|
if (!this.client)
|
|
521
572
|
throw new Error("Device not connected");
|
|
573
|
+
if (!this.expectedActiveWalletId)
|
|
574
|
+
throw new Error("Expected SafeCard ID not set");
|
|
575
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
522
576
|
return cosmos.cosmosSignTx(this.client, msg);
|
|
523
577
|
});
|
|
524
578
|
}
|
|
@@ -533,6 +587,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
533
587
|
return __awaiter(this, void 0, void 0, function* () {
|
|
534
588
|
if (!this.client)
|
|
535
589
|
throw new Error("Device not connected");
|
|
590
|
+
if (!this.expectedActiveWalletId)
|
|
591
|
+
throw new Error("Expected SafeCard ID not set");
|
|
592
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
536
593
|
return thorchain.thorchainSignTx(this.client, msg);
|
|
537
594
|
});
|
|
538
595
|
}
|
|
@@ -547,6 +604,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
547
604
|
return __awaiter(this, void 0, void 0, function* () {
|
|
548
605
|
if (!this.client)
|
|
549
606
|
throw new Error("Device not connected");
|
|
607
|
+
if (!this.expectedActiveWalletId)
|
|
608
|
+
throw new Error("Expected SafeCard ID not set");
|
|
609
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
550
610
|
return mayachain.mayachainSignTx(this.client, msg);
|
|
551
611
|
});
|
|
552
612
|
}
|
package/dist/gridplus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gridplus.js","sourceRoot":"","sources":["../src/gridplus.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gridplus.js","sourceRoot":"","sources":["../src/gridplus.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/hdwallet-gridplus",
|
|
3
|
-
"version": "1.62.
|
|
3
|
+
"version": "1.62.17",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@ethereumjs/rlp": "5.0.2",
|
|
21
21
|
"@ethereumjs/tx": "5.4.0",
|
|
22
22
|
"@metamask/eth-sig-util": "^7.0.0",
|
|
23
|
-
"@shapeshiftoss/hdwallet-core": "1.62.
|
|
23
|
+
"@shapeshiftoss/hdwallet-core": "1.62.17",
|
|
24
24
|
"bech32": "^1.1.4",
|
|
25
25
|
"bs58": "^5.0.0",
|
|
26
26
|
"crypto-js": "^4.2.0",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"@ethereumjs/common",
|
|
36
36
|
"@ethereumjs/tx"
|
|
37
37
|
],
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "b7b42fc4968cab5eb8063193baa8b54ac047a605"
|
|
39
39
|
}
|
package/src/adapter.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as core from "@shapeshiftoss/hdwallet-core";
|
|
|
2
2
|
import { createHash } from "crypto";
|
|
3
3
|
import { Client } from "gridplus-sdk";
|
|
4
4
|
|
|
5
|
-
import { GridPlusHDWallet } from "./gridplus";
|
|
5
|
+
import { GridPlusHDWallet, SafeCardType } from "./gridplus";
|
|
6
6
|
|
|
7
7
|
const name = "ShapeShift";
|
|
8
8
|
const baseUrl = "https://signing.gridpl.us";
|
|
@@ -20,9 +20,13 @@ export class GridPlusAdapter {
|
|
|
20
20
|
return new GridPlusAdapter(keyring);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
public async connectDevice(
|
|
23
|
+
public async connectDevice(
|
|
24
|
+
deviceId: string,
|
|
25
|
+
expectedActiveWalletId?: string,
|
|
26
|
+
expectedType?: SafeCardType
|
|
27
|
+
): Promise<GridPlusHDWallet | undefined> {
|
|
24
28
|
const privKey = createHash("sha256")
|
|
25
|
-
.update(deviceId +
|
|
29
|
+
.update(deviceId + name)
|
|
26
30
|
.digest();
|
|
27
31
|
|
|
28
32
|
if (!this.client) {
|
|
@@ -34,10 +38,20 @@ export class GridPlusAdapter {
|
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
const isPaired = await this.client.connect(deviceId);
|
|
37
|
-
if (isPaired) return
|
|
41
|
+
if (!isPaired) return undefined;
|
|
42
|
+
|
|
43
|
+
const wallet = new GridPlusHDWallet(this.client);
|
|
44
|
+
|
|
45
|
+
if (expectedActiveWalletId) await wallet.validateActiveWallet(expectedActiveWalletId, expectedType);
|
|
46
|
+
|
|
47
|
+
return wallet;
|
|
38
48
|
}
|
|
39
49
|
|
|
40
|
-
public async pairDevice(pairingCode: string): Promise<
|
|
50
|
+
public async pairDevice(pairingCode: string): Promise<{
|
|
51
|
+
wallet: GridPlusHDWallet;
|
|
52
|
+
activeWalletId: string;
|
|
53
|
+
type: SafeCardType;
|
|
54
|
+
}> {
|
|
41
55
|
if (!this.client) throw new Error("No client connected. Call connectDevice first.");
|
|
42
56
|
|
|
43
57
|
const success = await this.client.pair(pairingCode);
|
|
@@ -46,6 +60,16 @@ export class GridPlusAdapter {
|
|
|
46
60
|
const wallet = new GridPlusHDWallet(this.client);
|
|
47
61
|
this.keyring.add(wallet, this.client.getDeviceId());
|
|
48
62
|
|
|
49
|
-
|
|
63
|
+
const activeWallet = this.client.getActiveWallet();
|
|
64
|
+
if (!activeWallet) throw new Error("No active wallet found on device");
|
|
65
|
+
|
|
66
|
+
const activeWalletId = activeWallet.uid.toString("hex");
|
|
67
|
+
const type = activeWallet.external ? "external" : "internal";
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
wallet,
|
|
71
|
+
activeWalletId,
|
|
72
|
+
type,
|
|
73
|
+
};
|
|
50
74
|
}
|
|
51
75
|
}
|
package/src/gridplus.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
2
|
import { Client, Constants } from "gridplus-sdk";
|
|
3
3
|
import isObject from "lodash/isObject";
|
|
4
|
+
import { zeroHash } from "viem";
|
|
4
5
|
|
|
5
6
|
import * as btc from "./bitcoin";
|
|
6
7
|
import * as cosmos from "./cosmos";
|
|
@@ -9,7 +10,9 @@ import * as mayachain from "./mayachain";
|
|
|
9
10
|
import * as solana from "./solana";
|
|
10
11
|
import * as thorchain from "./thorchain";
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
export type SafeCardType = "external" | "internal";
|
|
14
|
+
|
|
15
|
+
const isSafecardConnected = (uid?: Buffer): boolean => !!uid && `0x${uid.toString("hex")}` !== zeroHash;
|
|
13
16
|
|
|
14
17
|
export function isGridPlus(wallet: core.HDWallet): wallet is GridPlusHDWallet {
|
|
15
18
|
return isObject(wallet) && (wallet as any)._isGridPlus;
|
|
@@ -286,6 +289,7 @@ export class GridPlusHDWallet
|
|
|
286
289
|
readonly _supportsBSC = true;
|
|
287
290
|
readonly _supportsBTC = true;
|
|
288
291
|
readonly _supportsBase = true;
|
|
292
|
+
readonly _supportsMonad = false;
|
|
289
293
|
readonly _supportsCosmos = true;
|
|
290
294
|
readonly _supportsETH = true;
|
|
291
295
|
readonly _supportsEthSwitchChain = false;
|
|
@@ -299,12 +303,19 @@ export class GridPlusHDWallet
|
|
|
299
303
|
readonly _isGridPlus = true;
|
|
300
304
|
|
|
301
305
|
client: Client | undefined;
|
|
306
|
+
private expectedActiveWalletId?: string;
|
|
307
|
+
private expectedType?: SafeCardType;
|
|
302
308
|
|
|
303
309
|
constructor(client: Client) {
|
|
304
310
|
super();
|
|
305
311
|
this.client = client;
|
|
306
312
|
}
|
|
307
313
|
|
|
314
|
+
public setExpectedActiveWalletId(activeWalletId: string, type?: SafeCardType): void {
|
|
315
|
+
this.expectedActiveWalletId = activeWalletId;
|
|
316
|
+
this.expectedType = type;
|
|
317
|
+
}
|
|
318
|
+
|
|
308
319
|
async cancel(): Promise<void> {}
|
|
309
320
|
async clearSession(): Promise<void> {}
|
|
310
321
|
async initialize(): Promise<void> {}
|
|
@@ -367,8 +378,45 @@ export class GridPlusHDWallet
|
|
|
367
378
|
|
|
368
379
|
const { external, internal } = await this.client.fetchActiveWallet();
|
|
369
380
|
|
|
370
|
-
if (
|
|
371
|
-
if (
|
|
381
|
+
if (isSafecardConnected(external.uid)) return external.uid.toString("hex");
|
|
382
|
+
if (isSafecardConnected(internal.uid)) return internal.uid.toString("hex");
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* Validate that the currently active wallet matches expectations
|
|
387
|
+
* Throws if expectedActiveWalletId is provided and doesn't match
|
|
388
|
+
*/
|
|
389
|
+
public async validateActiveWallet(
|
|
390
|
+
expectedActiveWalletId?: string,
|
|
391
|
+
expectedType?: SafeCardType
|
|
392
|
+
): Promise<{
|
|
393
|
+
activeWalletId: string;
|
|
394
|
+
type: SafeCardType;
|
|
395
|
+
}> {
|
|
396
|
+
if (!this.client) throw new Error("Device not connected");
|
|
397
|
+
|
|
398
|
+
const activeWallets = await this.client.fetchActiveWallet();
|
|
399
|
+
|
|
400
|
+
// Determine active wallet type (external SafeCard takes priority)
|
|
401
|
+
const type: SafeCardType = (() => {
|
|
402
|
+
if (isSafecardConnected(activeWallets.external?.uid)) return "external";
|
|
403
|
+
if (isSafecardConnected(activeWallets.internal?.uid)) return "internal";
|
|
404
|
+
|
|
405
|
+
throw new Error("No active wallet found on device");
|
|
406
|
+
})();
|
|
407
|
+
|
|
408
|
+
const activeWallet = activeWallets[type];
|
|
409
|
+
const activeWalletId = activeWallet.uid.toString("hex");
|
|
410
|
+
|
|
411
|
+
// Validate against expected activeWalletId if provided
|
|
412
|
+
if (expectedActiveWalletId && activeWalletId !== expectedActiveWalletId) {
|
|
413
|
+
if (expectedType === "internal") {
|
|
414
|
+
throw new Error("Remove inserted SafeCard to access internal GridPlus wallet");
|
|
415
|
+
}
|
|
416
|
+
throw new Error("Active SafeCard doesn't match expected SafeCard");
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
return { activeWalletId, type };
|
|
372
420
|
}
|
|
373
421
|
|
|
374
422
|
async getPublicKeys(msg: Array<core.GetPublicKey>): Promise<Array<core.PublicKey | null>> {
|
|
@@ -426,6 +474,9 @@ export class GridPlusHDWallet
|
|
|
426
474
|
|
|
427
475
|
async btcSignTx(msg: core.BTCSignTx): Promise<core.BTCSignedTx | null> {
|
|
428
476
|
if (!this.client) throw new Error("Device not connected");
|
|
477
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
478
|
+
|
|
479
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
429
480
|
return btc.btcSignTx(this.client, msg);
|
|
430
481
|
}
|
|
431
482
|
|
|
@@ -444,16 +495,25 @@ export class GridPlusHDWallet
|
|
|
444
495
|
|
|
445
496
|
async ethSignTx(msg: core.ETHSignTx): Promise<core.ETHSignedTx> {
|
|
446
497
|
if (!this.client) throw new Error("Device not connected");
|
|
498
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
499
|
+
|
|
500
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
447
501
|
return eth.ethSignTx(this.client, msg);
|
|
448
502
|
}
|
|
449
503
|
|
|
450
504
|
async ethSignTypedData(msg: core.ETHSignTypedData): Promise<core.ETHSignedTypedData> {
|
|
451
505
|
if (!this.client) throw new Error("Device not connected");
|
|
506
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
507
|
+
|
|
508
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
452
509
|
return eth.ethSignTypedData(this.client, msg);
|
|
453
510
|
}
|
|
454
511
|
|
|
455
512
|
async ethSignMessage(msg: core.ETHSignMessage): Promise<core.ETHSignedMessage> {
|
|
456
513
|
if (!this.client) throw new Error("Device not connected");
|
|
514
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
515
|
+
|
|
516
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
457
517
|
return eth.ethSignMessage(this.client, msg);
|
|
458
518
|
}
|
|
459
519
|
|
|
@@ -480,6 +540,9 @@ export class GridPlusHDWallet
|
|
|
480
540
|
|
|
481
541
|
async solanaSignTx(msg: core.SolanaSignTx): Promise<core.SolanaSignedTx | null> {
|
|
482
542
|
this.assertSolanaFwSupport();
|
|
543
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
544
|
+
|
|
545
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
483
546
|
return solana.solanaSignTx(this.client, msg);
|
|
484
547
|
}
|
|
485
548
|
|
|
@@ -490,6 +553,9 @@ export class GridPlusHDWallet
|
|
|
490
553
|
|
|
491
554
|
async cosmosSignTx(msg: core.CosmosSignTx): Promise<core.CosmosSignedTx | null> {
|
|
492
555
|
if (!this.client) throw new Error("Device not connected");
|
|
556
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
557
|
+
|
|
558
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
493
559
|
return cosmos.cosmosSignTx(this.client, msg);
|
|
494
560
|
}
|
|
495
561
|
|
|
@@ -500,6 +566,9 @@ export class GridPlusHDWallet
|
|
|
500
566
|
|
|
501
567
|
async thorchainSignTx(msg: core.ThorchainSignTx): Promise<core.ThorchainSignedTx | null> {
|
|
502
568
|
if (!this.client) throw new Error("Device not connected");
|
|
569
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
570
|
+
|
|
571
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
503
572
|
return thorchain.thorchainSignTx(this.client, msg);
|
|
504
573
|
}
|
|
505
574
|
|
|
@@ -510,6 +579,9 @@ export class GridPlusHDWallet
|
|
|
510
579
|
|
|
511
580
|
async mayachainSignTx(msg: core.MayachainSignTx): Promise<core.MayachainSignedTx | null> {
|
|
512
581
|
if (!this.client) throw new Error("Device not connected");
|
|
582
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
583
|
+
|
|
584
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
513
585
|
return mayachain.mayachainSignTx(this.client, msg);
|
|
514
586
|
}
|
|
515
587
|
}
|