@ledgerhq/hw-app-eth 6.28.2 → 6.29.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.
Files changed (106) hide show
  1. package/.turbo/turbo-build.log +5 -2
  2. package/CHANGELOG.md +13 -0
  3. package/README.md +58 -16
  4. package/jest.config.ts +6 -0
  5. package/lib/Eth.d.ts +37 -0
  6. package/lib/Eth.d.ts.map +1 -1
  7. package/lib/Eth.js +66 -72
  8. package/lib/Eth.js.map +1 -1
  9. package/lib/modules/EIP712/EIP712.types.d.ts +44 -0
  10. package/lib/modules/EIP712/EIP712.types.d.ts.map +1 -0
  11. package/lib/modules/EIP712/EIP712.types.js +3 -0
  12. package/lib/modules/EIP712/EIP712.types.js.map +1 -0
  13. package/lib/modules/EIP712/EIP712.utils.d.ts +65 -0
  14. package/lib/modules/EIP712/EIP712.utils.d.ts.map +1 -0
  15. package/lib/modules/EIP712/EIP712.utils.js +217 -0
  16. package/lib/modules/EIP712/EIP712.utils.js.map +1 -0
  17. package/lib/modules/EIP712/index.d.ts +60 -0
  18. package/lib/modules/EIP712/index.d.ts.map +1 -0
  19. package/lib/modules/EIP712/index.js +554 -0
  20. package/lib/modules/EIP712/index.js.map +1 -0
  21. package/lib/utils.d.ts +15 -1
  22. package/lib/utils.d.ts.map +1 -1
  23. package/lib/utils.js +43 -3
  24. package/lib/utils.js.map +1 -1
  25. package/lib-es/Eth.d.ts +37 -0
  26. package/lib-es/Eth.d.ts.map +1 -1
  27. package/lib-es/Eth.js +42 -48
  28. package/lib-es/Eth.js.map +1 -1
  29. package/lib-es/modules/EIP712/EIP712.types.d.ts +44 -0
  30. package/lib-es/modules/EIP712/EIP712.types.d.ts.map +1 -0
  31. package/lib-es/modules/EIP712/EIP712.types.js +2 -0
  32. package/lib-es/modules/EIP712/EIP712.types.js.map +1 -0
  33. package/lib-es/modules/EIP712/EIP712.utils.d.ts +65 -0
  34. package/lib-es/modules/EIP712/EIP712.utils.d.ts.map +1 -0
  35. package/lib-es/modules/EIP712/EIP712.utils.js +211 -0
  36. package/lib-es/modules/EIP712/EIP712.utils.js.map +1 -0
  37. package/lib-es/modules/EIP712/index.d.ts +60 -0
  38. package/lib-es/modules/EIP712/index.d.ts.map +1 -0
  39. package/lib-es/modules/EIP712/index.js +549 -0
  40. package/lib-es/modules/EIP712/index.js.map +1 -0
  41. package/lib-es/services/ledger/contracts.d.ts +0 -0
  42. package/lib-es/services/ledger/contracts.d.ts.map +0 -0
  43. package/lib-es/services/ledger/contracts.js +0 -0
  44. package/lib-es/services/ledger/contracts.js.map +0 -0
  45. package/lib-es/services/ledger/erc20.d.ts +0 -0
  46. package/lib-es/services/ledger/erc20.d.ts.map +0 -0
  47. package/lib-es/services/ledger/erc20.js +0 -0
  48. package/lib-es/services/ledger/erc20.js.map +0 -0
  49. package/lib-es/services/ledger/index.d.ts +0 -0
  50. package/lib-es/services/ledger/index.d.ts.map +0 -0
  51. package/lib-es/services/ledger/index.js +0 -0
  52. package/lib-es/services/ledger/index.js.map +0 -0
  53. package/lib-es/services/ledger/loadConfig.d.ts +0 -0
  54. package/lib-es/services/ledger/loadConfig.d.ts.map +0 -0
  55. package/lib-es/services/ledger/loadConfig.js +0 -0
  56. package/lib-es/services/ledger/loadConfig.js.map +0 -0
  57. package/lib-es/services/ledger/nfts.d.ts +0 -0
  58. package/lib-es/services/ledger/nfts.d.ts.map +0 -0
  59. package/lib-es/services/ledger/nfts.js +0 -0
  60. package/lib-es/services/ledger/nfts.js.map +0 -0
  61. package/lib-es/services/types.d.ts +0 -0
  62. package/lib-es/services/types.d.ts.map +0 -0
  63. package/lib-es/services/types.js +0 -0
  64. package/lib-es/services/types.js.map +0 -0
  65. package/lib-es/utils.d.ts +15 -1
  66. package/lib-es/utils.d.ts.map +1 -1
  67. package/lib-es/utils.js +38 -2
  68. package/lib-es/utils.js.map +1 -1
  69. package/package.json +13 -8
  70. package/src/Eth.ts +59 -56
  71. package/src/modules/EIP712/EIP712.types.ts +54 -0
  72. package/src/modules/EIP712/EIP712.utils.ts +251 -0
  73. package/src/modules/EIP712/index.ts +409 -0
  74. package/src/utils.ts +42 -2
  75. package/tests/EIP712.unit.test.ts +760 -0
  76. package/tests/sample-messages/0.apdus +58 -0
  77. package/tests/sample-messages/0.json +44 -0
  78. package/tests/sample-messages/1.apdus +66 -0
  79. package/tests/sample-messages/1.json +50 -0
  80. package/tests/sample-messages/10.apdus +30 -0
  81. package/tests/sample-messages/10.json +23 -0
  82. package/tests/sample-messages/2.apdus +126 -0
  83. package/tests/sample-messages/2.json +153 -0
  84. package/tests/sample-messages/3.apdus +42 -0
  85. package/tests/sample-messages/3.json +31 -0
  86. package/tests/sample-messages/4.apdus +84 -0
  87. package/tests/sample-messages/4.json +110 -0
  88. package/tests/sample-messages/5.apdus +112 -0
  89. package/tests/sample-messages/5.json +92 -0
  90. package/tests/sample-messages/6.apdus +94 -0
  91. package/tests/sample-messages/6.json +78 -0
  92. package/tests/sample-messages/7.apdus +70 -0
  93. package/tests/sample-messages/7.json +55 -0
  94. package/tests/sample-messages/8.apdus +68 -0
  95. package/tests/sample-messages/8.json +50 -0
  96. package/tests/sample-messages/9.apdus +68 -0
  97. package/tests/sample-messages/9.json +50 -0
  98. package/LICENSE +0 -202
  99. package/lib-es/contracts.d.ts +0 -17
  100. package/lib-es/contracts.d.ts.map +0 -1
  101. package/lib-es/contracts.js +0 -103
  102. package/lib-es/contracts.js.map +0 -1
  103. package/lib-es/erc20.d.ts +0 -22
  104. package/lib-es/erc20.d.ts.map +0 -1
  105. package/lib-es/erc20.js +0 -64
  106. package/lib-es/erc20.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
