@sidhujag/sysweb3-keyring 1.0.491
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/README.md +201 -0
- package/cjs/errorUtils.js +75 -0
- package/cjs/errorUtils.js.map +1 -0
- package/cjs/hardware-wallet-manager.js +462 -0
- package/cjs/hardware-wallet-manager.js.map +1 -0
- package/cjs/index.js +31 -0
- package/cjs/index.js.map +1 -0
- package/cjs/initial-state.js +105 -0
- package/cjs/initial-state.js.map +1 -0
- package/cjs/keyring-manager.js +1687 -0
- package/cjs/keyring-manager.js.map +1 -0
- package/cjs/ledger/bitcoin_client/index.js +47 -0
- package/cjs/ledger/bitcoin_client/index.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/appClient.js +408 -0
- package/cjs/ledger/bitcoin_client/lib/appClient.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/bip32.js +61 -0
- package/cjs/ledger/bitcoin_client/lib/bip32.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/buffertools.js +126 -0
- package/cjs/ledger/bitcoin_client/lib/buffertools.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/clientCommands.js +270 -0
- package/cjs/ledger/bitcoin_client/lib/clientCommands.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/constants.js +16 -0
- package/cjs/ledger/bitcoin_client/lib/constants.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/merkelizedPsbt.js +54 -0
- package/cjs/ledger/bitcoin_client/lib/merkelizedPsbt.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/merkle.js +109 -0
- package/cjs/ledger/bitcoin_client/lib/merkle.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/merkleMap.js +46 -0
- package/cjs/ledger/bitcoin_client/lib/merkleMap.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/policy.js +66 -0
- package/cjs/ledger/bitcoin_client/lib/policy.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/psbtv2.js +640 -0
- package/cjs/ledger/bitcoin_client/lib/psbtv2.js.map +1 -0
- package/cjs/ledger/bitcoin_client/lib/varint.js +113 -0
- package/cjs/ledger/bitcoin_client/lib/varint.js.map +1 -0
- package/cjs/ledger/consts.js +7 -0
- package/cjs/ledger/consts.js.map +1 -0
- package/cjs/ledger/index.js +319 -0
- package/cjs/ledger/index.js.map +1 -0
- package/cjs/ledger/types.js +3 -0
- package/cjs/ledger/types.js.map +1 -0
- package/cjs/network-utils.js +76 -0
- package/cjs/network-utils.js.map +1 -0
- package/cjs/providers.js +270 -0
- package/cjs/providers.js.map +1 -0
- package/cjs/signers.js +64 -0
- package/cjs/signers.js.map +1 -0
- package/cjs/storage.js +30 -0
- package/cjs/storage.js.map +1 -0
- package/cjs/transactions/__tests__/integration.test.js +237 -0
- package/cjs/transactions/__tests__/integration.test.js.map +1 -0
- package/cjs/transactions/__tests__/syscoin.test.js +361 -0
- package/cjs/transactions/__tests__/syscoin.test.js.map +1 -0
- package/cjs/transactions/ethereum.js +1577 -0
- package/cjs/transactions/ethereum.js.map +1 -0
- package/cjs/transactions/index.js +19 -0
- package/cjs/transactions/index.js.map +1 -0
- package/cjs/transactions/syscoin.js +328 -0
- package/cjs/transactions/syscoin.js.map +1 -0
- package/cjs/trezor/index.js +718 -0
- package/cjs/trezor/index.js.map +1 -0
- package/cjs/types.js +12 -0
- package/cjs/types.js.map +1 -0
- package/cjs/utils/derivation-paths.js +99 -0
- package/cjs/utils/derivation-paths.js.map +1 -0
- package/cjs/utils/psbt.js +60 -0
- package/cjs/utils/psbt.js.map +1 -0
- package/cjs/utils.js +130 -0
- package/cjs/utils.js.map +1 -0
- package/package.json +46 -0
- package/types/errorUtils.d.ts +1 -0
- package/types/hardware-wallet-manager.d.ts +110 -0
- package/types/index.d.ts +12 -0
- package/types/initial-state.d.ts +79 -0
- package/types/keyring-manager.d.ts +184 -0
- package/types/ledger/bitcoin_client/index.d.ts +5 -0
- package/types/ledger/bitcoin_client/lib/appClient.d.ts +106 -0
- package/types/ledger/bitcoin_client/lib/bip32.d.ts +11 -0
- package/types/ledger/bitcoin_client/lib/buffertools.d.ts +28 -0
- package/types/ledger/bitcoin_client/lib/clientCommands.d.ts +77 -0
- package/types/ledger/bitcoin_client/lib/constants.d.ts +12 -0
- package/types/ledger/bitcoin_client/lib/merkelizedPsbt.d.ts +24 -0
- package/types/ledger/bitcoin_client/lib/merkle.d.ts +32 -0
- package/types/ledger/bitcoin_client/lib/merkleMap.d.ts +23 -0
- package/types/ledger/bitcoin_client/lib/policy.d.ts +36 -0
- package/types/ledger/bitcoin_client/lib/psbtv2.d.ts +167 -0
- package/types/ledger/bitcoin_client/lib/varint.d.ts +23 -0
- package/types/ledger/consts.d.ts +3 -0
- package/types/ledger/index.d.ts +51 -0
- package/types/ledger/types.d.ts +48 -0
- package/types/network-utils.d.ts +14 -0
- package/types/providers.d.ts +47 -0
- package/types/signers.d.ts +95 -0
- package/types/storage.d.ts +2 -0
- package/types/transactions/__tests__/integration.test.d.ts +1 -0
- package/types/transactions/__tests__/syscoin.test.d.ts +1 -0
- package/types/transactions/ethereum.d.ts +80 -0
- package/types/transactions/index.d.ts +2 -0
- package/types/transactions/syscoin.d.ts +61 -0
- package/types/trezor/index.d.ts +170 -0
- package/types/types.d.ts +294 -0
- package/types/utils/derivation-paths.d.ts +35 -0
- package/types/utils/psbt.d.ts +17 -0
- package/types/utils.d.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/trezor/index.ts"],"names":[],"mappings":"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"}
|
package/cjs/types.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyringAccountType = void 0;
|
|
4
|
+
const sysweb3_network_1 = require("@sidhujag/sysweb3-network");
|
|
5
|
+
var KeyringAccountType;
|
|
6
|
+
(function (KeyringAccountType) {
|
|
7
|
+
KeyringAccountType["HDAccount"] = "HDAccount";
|
|
8
|
+
KeyringAccountType["Imported"] = "Imported";
|
|
9
|
+
KeyringAccountType["Ledger"] = "Ledger";
|
|
10
|
+
KeyringAccountType["Trezor"] = "Trezor";
|
|
11
|
+
})(KeyringAccountType || (exports.KeyringAccountType = KeyringAccountType = {}));
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
package/cjs/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AACA,+DAAmE;AAkSnE,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;AACnB,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCoinInfo = getCoinInfo;
|
|
4
|
+
exports.isEvmCoin = isEvmCoin;
|
|
5
|
+
exports.isSegwitCoin = isSegwitCoin;
|
|
6
|
+
exports.isLegacyCoin = isLegacyCoin;
|
|
7
|
+
exports.getBipStandard = getBipStandard;
|
|
8
|
+
exports.getAccountDerivationPath = getAccountDerivationPath;
|
|
9
|
+
exports.getAddressDerivationPath = getAddressDerivationPath;
|
|
10
|
+
// Import coins data from the relative package in the monorepo
|
|
11
|
+
const sysweb3_network_1 = require("@sidhujag/sysweb3-network");
|
|
12
|
+
/**
|
|
13
|
+
* Get coin information by coin shortcut or slip44
|
|
14
|
+
* Priority: 1) Check if slip44=60 (EVM), 2) Check coins.ts (UTXO), 3) Default to unknown
|
|
15
|
+
*/
|
|
16
|
+
function getCoinInfo(coinShortcut, slip44) {
|
|
17
|
+
// slip44=60: Ethereum and most EVM-compatible networks (BSC, Polygon, Arbitrum, etc.)
|
|
18
|
+
// This must be checked FIRST to prevent any UTXO coin conflicts
|
|
19
|
+
if (slip44 === 60) {
|
|
20
|
+
return {
|
|
21
|
+
slip44,
|
|
22
|
+
segwit: false,
|
|
23
|
+
isEvm: true,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
// Use the shared findCoin utility to search for UTXO coins
|
|
27
|
+
const coin = (0, sysweb3_network_1.findCoin)({ slip44, name: coinShortcut });
|
|
28
|
+
if (coin) {
|
|
29
|
+
return {
|
|
30
|
+
slip44: coin.slip44,
|
|
31
|
+
segwit: coin.segwit || false,
|
|
32
|
+
isEvm: false, // UTXO coins from coins.ts are not EVM
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// For unknown slip44 values, we cannot safely assume EVM
|
|
36
|
+
// Return as unknown/unsupported rather than defaulting to EVM
|
|
37
|
+
return {
|
|
38
|
+
slip44,
|
|
39
|
+
segwit: false,
|
|
40
|
+
isEvm: false, // Changed from true to false - unknown slip44 should not default to EVM
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Determine if a coin is EVM-based (Ethereum-like)
|
|
45
|
+
*/
|
|
46
|
+
function isEvmCoin(coinShortcut, slip44) {
|
|
47
|
+
const coinInfo = getCoinInfo(coinShortcut, slip44);
|
|
48
|
+
return coinInfo.isEvm;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Determine if a coin uses SegWit (BIP84 - m/84')
|
|
52
|
+
*/
|
|
53
|
+
function isSegwitCoin(coinShortcut, slip44) {
|
|
54
|
+
const coinInfo = getCoinInfo(coinShortcut, slip44);
|
|
55
|
+
return coinInfo.segwit === true;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Determine if a coin uses legacy derivation (BIP44 - m/44')
|
|
59
|
+
*/
|
|
60
|
+
function isLegacyCoin(coinShortcut, slip44) {
|
|
61
|
+
return !isSegwitCoin(coinShortcut, slip44);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get the appropriate BIP standard for a coin
|
|
65
|
+
*/
|
|
66
|
+
function getBipStandard(coinShortcut, slip44) {
|
|
67
|
+
if (isEvmCoin(coinShortcut, slip44)) {
|
|
68
|
+
return 44; // EVM coins use BIP44
|
|
69
|
+
}
|
|
70
|
+
if (isSegwitCoin(coinShortcut, slip44)) {
|
|
71
|
+
return 84; // SegWit coins use BIP84
|
|
72
|
+
}
|
|
73
|
+
return 44; // Default to BIP44 for legacy coins
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Generate derivation path for account level (ending with account index)
|
|
77
|
+
* Example: m/84'/57'/0' for Syscoin account derivation
|
|
78
|
+
*/
|
|
79
|
+
function getAccountDerivationPath(coinShortcut, slip44, accountIndex = 0) {
|
|
80
|
+
const bip = getBipStandard(coinShortcut, slip44);
|
|
81
|
+
return `m/${bip}'/${slip44}'/${accountIndex}'`;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Generate derivation path for address level (full path to specific address)
|
|
85
|
+
* Example: m/84'/57'/0'/0/0 for first address of first Syscoin account
|
|
86
|
+
*/
|
|
87
|
+
function getAddressDerivationPath(coinShortcut, slip44, accountIndex = 0, isChangeAddress = false, addressIndex = 0) {
|
|
88
|
+
const bip = getBipStandard(coinShortcut, slip44);
|
|
89
|
+
if (isEvmCoin(coinShortcut, slip44)) {
|
|
90
|
+
// EVM coins typically use: m/44'/60'/0'/0/addressIndex
|
|
91
|
+
return `m/${bip}'/${slip44}'/0'/0/${addressIndex}`;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// UTXO coins use: m/84'/slip44'/account'/change/addressIndex
|
|
95
|
+
const changeValue = isChangeAddress ? 1 : 0;
|
|
96
|
+
return `m/${bip}'/${slip44}'/${accountIndex}'/${changeValue}/${addressIndex}`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=derivation-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivation-paths.js","sourceRoot":"","sources":["../../../src/utils/derivation-paths.ts"],"names":[],"mappings":";;AAOA,kCA6BC;AAKD,8BAGC;AAKD,oCAGC;AAKD,oCAEC;AAKD,wCAUC;AAMD,4DAOC;AAMD,4DAiBC;AA9GD,8DAA8D;AAC9D,+DAAqD;AAErD;;;GAGG;AACH,SAAgB,WAAW,CAAC,YAAoB,EAAE,MAAc;IAC9D,sFAAsF;IACtF,gEAAgE;IAChE,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,OAAO;YACL,MAAM;YACN,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,MAAM,IAAI,GAAG,IAAA,0BAAQ,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAEtD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;YAC5B,KAAK,EAAE,KAAK,EAAE,uCAAuC;SACtD,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,8DAA8D;IAC9D,OAAO;QACL,MAAM;QACN,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,KAAK,EAAE,wEAAwE;KACvF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,YAAoB,EAAE,MAAc;IAC5D,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,KAAK,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,YAAoB,EAAE,MAAc;IAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,YAAoB,EAAE,MAAc;IAC/D,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,YAAoB,EAAE,MAAc;IACjE,IAAI,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC,CAAC,sBAAsB;IACnC,CAAC;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,yBAAyB;IACtC,CAAC;IAED,OAAO,EAAE,CAAC,CAAC,oCAAoC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,YAAoB,EACpB,MAAc,EACd,YAAY,GAAG,CAAC;IAEhB,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,KAAK,GAAG,KAAK,MAAM,KAAK,YAAY,GAAG,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,YAAoB,EACpB,MAAc,EACd,YAAY,GAAG,CAAC,EAChB,eAAe,GAAG,KAAK,EACvB,YAAY,GAAG,CAAC;IAEhB,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjD,IAAI,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;QACpC,uDAAuD;QACvD,OAAO,KAAK,GAAG,KAAK,MAAM,UAAU,YAAY,EAAE,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,KAAK,GAAG,KAAK,MAAM,KAAK,YAAY,KAAK,WAAW,IAAI,YAAY,EAAE,CAAC;IAChF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.PsbtUtils = void 0;
|
|
37
|
+
const syscoinjs = __importStar(require("syscoinjs-lib"));
|
|
38
|
+
/**
|
|
39
|
+
* Utility functions for PSBT conversion between Pali and syscoinjs formats
|
|
40
|
+
*/
|
|
41
|
+
class PsbtUtils {
|
|
42
|
+
/**
|
|
43
|
+
* Import PSBT from Pali's exported format to syscoinjs PSBT object
|
|
44
|
+
* @param psbtFromPali - PSBT data exported from Pali
|
|
45
|
+
* @returns syscoinjs PSBT object
|
|
46
|
+
*/
|
|
47
|
+
static fromPali(psbtFromPali) {
|
|
48
|
+
return syscoinjs.utils.importPsbtFromJson(psbtFromPali).psbt;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Export syscoinjs PSBT object to Pali's expected format
|
|
52
|
+
* @param psbt - syscoinjs PSBT object
|
|
53
|
+
* @returns PSBT data in Pali's expected format
|
|
54
|
+
*/
|
|
55
|
+
static toPali(psbt) {
|
|
56
|
+
return syscoinjs.utils.exportPsbtToJson(psbt, undefined);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.PsbtUtils = PsbtUtils;
|
|
60
|
+
//# sourceMappingURL=psbt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psbt.js","sourceRoot":"","sources":["../../../src/utils/psbt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAE3C;;GAEG;AACH,MAAa,SAAS;IACpB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,YAAiB;QAC/B,OAAO,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAS;QACrB,OAAO,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAlBD,8BAkBC"}
|
package/cjs/utils.js
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BIP_84 = exports.ONE_HUNDRED_MILLION = exports.SYSCOIN_BASIC_FEE = void 0;
|
|
4
|
+
exports.checkError = checkError;
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const utils_1 = require("ethers/lib/utils");
|
|
7
|
+
const errorGas = ['call', 'estimateGas'];
|
|
8
|
+
function spelunk(value, requireData) {
|
|
9
|
+
if (value == null) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
// These *are* the droids we're looking for.
|
|
13
|
+
if (typeof value.message === 'string' && value.message.match('reverted')) {
|
|
14
|
+
const data = (0, utils_1.isHexString)(value.data) ? value.data : null;
|
|
15
|
+
if (!requireData || data) {
|
|
16
|
+
return { message: value.message, data };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// Spelunk further...
|
|
20
|
+
if (typeof value === 'object') {
|
|
21
|
+
for (const key in value) {
|
|
22
|
+
const result = spelunk(value[key], requireData);
|
|
23
|
+
if (result) {
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
// Might be a JSON string we can further descend...
|
|
30
|
+
if (typeof value === 'string') {
|
|
31
|
+
try {
|
|
32
|
+
return spelunk(JSON.parse(value), requireData);
|
|
33
|
+
// eslint-disable-next-line
|
|
34
|
+
}
|
|
35
|
+
catch (error) { }
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
function checkError(method, error, params) {
|
|
40
|
+
const transaction = params.transaction || params.signedTransaction;
|
|
41
|
+
// Undo the "convenience" some nodes are attempting to prevent backwards
|
|
42
|
+
// incompatibility; maybe for v6 consider forwarding reverts as errors
|
|
43
|
+
if (method === 'call') {
|
|
44
|
+
const result = spelunk(error, true);
|
|
45
|
+
if (result) {
|
|
46
|
+
return result.data;
|
|
47
|
+
}
|
|
48
|
+
// Nothing descriptive..
|
|
49
|
+
ethers_1.logger.throwError('missing revert data in call exception; Transaction reverted without a reason string', utils_1.Logger.errors.CALL_EXCEPTION, {
|
|
50
|
+
data: '0x',
|
|
51
|
+
transaction,
|
|
52
|
+
error,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (method === 'estimateGas') {
|
|
56
|
+
// Try to find something, with a preference on SERVER_ERROR body
|
|
57
|
+
let result = spelunk(error.body, false);
|
|
58
|
+
if (result == null) {
|
|
59
|
+
result = spelunk(error, false);
|
|
60
|
+
}
|
|
61
|
+
// Found "reverted", this is a CALL_EXCEPTION
|
|
62
|
+
if (result) {
|
|
63
|
+
ethers_1.logger.throwError('cannot estimate gas; transaction may fail or may require manual gas limit', utils_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
|
|
64
|
+
reason: result.message,
|
|
65
|
+
method,
|
|
66
|
+
transaction,
|
|
67
|
+
error,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// @TODO: Should we spelunk for message too?
|
|
72
|
+
let message = error.message;
|
|
73
|
+
if (error.code === utils_1.Logger.errors.SERVER_ERROR &&
|
|
74
|
+
error.error &&
|
|
75
|
+
typeof error.error.message === 'string') {
|
|
76
|
+
message = error.error.message;
|
|
77
|
+
}
|
|
78
|
+
else if (typeof error.body === 'string') {
|
|
79
|
+
message = error.body;
|
|
80
|
+
}
|
|
81
|
+
else if (typeof error.responseText === 'string') {
|
|
82
|
+
message = error.responseText;
|
|
83
|
+
}
|
|
84
|
+
message = (message || '').toLowerCase();
|
|
85
|
+
// "insufficient funds for gas * price + value + cost(data)"
|
|
86
|
+
if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {
|
|
87
|
+
ethers_1.logger.throwError('insufficient funds for intrinsic transaction cost', utils_1.Logger.errors.INSUFFICIENT_FUNDS, {
|
|
88
|
+
error,
|
|
89
|
+
method,
|
|
90
|
+
transaction,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// "nonce too low"
|
|
94
|
+
if (message.match(/nonce (is )?too low/i)) {
|
|
95
|
+
ethers_1.logger.throwError('nonce has already been used', utils_1.Logger.errors.NONCE_EXPIRED, {
|
|
96
|
+
error,
|
|
97
|
+
method,
|
|
98
|
+
transaction,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
// "replacement transaction underpriced"
|
|
102
|
+
if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {
|
|
103
|
+
ethers_1.logger.throwError('replacement fee too low', utils_1.Logger.errors.REPLACEMENT_UNDERPRICED, {
|
|
104
|
+
error,
|
|
105
|
+
method,
|
|
106
|
+
transaction,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
// "replacement transaction underpriced"
|
|
110
|
+
if (message.match(/only replay-protected/i)) {
|
|
111
|
+
ethers_1.logger.throwError('legacy pre-eip-155 transactions not supported', utils_1.Logger.errors.UNSUPPORTED_OPERATION, {
|
|
112
|
+
error,
|
|
113
|
+
method,
|
|
114
|
+
transaction,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (errorGas.indexOf(method) >= 0 &&
|
|
118
|
+
message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {
|
|
119
|
+
ethers_1.logger.throwError('cannot estimate gas; transaction may fail or may require manual gas limit', utils_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
|
|
120
|
+
error,
|
|
121
|
+
method,
|
|
122
|
+
transaction,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
exports.SYSCOIN_BASIC_FEE = 0.00001;
|
|
128
|
+
exports.ONE_HUNDRED_MILLION = 1e8;
|
|
129
|
+
exports.BIP_84 = 84;
|
|
130
|
+
//# sourceMappingURL=utils.js.map
|
package/cjs/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sidhujag/sysweb3-keyring",
|
|
3
|
+
"version": "1.0.491",
|
|
4
|
+
"description": "Keyring Manager for UTXO and Web3 Wallets",
|
|
5
|
+
"main": "cjs/index.js",
|
|
6
|
+
"types": "types/index.d.ts",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/syscoin/sysweb3.git"
|
|
10
|
+
},
|
|
11
|
+
"author": "Pali Wallet",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"private": false,
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@bitcoinerlab/descriptors": "^2.0.1",
|
|
16
|
+
"@bitcoinerlab/secp256k1": "^1.0.5",
|
|
17
|
+
"@ledgerhq/hw-app-eth": "^6.45.12",
|
|
18
|
+
"@ledgerhq/hw-transport-webhid": "^6.30.4",
|
|
19
|
+
"@ledgerhq/logs": "^6.10.1",
|
|
20
|
+
"@sidhujag/sysweb3-core": "^1.0.27",
|
|
21
|
+
"@sidhujag/sysweb3-network": "^1.0.96",
|
|
22
|
+
"@sidhujag/sysweb3-utils": "^1.1.237",
|
|
23
|
+
"@trezor/connect-web": "^9.1.5",
|
|
24
|
+
"@trezor/connect-webextension": "^9.6.2",
|
|
25
|
+
"@trezor/utxo-lib": "^1.0.12",
|
|
26
|
+
"bip32-path": "^0.4.2",
|
|
27
|
+
"bip39": "^3.0.4",
|
|
28
|
+
"bip84": "^0.2.7",
|
|
29
|
+
"bitcoin-ops": "^1.4.1",
|
|
30
|
+
"bitcoinjs-lib": "^6.1.5",
|
|
31
|
+
"bs58check": "^3.0.1",
|
|
32
|
+
"crypto-js": "^4.1.1",
|
|
33
|
+
"dotenv": "^16.4.5",
|
|
34
|
+
"eth-json-rpc-filters": "^4.2.2",
|
|
35
|
+
"eth-sig-util": "^3.0.1",
|
|
36
|
+
"ethereumjs-util": "^7.1.5",
|
|
37
|
+
"ethers": "^5.7.2",
|
|
38
|
+
"ledger-bitcoin": "^0.2.3",
|
|
39
|
+
"lodash": "^4.17.21",
|
|
40
|
+
"satoshi-bitcoin": "^1.0.5",
|
|
41
|
+
"zksync-ethers": "5"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"syscoinjs-lib": "^1.0.244"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function handleStatusCodeError(statusCode: number, errorMessage: string): void;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import Transport from '@ledgerhq/hw-transport';
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
export declare enum HardwareWalletType {
|
|
4
|
+
LEDGER = "ledger",
|
|
5
|
+
TREZOR = "trezor"
|
|
6
|
+
}
|
|
7
|
+
export declare enum ConnectionStatus {
|
|
8
|
+
DISCONNECTED = "disconnected",
|
|
9
|
+
CONNECTING = "connecting",
|
|
10
|
+
CONNECTED = "connected",
|
|
11
|
+
ERROR = "error"
|
|
12
|
+
}
|
|
13
|
+
interface RetryConfig {
|
|
14
|
+
maxRetries: number;
|
|
15
|
+
baseDelay: number;
|
|
16
|
+
maxDelay: number;
|
|
17
|
+
backoffMultiplier: number;
|
|
18
|
+
}
|
|
19
|
+
export interface HardwareWalletStatus {
|
|
20
|
+
type: HardwareWalletType;
|
|
21
|
+
status: ConnectionStatus;
|
|
22
|
+
connected: boolean;
|
|
23
|
+
lastSeen?: number;
|
|
24
|
+
error?: string;
|
|
25
|
+
deviceInfo?: {
|
|
26
|
+
model?: string;
|
|
27
|
+
firmwareVersion?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Hardware Wallet Manager with connection pooling, status monitoring, and error recovery
|
|
32
|
+
*/
|
|
33
|
+
export declare class HardwareWalletManager extends EventEmitter {
|
|
34
|
+
private connectionPool;
|
|
35
|
+
private statusMonitorInterval;
|
|
36
|
+
private readonly CONNECTION_TIMEOUT;
|
|
37
|
+
private readonly IDLE_TIMEOUT;
|
|
38
|
+
private readonly STATUS_CHECK_INTERVAL;
|
|
39
|
+
private readonly retryConfig;
|
|
40
|
+
constructor();
|
|
41
|
+
/**
|
|
42
|
+
* Get or create a Ledger connection with retry logic
|
|
43
|
+
*/
|
|
44
|
+
getLedgerConnection(): Promise<Transport>;
|
|
45
|
+
/**
|
|
46
|
+
* Create Ledger connection with exponential backoff retry
|
|
47
|
+
*/
|
|
48
|
+
private createLedgerConnectionWithRetry;
|
|
49
|
+
/**
|
|
50
|
+
* Create Ledger transport with timeout
|
|
51
|
+
*/
|
|
52
|
+
private createLedgerTransport;
|
|
53
|
+
/**
|
|
54
|
+
* Initialize Trezor with retry logic
|
|
55
|
+
*/
|
|
56
|
+
initializeTrezor(): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Initialize Trezor with exponential backoff retry
|
|
59
|
+
*/
|
|
60
|
+
private initializeTrezorWithRetry;
|
|
61
|
+
/**
|
|
62
|
+
* Handle device disconnect
|
|
63
|
+
*/
|
|
64
|
+
private handleDisconnect;
|
|
65
|
+
/**
|
|
66
|
+
* Start real-time status monitoring
|
|
67
|
+
*/
|
|
68
|
+
private startStatusMonitoring;
|
|
69
|
+
/**
|
|
70
|
+
* Check all connections and clean up idle ones
|
|
71
|
+
*/
|
|
72
|
+
private checkAllConnections;
|
|
73
|
+
/**
|
|
74
|
+
* Get current status of all hardware wallets
|
|
75
|
+
*/
|
|
76
|
+
getStatus(): HardwareWalletStatus[];
|
|
77
|
+
/**
|
|
78
|
+
* Check if a specific device is connected
|
|
79
|
+
*/
|
|
80
|
+
isConnected(type: HardwareWalletType): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Ensure connection before operation
|
|
83
|
+
*/
|
|
84
|
+
ensureConnection(type: HardwareWalletType): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Close a specific connection
|
|
87
|
+
*/
|
|
88
|
+
private closeConnection;
|
|
89
|
+
/**
|
|
90
|
+
* Close all connections and stop monitoring
|
|
91
|
+
*/
|
|
92
|
+
destroy(): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Calculate exponential backoff delay
|
|
95
|
+
*/
|
|
96
|
+
private calculateBackoffDelay;
|
|
97
|
+
/**
|
|
98
|
+
* Create a timeout promise
|
|
99
|
+
*/
|
|
100
|
+
private createTimeoutPromise;
|
|
101
|
+
/**
|
|
102
|
+
* Delay helper
|
|
103
|
+
*/
|
|
104
|
+
private delay;
|
|
105
|
+
/**
|
|
106
|
+
* Retry an operation with exponential backoff
|
|
107
|
+
*/
|
|
108
|
+
retryOperation<T>(operation: () => Promise<T>, operationName: string, customRetryConfig?: Partial<RetryConfig>): Promise<T>;
|
|
109
|
+
}
|
|
110
|
+
export {};
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './transactions';
|
|
2
|
+
export * from './trezor';
|
|
3
|
+
export * from './types';
|
|
4
|
+
export * from './storage';
|
|
5
|
+
export * from './signers';
|
|
6
|
+
export * from './initial-state';
|
|
7
|
+
export * from './keyring-manager';
|
|
8
|
+
export * from './providers';
|
|
9
|
+
export * from './utils/derivation-paths';
|
|
10
|
+
export * from './network-utils';
|
|
11
|
+
export * from './hardware-wallet-manager';
|
|
12
|
+
export { PsbtUtils } from './utils/psbt';
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { INetworkType } from '@sidhujag/sysweb3-network';
|
|
2
|
+
import { IKeyringAccountState } from './types';
|
|
3
|
+
export declare const initialActiveHdAccountState: IKeyringAccountState;
|
|
4
|
+
export declare const initialActiveImportedAccountState: IKeyringAccountState;
|
|
5
|
+
export declare const initialActiveTrezorAccountState: IKeyringAccountState;
|
|
6
|
+
export declare const initialActiveLedgerAccountState: IKeyringAccountState;
|
|
7
|
+
export declare const initialNetworksState: {
|
|
8
|
+
syscoin: {
|
|
9
|
+
[chainId: number]: import("@sidhujag/sysweb3-network").INetwork;
|
|
10
|
+
};
|
|
11
|
+
ethereum: {
|
|
12
|
+
1: {
|
|
13
|
+
chainId: number;
|
|
14
|
+
url: string;
|
|
15
|
+
label: string;
|
|
16
|
+
default: boolean;
|
|
17
|
+
currency: string;
|
|
18
|
+
explorer: string;
|
|
19
|
+
apiUrl: string;
|
|
20
|
+
slip44: number;
|
|
21
|
+
kind: INetworkType;
|
|
22
|
+
};
|
|
23
|
+
137: {
|
|
24
|
+
chainId: number;
|
|
25
|
+
currency: string;
|
|
26
|
+
default: boolean;
|
|
27
|
+
label: string;
|
|
28
|
+
url: string;
|
|
29
|
+
apiUrl: string;
|
|
30
|
+
explorer: string;
|
|
31
|
+
slip44: number;
|
|
32
|
+
kind: INetworkType;
|
|
33
|
+
};
|
|
34
|
+
80001: {
|
|
35
|
+
chainId: number;
|
|
36
|
+
currency: string;
|
|
37
|
+
default: boolean;
|
|
38
|
+
label: string;
|
|
39
|
+
url: string;
|
|
40
|
+
apiUrl: string;
|
|
41
|
+
explorer: string;
|
|
42
|
+
slip44: number;
|
|
43
|
+
kind: INetworkType;
|
|
44
|
+
};
|
|
45
|
+
57: {
|
|
46
|
+
chainId: number;
|
|
47
|
+
currency: string;
|
|
48
|
+
default: boolean;
|
|
49
|
+
label: string;
|
|
50
|
+
url: string;
|
|
51
|
+
apiUrl: string;
|
|
52
|
+
explorer: string;
|
|
53
|
+
slip44: number;
|
|
54
|
+
kind: INetworkType;
|
|
55
|
+
};
|
|
56
|
+
570: {
|
|
57
|
+
chainId: number;
|
|
58
|
+
currency: string;
|
|
59
|
+
default: boolean;
|
|
60
|
+
label: string;
|
|
61
|
+
url: string;
|
|
62
|
+
apiUrl: string;
|
|
63
|
+
explorer: string;
|
|
64
|
+
slip44: number;
|
|
65
|
+
kind: INetworkType;
|
|
66
|
+
};
|
|
67
|
+
5700: {
|
|
68
|
+
chainId: number;
|
|
69
|
+
currency: string;
|
|
70
|
+
default: boolean;
|
|
71
|
+
label: string;
|
|
72
|
+
url: string;
|
|
73
|
+
apiUrl: string;
|
|
74
|
+
explorer: string;
|
|
75
|
+
slip44: number;
|
|
76
|
+
kind: INetworkType;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
};
|