@shapeshiftoss/hdwallet-gridplus 1.62.15 → 1.62.16
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 +12 -0
- package/dist/gridplus.d.ts.map +1 -1
- package/dist/gridplus.js +62 -3
- package/dist/gridplus.js.map +1 -1
- package/package.json +3 -3
- package/src/adapter.ts +30 -6
- package/src/gridplus.ts +74 -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;
|
|
@@ -63,7 +64,10 @@ export declare class GridPlusHDWallet extends GridPlusWalletInfo implements core
|
|
|
63
64
|
readonly _supportsThorchain = true;
|
|
64
65
|
readonly _isGridPlus = true;
|
|
65
66
|
client: Client | undefined;
|
|
67
|
+
private expectedActiveWalletId?;
|
|
68
|
+
private expectedType?;
|
|
66
69
|
constructor(client: Client);
|
|
70
|
+
setExpectedActiveWalletId(activeWalletId: string, type?: SafeCardType): void;
|
|
67
71
|
cancel(): Promise<void>;
|
|
68
72
|
clearSession(): Promise<void>;
|
|
69
73
|
initialize(): Promise<void>;
|
|
@@ -85,6 +89,14 @@ export declare class GridPlusHDWallet extends GridPlusWalletInfo implements core
|
|
|
85
89
|
ping(msg: core.Ping): Promise<core.Pong>;
|
|
86
90
|
disconnect(): Promise<void>;
|
|
87
91
|
getActiveWalletId(): Promise<string | undefined>;
|
|
92
|
+
/**
|
|
93
|
+
* Validate that the currently active wallet matches expectations
|
|
94
|
+
* Throws if expectedActiveWalletId is provided and doesn't match
|
|
95
|
+
*/
|
|
96
|
+
validateActiveWallet(expectedActiveWalletId?: string, expectedType?: SafeCardType): Promise<{
|
|
97
|
+
activeWalletId: string;
|
|
98
|
+
type: SafeCardType;
|
|
99
|
+
}>;
|
|
88
100
|
getPublicKeys(msg: Array<core.GetPublicKey>): Promise<Array<core.PublicKey | null>>;
|
|
89
101
|
btcGetAddress(msg: core.BTCGetAddress): Promise<string | null>;
|
|
90
102
|
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":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAa,MAAM,cAAc,CAAC;AAWjD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AAInD,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,gBAAgB,CAE5E;AAED,qBAAa,kBACX,YACE,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,mBAAmB;IAE1B,QAAQ,CAAC,gBAAgB,QAAQ;IACjC,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,gBAAgB,QAAQ;IACjC,QAAQ,CAAC,sBAAsB,QAAQ;IACvC,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,sBAAsB,QAAQ;IAEvC,SAAS,IAAI,MAAM;IAInB,mBAAmB,IAAI,OAAO;IAI9B,qBAAqB,IAAI,OAAO;IAIhC,kBAAkB,IAAI,OAAO;IAI7B,mBAAmB,IAAI,OAAO;IAI9B,mBAAmB,IAAI,OAAO;IAI9B,qBAAqB,IAAI,OAAO;IAIhC,sBAAsB,IAAI,OAAO;IAIjC,iBAAiB,IAAI,OAAO;IAI5B,YAAY,IAAI,IAAI,CAAC,eAAe;IAQpC;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAa7F,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAInD,2BAA2B,IAAI,OAAO;IAItC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;IAwB5E,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS;IAmB7E;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrD,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAInD,2BAA2B,IAAI,OAAO;IAIhC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5C,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;IAc3E,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS;IAmB7E,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAIrF,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,SAAS;IAWtF,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;IASrF,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,SAAS;IAStF,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAS9F,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,GAAG,SAAS;IAQ/F,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAS9F,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,GAAG,SAAS;CAOhG;AAED,qBAAa,gBACX,SAAQ,kBACR,YACE,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe;IAEtB,QAAQ,CAAC,iBAAiB,QAAQ;IAClC,QAAQ,CAAC,qBAAqB,SAAS;IACvC,QAAQ,CAAC,kBAAkB,QAAQ;IACnC,QAAQ,CAAC,YAAY,QAAQ;IAC7B,QAAQ,CAAC,YAAY,QAAQ;IAC7B,QAAQ,CAAC,aAAa,QAAQ;IAC9B,QAAQ,CAAC,eAAe,QAAQ;IAChC,QAAQ,CAAC,YAAY,QAAQ;IAC7B,QAAQ,CAAC,uBAAuB,SAAS;IACzC,QAAQ,CAAC,eAAe,QAAQ;IAChC,QAAQ,CAAC,kBAAkB,QAAQ;IACnC,QAAQ,CAAC,iBAAiB,QAAQ;IAClC,QAAQ,CAAC,gBAAgB,QAAQ;IACjC,QAAQ,CAAC,eAAe,QAAQ;IAChC,QAAQ,CAAC,kBAAkB,QAAQ;IAEnC,QAAQ,CAAC,WAAW,QAAQ;IAE5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,YAAY,CAAC,CAAe;gBAExB,MAAM,EAAE,MAAM;IAKnB,yBAAyB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAK7E,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IACvB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAC7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACtB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAC9B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAErB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAK9B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAU3C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAIxC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAStD;;;OAGG;IACU,oBAAoB,CAC/B,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IA2BI,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAgDnF,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK9D,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAQhE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAIvD,gBAAgB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAI3C,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAKpE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;IAQzD,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAQ9E,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAQxE,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1C,OAAO,CAAC,qBAAqB;IAYvB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKpE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAQzE,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKpE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAQzE,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1E,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQlF,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1E,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAOzF"}
|
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
|
}
|
|
@@ -288,6 +289,10 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
288
289
|
this._isGridPlus = true;
|
|
289
290
|
this.client = client;
|
|
290
291
|
}
|
|
292
|
+
setExpectedActiveWalletId(activeWalletId, type) {
|
|
293
|
+
this.expectedActiveWalletId = activeWalletId;
|
|
294
|
+
this.expectedType = type;
|
|
295
|
+
}
|
|
291
296
|
cancel() {
|
|
292
297
|
return __awaiter(this, void 0, void 0, function* () { });
|
|
293
298
|
}
|
|
@@ -382,12 +387,42 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
382
387
|
if (!this.client)
|
|
383
388
|
throw new Error("Device not connected");
|
|
384
389
|
const { external, internal } = yield this.client.fetchActiveWallet();
|
|
385
|
-
if (
|
|
390
|
+
if (isSafecardConnected(external.uid))
|
|
386
391
|
return external.uid.toString("hex");
|
|
387
|
-
if (
|
|
392
|
+
if (isSafecardConnected(internal.uid))
|
|
388
393
|
return internal.uid.toString("hex");
|
|
389
394
|
});
|
|
390
395
|
}
|
|
396
|
+
/**
|
|
397
|
+
* Validate that the currently active wallet matches expectations
|
|
398
|
+
* Throws if expectedActiveWalletId is provided and doesn't match
|
|
399
|
+
*/
|
|
400
|
+
validateActiveWallet(expectedActiveWalletId, expectedType) {
|
|
401
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
402
|
+
if (!this.client)
|
|
403
|
+
throw new Error("Device not connected");
|
|
404
|
+
const activeWallets = yield this.client.fetchActiveWallet();
|
|
405
|
+
// Determine active wallet type (external SafeCard takes priority)
|
|
406
|
+
const type = (() => {
|
|
407
|
+
var _a, _b;
|
|
408
|
+
if (isSafecardConnected((_a = activeWallets.external) === null || _a === void 0 ? void 0 : _a.uid))
|
|
409
|
+
return "external";
|
|
410
|
+
if (isSafecardConnected((_b = activeWallets.internal) === null || _b === void 0 ? void 0 : _b.uid))
|
|
411
|
+
return "internal";
|
|
412
|
+
throw new Error("No active wallet found on device");
|
|
413
|
+
})();
|
|
414
|
+
const activeWallet = activeWallets[type];
|
|
415
|
+
const activeWalletId = activeWallet.uid.toString("hex");
|
|
416
|
+
// Validate against expected activeWalletId if provided
|
|
417
|
+
if (expectedActiveWalletId && activeWalletId !== expectedActiveWalletId) {
|
|
418
|
+
if (expectedType === "internal") {
|
|
419
|
+
throw new Error("Remove inserted SafeCard to access internal GridPlus wallet");
|
|
420
|
+
}
|
|
421
|
+
throw new Error("Active SafeCard doesn't match expected SafeCard");
|
|
422
|
+
}
|
|
423
|
+
return { activeWalletId, type };
|
|
424
|
+
});
|
|
425
|
+
}
|
|
391
426
|
getPublicKeys(msg) {
|
|
392
427
|
return __awaiter(this, void 0, void 0, function* () {
|
|
393
428
|
if (!this.client)
|
|
@@ -442,6 +477,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
442
477
|
return __awaiter(this, void 0, void 0, function* () {
|
|
443
478
|
if (!this.client)
|
|
444
479
|
throw new Error("Device not connected");
|
|
480
|
+
if (!this.expectedActiveWalletId)
|
|
481
|
+
throw new Error("Expected SafeCard ID not set");
|
|
482
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
445
483
|
return btc.btcSignTx(this.client, msg);
|
|
446
484
|
});
|
|
447
485
|
}
|
|
@@ -466,6 +504,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
466
504
|
return __awaiter(this, void 0, void 0, function* () {
|
|
467
505
|
if (!this.client)
|
|
468
506
|
throw new Error("Device not connected");
|
|
507
|
+
if (!this.expectedActiveWalletId)
|
|
508
|
+
throw new Error("Expected SafeCard ID not set");
|
|
509
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
469
510
|
return eth.ethSignTx(this.client, msg);
|
|
470
511
|
});
|
|
471
512
|
}
|
|
@@ -473,6 +514,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
473
514
|
return __awaiter(this, void 0, void 0, function* () {
|
|
474
515
|
if (!this.client)
|
|
475
516
|
throw new Error("Device not connected");
|
|
517
|
+
if (!this.expectedActiveWalletId)
|
|
518
|
+
throw new Error("Expected SafeCard ID not set");
|
|
519
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
476
520
|
return eth.ethSignTypedData(this.client, msg);
|
|
477
521
|
});
|
|
478
522
|
}
|
|
@@ -480,6 +524,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
480
524
|
return __awaiter(this, void 0, void 0, function* () {
|
|
481
525
|
if (!this.client)
|
|
482
526
|
throw new Error("Device not connected");
|
|
527
|
+
if (!this.expectedActiveWalletId)
|
|
528
|
+
throw new Error("Expected SafeCard ID not set");
|
|
529
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
483
530
|
return eth.ethSignMessage(this.client, msg);
|
|
484
531
|
});
|
|
485
532
|
}
|
|
@@ -505,6 +552,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
505
552
|
solanaSignTx(msg) {
|
|
506
553
|
return __awaiter(this, void 0, void 0, function* () {
|
|
507
554
|
this.assertSolanaFwSupport();
|
|
555
|
+
if (!this.expectedActiveWalletId)
|
|
556
|
+
throw new Error("Expected SafeCard ID not set");
|
|
557
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
508
558
|
return solana.solanaSignTx(this.client, msg);
|
|
509
559
|
});
|
|
510
560
|
}
|
|
@@ -519,6 +569,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
519
569
|
return __awaiter(this, void 0, void 0, function* () {
|
|
520
570
|
if (!this.client)
|
|
521
571
|
throw new Error("Device not connected");
|
|
572
|
+
if (!this.expectedActiveWalletId)
|
|
573
|
+
throw new Error("Expected SafeCard ID not set");
|
|
574
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
522
575
|
return cosmos.cosmosSignTx(this.client, msg);
|
|
523
576
|
});
|
|
524
577
|
}
|
|
@@ -533,6 +586,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
533
586
|
return __awaiter(this, void 0, void 0, function* () {
|
|
534
587
|
if (!this.client)
|
|
535
588
|
throw new Error("Device not connected");
|
|
589
|
+
if (!this.expectedActiveWalletId)
|
|
590
|
+
throw new Error("Expected SafeCard ID not set");
|
|
591
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
536
592
|
return thorchain.thorchainSignTx(this.client, msg);
|
|
537
593
|
});
|
|
538
594
|
}
|
|
@@ -547,6 +603,9 @@ class GridPlusHDWallet extends GridPlusWalletInfo {
|
|
|
547
603
|
return __awaiter(this, void 0, void 0, function* () {
|
|
548
604
|
if (!this.client)
|
|
549
605
|
throw new Error("Device not connected");
|
|
606
|
+
if (!this.expectedActiveWalletId)
|
|
607
|
+
throw new Error("Expected SafeCard ID not set");
|
|
608
|
+
yield this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
550
609
|
return mayachain.mayachainSignTx(this.client, msg);
|
|
551
610
|
});
|
|
552
611
|
}
|
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.16",
|
|
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.16",
|
|
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": "7e373a3d0b92ae899c8f7079bb2e81b1ff11b638"
|
|
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;
|
|
@@ -299,12 +302,19 @@ export class GridPlusHDWallet
|
|
|
299
302
|
readonly _isGridPlus = true;
|
|
300
303
|
|
|
301
304
|
client: Client | undefined;
|
|
305
|
+
private expectedActiveWalletId?: string;
|
|
306
|
+
private expectedType?: SafeCardType;
|
|
302
307
|
|
|
303
308
|
constructor(client: Client) {
|
|
304
309
|
super();
|
|
305
310
|
this.client = client;
|
|
306
311
|
}
|
|
307
312
|
|
|
313
|
+
public setExpectedActiveWalletId(activeWalletId: string, type?: SafeCardType): void {
|
|
314
|
+
this.expectedActiveWalletId = activeWalletId;
|
|
315
|
+
this.expectedType = type;
|
|
316
|
+
}
|
|
317
|
+
|
|
308
318
|
async cancel(): Promise<void> {}
|
|
309
319
|
async clearSession(): Promise<void> {}
|
|
310
320
|
async initialize(): Promise<void> {}
|
|
@@ -367,8 +377,45 @@ export class GridPlusHDWallet
|
|
|
367
377
|
|
|
368
378
|
const { external, internal } = await this.client.fetchActiveWallet();
|
|
369
379
|
|
|
370
|
-
if (
|
|
371
|
-
if (
|
|
380
|
+
if (isSafecardConnected(external.uid)) return external.uid.toString("hex");
|
|
381
|
+
if (isSafecardConnected(internal.uid)) return internal.uid.toString("hex");
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Validate that the currently active wallet matches expectations
|
|
386
|
+
* Throws if expectedActiveWalletId is provided and doesn't match
|
|
387
|
+
*/
|
|
388
|
+
public async validateActiveWallet(
|
|
389
|
+
expectedActiveWalletId?: string,
|
|
390
|
+
expectedType?: SafeCardType
|
|
391
|
+
): Promise<{
|
|
392
|
+
activeWalletId: string;
|
|
393
|
+
type: SafeCardType;
|
|
394
|
+
}> {
|
|
395
|
+
if (!this.client) throw new Error("Device not connected");
|
|
396
|
+
|
|
397
|
+
const activeWallets = await this.client.fetchActiveWallet();
|
|
398
|
+
|
|
399
|
+
// Determine active wallet type (external SafeCard takes priority)
|
|
400
|
+
const type: SafeCardType = (() => {
|
|
401
|
+
if (isSafecardConnected(activeWallets.external?.uid)) return "external";
|
|
402
|
+
if (isSafecardConnected(activeWallets.internal?.uid)) return "internal";
|
|
403
|
+
|
|
404
|
+
throw new Error("No active wallet found on device");
|
|
405
|
+
})();
|
|
406
|
+
|
|
407
|
+
const activeWallet = activeWallets[type];
|
|
408
|
+
const activeWalletId = activeWallet.uid.toString("hex");
|
|
409
|
+
|
|
410
|
+
// Validate against expected activeWalletId if provided
|
|
411
|
+
if (expectedActiveWalletId && activeWalletId !== expectedActiveWalletId) {
|
|
412
|
+
if (expectedType === "internal") {
|
|
413
|
+
throw new Error("Remove inserted SafeCard to access internal GridPlus wallet");
|
|
414
|
+
}
|
|
415
|
+
throw new Error("Active SafeCard doesn't match expected SafeCard");
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
return { activeWalletId, type };
|
|
372
419
|
}
|
|
373
420
|
|
|
374
421
|
async getPublicKeys(msg: Array<core.GetPublicKey>): Promise<Array<core.PublicKey | null>> {
|
|
@@ -426,6 +473,9 @@ export class GridPlusHDWallet
|
|
|
426
473
|
|
|
427
474
|
async btcSignTx(msg: core.BTCSignTx): Promise<core.BTCSignedTx | null> {
|
|
428
475
|
if (!this.client) throw new Error("Device not connected");
|
|
476
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
477
|
+
|
|
478
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
429
479
|
return btc.btcSignTx(this.client, msg);
|
|
430
480
|
}
|
|
431
481
|
|
|
@@ -444,16 +494,25 @@ export class GridPlusHDWallet
|
|
|
444
494
|
|
|
445
495
|
async ethSignTx(msg: core.ETHSignTx): Promise<core.ETHSignedTx> {
|
|
446
496
|
if (!this.client) throw new Error("Device not connected");
|
|
497
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
498
|
+
|
|
499
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
447
500
|
return eth.ethSignTx(this.client, msg);
|
|
448
501
|
}
|
|
449
502
|
|
|
450
503
|
async ethSignTypedData(msg: core.ETHSignTypedData): Promise<core.ETHSignedTypedData> {
|
|
451
504
|
if (!this.client) throw new Error("Device not connected");
|
|
505
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
506
|
+
|
|
507
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
452
508
|
return eth.ethSignTypedData(this.client, msg);
|
|
453
509
|
}
|
|
454
510
|
|
|
455
511
|
async ethSignMessage(msg: core.ETHSignMessage): Promise<core.ETHSignedMessage> {
|
|
456
512
|
if (!this.client) throw new Error("Device not connected");
|
|
513
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
514
|
+
|
|
515
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
457
516
|
return eth.ethSignMessage(this.client, msg);
|
|
458
517
|
}
|
|
459
518
|
|
|
@@ -480,6 +539,9 @@ export class GridPlusHDWallet
|
|
|
480
539
|
|
|
481
540
|
async solanaSignTx(msg: core.SolanaSignTx): Promise<core.SolanaSignedTx | null> {
|
|
482
541
|
this.assertSolanaFwSupport();
|
|
542
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
543
|
+
|
|
544
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
483
545
|
return solana.solanaSignTx(this.client, msg);
|
|
484
546
|
}
|
|
485
547
|
|
|
@@ -490,6 +552,9 @@ export class GridPlusHDWallet
|
|
|
490
552
|
|
|
491
553
|
async cosmosSignTx(msg: core.CosmosSignTx): Promise<core.CosmosSignedTx | null> {
|
|
492
554
|
if (!this.client) throw new Error("Device not connected");
|
|
555
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
556
|
+
|
|
557
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
493
558
|
return cosmos.cosmosSignTx(this.client, msg);
|
|
494
559
|
}
|
|
495
560
|
|
|
@@ -500,6 +565,9 @@ export class GridPlusHDWallet
|
|
|
500
565
|
|
|
501
566
|
async thorchainSignTx(msg: core.ThorchainSignTx): Promise<core.ThorchainSignedTx | null> {
|
|
502
567
|
if (!this.client) throw new Error("Device not connected");
|
|
568
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
569
|
+
|
|
570
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
503
571
|
return thorchain.thorchainSignTx(this.client, msg);
|
|
504
572
|
}
|
|
505
573
|
|
|
@@ -510,6 +578,9 @@ export class GridPlusHDWallet
|
|
|
510
578
|
|
|
511
579
|
async mayachainSignTx(msg: core.MayachainSignTx): Promise<core.MayachainSignedTx | null> {
|
|
512
580
|
if (!this.client) throw new Error("Device not connected");
|
|
581
|
+
if (!this.expectedActiveWalletId) throw new Error("Expected SafeCard ID not set");
|
|
582
|
+
|
|
583
|
+
await this.validateActiveWallet(this.expectedActiveWalletId, this.expectedType);
|
|
513
584
|
return mayachain.mayachainSignTx(this.client, msg);
|
|
514
585
|
}
|
|
515
586
|
}
|