@injectivelabs/wallet-trezor 1.14.41-alpha.5 → 1.14.41-alpha.7
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 +2 -2
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/strategy/{strategy.d.ts → Base.d.ts} +8 -3
- package/dist/cjs/strategy/Base.d.ts.map +1 -0
- package/dist/cjs/strategy/Base.js +284 -0
- package/dist/cjs/strategy/Base.js.map +1 -0
- package/dist/cjs/strategy/TrezorBip32.d.ts +6 -0
- package/dist/cjs/strategy/TrezorBip32.d.ts.map +1 -0
- package/dist/cjs/strategy/TrezorBip32.js +18 -0
- package/dist/cjs/strategy/TrezorBip32.js.map +1 -0
- package/dist/cjs/strategy/TrezorBip44.d.ts +6 -0
- package/dist/cjs/strategy/TrezorBip44.d.ts.map +1 -0
- package/dist/cjs/strategy/TrezorBip44.js +18 -0
- package/dist/cjs/strategy/TrezorBip44.js.map +1 -0
- package/dist/cjs/strategy/hw/AccountManager.d.ts +7 -2
- package/dist/cjs/strategy/hw/AccountManager.d.ts.map +1 -1
- package/dist/cjs/strategy/hw/AccountManager.js +44 -45
- package/dist/cjs/strategy/hw/AccountManager.js.map +1 -1
- package/dist/cjs/strategy/hw/index.d.ts.map +1 -1
- package/dist/cjs/strategy/hw/index.js +34 -48
- package/dist/cjs/strategy/hw/index.js.map +1 -1
- package/dist/cjs/types.d.ts +4 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +6 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +5 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strategy/{strategy.d.ts → Base.d.ts} +8 -3
- package/dist/esm/strategy/Base.d.ts.map +1 -0
- package/dist/esm/strategy/{strategy.js → Base.js} +12 -6
- package/dist/esm/strategy/Base.js.map +1 -0
- package/dist/esm/strategy/TrezorBip32.d.ts +6 -0
- package/dist/esm/strategy/TrezorBip32.d.ts.map +1 -0
- package/dist/esm/strategy/TrezorBip32.js +11 -0
- package/dist/esm/strategy/TrezorBip32.js.map +1 -0
- package/dist/esm/strategy/TrezorBip44.d.ts +6 -0
- package/dist/esm/strategy/TrezorBip44.d.ts.map +1 -0
- package/dist/esm/strategy/TrezorBip44.js +11 -0
- package/dist/esm/strategy/TrezorBip44.js.map +1 -0
- package/dist/esm/strategy/hw/AccountManager.d.ts +7 -2
- package/dist/esm/strategy/hw/AccountManager.d.ts.map +1 -1
- package/dist/esm/strategy/hw/AccountManager.js +20 -7
- package/dist/esm/strategy/hw/AccountManager.js.map +1 -1
- package/dist/esm/strategy/hw/index.d.ts.map +1 -1
- package/dist/esm/strategy/hw/index.js +5 -4
- package/dist/esm/strategy/hw/index.js.map +1 -1
- package/dist/esm/types.d.ts +4 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +5 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.d.ts.map +1 -1
- package/package.json +13 -22
- package/dist/cjs/strategy/strategy.d.ts.map +0 -1
- package/dist/cjs/strategy/strategy.js +0 -315
- package/dist/cjs/strategy/strategy.js.map +0 -1
- package/dist/esm/strategy/strategy.d.ts.map +0 -1
- package/dist/esm/strategy/strategy.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- TODO -->
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/@injectivelabs/wallet-trezor)
|
|
6
|
+
[](https://www.npmjs.com/package/@injectivelabs/wallet-trezor)
|
|
7
7
|
[]()
|
|
8
8
|
|
|
9
9
|
_Package to use Trezor Wallets on Injective via the wallet strategy._
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { TrezorBip32 as TrezorStrategy } from './strategy/TrezorBip32.js';
|
|
2
|
+
export { TrezorBip44 as TrezorBip44Strategy } from './strategy/TrezorBip44.js';
|
|
2
3
|
export * from './types.js';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE9E,cAAc,YAAY,CAAA"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,8 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
var
|
|
19
|
-
Object.defineProperty(exports, "
|
|
17
|
+
exports.TrezorBip44Strategy = exports.TrezorStrategy = void 0;
|
|
18
|
+
var TrezorBip32_js_1 = require("./strategy/TrezorBip32.js");
|
|
19
|
+
Object.defineProperty(exports, "TrezorStrategy", { enumerable: true, get: function () { return TrezorBip32_js_1.TrezorBip32; } });
|
|
20
|
+
var TrezorBip44_js_1 = require("./strategy/TrezorBip44.js");
|
|
21
|
+
Object.defineProperty(exports, "TrezorBip44Strategy", { enumerable: true, get: function () { return TrezorBip44_js_1.TrezorBip44; } });
|
|
20
22
|
__exportStar(require("./types.js"), exports);
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4DAAyE;AAAhE,gHAAA,WAAW,OAAkB;AACtC,4DAA8E;AAArE,qHAAA,WAAW,OAAuB;AAE3C,6CAA0B"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
|
|
2
2
|
import { TxRaw, TxResponse, DirectSignResponse, AminoSignResponse } from '@injectivelabs/sdk-ts';
|
|
3
3
|
import { StdSignDoc, WalletDeviceType, BaseConcreteStrategy, ConcreteWalletStrategy, SendTransactionOptions, ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
|
|
4
|
-
|
|
4
|
+
import { TrezorDerivationPathType } from '../types.js';
|
|
5
|
+
export default class TrezorBase extends BaseConcreteStrategy implements ConcreteWalletStrategy {
|
|
6
|
+
private baseDerivationPath;
|
|
5
7
|
private trezor;
|
|
6
8
|
private ethereumOptions;
|
|
7
9
|
private alchemy;
|
|
8
|
-
|
|
10
|
+
private derivationPathType;
|
|
11
|
+
constructor(args: ConcreteEthereumWalletStrategyArgs & {
|
|
12
|
+
derivationPathType: TrezorDerivationPathType;
|
|
13
|
+
});
|
|
9
14
|
getWalletDeviceType(): Promise<WalletDeviceType>;
|
|
10
15
|
enable(): Promise<boolean>;
|
|
11
16
|
disconnect(): Promise<void>;
|
|
@@ -35,4 +40,4 @@ export declare class TrezorWallet extends BaseConcreteStrategy implements Concre
|
|
|
35
40
|
private getWalletForAddress;
|
|
36
41
|
private getAlchemy;
|
|
37
42
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=Base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../src/strategy/Base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAczE,OAAO,EACL,KAAK,EAGL,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,UAAU,EAIV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAKtB,kCAAkC,EACnC,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,wBAAwB,EAAoB,MAAM,aAAa,CAAA;AA8BxE,MAAM,CAAC,OAAO,OAAO,UACnB,SAAQ,oBACR,YAAW,sBAAsB;IAEjC,OAAO,CAAC,kBAAkB,CAAQ;IAElC,OAAO,CAAC,MAAM,CAAU;IAExB,OAAO,CAAC,eAAe,CAA+B;IAEtD,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,kBAAkB,CAA0B;gBAGlD,IAAI,EAAE,kCAAkC,GAAG;QACzC,kBAAkB,EAAE,wBAAwB,CAAA;KAC7C;IAUG,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIhD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAInB,UAAU;IAIV,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBxC,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7D,uBAAuB,CAC3B,MAAM,EAAE,GAAG,EACX,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE,GAC7D,OAAO,CAAC,MAAM,CAAC;IAsBZ,eAAe,CACnB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC;IAyBhB,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC;IAqDZ,0BAA0B,CAAC,YAAY,EAAE;QAC7C,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,UAAU,CAAA;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAYxB,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;IAWzB,aAAa,CACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,MAAM,CAAC;IA0BZ,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOrC,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;YAMpB,uBAAuB;YA+EvB,mBAAmB;YA2BnB,UAAU;CAuBzB"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable camelcase */
|
|
7
|
+
/* eslint-disable class-methods-use-this */
|
|
8
|
+
const ts_types_1 = require("@injectivelabs/ts-types");
|
|
9
|
+
const alchemy_sdk_1 = require("alchemy-sdk");
|
|
10
|
+
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
11
|
+
const tx_1 = require("@ethereumjs/tx");
|
|
12
|
+
const common_1 = require("@ethereumjs/common");
|
|
13
|
+
const connect_web_1 = require("@trezor/connect-web");
|
|
14
|
+
const exceptions_1 = require("@injectivelabs/exceptions");
|
|
15
|
+
const sdk_ts_1 = require("@injectivelabs/sdk-ts");
|
|
16
|
+
const wallet_base_1 = require("@injectivelabs/wallet-base");
|
|
17
|
+
const index_js_1 = __importDefault(require("./hw/index.js"));
|
|
18
|
+
const utils_js_1 = require("../utils.js");
|
|
19
|
+
const getNetworkFromChainId = (chainId) => {
|
|
20
|
+
if (chainId === ts_types_1.EthereumChainId.Goerli) {
|
|
21
|
+
return common_1.Chain.Goerli;
|
|
22
|
+
}
|
|
23
|
+
if (chainId === ts_types_1.EthereumChainId.Sepolia) {
|
|
24
|
+
return common_1.Chain.Sepolia;
|
|
25
|
+
}
|
|
26
|
+
if (chainId === ts_types_1.EthereumChainId.Kovan) {
|
|
27
|
+
return common_1.Chain.Goerli;
|
|
28
|
+
}
|
|
29
|
+
return common_1.Chain.Mainnet;
|
|
30
|
+
};
|
|
31
|
+
class TrezorBase extends wallet_base_1.BaseConcreteStrategy {
|
|
32
|
+
baseDerivationPath;
|
|
33
|
+
trezor;
|
|
34
|
+
ethereumOptions;
|
|
35
|
+
alchemy;
|
|
36
|
+
derivationPathType;
|
|
37
|
+
constructor(args) {
|
|
38
|
+
super(args);
|
|
39
|
+
this.baseDerivationPath = wallet_base_1.DEFAULT_BASE_DERIVATION_PATH;
|
|
40
|
+
this.derivationPathType = args.derivationPathType;
|
|
41
|
+
this.trezor = new index_js_1.default();
|
|
42
|
+
this.ethereumOptions = args.ethereumOptions;
|
|
43
|
+
}
|
|
44
|
+
async getWalletDeviceType() {
|
|
45
|
+
return Promise.resolve(wallet_base_1.WalletDeviceType.Hardware);
|
|
46
|
+
}
|
|
47
|
+
async enable() {
|
|
48
|
+
return Promise.resolve(true);
|
|
49
|
+
}
|
|
50
|
+
async disconnect() {
|
|
51
|
+
this.trezor = new index_js_1.default();
|
|
52
|
+
}
|
|
53
|
+
async getAddresses() {
|
|
54
|
+
const { baseDerivationPath, derivationPathType } = this;
|
|
55
|
+
try {
|
|
56
|
+
await this.trezor.connect();
|
|
57
|
+
const accountManager = await this.trezor.getAccountManager();
|
|
58
|
+
const wallets = await accountManager.getWallets(baseDerivationPath, derivationPathType);
|
|
59
|
+
return wallets.map((k) => k.address);
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
throw new exceptions_1.TrezorException(new Error(e.message), {
|
|
63
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
64
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
65
|
+
contextModule: wallet_base_1.WalletAction.GetAccounts,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async getSessionOrConfirm(address) {
|
|
70
|
+
return Promise.resolve(`0x${Buffer.from(`Confirmation for ${address} at time: ${Date.now()}`).toString('hex')}`);
|
|
71
|
+
}
|
|
72
|
+
async sendEthereumTransaction(txData, options) {
|
|
73
|
+
const signedTransaction = await this.signEthereumTransaction(txData, options);
|
|
74
|
+
try {
|
|
75
|
+
const alchemy = await this.getAlchemy();
|
|
76
|
+
const txReceipt = await alchemy.core.sendTransaction((0, ethereumjs_util_1.addHexPrefix)(signedTransaction.serialize().toString('hex')));
|
|
77
|
+
return txReceipt.hash;
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
throw new exceptions_1.TrezorException(new Error(e.message), {
|
|
81
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
82
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
83
|
+
contextModule: wallet_base_1.WalletAction.SendEthereumTransaction,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async sendTransaction(transaction, options) {
|
|
88
|
+
const { endpoints, txTimeout } = options;
|
|
89
|
+
if (!endpoints) {
|
|
90
|
+
throw new exceptions_1.WalletException(new Error('You have to pass endpoints.grpc within the options for using Ethereum native wallets'));
|
|
91
|
+
}
|
|
92
|
+
const txApi = new sdk_ts_1.TxGrpcApi(endpoints.grpc);
|
|
93
|
+
const response = await txApi.broadcast(transaction, { txTimeout });
|
|
94
|
+
if (response.code !== 0) {
|
|
95
|
+
throw new exceptions_1.TransactionException(new Error(response.rawLog), {
|
|
96
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
97
|
+
contextCode: response.code,
|
|
98
|
+
contextModule: response.codespace,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return response;
|
|
102
|
+
}
|
|
103
|
+
async signEip712TypedData(eip712json, address) {
|
|
104
|
+
const object = JSON.parse(eip712json);
|
|
105
|
+
const compatibleObject = {
|
|
106
|
+
...object,
|
|
107
|
+
domain: {
|
|
108
|
+
...object.domain,
|
|
109
|
+
chainId: object.domain.chainId,
|
|
110
|
+
salt: '0',
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
const dataWithHashes = (0, utils_js_1.transformTypedData)(compatibleObject);
|
|
114
|
+
const { types: { EIP712Domain = [], ...otherTypes } = {}, message = {}, domain = {}, primaryType, domain_separator_hash, message_hash, } = dataWithHashes;
|
|
115
|
+
try {
|
|
116
|
+
await this.trezor.connect();
|
|
117
|
+
const { derivationPath } = await this.getWalletForAddress(address);
|
|
118
|
+
const response = await connect_web_1.TrezorConnect.ethereumSignTypedData({
|
|
119
|
+
path: derivationPath,
|
|
120
|
+
data: {
|
|
121
|
+
types: { EIP712Domain, ...otherTypes },
|
|
122
|
+
message,
|
|
123
|
+
domain,
|
|
124
|
+
primaryType,
|
|
125
|
+
},
|
|
126
|
+
message_hash,
|
|
127
|
+
domain_separator_hash,
|
|
128
|
+
metamask_v4_compat: true,
|
|
129
|
+
});
|
|
130
|
+
if (!response.success) {
|
|
131
|
+
// noinspection ExceptionCaughtLocallyJS
|
|
132
|
+
throw new Error((response.payload && response.payload.error) || 'Unknown error');
|
|
133
|
+
}
|
|
134
|
+
return response.payload.signature;
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
throw new exceptions_1.TrezorException(new Error(e.message), {
|
|
138
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
139
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
140
|
+
contextModule: wallet_base_1.WalletAction.SignTransaction,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
async signAminoCosmosTransaction(_transaction) {
|
|
145
|
+
throw new exceptions_1.WalletException(new Error('This wallet does not support signing Cosmos transactions'), {
|
|
146
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
147
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
148
|
+
contextModule: wallet_base_1.WalletAction.SendTransaction,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
// eslint-disable-next-line class-methods-use-this
|
|
152
|
+
async signCosmosTransaction(_transaction) {
|
|
153
|
+
throw new exceptions_1.WalletException(new Error('This wallet does not support signing Cosmos transactions'), {
|
|
154
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
155
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
156
|
+
contextModule: wallet_base_1.WalletAction.SendTransaction,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
async signArbitrary(signer, data) {
|
|
160
|
+
try {
|
|
161
|
+
await this.trezor.connect();
|
|
162
|
+
const { derivationPath } = await this.getWalletForAddress(signer);
|
|
163
|
+
const response = await connect_web_1.TrezorConnect.ethereumSignMessage({
|
|
164
|
+
path: derivationPath,
|
|
165
|
+
message: (0, sdk_ts_1.toUtf8)(data),
|
|
166
|
+
});
|
|
167
|
+
if (!response.success) {
|
|
168
|
+
throw new Error((response.payload && response.payload.error) || 'Unknown error');
|
|
169
|
+
}
|
|
170
|
+
return response.payload.signature;
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
throw new exceptions_1.TrezorException(new Error(e.message), {
|
|
174
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
175
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
176
|
+
contextModule: wallet_base_1.WalletAction.SignTransaction,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async getEthereumChainId() {
|
|
181
|
+
const alchemy = await this.getAlchemy();
|
|
182
|
+
const alchemyProvider = await alchemy.config.getProvider();
|
|
183
|
+
return alchemyProvider.network.chainId.toString();
|
|
184
|
+
}
|
|
185
|
+
async getEthereumTransactionReceipt(txHash) {
|
|
186
|
+
return Promise.resolve(txHash);
|
|
187
|
+
}
|
|
188
|
+
// eslint-disable-next-line class-methods-use-this
|
|
189
|
+
async getPubKey() {
|
|
190
|
+
throw new exceptions_1.WalletException(new Error('You can only fetch PubKey from Cosmos native wallets'));
|
|
191
|
+
}
|
|
192
|
+
async signEthereumTransaction(txData, options) {
|
|
193
|
+
const chainId = parseInt(options.ethereumChainId.toString(), 10);
|
|
194
|
+
const alchemy = await this.getAlchemy();
|
|
195
|
+
const nonce = await alchemy.core.getTransactionCount(options.address);
|
|
196
|
+
const common = new common_1.Common({
|
|
197
|
+
chain: getNetworkFromChainId(chainId),
|
|
198
|
+
hardfork: common_1.Hardfork.London,
|
|
199
|
+
});
|
|
200
|
+
const eip1559TxData = {
|
|
201
|
+
from: txData.from,
|
|
202
|
+
data: txData.data,
|
|
203
|
+
to: txData.to,
|
|
204
|
+
nonce: (0, ethereumjs_util_1.addHexPrefix)(nonce.toString(16)),
|
|
205
|
+
gas: (0, ethereumjs_util_1.addHexPrefix)(txData.gas),
|
|
206
|
+
gasLimit: (0, ethereumjs_util_1.addHexPrefix)(txData.gas),
|
|
207
|
+
maxFeePerGas: (0, ethereumjs_util_1.addHexPrefix)(txData.gasPrice || txData.maxFeePerGas),
|
|
208
|
+
maxPriorityFeePerGas: (0, ethereumjs_util_1.addHexPrefix)(txData.maxPriorityFeePerGas || wallet_base_1.TIP_IN_GWEI.toString(16)),
|
|
209
|
+
};
|
|
210
|
+
const tx = tx_1.FeeMarketEIP1559Transaction.fromTxData(eip1559TxData, {
|
|
211
|
+
common,
|
|
212
|
+
});
|
|
213
|
+
const transaction = {
|
|
214
|
+
...tx.toJSON(),
|
|
215
|
+
chainId,
|
|
216
|
+
};
|
|
217
|
+
try {
|
|
218
|
+
await this.trezor.connect();
|
|
219
|
+
const { derivationPath } = await this.getWalletForAddress(options.address);
|
|
220
|
+
const response = await connect_web_1.TrezorConnect.ethereumSignTransaction({
|
|
221
|
+
path: derivationPath,
|
|
222
|
+
transaction,
|
|
223
|
+
});
|
|
224
|
+
if (!response.success) {
|
|
225
|
+
throw new exceptions_1.TrezorException(new Error((response.payload && response.payload.error) ||
|
|
226
|
+
'Something happened while signing with Trezor'), {
|
|
227
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
228
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
229
|
+
contextModule: wallet_base_1.WalletAction.SignEthereumTransaction,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
const signedTxData = {
|
|
233
|
+
...eip1559TxData,
|
|
234
|
+
v: `${response.payload.v}`,
|
|
235
|
+
r: `${response.payload.r}`,
|
|
236
|
+
s: `${response.payload.s}`,
|
|
237
|
+
};
|
|
238
|
+
return tx_1.FeeMarketEIP1559Transaction.fromTxData(signedTxData, {
|
|
239
|
+
common,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch (e) {
|
|
243
|
+
if (e instanceof exceptions_1.TrezorException) {
|
|
244
|
+
throw e;
|
|
245
|
+
}
|
|
246
|
+
throw new exceptions_1.TrezorException(new Error(e.message), {
|
|
247
|
+
code: exceptions_1.UnspecifiedErrorCode,
|
|
248
|
+
type: exceptions_1.ErrorType.WalletError,
|
|
249
|
+
contextModule: wallet_base_1.WalletAction.SignEthereumTransaction,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
async getWalletForAddress(address) {
|
|
254
|
+
const { baseDerivationPath, derivationPathType } = this;
|
|
255
|
+
const accountManager = await this.trezor.getAccountManager();
|
|
256
|
+
if (!accountManager.hasWalletForAddress(address)) {
|
|
257
|
+
for (let i = 0; i < wallet_base_1.DEFAULT_ADDRESS_SEARCH_LIMIT / wallet_base_1.DEFAULT_NUM_ADDRESSES_TO_FETCH; i += 1) {
|
|
258
|
+
await accountManager.getWallets(baseDerivationPath, derivationPathType);
|
|
259
|
+
if (accountManager.hasWalletForAddress(address)) {
|
|
260
|
+
return (await accountManager.getWalletForAddress(address));
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return (await accountManager.getWalletForAddress(address));
|
|
265
|
+
}
|
|
266
|
+
async getAlchemy() {
|
|
267
|
+
if (this.alchemy) {
|
|
268
|
+
return this.alchemy;
|
|
269
|
+
}
|
|
270
|
+
const { rpcUrl, ethereumChainId } = this.ethereumOptions;
|
|
271
|
+
if (!rpcUrl) {
|
|
272
|
+
throw new exceptions_1.GeneralException(new Error('Please pass rpcUrl within the ethereumOptions'));
|
|
273
|
+
}
|
|
274
|
+
this.alchemy = new alchemy_sdk_1.Alchemy({
|
|
275
|
+
apiKey: (0, wallet_base_1.getKeyFromRpcUrl)(rpcUrl),
|
|
276
|
+
network: ethereumChainId === ts_types_1.EthereumChainId.Mainnet
|
|
277
|
+
? alchemy_sdk_1.Network.ETH_MAINNET
|
|
278
|
+
: alchemy_sdk_1.Network.ETH_SEPOLIA,
|
|
279
|
+
});
|
|
280
|
+
return this.alchemy;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
exports.default = TrezorBase;
|
|
284
|
+
//# sourceMappingURL=Base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/strategy/Base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
|
|
2
|
+
import TrezorBase from './Base.js';
|
|
3
|
+
export declare class TrezorBip32 extends TrezorBase {
|
|
4
|
+
constructor(args: ConcreteEthereumWalletStrategyArgs);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=TrezorBip32.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrezorBip32.d.ts","sourceRoot":"","sources":["../../../src/strategy/TrezorBip32.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAE/E,OAAO,UAAU,MAAM,WAAW,CAAA;AAElC,qBAAa,WAAY,SAAQ,UAAU;gBAC7B,IAAI,EAAE,kCAAkC;CAMrD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TrezorBip32 = void 0;
|
|
7
|
+
const types_js_1 = require("../types.js");
|
|
8
|
+
const Base_js_1 = __importDefault(require("./Base.js"));
|
|
9
|
+
class TrezorBip32 extends Base_js_1.default {
|
|
10
|
+
constructor(args) {
|
|
11
|
+
super({
|
|
12
|
+
...args,
|
|
13
|
+
derivationPathType: types_js_1.TrezorDerivationPathType.Bip32,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.TrezorBip32 = TrezorBip32;
|
|
18
|
+
//# sourceMappingURL=TrezorBip32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrezorBip32.js","sourceRoot":"","sources":["../../../src/strategy/TrezorBip32.ts"],"names":[],"mappings":";;;;;;AAEA,0CAAsD;AACtD,wDAAkC;AAElC,MAAa,WAAY,SAAQ,iBAAU;IACzC,YAAY,IAAwC;QAClD,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,kBAAkB,EAAE,mCAAwB,CAAC,KAAK;SACnD,CAAC,CAAA;IACJ,CAAC;CACF;AAPD,kCAOC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ConcreteEthereumWalletStrategyArgs } from '@injectivelabs/wallet-base';
|
|
2
|
+
import TrezorBase from './Base.js';
|
|
3
|
+
export declare class TrezorBip44 extends TrezorBase {
|
|
4
|
+
constructor(args: ConcreteEthereumWalletStrategyArgs);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=TrezorBip44.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrezorBip44.d.ts","sourceRoot":"","sources":["../../../src/strategy/TrezorBip44.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAA;AAE/E,OAAO,UAAU,MAAM,WAAW,CAAA;AAElC,qBAAa,WAAY,SAAQ,UAAU;gBAC7B,IAAI,EAAE,kCAAkC;CAMrD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TrezorBip44 = void 0;
|
|
7
|
+
const types_js_1 = require("../types.js");
|
|
8
|
+
const Base_js_1 = __importDefault(require("./Base.js"));
|
|
9
|
+
class TrezorBip44 extends Base_js_1.default {
|
|
10
|
+
constructor(args) {
|
|
11
|
+
super({
|
|
12
|
+
...args,
|
|
13
|
+
derivationPathType: types_js_1.TrezorDerivationPathType.Bip44,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.TrezorBip44 = TrezorBip44;
|
|
18
|
+
//# sourceMappingURL=TrezorBip44.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrezorBip44.js","sourceRoot":"","sources":["../../../src/strategy/TrezorBip44.ts"],"names":[],"mappings":";;;;;;AAEA,0CAAsD;AACtD,wDAAkC;AAElC,MAAa,WAAY,SAAQ,iBAAU;IACzC,YAAY,IAAwC;QAClD,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,kBAAkB,EAAE,mCAAwB,CAAC,KAAK;SACnD,CAAC,CAAA;IACJ,CAAC;CACF;AAPD,kCAOC"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { AccountAddress } from '@injectivelabs/ts-types';
|
|
2
2
|
import HDNode from 'hdkey';
|
|
3
|
-
import { TrezorWalletInfo } from '../../types.js';
|
|
3
|
+
import { TrezorWalletInfo, TrezorDerivationPathType } from '../../types.js';
|
|
4
4
|
export default class AccountManager {
|
|
5
5
|
private wallets;
|
|
6
6
|
private hdKey;
|
|
7
7
|
constructor(hdKey: HDNode);
|
|
8
|
-
getWallets(): Promise<TrezorWalletInfo[]>;
|
|
8
|
+
getWallets(baseDerivationPath: string, derivationPathType: TrezorDerivationPathType): Promise<TrezorWalletInfo[]>;
|
|
9
|
+
getTrezorDerivationPathBasedOnType: ({ fullBaseDerivationPath, derivationPathType, index, }: {
|
|
10
|
+
fullBaseDerivationPath: string;
|
|
11
|
+
derivationPathType: TrezorDerivationPathType;
|
|
12
|
+
index: number;
|
|
13
|
+
}) => string;
|
|
9
14
|
private getWalletsBasedOnIndex;
|
|
10
15
|
private hasWallets;
|
|
11
16
|
private hasWalletsInOffset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountManager.d.ts","sourceRoot":"","sources":["../../../../src/strategy/hw/AccountManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,MAAM,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"AccountManager.d.ts","sourceRoot":"","sources":["../../../../src/strategy/hw/AccountManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAiB3E,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO,CAAC,KAAK,CAAQ;gBAET,KAAK,EAAE,MAAM;IAKnB,UAAU,CACd,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,wBAAwB,GAC3C,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAmB9B,kCAAkC,2DAI/B;QACD,sBAAsB,EAAE,MAAM,CAAA;QAC9B,kBAAkB,EAAE,wBAAwB,CAAA;QAC5C,KAAK,EAAE,MAAM,CAAA;KACd,KAAG,MAAM,CAMT;YAEa,sBAAsB;IA4BpC,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"}
|
|
@@ -1,58 +1,59 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const
|
|
3
|
+
const types_js_1 = require("../../types.js");
|
|
4
|
+
const sdk_ts_1 = require("@injectivelabs/sdk-ts");
|
|
13
5
|
const wallet_base_1 = require("@injectivelabs/wallet-base");
|
|
14
6
|
const addressOfHDKey = (hdKey) => {
|
|
15
7
|
const shouldSanitizePublicKey = true;
|
|
16
8
|
const derivedPublicKey = hdKey.publicKey;
|
|
17
|
-
const ethereumAddressWithoutPrefix = (0,
|
|
18
|
-
const address = (0,
|
|
9
|
+
const ethereumAddressWithoutPrefix = Buffer.from((0, sdk_ts_1.publicKeyToAddress)(derivedPublicKey, shouldSanitizePublicKey)).toString('hex');
|
|
10
|
+
const address = (0, sdk_ts_1.addHexPrefix)(ethereumAddressWithoutPrefix);
|
|
19
11
|
return address;
|
|
20
12
|
};
|
|
21
13
|
class AccountManager {
|
|
14
|
+
wallets = [];
|
|
15
|
+
hdKey;
|
|
22
16
|
constructor(hdKey) {
|
|
23
|
-
this.wallets = [];
|
|
24
17
|
this.wallets = [];
|
|
25
18
|
this.hdKey = hdKey;
|
|
26
19
|
}
|
|
27
|
-
getWallets() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
20
|
+
async getWallets(baseDerivationPath, derivationPathType) {
|
|
21
|
+
const { start, end } = this.getOffset();
|
|
22
|
+
/**
|
|
23
|
+
* 1. Wallets are not yet fetched at all,
|
|
24
|
+
* 2. Wallets are not yet fetched for that offset
|
|
25
|
+
*/
|
|
26
|
+
if (!this.hasWallets() || !this.hasWalletsInOffset(start)) {
|
|
27
|
+
await this.getWalletsBasedOnIndex({
|
|
28
|
+
start,
|
|
29
|
+
end,
|
|
30
|
+
baseDerivationPath,
|
|
31
|
+
derivationPathType,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return this.wallets.slice(start, end);
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
36
|
+
getTrezorDerivationPathBasedOnType = ({ fullBaseDerivationPath, derivationPathType, index, }) => {
|
|
37
|
+
if (derivationPathType === types_js_1.TrezorDerivationPathType.Bip44) {
|
|
38
|
+
return `${fullBaseDerivationPath}/${index}'/0/0`;
|
|
39
|
+
}
|
|
40
|
+
return `${fullBaseDerivationPath}/0'/0/${index}`;
|
|
41
|
+
};
|
|
42
|
+
async getWalletsBasedOnIndex({ start, end, baseDerivationPath, derivationPathType, }) {
|
|
43
|
+
for (let index = start; index < end; index += 1) {
|
|
44
|
+
const path = this.getTrezorDerivationPathBasedOnType({
|
|
45
|
+
fullBaseDerivationPath: baseDerivationPath,
|
|
46
|
+
derivationPathType,
|
|
47
|
+
index,
|
|
48
|
+
});
|
|
49
|
+
const hdKey = this.hdKey.derive(path);
|
|
50
|
+
const address = addressOfHDKey(hdKey);
|
|
51
|
+
this.wallets.push({
|
|
52
|
+
hdKey,
|
|
53
|
+
derivationPath: path,
|
|
54
|
+
address: address.toLowerCase(),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
56
57
|
}
|
|
57
58
|
hasWallets() {
|
|
58
59
|
return this.wallets.length > 0;
|
|
@@ -72,10 +73,8 @@ class AccountManager {
|
|
|
72
73
|
hasWalletForAddress(address) {
|
|
73
74
|
return (this.wallets.find((wallet) => wallet.address.toLowerCase() === address.toLowerCase()) !== undefined);
|
|
74
75
|
}
|
|
75
|
-
getWalletForAddress(address) {
|
|
76
|
-
return
|
|
77
|
-
return this.wallets.find((wallet) => wallet.address.toLowerCase() === address.toLowerCase());
|
|
78
|
-
});
|
|
76
|
+
async getWalletForAddress(address) {
|
|
77
|
+
return this.wallets.find((wallet) => wallet.address.toLowerCase() === address.toLowerCase());
|
|
79
78
|
}
|
|
80
79
|
reset() {
|
|
81
80
|
this.wallets = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountManager.js","sourceRoot":"","sources":["../../../../src/strategy/hw/AccountManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccountManager.js","sourceRoot":"","sources":["../../../../src/strategy/hw/AccountManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/strategy/hw/index.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/strategy/hw/index.ts"],"names":[],"mappings":"AAGA,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAQhD,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,cAAc,CAA8B;IAEpD,OAAO,CAAC,KAAK,CAAuB;;IAa9B,OAAO;IAIP,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAQlD,OAAO,CAAC,UAAU;YAIJ,IAAI;CAmCnB"}
|