@injectivelabs/wallet-ledger 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +111 -0
  2. package/dist/cjs/index.d.ts +5 -0
  3. package/dist/cjs/index.d.ts.map +1 -0
  4. package/dist/cjs/index.js +25 -0
  5. package/dist/cjs/index.js.map +1 -0
  6. package/dist/cjs/package.json +3 -0
  7. package/dist/cjs/strategy/Ledger/Base.d.ts +43 -0
  8. package/dist/cjs/strategy/Ledger/Base.d.ts.map +1 -0
  9. package/dist/cjs/strategy/Ledger/Base.js +302 -0
  10. package/dist/cjs/strategy/Ledger/Base.js.map +1 -0
  11. package/dist/cjs/strategy/Ledger/LedgerLegacy.d.ts +6 -0
  12. package/dist/cjs/strategy/Ledger/LedgerLegacy.d.ts.map +1 -0
  13. package/dist/cjs/strategy/Ledger/LedgerLegacy.js +15 -0
  14. package/dist/cjs/strategy/Ledger/LedgerLegacy.js.map +1 -0
  15. package/dist/cjs/strategy/Ledger/LedgerLive.d.ts +6 -0
  16. package/dist/cjs/strategy/Ledger/LedgerLive.d.ts.map +1 -0
  17. package/dist/cjs/strategy/Ledger/LedgerLive.js +15 -0
  18. package/dist/cjs/strategy/Ledger/LedgerLive.js.map +1 -0
  19. package/dist/cjs/strategy/Ledger/hw/AccountManager.d.ts +22 -0
  20. package/dist/cjs/strategy/Ledger/hw/AccountManager.d.ts.map +1 -0
  21. package/dist/cjs/strategy/Ledger/hw/AccountManager.js +106 -0
  22. package/dist/cjs/strategy/Ledger/hw/AccountManager.js.map +1 -0
  23. package/dist/cjs/strategy/Ledger/hw/index.d.ts +12 -0
  24. package/dist/cjs/strategy/Ledger/hw/index.d.ts.map +1 -0
  25. package/dist/cjs/strategy/Ledger/hw/index.js +108 -0
  26. package/dist/cjs/strategy/Ledger/hw/index.js.map +1 -0
  27. package/dist/cjs/strategy/Ledger/utils.d.ts +4 -0
  28. package/dist/cjs/strategy/Ledger/utils.d.ts.map +1 -0
  29. package/dist/cjs/strategy/Ledger/utils.js +9 -0
  30. package/dist/cjs/strategy/Ledger/utils.js.map +1 -0
  31. package/dist/cjs/strategy/LedgerCosmos/hw/AccountManager.d.ts +21 -0
  32. package/dist/cjs/strategy/LedgerCosmos/hw/AccountManager.d.ts.map +1 -0
  33. package/dist/cjs/strategy/LedgerCosmos/hw/AccountManager.js +84 -0
  34. package/dist/cjs/strategy/LedgerCosmos/hw/AccountManager.js.map +1 -0
  35. package/dist/cjs/strategy/LedgerCosmos/hw/index.d.ts +12 -0
  36. package/dist/cjs/strategy/LedgerCosmos/hw/index.d.ts.map +1 -0
  37. package/dist/cjs/strategy/LedgerCosmos/hw/index.js +68 -0
  38. package/dist/cjs/strategy/LedgerCosmos/hw/index.js.map +1 -0
  39. package/dist/cjs/strategy/LedgerCosmos/index.d.ts +37 -0
  40. package/dist/cjs/strategy/LedgerCosmos/index.d.ts.map +1 -0
  41. package/dist/cjs/strategy/LedgerCosmos/index.js +197 -0
  42. package/dist/cjs/strategy/LedgerCosmos/index.js.map +1 -0
  43. package/dist/cjs/types.d.ts +18 -0
  44. package/dist/cjs/types.d.ts.map +1 -0
  45. package/dist/cjs/types.js +15 -0
  46. package/dist/cjs/types.js.map +1 -0
  47. package/dist/esm/index.d.ts +5 -0
  48. package/dist/esm/index.d.ts.map +1 -0
  49. package/dist/esm/index.js +5 -0
  50. package/dist/esm/index.js.map +1 -0
  51. package/dist/esm/package.json +3 -0
  52. package/dist/esm/strategy/Ledger/Base.d.ts +43 -0
  53. package/dist/esm/strategy/Ledger/Base.d.ts.map +1 -0
  54. package/dist/esm/strategy/Ledger/Base.js +240 -0
  55. package/dist/esm/strategy/Ledger/Base.js.map +1 -0
  56. package/dist/esm/strategy/Ledger/LedgerLegacy.d.ts +6 -0
  57. package/dist/esm/strategy/Ledger/LedgerLegacy.d.ts.map +1 -0
  58. package/dist/esm/strategy/Ledger/LedgerLegacy.js +11 -0
  59. package/dist/esm/strategy/Ledger/LedgerLegacy.js.map +1 -0
  60. package/dist/esm/strategy/Ledger/LedgerLive.d.ts +6 -0
  61. package/dist/esm/strategy/Ledger/LedgerLive.d.ts.map +1 -0
  62. package/dist/esm/strategy/Ledger/LedgerLive.js +11 -0
  63. package/dist/esm/strategy/Ledger/LedgerLive.js.map +1 -0
  64. package/dist/esm/strategy/Ledger/hw/AccountManager.d.ts +22 -0
  65. package/dist/esm/strategy/Ledger/hw/AccountManager.d.ts.map +1 -0
  66. package/dist/esm/strategy/Ledger/hw/AccountManager.js +86 -0
  67. package/dist/esm/strategy/Ledger/hw/AccountManager.js.map +1 -0
  68. package/dist/esm/strategy/Ledger/hw/index.d.ts +12 -0
  69. package/dist/esm/strategy/Ledger/hw/index.d.ts.map +1 -0
  70. package/dist/esm/strategy/Ledger/hw/index.js +60 -0
  71. package/dist/esm/strategy/Ledger/hw/index.js.map +1 -0
  72. package/dist/esm/strategy/Ledger/utils.d.ts +4 -0
  73. package/dist/esm/strategy/Ledger/utils.d.ts.map +1 -0
  74. package/dist/esm/strategy/Ledger/utils.js +4 -0
  75. package/dist/esm/strategy/Ledger/utils.js.map +1 -0
  76. package/dist/esm/strategy/LedgerCosmos/hw/AccountManager.d.ts +21 -0
  77. package/dist/esm/strategy/LedgerCosmos/hw/AccountManager.d.ts.map +1 -0
  78. package/dist/esm/strategy/LedgerCosmos/hw/AccountManager.js +67 -0
  79. package/dist/esm/strategy/LedgerCosmos/hw/AccountManager.js.map +1 -0
  80. package/dist/esm/strategy/LedgerCosmos/hw/index.d.ts +12 -0
  81. package/dist/esm/strategy/LedgerCosmos/hw/index.d.ts.map +1 -0
  82. package/dist/esm/strategy/LedgerCosmos/hw/index.js +43 -0
  83. package/dist/esm/strategy/LedgerCosmos/hw/index.js.map +1 -0
  84. package/dist/esm/strategy/LedgerCosmos/index.d.ts +37 -0
  85. package/dist/esm/strategy/LedgerCosmos/index.d.ts.map +1 -0
  86. package/dist/esm/strategy/LedgerCosmos/index.js +153 -0
  87. package/dist/esm/strategy/LedgerCosmos/index.js.map +1 -0
  88. package/dist/esm/types.d.ts +18 -0
  89. package/dist/esm/types.d.ts.map +1 -0
  90. package/dist/esm/types.js +12 -0
  91. package/dist/esm/types.js.map +1 -0
  92. package/package.json +67 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const ethereumjs_util_1 = require("ethereumjs-util");
