@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 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, password?: string): Promise<GridPlusHDWallet | undefined>;
9
- pairDevice(pairingCode: string): Promise<GridPlusHDWallet>;
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
@@ -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;AAK9C,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,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAiBrF,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAWxE"}
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(deviceId_1) {
26
- return __awaiter(this, arguments, void 0, function* (deviceId, password = "") {
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 + password + name)
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 new gridplus_1.GridPlusHDWallet(this.client);
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
- return wallet;
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAoC;AACpC,+CAAsC;AAEtC,yCAA8C;AAE9C,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;6DAAC,QAAgB,EAAE,QAAQ,GAAG,EAAE;YACxD,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC;iBACjC,MAAM,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;iBAClC,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,QAAQ;gBAAE,OAAO,IAAI,2BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;KAAA;IAEY,UAAU,CAAC,WAAmB;;YACzC,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,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;AAzCD,0CAyCC"}
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"}
@@ -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>;
@@ -1 +1 @@
1
- {"version":3,"file":"gridplus.d.ts","sourceRoot":"","sources":["../src/gridplus.ts"],"names":[],"mappings":"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"}
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 ZERO_BUFFER = Buffer.alloc(32);
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 (!external.uid.equals(ZERO_BUFFER))
391
+ if (isSafecardConnected(external.uid))
386
392
  return external.uid.toString("hex");
387
- if (!internal.uid.equals(ZERO_BUFFER))
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
  }
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,gCAEC;AAlBD,mEAAqD;AACrD,+CAAiD;AACjD,+DAAuC;AACvC,+BAAgC;AAEhC,+CAAiC;AACjC,iDAAmC;AACnC,gDAAkC;AAClC,uDAAyC;AACzC,iDAAmC;AACnC,uDAAyC;AAIzC,MAAM,mBAAmB,GAAG,CAAC,GAAY,EAAW,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,eAAQ,CAAC;AAExG,SAAgB,UAAU,CAAC,MAAqB;IAC9C,OAAO,IAAA,kBAAQ,EAAC,MAAM,CAAC,IAAK,MAAc,CAAC,WAAW,CAAC;AACzD,CAAC;AAED,MAAa,kBAAkB;IAA/B;QAUW,qBAAgB,GAAG,IAAI,CAAC;QACxB,wBAAmB,GAAG,IAAI,CAAC;QAC3B,qBAAgB,GAAG,IAAI,CAAC;QACxB,2BAAsB,GAAG,IAAI,CAAC;QAC9B,wBAAmB,GAAG,IAAI,CAAC;QAC3B,2BAAsB,GAAG,IAAI,CAAC;IA6OzC,CAAC;IA3OC,SAAS;QACP,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,mBAAmB;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY;QACV,OAAO;YACL,OAAO,EAAE,2CAA2C;YACpD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACG,eAAe,CAAC,IAAe;;YACnC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAC1E,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;KAAA;IAEK,qBAAqB,CAAC,IAAe,EAAE,UAAmC;;YAC9E,QAAQ,UAAU,EAAE,CAAC;gBACnB,KAAK,IAAI,CAAC,kBAAkB,CAAC,YAAY;oBACvC,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3E,KAAK,IAAI,CAAC,kBAAkB,CAAC,gBAAgB;oBAC3C,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/D,KAAK,IAAI,CAAC,kBAAkB,CAAC,YAAY;oBACvC,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/D;oBACE,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;KAAA;IAEK,yBAAyB;;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED,2BAA2B;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,GAA4B;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAEzE,MAAM,SAAS,GAA+C;YAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YAClC,QAAQ,EAAE,CAAC,KAAK,CAAC;YACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;SAChC,CAAC;QAEF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAEtD,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,GAAwB;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAEtF,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE3C,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;QAEtC,IACE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;YAC/F,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YACnG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAC/F,CAAC;YACD,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrB,uCAAY,GAAG,KAAE,YAAY,IAAG;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACG,kBAAkB,CAAC,OAAe;;YACtC,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEK,yBAAyB;;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED,2BAA2B;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAEK,kBAAkB;;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED,kBAAkB,CAAC,GAA2B;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAEpC,OAAO;YACL;gBACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvF,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;gBACjF,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACf,WAAW,EAAE,UAAU;aACxB;SACF,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,GAAwB;QACzC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACjE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAC1C,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExB,OAAO;YACL,YAAY,EAAE,eAAe;YAC7B,YAAY,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,WAAW,EAAE,UAAU;SACxB,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,qBAAqB,CAAC,GAA+B;QACnD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,qBAAqB,CAAC,GAA2B;QAC/C,2CAA2C;QAC3C,MAAM,eAAe,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B;QAEnD,OAAO;YACL,YAAY,EAAE,eAAe;SAC9B,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,qBAAqB,CAAC,GAA+B;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO;YACL;gBACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;aACxF;SACF,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,GAA2B;QAC/C,MAAM,eAAe,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO;YACL,YAAY,EAAE,eAAe;SAC9B,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,wBAAwB,CAAC,GAAkC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO;YACL;gBACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;aACxF;SACF,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,GAA8B;QACrD,MAAM,eAAe,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO;YACL,YAAY,EAAE,eAAe;SAC9B,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,GAAkC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO;YACL;gBACE,YAAY,EAAE,CAAC,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;aACxF;SACF,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,GAA8B;QACrD,MAAM,eAAe,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO;YACL,YAAY,EAAE,eAAe;SAC9B,CAAC;IACJ,CAAC;CACF;AA5PD,gDA4PC;AAED,MAAa,gBACX,SAAQ,kBAAkB;IAiC1B,YAAY,MAAc;QACxB,KAAK,EAAE,CAAC;QAxBD,sBAAiB,GAAG,IAAI,CAAC;QACzB,0BAAqB,GAAG,KAAK,CAAC;QAC9B,uBAAkB,GAAG,IAAI,CAAC;QAC1B,iBAAY,GAAG,IAAI,CAAC;QACpB,iBAAY,GAAG,IAAI,CAAC;QACpB,kBAAa,GAAG,IAAI,CAAC;QACrB,mBAAc,GAAG,KAAK,CAAC;QACvB,oBAAe,GAAG,IAAI,CAAC;QACvB,iBAAY,GAAG,IAAI,CAAC;QACpB,4BAAuB,GAAG,KAAK,CAAC;QAChC,oBAAe,GAAG,IAAI,CAAC;QACvB,uBAAkB,GAAG,IAAI,CAAC;QAC1B,sBAAiB,GAAG,IAAI,CAAC;QACzB,qBAAgB,GAAG,IAAI,CAAC;QACxB,oBAAe,GAAG,IAAI,CAAC;QACvB,uBAAkB,GAAG,IAAI,CAAC;QAE1B,gBAAW,GAAG,IAAI,CAAC;QAQ1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,yBAAyB,CAAC,cAAsB,EAAE,IAAmB;QAC1E,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEK,MAAM;8DAAmB,CAAC;KAAA;IAC1B,YAAY;8DAAmB,CAAC;KAAA;IAChC,UAAU;8DAAmB,CAAC;KAAA;IAC9B,UAAU;8DAAmB,CAAC;KAAA;IAC9B,OAAO;8DAAmB,CAAC;KAAA;IAC3B,KAAK;8DAAmB,CAAC;KAAA;IACzB,aAAa;8DAAmB,CAAC;KAAA;IACjC,cAAc;8DAAmB,CAAC;KAAA;IAClC,OAAO;8DAAmB,CAAC;KAAA;IAC3B,QAAQ;8DAAmB,CAAC;KAAA;IAC5B,IAAI;8DAAmB,CAAC;KAAA;IAExB,WAAW;;YACf,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC;KAAA;IAEK,WAAW;;YACf,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAE1D,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,UAAU;aAClB,CAAC;QACJ,CAAC;KAAA;IAEK,kBAAkB;;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACzD,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACpC,CAAC;KAAA;IAEK,QAAQ;;YACZ,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;IAEK,QAAQ;;YACZ,OAAO,mBAAmB,CAAC;QAC7B,CAAC;KAAA;IAEK,aAAa;;YACjB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;KAAA;IAEK,QAAQ;;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEK,IAAI,CAAC,GAAc;;YACvB,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAC1B,CAAC;KAAA;IAEK,UAAU;;YACd,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;KAAA;IAEK,iBAAiB;;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAE1D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAErE,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7E,CAAC;KAAA;IAED;;;OAGG;IACU,oBAAoB,CAC/B,sBAA+B,EAC/B,YAA2B;;YAK3B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAE1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAE5D,kEAAkE;YAClE,MAAM,IAAI,GAAiB,CAAC,GAAG,EAAE;;gBAC/B,IAAI,mBAAmB,CAAC,MAAA,aAAa,CAAC,QAAQ,0CAAE,GAAG,CAAC;oBAAE,OAAO,UAAU,CAAC;gBACxE,IAAI,mBAAmB,CAAC,MAAA,aAAa,CAAC,QAAQ,0CAAE,GAAG,CAAC;oBAAE,OAAO,UAAU,CAAC;gBAExE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;YAEL,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAExD,uDAAuD;YACvD,IAAI,sBAAsB,IAAI,cAAc,KAAK,sBAAsB,EAAE,CAAC;gBACxE,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;KAAA;IAEK,aAAa,CAAC,GAA6B;;YAC/C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAE1D,MAAM,UAAU,GAAiC,EAAE,CAAC;YAEpD,KAAK,MAAM,YAAY,IAAI,GAAG,EAAE,CAAC;gBAC/B,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;gBAE/D,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;wBACjB,QAAQ,KAAK,EAAE,CAAC;4BACd,wDAAwD;4BACxD,KAAK,WAAW;gCACd,OAAO,wBAAS,CAAC,cAAc,CAAC,cAAc,CAAC;4BACjD,oDAAoD;4BACpD,KAAK,SAAS;gCACZ,OAAO,wBAAS,CAAC,cAAc,CAAC,WAAW,CAAC;4BAC9C;gCACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC,CAAC,EAAE,CAAC;oBAEL,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAO,CAAC,YAAY,CAAC;wBAChD,SAAS,EAAE,YAAY;wBACvB,CAAC,EAAE,CAAC;wBACJ,IAAI;qBACL,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,CAAC,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBAE7E,gGAAgG;oBAChG,IAAI,IAAI,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAEvG,mFAAmF;oBACnF,IAAI,IAAI,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;wBAClC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACtF,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;oBAC1D,CAAC;oBAED,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;IAEK,aAAa,CAAC,GAAuB;;YACzC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAO,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;KAAA;IAEK,SAAS,CAAC,GAAmB;;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,cAAc;;YAClB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;KAAA;IAEK,gBAAgB;;YACpB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;KAAA;IAEK,aAAa,CAAC,GAAuB;;YACzC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;KAAA;IAEK,SAAS,CAAC,GAAmB;;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,gBAAgB,CAAC,GAA0B;;YAC/C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;KAAA;IAEK,cAAc,CAAC,GAAwB;;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;KAAA;IAEK,gBAAgB;;YACpB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;KAAA;IAEO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE1D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAE7C,IAAI,SAAS,CAAC,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,gDAAgD,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CACtG,CAAC;QACJ,CAAC;IACH,CAAC;IAEK,gBAAgB,CAAC,GAA0B;;YAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;KAAA;IAEK,YAAY,CAAC,GAAsB;;YACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEK,gBAAgB,CAAC,GAA0B;;YAC/C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;KAAA;IAEK,YAAY,CAAC,GAAsB;;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEK,mBAAmB,CAAC,GAA6B;;YACrD,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;KAAA;IAEK,eAAe,CAAC,GAAyB;;YAC7C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;KAAA;IAEK,mBAAmB,CAAC,GAA6B;;YACrD,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;KAAA;IAEK,eAAe,CAAC,GAAyB;;YAC7C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAElF,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;KAAA;CACF;AAxTD,4CAwTC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapeshiftoss/hdwallet-gridplus",
3
- "version": "1.62.15",
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.15",
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": "040fd1f6fc0083d0cd9c2601adc560e9f392f813"
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(deviceId: string, password = ""): Promise<GridPlusHDWallet | undefined> {
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 + password + name)
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 new GridPlusHDWallet(this.client);
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<GridPlusHDWallet> {
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
- return wallet;
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
- const ZERO_BUFFER = Buffer.alloc(32);
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 (!external.uid.equals(ZERO_BUFFER)) return external.uid.toString("hex");
371
- if (!internal.uid.equals(ZERO_BUFFER)) return internal.uid.toString("hex");
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
  }