26
+ import { hexBuffer, intAsHexBytes } from "../../utils";
27
+ /**
28
+ * @ignore for the README
29
+ *
30
+ * A Map of helpers to get the wanted binary value for
31
+ * each type of array possible in a type definition
32
+ */
33
+ var EIP712_ARRAY_TYPE_VALUE;
34
+ (function (EIP712_ARRAY_TYPE_VALUE) {
35
+ EIP712_ARRAY_TYPE_VALUE[EIP712_ARRAY_TYPE_VALUE["DYNAMIC"] = 0] = "DYNAMIC";
36
+ EIP712_ARRAY_TYPE_VALUE[EIP712_ARRAY_TYPE_VALUE["FIXED"] = 1] = "FIXED";
37
+ })(EIP712_ARRAY_TYPE_VALUE || (EIP712_ARRAY_TYPE_VALUE = {}));
38
+ /**
39
+ * @ignore for the README
40
+ *
41
+ * A Map of helpers to get the id and size to return for each
42
+ * type that can be used in EIP712
43
+ */
44
+ export var EIP712_TYPE_PROPERTIES = {
45
+ CUSTOM: {
46
+ key: function () { return 0; },
47
+ sizeInBits: function () { return null; }
48
+ },
49
+ INT: {
50
+ key: function () { return 1; },
51
+ sizeInBits: function (size) { return Number(size) / 8; }
52
+ },
53
+ UINT: {
54
+ key: function () { return 2; },
55
+ sizeInBits: function (size) { return Number(size) / 8; }
56
+ },
57
+ ADDRESS: {
58
+ key: function () { return 3; },
59
+ sizeInBits: function () { return null; }
60
+ },
61
+ BOOL: {
62
+ key: function () { return 4; },
63
+ sizeInBits: function () { return null; }
64
+ },
65
+ STRING: {
66
+ key: function () { return 5; },
67
+ sizeInBits: function () { return null; }
68
+ },
69
+ BYTES: {
70
+ key: function (size) { return (typeof size !== "undefined" ? 6 : 7); },
71
+ sizeInBits: function (size) { return (typeof size !== "undefined" ? Number(size) : null); }
72
+ }
73
+ };
74
+ /**
75
+ * @ignore for the README
76
+ *
77
+ * A Map of encoders to transform a value to formatted buffer
78
+ */
79
+ export var EIP712_TYPE_ENCODERS = {
80
+ INT: function (value) {
81
+ var failSafeValue = value !== null && value !== void 0 ? value : 0;
82
+ if (typeof failSafeValue === "string" && (failSafeValue === null || failSafeValue === void 0 ? void 0 : failSafeValue.startsWith("0x"))) {
83
+ return hexBuffer(failSafeValue);
84
+ }
85
+ var valueAsInt = typeof failSafeValue === "string"
86
+ ? parseInt(failSafeValue, 10)
87
+ : failSafeValue;
88
+ var valueAsHexString = valueAsInt.toString(16);
89
+ var paddedHexString = valueAsHexString.length % 2 ? "0" + valueAsHexString : valueAsHexString;
90
+ return Buffer.from(paddedHexString, "hex");
91
+ },
92
+ UINT: function (value) {
93
+ return this.INT(value);
94
+ },
95
+ BOOL: function (value) {
96
+ return this.INT(typeof value === "boolean" ? Number(value) : value);
97
+ },
98
+ ADDRESS: function (value) {
99
+ // Only sending the first 10 bytes (why ?)
100
+ return hexBuffer(value !== null && value !== void 0 ? value : "").slice(0, 20);
101
+ },
102
+ STRING: function (value) {
103
+ return Buffer.from(value !== null && value !== void 0 ? value : "", "utf-8");
104
+ },
105
+ BYTES: function (value, sizeInBits) {
106
+ var failSafeValue = value !== null && value !== void 0 ? value : "";
107
+ // Why slice again ?
108
+ return hexBuffer(failSafeValue).slice(0, sizeInBits !== null && sizeInBits !== void 0 ? sizeInBits : ((failSafeValue === null || failSafeValue === void 0 ? void 0 : failSafeValue.length) - 2) / 2);
109
+ }
110
+ };
111
+ /**
112
+ * @ignore for the README
113
+ *
114
+ * Helper parsing an EIP712 Type name to return its type and size(s)
115
+ * if it's an array or nested arrays
116
+ *
117
+ * @see EIP712MessageTypes
118
+ *
119
+ * @example "uint8[2][][4]" => [{name: "uint", bits: 8}, [2, null, 4]]
120
+ * @example "bool" => [{name: "bool", bits: null}, []]
121
+ *
122
+ * @param {String} typeName
123
+ * @returns {[{ name: string; bits: Number | null }, Array<Number | null | undefined>]}
124
+ */
125
+ export var destructTypeFromString = function (typeName) {
126
+ // Will split "any[][1][10]" in "any", "[][1][10]"
127
+ var splitNameAndArraysRegex = new RegExp(/^([^[\]]*)(\[.*\])*/g);
128
+ // Will match all numbers (or null) inside each array. [0][10][] => [0,10,null]
129
+ var splitArraysRegex = new RegExp(/\[(\d*)\]/g);
130
+ // Will separate the the name from the potential bits allocation. uint8 => [uint,8]
131
+ var splitNameAndNumberRegex = new RegExp(/(\D*)(\d*)/);
132
+ var _a = __read(splitNameAndArraysRegex.exec(typeName || "") || [], 3), type = _a[1], maybeArrays = _a[2];
133
+ var _b = __read(splitNameAndNumberRegex.exec(type || "") || [], 3), name = _b[1], bits = _b[2];
134
+ var typeDescription = name
135
+ ? { name: name, bits: bits ? Number(bits) : undefined }
136
+ : null;
137
+ var arrays = maybeArrays ? __spreadArray([], __read(maybeArrays.matchAll(splitArraysRegex)), false) : [];
138
+ // Parse each size to either a Number or null
139
+ var arraySizes = arrays.map(function (_a) {
140
+ var _b = __read(_a, 2), size = _b[1];
141
+ return (size ? Number(size) : null);
142
+ });
143
+ return [typeDescription, arraySizes];
144
+ };
145
+ /**
146
+ * @ignore for the README
147
+ *
148
+ * Helper to construct the hexadecimal ByteString for the description
149
+ * of a field in an EIP712 Message
150
+ *
151
+ * @param isArray
152
+ * @param typeSize
153
+ * @param typeValue
154
+ * @returns {String} HexByteString
155
+ */
156
+ export var constructTypeDescByteString = function (isArray, typeSize, typeValue) {
157
+ if (typeValue >= 16) {
158
+ throw new Error("Eth utils - constructTypeDescByteString - Cannot accept a typeValue >= 16 because the typeValue can only be 4 bits in binary" +
159
+ { isArray: isArray, typeSize: typeSize, typeValue: typeValue });
160
+ }
161
+ // 1 is array, 0 is not array
162
+ var isArrayBit = isArray ? "1" : "0";
163
+ // 1 has type size, 0 has no type size
164
+ var hasTypeSize = typeof typeSize === "number" ? "1" : "0";
165
+ // 2 unused bits
166
+ var unusedBits = "00";
167
+ // type key as 4 bits
168
+ var typeValueBits = typeValue.toString(2).padStart(4, "0");
169
+ return intAsHexBytes(parseInt(isArrayBit + hasTypeSize + unusedBits + typeValueBits, 2), 1);
170
+ };
171
+ /**
172
+ * @ignore for the README
173
+ *
174
+ * Helper to create the buffer to describe an EIP712 types' entry structure
175
+ *
176
+ * @param {EIP712MessageTypesEntry} entry
177
+ * @returns {Buffer}
178
+ */
179
+ export var makeTypeEntryStructBuffer = function (_a) {
180
+ var _b, _c, _d, _e;
181
+ var name = _a.name, type = _a.type;
182
+ var _f = __read(destructTypeFromString(type), 2), typeDescription = _f[0], arrSizes = _f[1];
183
+ var isTypeAnArray = Boolean(arrSizes.length);
184
+ var typeProperties = EIP712_TYPE_PROPERTIES[((_b = typeDescription === null || typeDescription === void 0 ? void 0 : typeDescription.name) === null || _b === void 0 ? void 0 : _b.toUpperCase()) || ""] ||
185
+ EIP712_TYPE_PROPERTIES.CUSTOM;
186
+ var typeKey = typeProperties.key(typeDescription === null || typeDescription === void 0 ? void 0 : typeDescription.bits);
187
+ var typeSizeInBits = typeProperties.sizeInBits(typeDescription === null || typeDescription === void 0 ? void 0 : typeDescription.bits);
188
+ var typeDescData = constructTypeDescByteString(isTypeAnArray, typeSizeInBits, typeKey);
189
+ var bufferArray = [Buffer.from(typeDescData, "hex")];
190
+ if (typeProperties === EIP712_TYPE_PROPERTIES.CUSTOM) {
191
+ bufferArray.push(Buffer.from(intAsHexBytes((_d = (_c = typeDescription === null || typeDescription === void 0 ? void 0 : typeDescription.name) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0, 1), "hex"));
192
+ bufferArray.push(Buffer.from((_e = typeDescription === null || typeDescription === void 0 ? void 0 : typeDescription.name) !== null && _e !== void 0 ? _e : "", "utf-8"));
193
+ }
194
+ if (typeof typeSizeInBits === "number") {
195
+ bufferArray.push(Buffer.from(intAsHexBytes(typeSizeInBits, 1), "hex"));
196
+ }
197
+ if (isTypeAnArray) {
198
+ bufferArray.push(Buffer.from(intAsHexBytes(arrSizes.length, 1), "hex"));
199
+ arrSizes.forEach(function (size) {
200
+ if (typeof size === "number") {
201
+ bufferArray.push(Buffer.from(intAsHexBytes(EIP712_ARRAY_TYPE_VALUE.FIXED, 1), "hex"), Buffer.from(intAsHexBytes(size, 1), "hex"));
202
+ }
203
+ else {
204
+ bufferArray.push(Buffer.from(intAsHexBytes(EIP712_ARRAY_TYPE_VALUE.DYNAMIC, 1), "hex"));
205
+ }
206
+ });
207
+ }
208
+ bufferArray.push(Buffer.from(intAsHexBytes(name.length, 1), "hex"), Buffer.from(name, "utf-8"));
209
+ return Buffer.concat(bufferArray);
210
+ };
211
+ //# sourceMappingURL=EIP712.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EIP712.utils.js","sourceRoot":"","sources":["../../../src/modules/EIP712/EIP712.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import Transport from "@ledgerhq/hw-transport";
2
+ import { EIP712Message } from "./EIP712.types";
3
+ /**
4
+ * @ignore for the README
5
+ *
6
+ * Sign an EIP-721 formatted message following the specification here:
7
+ * https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.asc#sign-eth-eip-712
8
+ * @example
9
+ eth.signEIP721Message("44'/60'/0'/0/0", {
10
+ domain: {
11
+ chainId: 69,
12
+ name: "Da Domain",
13
+ verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
14
+ version: "1"
15
+ },
16
+ types: {
17
+ "EIP712Domain": [
18
+ { name: "name", type: "string" },
19
+ { name: "version", type: "string" },
20
+ { name: "chainId", type: "uint256" },
21
+ { name: "verifyingContract", type: "address" }
22
+ ],
23
+ "Test": [
24
+ { name: "contents", type: "string" }
25
+ ]
26
+ },
27
+ primaryType: "Test",
28
+ message: {contents: "Hello, Bob!"},
29
+ })
30
+ *
31
+ * @param {String} path derivationPath
32
+ * @param {Object} jsonMessage message to sign
33
+ * @param {Boolean} fullImplem use the legacy implementation
34
+ * @returns {Promise}
35
+ */
36
+ export declare const signEIP712Message: (transport: Transport, path: string, jsonMessage: EIP712Message, fullImplem?: boolean) => Promise<{
37
+ v: number;
38
+ s: string;
39
+ r: string;
40
+ }>;
41
+ /**
42
+ * @ignore for the README
43
+ * Sign a prepared message following web3.eth.signTypedData specification. The host computes the domain separator and hashStruct(message)
44
+ * @example
45
+ eth.signEIP712HashedMessage("44'/60'/0'/0/0", Buffer.from("0101010101010101010101010101010101010101010101010101010101010101").toString("hex"), Buffer.from("0202020202020202020202020202020202020202020202020202020202020202").toString("hex")).then(result => {
46
+ var v = result['v'] - 27;
47
+ v = v.toString(16);
48
+ if (v.length < 2) {
49
+ v = "0" + v;
50
+ }
51
+ console.log("Signature 0x" + result['r'] + result['s'] + v);
52
+ })
53
+ */
54
+ export declare const signEIP712HashedMessage: (transport: Transport, path: string, domainSeparatorHex: string, hashStructMessageHex: string) => Promise<{
55
+ v: number;
56
+ s: string;
57
+ r: string;
58
+ }>;
59
+ export { EIP712Message } from "./EIP712.types";
60
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/EIP712/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EACL,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAqNxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,iBAAiB,cACjB,SAAS,QACd,MAAM,eACC,aAAa,2BAEzB,QAAQ;IACT,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CA+FA,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,cACvB,SAAS,QACd,MAAM,sBACQ,MAAM,wBACJ,MAAM,KAC3B,QAAQ;IACT,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAyBA,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}