@ledgerhq/hw-app-eth 6.22.4 → 6.23.0
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/lib/services/ledger/index.js +2 -2
- package/lib/services/ledger/index.js.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +4 -6
- package/lib/utils.js.map +1 -1
- package/lib-es/Eth.d.ts +0 -0
- package/lib-es/Eth.d.ts.map +0 -0
- package/lib-es/Eth.js +0 -0
- package/lib-es/Eth.js.map +0 -0
- package/lib-es/contracts.d.ts +2 -5
- package/lib-es/contracts.d.ts.map +1 -1
- package/lib-es/contracts.js +19 -26
- package/lib-es/contracts.js.map +1 -1
- package/lib-es/erc20.d.ts +0 -0
- package/lib-es/erc20.d.ts.map +0 -0
- package/lib-es/erc20.js +0 -0
- package/lib-es/erc20.js.map +0 -0
- package/lib-es/loadConfig.d.ts +7 -0
- package/lib-es/loadConfig.d.ts.map +1 -0
- package/lib-es/loadConfig.js +20 -0
- package/lib-es/loadConfig.js.map +1 -0
- package/lib-es/nfts.d.ts +11 -0
- package/lib-es/nfts.d.ts.map +1 -0
- package/lib-es/nfts.js +94 -0
- package/lib-es/nfts.js.map +1 -0
- package/lib-es/services/ledger/contracts.d.ts +0 -0
- package/lib-es/services/ledger/contracts.d.ts.map +0 -0
- package/lib-es/services/ledger/contracts.js +0 -0
- package/lib-es/services/ledger/contracts.js.map +0 -0
- package/lib-es/services/ledger/erc20.d.ts +0 -0
- package/lib-es/services/ledger/erc20.d.ts.map +0 -0
- package/lib-es/services/ledger/erc20.js +0 -0
- package/lib-es/services/ledger/erc20.js.map +0 -0
- package/lib-es/services/ledger/index.d.ts +0 -0
- package/lib-es/services/ledger/index.d.ts.map +0 -0
- package/lib-es/services/ledger/index.js +2 -2
- package/lib-es/services/ledger/index.js.map +1 -1
- package/lib-es/services/ledger/loadConfig.d.ts +0 -0
- package/lib-es/services/ledger/loadConfig.d.ts.map +0 -0
- package/lib-es/services/ledger/loadConfig.js +0 -0
- package/lib-es/services/ledger/loadConfig.js.map +0 -0
- package/lib-es/services/ledger/nfts.d.ts +0 -0
- package/lib-es/services/ledger/nfts.d.ts.map +0 -0
- package/lib-es/services/ledger/nfts.js +0 -0
- package/lib-es/services/ledger/nfts.js.map +0 -0
- package/lib-es/services/types.d.ts +0 -0
- package/lib-es/services/types.d.ts.map +0 -0
- package/lib-es/services/types.js +0 -0
- package/lib-es/services/types.js.map +0 -0
- package/lib-es/utils.d.ts +0 -0
- package/lib-es/utils.d.ts.map +1 -1
- package/lib-es/utils.js +4 -6
- package/lib-es/utils.js.map +1 -1
- package/package.json +6 -5
- package/src/services/ledger/index.ts +2 -2
- package/src/utils.ts +4 -9
- package/.turbo/turbo-build.log +0 -2
|
@@ -49,7 +49,7 @@ var __values = (this && this.__values) || function(o) {
|
|
|
49
49
|
exports.__esModule = true;
|
|
50
50
|
// This implements the resolution of a Transaction using Ledger's own API
|
|
51
51
|
var logs_1 = require("@ledgerhq/logs");
|
|
52
|
-
var
|
|
52
|
+
var abi_1 = require("@ethersproject/abi");
|
|
53
53
|
var contracts_1 = require("./contracts");
|
|
54
54
|
var erc20_1 = require("./erc20");
|
|
55
55
|
var nfts_1 = require("./nfts");
|
|
@@ -152,7 +152,7 @@ var ledgerService = {
|
|
|
152
152
|
setExternalPlugin(payload, signature);
|
|
153
153
|
}
|
|
154
154
|
if (!(erc20OfInterest && erc20OfInterest.length && abi)) return [3 /*break*/, 15];
|
|
155
|
-
contract = new
|
|
155
|
+
contract = new abi_1.Interface(abi);
|
|
156
156
|
args = contract.parseTransaction(decodedTx).args;
|
|
157
157
|
_e.label = 8;
|
|
158
158
|
case 8:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/ledger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAyE;AACzE,uCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/ledger/index.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;EAyEzC"}
|
package/lib/utils.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
exports.__esModule = true;
|
|
3
3
|
exports.decodeTxInfo = void 0;
|
|
4
|
-
var
|
|
4
|
+
var rlp_1 = require("@ethersproject/rlp");
|
|
5
5
|
var bignumber_js_1 = require("bignumber.js");
|
|
6
6
|
function decodeTxInfo(rawTx) {
|
|
7
7
|
var VALID_TYPES = [1, 2];
|
|
8
8
|
var txType = VALID_TYPES.includes(rawTx[0]) ? rawTx[0] : null;
|
|
9
9
|
var rlpData = txType === null ? rawTx : rawTx.slice(1);
|
|
10
|
-
var rlpTx =
|
|
11
|
-
return Buffer.from(hex.slice(2), "hex");
|
|
12
|
-
});
|
|
10
|
+
var rlpTx = (0, rlp_1.decode)(rlpData).map(function (hex) { return Buffer.from(hex.slice(2), "hex"); });
|
|
13
11
|
var chainIdTruncated = 0;
|
|
14
|
-
var rlpDecoded =
|
|
12
|
+
var rlpDecoded = (0, rlp_1.decode)(rlpData);
|
|
15
13
|
var decodedTx;
|
|
16
14
|
if (txType === 2) {
|
|
17
15
|
// EIP1559
|
|
@@ -54,7 +52,7 @@ function decodeTxInfo(rawTx) {
|
|
|
54
52
|
}
|
|
55
53
|
var vrsOffset = 0;
|
|
56
54
|
if (txType === null && rlpTx.length > 6) {
|
|
57
|
-
var rlpVrs = Buffer.from(
|
|
55
|
+
var rlpVrs = Buffer.from((0, rlp_1.encode)(rlpTx.slice(-3)).slice(2), "hex");
|
|
58
56
|
vrsOffset = rawTx.length - (rlpVrs.length - 1);
|
|
59
57
|
// First byte > 0xf7 means the length of the list length doesn't fit in a single byte.
|
|
60
58
|
if (rlpVrs[0] > 0xf7) {
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib-es/Eth.d.ts
CHANGED
|
File without changes
|
package/lib-es/Eth.d.ts.map
CHANGED
|
File without changes
|
package/lib-es/Eth.js
CHANGED
|
File without changes
|
package/lib-es/Eth.js.map
CHANGED
|
File without changes
|
package/lib-es/contracts.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { LoadConfig } from "./loadConfig";
|
|
1
2
|
declare type ContractMethod = {
|
|
2
3
|
payload: string;
|
|
3
4
|
signature: string;
|
|
@@ -5,13 +6,9 @@ declare type ContractMethod = {
|
|
|
5
6
|
erc20OfInterest: string[];
|
|
6
7
|
abi: any;
|
|
7
8
|
};
|
|
8
|
-
export declare type PluginsLoadConfig = {
|
|
9
|
-
baseURL?: string | null;
|
|
10
|
-
extraPlugins?: any | null;
|
|
11
|
-
};
|
|
12
9
|
/**
|
|
13
10
|
* Retrieve the metadatas a given contract address and a method selector
|
|
14
11
|
*/
|
|
15
|
-
export declare const loadInfosForContractMethod: (contractAddress: string, selector: string, chainId: number,
|
|
12
|
+
export declare const loadInfosForContractMethod: (contractAddress: string, selector: string, chainId: number, userLoadConfig: LoadConfig) => Promise<ContractMethod | undefined>;
|
|
16
13
|
export {};
|
|
17
14
|
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAEA,aAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,aAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,oBACpB,MAAM,YACb,MAAM,WACP,MAAM,kBACC,UAAU,KACzB,QAAQ,cAAc,GAAG,SAAS,CAsCpC,CAAC"}
|
package/lib-es/contracts.js
CHANGED
|
@@ -46,37 +46,30 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
import axios from "axios";
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
extraPlugins: null
|
|
52
|
-
};
|
|
49
|
+
import { getLoadConfig } from "./loadConfig";
|
|
50
|
+
import { log } from "@ledgerhq/logs";
|
|
53
51
|
/**
|
|
54
52
|
* Retrieve the metadatas a given contract address and a method selector
|
|
55
53
|
*/
|
|
56
|
-
export var loadInfosForContractMethod = function (contractAddress, selector, chainId,
|
|
57
|
-
var _a,
|
|
58
|
-
return __generator(this, function (
|
|
59
|
-
switch (
|
|
54
|
+
export var loadInfosForContractMethod = function (contractAddress, selector, chainId, userLoadConfig) { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
+
var _a, pluginBaseURL, extraPlugins, data, url_1, lcSelector, lcContractAddress, contractSelectors;
|
|
56
|
+
return __generator(this, function (_b) {
|
|
57
|
+
switch (_b.label) {
|
|
60
58
|
case 0:
|
|
61
|
-
_a =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
})];
|
|
59
|
+
_a = getLoadConfig(userLoadConfig), pluginBaseURL = _a.pluginBaseURL, extraPlugins = _a.extraPlugins;
|
|
60
|
+
data = {};
|
|
61
|
+
if (!pluginBaseURL) return [3 /*break*/, 2];
|
|
62
|
+
url_1 = "".concat(pluginBaseURL, "/plugins/ethereum.json");
|
|
63
|
+
return [4 /*yield*/, axios
|
|
64
|
+
.get("".concat(pluginBaseURL, "/plugins/ethereum.json"))
|
|
65
|
+
.then(function (r) { return r.data; })["catch"](function (e) {
|
|
66
|
+
log("error", "could not fetch from " + url_1 + ": " + String(e));
|
|
67
|
+
return null;
|
|
68
|
+
})];
|
|
69
|
+
case 1:
|
|
70
|
+
data = _b.sent();
|
|
71
|
+
_b.label = 2;
|
|
75
72
|
case 2:
|
|
76
|
-
_b = _c.sent();
|
|
77
|
-
_c.label = 3;
|
|
78
|
-
case 3:
|
|
79
|
-
data = _b;
|
|
80
73
|
if (extraPlugins) {
|
|
81
74
|
data = __assign(__assign({}, data), extraPlugins);
|
|
82
75
|
}
|
package/lib-es/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAUrC;;GAEG;AACH,MAAM,CAAC,IAAM,0BAA0B,GAAG,UACxC,eAAuB,EACvB,QAAgB,EAChB,OAAe,EACf,cAA0B;;;;;gBAEpB,KAAkC,aAAa,CAAC,cAAc,CAAC,EAA7D,aAAa,mBAAA,EAAE,YAAY,kBAAA,CAAmC;gBAElE,IAAI,GAAG,EAAE,CAAC;qBAEV,aAAa,EAAb,wBAAa;gBACT,QAAM,UAAG,aAAa,2BAAwB,CAAC;gBAC9C,qBAAM,KAAK;yBACf,GAAG,CAAC,UAAG,aAAa,2BAAwB,CAAC;yBAC7C,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAW,EAAb,CAAa,CAAC,CAC1B,OAAK,CAAA,CAAC,UAAC,CAAC;wBACP,GAAG,CAAC,OAAO,EAAE,uBAAuB,GAAG,KAAG,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/D,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,EAAA;;gBANJ,IAAI,GAAG,SAMH,CAAC;;;gBAGP,IAAI,YAAY,EAAE;oBAChB,IAAI,yBAAQ,IAAI,GAAK,YAAY,CAAE,CAAC;iBACrC;gBAED,IAAI,CAAC,IAAI;oBAAE,sBAAO;gBAEZ,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACpC,iBAAiB,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;gBAExD,IAAI,iBAAiB,IAAI,IAAI,EAAE;oBACvB,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAElD,IAAI,UAAU,IAAI,iBAAiB,EAAE;wBACnC,sBAAO;gCACL,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC;gCACzD,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC;gCACrD,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;gCAC/C,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC;gCACjE,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC;6BAC9B,EAAC;qBACH;iBACF;;;;KACF,CAAC"}
|
package/lib-es/erc20.d.ts
CHANGED
|
File without changes
|
package/lib-es/erc20.d.ts.map
CHANGED
|
File without changes
|
package/lib-es/erc20.js
CHANGED
|
File without changes
|
package/lib-es/erc20.js.map
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAInC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,YAAY,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3B,CAAC;AAQF,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAKrE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var defaultLoadConfig = {
|
|
13
|
+
nftExplorerBaseURL: null,
|
|
14
|
+
pluginBaseURL: "https://cdn.live.ledger.com",
|
|
15
|
+
extraPlugins: null
|
|
16
|
+
};
|
|
17
|
+
export function getLoadConfig(userLoadConfig) {
|
|
18
|
+
return __assign(__assign({}, defaultLoadConfig), userLoadConfig);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=loadConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":";;;;;;;;;;;AAWA,IAAM,iBAAiB,GAAG;IACxB,kBAAkB,EAAE,IAAI;IACxB,aAAa,EAAE,6BAA6B;IAC5C,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,cAA2B;IACvD,6BACK,iBAAiB,GACjB,cAAc,EACjB;AACJ,CAAC"}
|
package/lib-es/nfts.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { LoadConfig } from "./loadConfig";
|
|
3
|
+
declare type NftInfo = {
|
|
4
|
+
contractAddress: string;
|
|
5
|
+
collectionName: string;
|
|
6
|
+
data: Buffer;
|
|
7
|
+
};
|
|
8
|
+
export declare const getNFTInfo: (contractAddress: string, chainId: number, userLoadConfig: LoadConfig) => Promise<NftInfo | undefined>;
|
|
9
|
+
export declare const loadNftPlugin: (contractAddress: string, selector: string, chainId: number, userLoadConfig: LoadConfig) => Promise<string | undefined>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=nfts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nfts.d.ts","sourceRoot":"","sources":["../src/nfts.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,aAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAMF,eAAO,MAAM,UAAU,oBACJ,MAAM,WACd,MAAM,kBACC,UAAU,KACzB,QAAQ,OAAO,GAAG,SAAS,CAqB7B,CAAC;AAEF,eAAO,MAAM,aAAa,oBACP,MAAM,YACb,MAAM,WACP,MAAM,kBACC,UAAU,KACzB,QAAQ,MAAM,GAAG,SAAS,CAgB5B,CAAC"}
|
package/lib-es/nfts.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (_) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import axios from "axios";
|
|
38
|
+
import { getLoadConfig } from "./loadConfig";
|
|
39
|
+
import { log } from "@ledgerhq/logs";
|
|
40
|
+
export var getNFTInfo = function (contractAddress, chainId, userLoadConfig) { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
+
var nftExplorerBaseURL, url, response, payload, collectionNameLength, collectionName;
|
|
42
|
+
return __generator(this, function (_a) {
|
|
43
|
+
switch (_a.label) {
|
|
44
|
+
case 0:
|
|
45
|
+
nftExplorerBaseURL = getLoadConfig(userLoadConfig).nftExplorerBaseURL;
|
|
46
|
+
if (!nftExplorerBaseURL)
|
|
47
|
+
return [2 /*return*/];
|
|
48
|
+
url = "".concat(nftExplorerBaseURL, "/").concat(chainId, "/contracts/").concat(contractAddress);
|
|
49
|
+
return [4 /*yield*/, axios
|
|
50
|
+
.get(url)
|
|
51
|
+
.then(function (r) { return r.data; })["catch"](function (e) {
|
|
52
|
+
log("error", "could not fetch from " + url + ": " + String(e));
|
|
53
|
+
return null;
|
|
54
|
+
})];
|
|
55
|
+
case 1:
|
|
56
|
+
response = _a.sent();
|
|
57
|
+
if (!response)
|
|
58
|
+
return [2 /*return*/];
|
|
59
|
+
payload = response["payload"];
|
|
60
|
+
collectionNameLength = Number(payload.slice(2, 3));
|
|
61
|
+
collectionName = payload.slice(3, 3 + collectionNameLength).toString();
|
|
62
|
+
return [2 /*return*/, {
|
|
63
|
+
contractAddress: contractAddress,
|
|
64
|
+
collectionName: collectionName,
|
|
65
|
+
data: Buffer.from(payload, "hex")
|
|
66
|
+
}];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}); };
|
|
70
|
+
export var loadNftPlugin = function (contractAddress, selector, chainId, userLoadConfig) { return __awaiter(void 0, void 0, void 0, function () {
|
|
71
|
+
var nftExplorerBaseURL, url, response, payload;
|
|
72
|
+
return __generator(this, function (_a) {
|
|
73
|
+
switch (_a.label) {
|
|
74
|
+
case 0:
|
|
75
|
+
nftExplorerBaseURL = getLoadConfig(userLoadConfig).nftExplorerBaseURL;
|
|
76
|
+
if (!nftExplorerBaseURL)
|
|
77
|
+
return [2 /*return*/];
|
|
78
|
+
url = "".concat(nftExplorerBaseURL, "/").concat(chainId, "/contracts/").concat(contractAddress, "/plugin-selector/").concat(selector);
|
|
79
|
+
return [4 /*yield*/, axios
|
|
80
|
+
.get(url)
|
|
81
|
+
.then(function (r) { return r.data; })["catch"](function (e) {
|
|
82
|
+
log("error", "could not fetch from " + url + ": " + String(e));
|
|
83
|
+
return null;
|
|
84
|
+
})];
|
|
85
|
+
case 1:
|
|
86
|
+
response = _a.sent();
|
|
87
|
+
if (!response)
|
|
88
|
+
return [2 /*return*/];
|
|
89
|
+
payload = response["payload"];
|
|
90
|
+
return [2 /*return*/, payload];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}); };
|
|
94
|
+
//# sourceMappingURL=nfts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nfts.js","sourceRoot":"","sources":["../src/nfts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAYrC,MAAM,CAAC,IAAM,UAAU,GAAG,UACxB,eAAuB,EACvB,OAAe,EACf,cAA0B;;;;;gBAElB,kBAAkB,GAAK,aAAa,CAAC,cAAc,CAAC,mBAAlC,CAAmC;gBAC7D,IAAI,CAAC,kBAAkB;oBAAE,sBAAO;gBAC1B,GAAG,GAAG,UAAG,kBAAkB,cAAI,OAAO,wBAAc,eAAe,CAAE,CAAC;gBAC3D,qBAAM,KAAK;yBACzB,GAAG,CAAkB,GAAG,CAAC;yBACzB,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CACnB,OAAK,CAAA,CAAC,UAAC,CAAC;wBACP,GAAG,CAAC,OAAO,EAAE,uBAAuB,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/D,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,EAAA;;gBANE,QAAQ,GAAG,SAMb;gBACJ,IAAI,CAAC,QAAQ;oBAAE,sBAAO;gBAEhB,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC9B,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnD,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC7E,sBAAO;wBACL,eAAe,EAAE,eAAe;wBAChC,cAAc,EAAE,cAAc;wBAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;qBAClC,EAAC;;;KACH,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAC3B,eAAuB,EACvB,QAAgB,EAChB,OAAe,EACf,cAA0B;;;;;gBAElB,kBAAkB,GAAK,aAAa,CAAC,cAAc,CAAC,mBAAlC,CAAmC;gBAC7D,IAAI,CAAC,kBAAkB;oBAAE,sBAAO;gBAC1B,GAAG,GAAG,UAAG,kBAAkB,cAAI,OAAO,wBAAc,eAAe,8BAAoB,QAAQ,CAAE,CAAC;gBAEvF,qBAAM,KAAK;yBACzB,GAAG,CAAkB,GAAG,CAAC;yBACzB,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CACnB,OAAK,CAAA,CAAC,UAAC,CAAC;wBACP,GAAG,CAAC,OAAO,EAAE,uBAAuB,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/D,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,EAAA;;gBANE,QAAQ,GAAG,SAMb;gBACJ,IAAI,CAAC,QAAQ;oBAAE,sBAAO;gBAEhB,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpC,sBAAO,OAAO,EAAC;;;KAChB,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -47,7 +47,7 @@ var __values = (this && this.__values) || function(o) {
|
|
|
47
47
|
};
|
|
48
48
|
// This implements the resolution of a Transaction using Ledger's own API
|
|
49
49
|
import { log } from "@ledgerhq/logs";
|
|
50
|
-
import {
|
|
50
|
+
import { Interface } from "@ethersproject/abi";
|
|
51
51
|
import { loadInfosForContractMethod } from "./contracts";
|
|
52
52
|
import { byContractAddressAndChainId } from "./erc20";
|
|
53
53
|
import { getNFTInfo, loadNftPlugin } from "./nfts";
|
|
@@ -150,7 +150,7 @@ var ledgerService = {
|
|
|
150
150
|
setExternalPlugin(payload, signature);
|
|
151
151
|
}
|
|
152
152
|
if (!(erc20OfInterest && erc20OfInterest.length && abi)) return [3 /*break*/, 15];
|
|
153
|
-
contract = new
|
|
153
|
+
contract = new Interface(abi);
|
|
154
154
|
args = contract.parseTransaction(decodedTx).args;
|
|
155
155
|
_e.label = 8;
|
|
156
156
|
case 8:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/ledger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAyE;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/ledger/index.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/lib-es/services/types.js
CHANGED
|
File without changes
|
|
File without changes
|
package/lib-es/utils.d.ts
CHANGED
|
File without changes
|
package/lib-es/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;EAyEzC"}
|
package/lib-es/utils.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { encode, decode } from "@ethersproject/rlp";
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
3
|
export function decodeTxInfo(rawTx) {
|
|
4
4
|
var VALID_TYPES = [1, 2];
|
|
5
5
|
var txType = VALID_TYPES.includes(rawTx[0]) ? rawTx[0] : null;
|
|
6
6
|
var rlpData = txType === null ? rawTx : rawTx.slice(1);
|
|
7
|
-
var rlpTx =
|
|
8
|
-
return Buffer.from(hex.slice(2), "hex");
|
|
9
|
-
});
|
|
7
|
+
var rlpTx = decode(rlpData).map(function (hex) { return Buffer.from(hex.slice(2), "hex"); });
|
|
10
8
|
var chainIdTruncated = 0;
|
|
11
|
-
var rlpDecoded =
|
|
9
|
+
var rlpDecoded = decode(rlpData);
|
|
12
10
|
var decodedTx;
|
|
13
11
|
if (txType === 2) {
|
|
14
12
|
// EIP1559
|
|
@@ -51,7 +49,7 @@ export function decodeTxInfo(rawTx) {
|
|
|
51
49
|
}
|
|
52
50
|
var vrsOffset = 0;
|
|
53
51
|
if (txType === null && rlpTx.length > 6) {
|
|
54
|
-
var rlpVrs = Buffer.from(
|
|
52
|
+
var rlpVrs = Buffer.from(encode(rlpTx.slice(-3)).slice(2), "hex");
|
|
55
53
|
vrsOffset = rawTx.length - (rlpVrs.length - 1);
|
|
56
54
|
// First byte > 0xf7 means the length of the list length doesn't fit in a single byte.
|
|
57
55
|
if (rlpVrs[0] > 0xf7) {
|
package/lib-es/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-app-eth",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.23.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet Ethereum Application API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -27,13 +27,14 @@
|
|
|
27
27
|
"types": "lib/Eth.d.ts",
|
|
28
28
|
"license": "Apache-2.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@
|
|
30
|
+
"@ethersproject/abi": "^5.5.0",
|
|
31
|
+
"@ethersproject/rlp": "^5.5.0",
|
|
32
|
+
"@ledgerhq/cryptoassets": "^6.23.0",
|
|
31
33
|
"@ledgerhq/errors": "^6.10.0",
|
|
32
34
|
"@ledgerhq/hw-transport": "^6.20.0",
|
|
33
35
|
"@ledgerhq/logs": "^6.10.0",
|
|
34
36
|
"axios": "^0.24.0",
|
|
35
|
-
"bignumber.js": "^9.0.2"
|
|
36
|
-
"ethers": "^5.5.2"
|
|
37
|
+
"bignumber.js": "^9.0.2"
|
|
37
38
|
},
|
|
38
39
|
"scripts": {
|
|
39
40
|
"clean": "bash ../../script/clean.sh",
|
|
@@ -41,5 +42,5 @@
|
|
|
41
42
|
"watch": "bash ../../script/watch.sh",
|
|
42
43
|
"doc": "bash ../../script/doc.sh"
|
|
43
44
|
},
|
|
44
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "aa41abf0cb3c375d677f9c2739956b3a2566d852"
|
|
45
46
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This implements the resolution of a Transaction using Ledger's own API
|
|
2
2
|
import { log } from "@ledgerhq/logs";
|
|
3
|
-
import {
|
|
3
|
+
import { Interface } from "@ethersproject/abi";
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
6
|
LedgerEthTransactionResolution,
|
|
@@ -99,7 +99,7 @@ const ledgerService: LedgerEthTransactionService = {
|
|
|
99
99
|
setExternalPlugin(payload, signature);
|
|
100
100
|
}
|
|
101
101
|
if (erc20OfInterest && erc20OfInterest.length && abi) {
|
|
102
|
-
const contract = new
|
|
102
|
+
const contract = new Interface(abi);
|
|
103
103
|
const args = contract.parseTransaction(decodedTx).args;
|
|
104
104
|
for (const path of erc20OfInterest) {
|
|
105
105
|
const address = path.split(".").reduce((value, seg) => {
|
package/src/utils.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { encode, decode } from "@ethersproject/rlp";
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
3
|
|
|
4
4
|
export function decodeTxInfo(rawTx: Buffer) {
|
|
5
5
|
const VALID_TYPES = [1, 2];
|
|
6
6
|
const txType = VALID_TYPES.includes(rawTx[0]) ? rawTx[0] : null;
|
|
7
7
|
const rlpData = txType === null ? rawTx : rawTx.slice(1);
|
|
8
|
-
const rlpTx =
|
|
9
|
-
Buffer.from(hex.slice(2), "hex")
|
|
10
|
-
);
|
|
8
|
+
const rlpTx = decode(rlpData).map((hex) => Buffer.from(hex.slice(2), "hex"));
|
|
11
9
|
let chainIdTruncated = 0;
|
|
12
|
-
const rlpDecoded =
|
|
10
|
+
const rlpDecoded = decode(rlpData);
|
|
13
11
|
|
|
14
12
|
let decodedTx;
|
|
15
13
|
if (txType === 2) {
|
|
@@ -52,10 +50,7 @@ export function decodeTxInfo(rawTx: Buffer) {
|
|
|
52
50
|
|
|
53
51
|
let vrsOffset = 0;
|
|
54
52
|
if (txType === null && rlpTx.length > 6) {
|
|
55
|
-
const rlpVrs = Buffer.from(
|
|
56
|
-
ethers.utils.RLP.encode(rlpTx.slice(-3)).slice(2),
|
|
57
|
-
"hex"
|
|
58
|
-
);
|
|
53
|
+
const rlpVrs = Buffer.from(encode(rlpTx.slice(-3)).slice(2), "hex");
|
|
59
54
|
|
|
60
55
|
vrsOffset = rawTx.length - (rlpVrs.length - 1);
|
|
61
56
|
|
package/.turbo/turbo-build.log
DELETED