16
+ const hdkey_1 = __importDefault(require("hdkey"));
17
+ const types_1 = require("../../../types");
18
+ const wallet_base_1 = require("@injectivelabs/wallet-base");
19
+ const addressOfHDKey = (hdKey) => {
20
+ const shouldSanitizePublicKey = true;
21
+ const derivedPublicKey = hdKey.publicKey;
22
+ const ethereumAddressWithoutPrefix = (0, ethereumjs_util_1.publicToAddress)(derivedPublicKey, shouldSanitizePublicKey).toString('hex');
23
+ const address = (0, ethereumjs_util_1.addHexPrefix)(ethereumAddressWithoutPrefix);
24
+ return address;
25
+ };
26
+ class AccountManager {
27
+ constructor(ledger) {
28
+ this.wallets = [];
29
+ this.getLedgerDerivationPathBasedOnType = ({ fullBaseDerivationPath, derivationPathType, index, }) => {
30
+ if (derivationPathType === types_1.LedgerDerivationPathType.LedgerLive) {
31
+ return `${fullBaseDerivationPath}/${index}'/0/0`;
32
+ }
33
+ return `${fullBaseDerivationPath}/0'/${index}`;
34
+ };
35
+ this.ledger = ledger;
36
+ this.wallets = [];
37
+ }
38
+ getWallets(baseDerivationPath, derivationPathType) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const { start, end } = this.getOffset();
41
+ /**
42
+ * 1. Wallets are not yet fetched at all,
43
+ * 2. Wallets are not yet fetched for that offset
44
+ */
45
+ if (!this.hasWallets() || !this.hasWalletsInOffset(start)) {
46
+ yield this.getWalletsBasedOnIndex({
47
+ start,
48
+ end,
49
+ baseDerivationPath,
50
+ derivationPathType,
51
+ });
52
+ }
53
+ return this.wallets.slice(start, end);
54
+ });
55
+ }
56
+ getWalletsBasedOnIndex(_a) {
57
+ return __awaiter(this, arguments, void 0, function* ({ start, end, baseDerivationPath, derivationPathType, }) {
58
+ for (let index = start; index < end; index += 1) {
59
+ const path = this.getLedgerDerivationPathBasedOnType({
60
+ fullBaseDerivationPath: baseDerivationPath,
61
+ derivationPathType,
62
+ index,
63
+ });
64
+ const result = yield this.ledger.getAddress(path);
65
+ const hdKey = new hdkey_1.default();
66
+ hdKey.publicKey = Buffer.from(result.publicKey, 'hex');
67
+ hdKey.chainCode = Buffer.from(result.chainCode || '', 'hex');
68
+ const address = result.address || addressOfHDKey(hdKey);
69
+ this.wallets.push({
70
+ hdKey,
71
+ baseDerivationPath,
72
+ address: address.toLowerCase(),
73
+ derivationPath: path,
74
+ });
75
+ }
76
+ });
77
+ }
78
+ hasWallets() {
79
+ return this.wallets.length > 0;
80
+ }
81
+ hasWalletsInOffset(offset) {
82
+ return this.wallets.length > offset;
83
+ }
84
+ getOffset() {
85
+ const totalWallets = this.wallets.length;
86
+ const nextBatchStart = totalWallets;
87
+ const nextBatchEnd = totalWallets + wallet_base_1.DEFAULT_NUM_ADDRESSES_TO_FETCH;
88
+ return {
89
+ start: nextBatchStart,
90
+ end: nextBatchEnd,
91
+ };
92
+ }
93
+ hasWalletForAddress(address) {
94
+ return (this.wallets.find((wallet) => wallet.address.toLowerCase() === address.toLowerCase()) !== undefined);
95
+ }
96
+ getWalletForAddress(address) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ return this.wallets.find((wallet) => wallet.address.toLowerCase() === address.toLowerCase());
99
+ });
100
+ }
101
+ reset() {
102
+ this.wallets = [];
103
+ }
104
+ }
105
+ exports.default = AccountManager;
106
+ //# sourceMappingURL=AccountManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountManager.js","sourceRoot":"","sources":["../../../../../src/strategy/Ledger/hw/AccountManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,qDAA+D;AAC/D,kDAA0B;AAE1B,0CAA2E;AAC3E,4DAA2E;AAE3E,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,MAAM,uBAAuB,GAAG,IAAI,CAAA;IACpC,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAA;IACxC,MAAM,4BAA4B,GAAG,IAAA,iCAAe,EAClD,gBAAgB,EAChB,uBAAuB,CACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjB,MAAM,OAAO,GAAG,IAAA,8BAAY,EAAC,4BAA4B,CAAC,CAAA;IAE1D,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAqB,cAAc;IAKjC,YAAY,MAAmB;QAJvB,YAAO,GAAuB,EAAE,CAAA;QA+BxC,uCAAkC,GAAG,CAAC,EACpC,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,GAKN,EAAU,EAAE;YACX,IAAI,kBAAkB,KAAK,gCAAwB,CAAC,UAAU,EAAE,CAAC;gBAC/D,OAAO,GAAG,sBAAsB,IAAI,KAAK,OAAO,CAAA;YAClD,CAAC;YAED,OAAO,GAAG,sBAAsB,OAAO,KAAK,EAAE,CAAA;QAChD,CAAC,CAAA;QAxCC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAEK,UAAU,CACd,kBAA0B,EAC1B,kBAA4C;;YAE5C,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAEvC;;;eAGG;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,CAAC,sBAAsB,CAAC;oBAChC,KAAK;oBACL,GAAG;oBACH,kBAAkB;oBAClB,kBAAkB;iBACnB,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACvC,CAAC;KAAA;IAkBa,sBAAsB;6DAAC,EACnC,KAAK,EACL,GAAG,EACH,kBAAkB,EAClB,kBAAkB,GAMnB;YACC,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,kCAAkC,CAAC;oBACnD,sBAAsB,EAAE,kBAAkB;oBAC1C,kBAAkB;oBAClB,KAAK;iBACN,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBAEjD,MAAM,KAAK,GAAG,IAAI,eAAM,EAAE,CAAA;gBAC1B,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;gBACtD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;gBAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAA;gBAEvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,KAAK;oBACL,kBAAkB;oBAClB,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;oBAC9B,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;KAAA;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAChC,CAAC;IAEO,kBAAkB,CAAC,MAAc;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IACrC,CAAC;IAEO,SAAS;QACf,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QACxC,MAAM,cAAc,GAAG,YAAY,CAAA;QACnC,MAAM,YAAY,GAAG,YAAY,GAAG,4CAA8B,CAAA;QAElE,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,YAAY;SAClB,CAAA;IACH,CAAC;IAED,mBAAmB,CAAC,OAAuB;QACzC,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACnE,KAAK,SAAS,CAChB,CAAA;IACH,CAAC;IAEK,mBAAmB,CACvB,OAAuB;;YAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACnE,CAAA;QACH,CAAC;KAAA;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;CACF;AAvHD,iCAuHC"}
@@ -0,0 +1,12 @@
1
+ import type EthereumApp from '@ledgerhq/hw-app-eth';
2
+ import type Transport from '@ledgerhq/hw-transport';
3
+ import AccountManager from './AccountManager';
4
+ export default class LedgerTransport {
5
+ private ledger;
6
+ private accountManager;
7
+ protected static getTransport(): Promise<Transport>;
8
+ getInstance(): Promise<EthereumApp>;
9
+ getAccountManager(): Promise<AccountManager>;
10
+ refresh(): Promise<LedgerTransport>;
11
+ }
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategy/Ledger/hw/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AAEnD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,cAAc,CAA8B;qBAE7B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAkCnD,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAgBnC,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAQ5C,OAAO;CASd"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const hw_transport_webhid_1 = __importDefault(require("@ledgerhq/hw-transport-webhid"));
39
+ const hw_transport_webusb_1 = __importDefault(require("@ledgerhq/hw-transport-webusb"));
40
+ const exceptions_1 = require("@injectivelabs/exceptions");
41
+ const AccountManager_1 = __importDefault(require("./AccountManager"));
42
+ class LedgerTransport {
43
+ constructor() {
44
+ this.ledger = null;
45
+ this.accountManager = null;
46
+ }
47
+ static getTransport() {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ try {
50
+ if (yield hw_transport_webhid_1.default.isSupported()) {
51
+ const list = yield hw_transport_webhid_1.default.list();
52
+ if (list.length > 0 && list[0].opened) {
53
+ return new hw_transport_webhid_1.default(list[0]);
54
+ }
55
+ const existing = yield hw_transport_webhid_1.default.openConnected().catch(() => null);
56
+ if (existing) {
57
+ return existing;
58
+ }
59
+ return yield hw_transport_webhid_1.default.request();
60
+ }
61
+ if (yield hw_transport_webusb_1.default.isSupported()) {
62
+ const existing = yield hw_transport_webusb_1.default.openConnected().catch(() => null);
63
+ if (existing) {
64
+ return existing;
65
+ }
66
+ return yield hw_transport_webusb_1.default.request();
67
+ }
68
+ }
69
+ catch (e) {
70
+ throw new exceptions_1.LedgerException(new Error(e.message));
71
+ }
72
+ return hw_transport_webusb_1.default.request();
73
+ });
74
+ }
75
+ getInstance() {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ if (!this.ledger) {
78
+ const transport = yield LedgerTransport.getTransport();
79
+ const EthereumApp = yield Promise.resolve().then(() => __importStar(require('@ledgerhq/hw-app-eth')));
80
+ this.ledger = new EthereumApp.default(transport);
81
+ transport.on('disconnect', () => {
82
+ this.ledger = null;
83
+ this.accountManager = null;
84
+ });
85
+ }
86
+ return this.ledger;
87
+ });
88
+ }
89
+ getAccountManager() {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ if (!this.accountManager) {
92
+ this.accountManager = new AccountManager_1.default(yield this.getInstance());
93
+ }
94
+ return this.accountManager;
95
+ });
96
+ }
97
+ refresh() {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ if (!this.ledger) {
100
+ return new LedgerTransport();
101
+ }
102
+ this.ledger.transport.close();
103
+ return new LedgerTransport();
104
+ });
105
+ }
106
+ }
107
+ exports.default = LedgerTransport;
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/strategy/Ledger/hw/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wFAA2D;AAC3D,wFAA2D;AAG3D,0DAA2D;AAC3D,sEAA6C;AAE7C,MAAqB,eAAe;IAApC;QACU,WAAM,GAAuB,IAAI,CAAA;QAEjC,mBAAc,GAA0B,IAAI,CAAA;IAqEtD,CAAC;IAnEW,MAAM,CAAO,YAAY;;YACjC,IAAI,CAAC;gBACH,IAAI,MAAM,6BAAe,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,MAAM,IAAI,GAAG,MAAM,6BAAe,CAAC,IAAI,EAAE,CAAA;oBAEzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;wBACtC,OAAO,IAAI,6BAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;oBACrC,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,6BAAe,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;oBAExE,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO,QAAQ,CAAA;oBACjB,CAAC;oBAED,OAAO,MAAM,6BAAe,CAAC,OAAO,EAAE,CAAA;gBACxC,CAAC;gBAED,IAAI,MAAM,6BAAe,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,MAAM,6BAAe,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;oBAExE,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO,QAAQ,CAAA;oBACjB,CAAC;oBAED,OAAO,MAAM,6BAAe,CAAC,OAAO,EAAE,CAAA;gBACxC,CAAC;YACH,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,4BAAe,CAAC,IAAI,KAAK,CAAE,CAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YAC1D,CAAC;YAED,OAAO,6BAAe,CAAC,OAAO,EAAE,CAAA;QAClC,CAAC;KAAA;IAEK,WAAW;;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,CAAA;gBACtD,MAAM,WAAW,GAAG,wDAAa,sBAAsB,GAAC,CAAA;gBAExD,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAEhD,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;oBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;oBAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;gBAC5B,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;KAAA;IAEK,iBAAiB;;YACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACpE,CAAC;YAED,OAAO,IAAI,CAAC,cAAc,CAAA;QAC5B,CAAC;KAAA;IAEK,OAAO;;YACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,IAAI,eAAe,EAAE,CAAA;YAC9B,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;YAE7B,OAAO,IAAI,eAAe,EAAE,CAAA;QAC9B,CAAC;KAAA;CACF;AAxED,kCAwEC"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ export declare const domainHash: (message: any) => Buffer;
3
+ export declare const messageHash: (message: any) => Buffer;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/strategy/Ledger/utils.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,UAAU,YAAa,GAAG,WACyC,CAAA;AAEhF,eAAO,MAAM,WAAW,YAAa,GAAG,WAMrC,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.messageHash = exports.domainHash = void 0;
4
+ const eth_sig_util_1 = require("eth-sig-util");
5
+ const domainHash = (message) => eth_sig_util_1.TypedDataUtils.hashStruct('EIP712Domain', message.domain, message.types, true);
6
+ exports.domainHash = domainHash;
7
+ const messageHash = (message) => eth_sig_util_1.TypedDataUtils.hashStruct(message.primaryType, message.message, message.types, true);
8
+ exports.messageHash = messageHash;
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/strategy/Ledger/utils.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAEtC,MAAM,UAAU,GAAG,CAAC,OAAY,EAAE,EAAE,CACzC,6BAAc,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AADnE,QAAA,UAAU,cACyD;AAEzE,MAAM,WAAW,GAAG,CAAC,OAAY,EAAE,EAAE,CAC1C,6BAAc,CAAC,UAAU,CACvB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,KAAK,EACb,IAAI,CACL,CAAA;AANU,QAAA,WAAW,eAMrB"}
@@ -0,0 +1,21 @@
1
+ import { AccountAddress } from '@injectivelabs/ts-types';
2
+ import type CosmosApp from '@ledgerhq/hw-app-cosmos';
3
+ import { LedgerWalletInfo } from '../../../types';
4
+ export default class AccountManager {
5
+ private wallets;
6
+ private ledger;
7
+ constructor(ledger: CosmosApp);
8
+ getWallets(baseDerivationPath: string): Promise<LedgerWalletInfo[]>;
9
+ getLedgerDerivationPathBasedOnType: ({ fullBaseDerivationPath, index, }: {
10
+ fullBaseDerivationPath: string;
11
+ index: number;
12
+ }) => string;
13
+ private getWalletsBasedOnIndex;
14
+ private hasWallets;
15
+ private hasWalletsInOffset;
16
+ private getOffset;
17
+ hasWalletForAddress(address: AccountAddress): boolean;
18
+ getWalletForAddress(address: AccountAddress): Promise<LedgerWalletInfo | undefined>;
19
+ reset(): void;
20
+ }
21
+ //# sourceMappingURL=AccountManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountManager.d.ts","sourceRoot":"","sources":["../../../../../src/strategy/LedgerCosmos/hw/AccountManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjD,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO,CAAC,MAAM,CAAW;gBAEb,MAAM,EAAE,SAAS;IAKvB,UAAU,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkBzE,kCAAkC;gCAIR,MAAM;eACvB,MAAM;UACX,MAAM,CAET;YAEa,sBAAsB;IAyBpC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;IAWjB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAQ/C,mBAAmB,CACvB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAMxC,KAAK;CAGN"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const wallet_base_1 = require("@injectivelabs/wallet-base");
13
+ class AccountManager {
14
+ constructor(ledger) {
15
+ this.wallets = [];
16
+ this.getLedgerDerivationPathBasedOnType = ({ fullBaseDerivationPath, index, }) => {
17
+ return `${fullBaseDerivationPath}/${index}'/0/0`;
18
+ };
19
+ this.ledger = ledger;
20
+ this.wallets = [];
21
+ }
22
+ getWallets(baseDerivationPath) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const { start, end } = this.getOffset();
25
+ /**
26
+ * 1. Wallets are not yet fetched at all,
27
+ * 2. Wallets are not yet fetched for that offset
28
+ */
29
+ if (!this.hasWallets() || !this.hasWalletsInOffset(start)) {
30
+ yield this.getWalletsBasedOnIndex({
31
+ start,
32
+ end,
33
+ baseDerivationPath,
34
+ });
35
+ }
36
+ return this.wallets.slice(start, end);
37
+ });
38
+ }
39
+ getWalletsBasedOnIndex(_a) {
40
+ return __awaiter(this, arguments, void 0, function* ({ start, end, baseDerivationPath, }) {
41
+ for (let index = start; index < end; index += 1) {
42
+ const path = this.getLedgerDerivationPathBasedOnType({
43
+ fullBaseDerivationPath: baseDerivationPath,
44
+ index,
45
+ });
46
+ const { address, publicKey } = yield this.ledger.getAddress(path, 'inj');
47
+ this.wallets.push({
48
+ publicKey,
49
+ baseDerivationPath,
50
+ address: address.toLowerCase(),
51
+ derivationPath: path,
52
+ });
53
+ }
54
+ });
55
+ }
56
+ hasWallets() {
57
+ return this.wallets.length > 0;
58
+ }
59
+ hasWalletsInOffset(offset) {
60
+ return this.wallets.length > offset;
61
+ }
62
+ getOffset() {
63
+ const totalWallets = this.wallets.length;
64
+ const nextBatchStart = totalWallets;
65
+ const nextBatchEnd = totalWallets + wallet_base_1.DEFAULT_NUM_ADDRESSES_TO_FETCH;
66
+ return {
67
+ start: nextBatchStart,
68
+ end: nextBatchEnd,
69
+ };
70
+ }
71
+ hasWalletForAddress(address) {
72
+ return (this.wallets.find((wallet) => wallet.address.toLowerCase() === address.toLowerCase()) !== undefined);
73
+ }
74
+ getWalletForAddress(address) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ return this.wallets.find((wallet) => wallet.address.toLowerCase() === address.toLowerCase());
77
+ });
78
+ }
79
+ reset() {
80
+ this.wallets = [];
81
+ }
82
+ }
83
+ exports.default = AccountManager;
84
+ //# sourceMappingURL=AccountManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountManager.js","sourceRoot":"","sources":["../../../../../src/strategy/LedgerCosmos/hw/AccountManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,4DAA2E;AAE3E,MAAqB,cAAc;IAKjC,YAAY,MAAiB;QAJrB,YAAO,GAAuB,EAAE,CAAA;QA2BxC,uCAAkC,GAAG,CAAC,EACpC,sBAAsB,EACtB,KAAK,GAIN,EAAU,EAAE;YACX,OAAO,GAAG,sBAAsB,IAAI,KAAK,OAAO,CAAA;QAClD,CAAC,CAAA;QA9BC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAEK,UAAU,CAAC,kBAA0B;;YACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAEvC;;;eAGG;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,CAAC,sBAAsB,CAAC;oBAChC,KAAK;oBACL,GAAG;oBACH,kBAAkB;iBACnB,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACvC,CAAC;KAAA;IAYa,sBAAsB;6DAAC,EACnC,KAAK,EACL,GAAG,EACH,kBAAkB,GAKnB;YACC,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,kCAAkC,CAAC;oBACnD,sBAAsB,EAAE,kBAAkB;oBAC1C,KAAK;iBACN,CAAC,CAAA;gBACF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAExE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,SAAS;oBACT,kBAAkB;oBAClB,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;oBAC9B,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;KAAA;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAChC,CAAC;IAEO,kBAAkB,CAAC,MAAc;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IACrC,CAAC;IAEO,SAAS;QACf,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QACxC,MAAM,cAAc,GAAG,YAAY,CAAA;QACnC,MAAM,YAAY,GAAG,YAAY,GAAG,4CAA8B,CAAA;QAElE,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,YAAY;SAClB,CAAA;IACH,CAAC;IAED,mBAAmB,CAAC,OAAuB;QACzC,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACnE,KAAK,SAAS,CAChB,CAAA;IACH,CAAC;IAEK,mBAAmB,CACvB,OAAuB;;YAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACnE,CAAA;QACH,CAAC;KAAA;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;CACF;AArGD,iCAqGC"}
@@ -0,0 +1,12 @@
1
+ import CosmosApp from '@ledgerhq/hw-app-cosmos';
2
+ import type Transport from '@ledgerhq/hw-transport';
3
+ import AccountManager from './AccountManager';
4
+ export default class LedgerTransport {
5
+ private ledger;
6
+ private accountManager;
7
+ protected static getTransport(): Promise<Transport>;
8
+ getInstance(): Promise<CosmosApp>;
9
+ getAccountManager(): Promise<AccountManager>;
10
+ refresh(): Promise<LedgerTransport>;
11
+ }
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/strategy/LedgerCosmos/hw/index.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,yBAAyB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AAEnD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,MAAM,CAAyB;IAEvC,OAAO,CAAC,cAAc,CAA8B;qBAE7B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAgBnD,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;IAQjC,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAQ5C,OAAO;CASd"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const hw_transport_webusb_1 = __importDefault(require("@ledgerhq/hw-transport-webusb"));
16
+ const hw_transport_webhid_1 = __importDefault(require("@ledgerhq/hw-transport-webhid"));
17
+ const hw_app_cosmos_1 = __importDefault(require("@ledgerhq/hw-app-cosmos"));
18
+ const exceptions_1 = require("@injectivelabs/exceptions");
19
+ const AccountManager_1 = __importDefault(require("./AccountManager"));
20
+ class LedgerTransport {
21
+ constructor() {
22
+ this.ledger = null;
23
+ this.accountManager = null;
24
+ }
25
+ static getTransport() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ try {
28
+ if (yield hw_transport_webhid_1.default.isSupported()) {
29
+ return yield hw_transport_webhid_1.default.create();
30
+ }
31
+ if (yield hw_transport_webusb_1.default.isSupported()) {
32
+ return yield hw_transport_webhid_1.default.create();
33
+ }
34
+ }
35
+ catch (e) {
36
+ throw new exceptions_1.LedgerCosmosException(new Error(e.message));
37
+ }
38
+ return yield hw_transport_webhid_1.default.create();
39
+ });
40
+ }
41
+ getInstance() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ if (!this.ledger) {
44
+ this.ledger = new hw_app_cosmos_1.default((yield LedgerTransport.getTransport()));
45
+ }
46
+ return this.ledger;
47
+ });
48
+ }
49
+ getAccountManager() {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ if (!this.accountManager) {
52
+ this.accountManager = new AccountManager_1.default(yield this.getInstance());
53
+ }
54
+ return this.accountManager;
55
+ });
56
+ }
57
+ refresh() {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ if (!this.ledger) {
60
+ return new LedgerTransport();
61
+ }
62
+ this.ledger.transport.close();
63
+ return new LedgerTransport();
64
+ });
65
+ }
66
+ }
67
+ exports.default = LedgerTransport;
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/strategy/LedgerCosmos/hw/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,wFAA2D;AAC3D,wFAA2D;AAC3D,4EAA+C;AAE/C,0DAAiE;AACjE,sEAA6C;AAE7C,MAAqB,eAAe;IAApC;QACU,WAAM,GAAqB,IAAI,CAAA;QAE/B,mBAAc,GAA0B,IAAI,CAAA;IA2CtD,CAAC;IAzCW,MAAM,CAAO,YAAY;;YACjC,IAAI,CAAC;gBACH,IAAI,MAAM,6BAAe,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,OAAO,MAAM,6BAAe,CAAC,MAAM,EAAE,CAAA;gBACvC,CAAC;gBAED,IAAI,MAAM,6BAAe,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,OAAO,MAAM,6BAAe,CAAC,MAAM,EAAE,CAAA;gBACvC,CAAC;YACH,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,kCAAqB,CAAC,IAAI,KAAK,CAAE,CAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YAChE,CAAC;YAED,OAAO,MAAM,6BAAe,CAAC,MAAM,EAAE,CAAA;QACvC,CAAC;KAAA;IAEK,WAAW;;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAS,CAAC,CAAC,MAAM,eAAe,CAAC,YAAY,EAAE,CAAQ,CAAC,CAAA;YAC5E,CAAC;YAED,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;KAAA;IAEK,iBAAiB;;YACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACpE,CAAC;YAED,OAAO,IAAI,CAAC,cAAc,CAAA;QAC5B,CAAC;KAAA;IAEK,OAAO;;YACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,IAAI,eAAe,EAAE,CAAA;YAC9B,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;YAE7B,OAAO,IAAI,eAAe,EAAE,CAAA;QAC9B,CAAC;KAAA;CACF;AA9CD,kCA8CC"}
@@ -0,0 +1,37 @@
1
+ import { ChainId, AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
2
+ import { TxRaw, TxResponse, AminoSignResponse, DirectSignResponse } from '@injectivelabs/sdk-ts';
3
+ import { StdSignDoc, WalletDeviceType, BaseConcreteStrategy, ConcreteWalletStrategy, SendTransactionOptions } from '@injectivelabs/wallet-base';
4
+ export declare class LedgerCosmos extends BaseConcreteStrategy implements ConcreteWalletStrategy {
5
+ private baseDerivationPath;
6
+ private ledger;
7
+ constructor(args: {
8
+ chainId: ChainId;
9
+ });
10
+ getWalletDeviceType(): Promise<WalletDeviceType>;
11
+ enable(): Promise<boolean>;
12
+ disconnect(): Promise<void>;
13
+ getAddresses(): Promise<string[]>;
14
+ getSessionOrConfirm(address: AccountAddress): Promise<string>;
15
+ sendEthereumTransaction(_txData: any, _options: {
16
+ address: string;
17
+ ethereumChainId: EthereumChainId;
18
+ }): Promise<string>;
19
+ sendTransaction(transaction: TxRaw, options: SendTransactionOptions): Promise<TxResponse>;
20
+ signAminoCosmosTransaction(transaction: {
21
+ address: string;
22
+ signDoc: StdSignDoc;
23
+ }): Promise<AminoSignResponse>;
24
+ signCosmosTransaction(_transaction: {
25
+ txRaw: TxRaw;
26
+ accountNumber: number;
27
+ chainId: string;
28
+ address: string;
29
+ }): Promise<DirectSignResponse>;
30
+ signEip712TypedData(_eip712Json: string, _address: AccountAddress): Promise<string>;
31
+ signArbitrary(signer: AccountAddress, data: string | Uint8Array): Promise<string>;
32
+ getEthereumChainId(): Promise<string>;
33
+ getEthereumTransactionReceipt(_txHash: string): Promise<string>;
34
+ getPubKey(address?: string): Promise<string>;
35
+ private getWalletForAddress;
36
+ }
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/strategy/LedgerCosmos/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EAChB,MAAM,yBAAyB,CAAA;AAQhC,OAAO,EACL,KAAK,EAGL,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,UAAU,EAEV,gBAAgB,EAChB,oBAAoB,EAIpB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;AAKnC,qBAAa,YACX,SAAQ,oBACR,YAAW,sBAAsB;IAEjC,OAAO,CAAC,kBAAkB,CAAQ;IAElC,OAAO,CAAC,MAAM,CAAU;gBAEZ,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;IAOhC,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIhD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAInB,UAAU;IAIV,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBxC,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7D,uBAAuB,CAC3B,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,eAAe,CAAA;KACjC,GACA,OAAO,CAAC,MAAM,CAAC;IAYZ,eAAe,CACnB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC;IAyBhB,0BAA0B,CAAC,WAAW,EAAE;QAC5C,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,UAAU,CAAA;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4BxB,qBAAqB,CAAC,YAAY,EAAE;QACxC,KAAK,EAAE,KAAK,CAAA;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUzB,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAUZ,aAAa,CACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,MAAM,CAAC;IAiBZ,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAUrC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/D,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAcpC,mBAAmB;CAkClC"}