@ledgerhq/hw-app-eth 6.34.5 → 6.34.6-next.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +12 -0
- package/lib/utils.d.ts +1 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +7 -2
- package/lib/utils.js.map +1 -1
- package/lib-es/utils.d.ts +1 -0
- package/lib-es/utils.d.ts.map +1 -1
- package/lib-es/utils.js +5 -1
- package/lib-es/utils.js.map +1 -1
- package/package.json +6 -6
- package/src/utils.ts +6 -1
- package/tests/EIP712/noFilter-signMessage.unit.test.ts +24 -0
- package/tests/EIP712/utils.unit.test.ts +31 -4
- package/tests/fixtures/apdus/14.apdus +22 -0
- package/tests/fixtures/messages/14.json +28 -0
- package/tests/fixtures/messages/14bis.json +28 -0
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ledgerhq/hw-app-eth
|
|
2
2
|
|
|
3
|
+
## 6.34.6-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#4687](https://github.com/LedgerHQ/ledger-live/pull/4687) [`c86637f6e5`](https://github.com/LedgerHQ/ledger-live/commit/c86637f6e57845716a791854dd8f686807152e73) Thanks [@lambertkevin](https://github.com/lambertkevin)! - Fixing hexBuffer helper for EIP712 signature not padding byte strings with 0
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`72288402ec`](https://github.com/LedgerHQ/ledger-live/commit/72288402ec70f9159022505cb3187e63b24df450), [`f527d1bb5a`](https://github.com/LedgerHQ/ledger-live/commit/f527d1bb5a2888a916f761d43d2ba5093eaa3e3f), [`a134f28e9d`](https://github.com/LedgerHQ/ledger-live/commit/a134f28e9d220d172148619ed281d4ca897d5532), [`49ea3fd98b`](https://github.com/LedgerHQ/ledger-live/commit/49ea3fd98ba1e1e0ed54d29ab5fdc71c4918183f), [`533278e2c4`](https://github.com/LedgerHQ/ledger-live/commit/533278e2c40ee764ecb87d4430fa6650f251ff0c), [`70e4277bc9`](https://github.com/LedgerHQ/ledger-live/commit/70e4277bc9dda253b894bdae5f2c8a5f43a9a64e)]:
|
|
10
|
+
- @ledgerhq/cryptoassets@10.0.0-next.0
|
|
11
|
+
- @ledgerhq/types-live@6.40.0-next.0
|
|
12
|
+
- @ledgerhq/domain-service@1.1.11-next.0
|
|
13
|
+
- @ledgerhq/evm-tools@1.0.7-next.0
|
|
14
|
+
|
|
3
15
|
## 6.34.5
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
3
|
import { LedgerEthTransactionResolution } from "./services/types";
|
|
4
|
+
export declare const padHexString: (str: string) => string;
|
|
4
5
|
export declare function splitPath(path: string): number[];
|
|
5
6
|
export declare function hexBuffer(str: string): Buffer;
|
|
6
7
|
export declare function maybeHexBuffer(str: string | null | undefined): Buffer | null | undefined;
|
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;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAchD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,eAAO,MAAM,YAAY,QAAS,MAAM,WAEvC,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAchD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAGxF;AAED,eAAO,MAAM,YAAY,UAAW,MAAM;;;;;;CAyEzC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,SAAS,MAAM,KAAG,MAChB,CAAC;AAE5C;;;;;;GAMG;AAEH,oBAAY,4BAA4B;IACtC,OAAO,eAAe;IACtB,QAAQ,eAAe;CACxB;AAED,oBAAY,6BAA6B;IACvC,OAAO,eAAe;IACtB,oBAAoB,eAAe;IACnC,aAAa,eAAe;IAC5B,kBAAkB,eAAe;IACjC,4BAA4B,eAAe;CAC5C;AAED,oBAAY,8BAA8B;IACxC,oBAAoB,eAAe;IACnC,kBAAkB,eAAe;IACjC,wBAAwB,eAAe;CACxC;AAED,eAAO,MAAM,cAAc,gCAA8C,CAAC;AAC1E,eAAO,MAAM,YAAY,oEAGxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBACT,QAAQ,8BAA8B,CAAC,EAAE,KAC1D,8BAgBF,CAAC"}
|
package/lib/utils.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeResolutions = exports.nftSelectors = exports.tokenSelectors = exports.ERC1155_CLEAR_SIGNED_SELECTORS = exports.ERC721_CLEAR_SIGNED_SELECTORS = exports.ERC20_CLEAR_SIGNED_SELECTORS = exports.intAsHexBytes = exports.decodeTxInfo = exports.maybeHexBuffer = exports.hexBuffer = exports.splitPath = void 0;
|
|
3
|
+
exports.mergeResolutions = exports.nftSelectors = exports.tokenSelectors = exports.ERC1155_CLEAR_SIGNED_SELECTORS = exports.ERC721_CLEAR_SIGNED_SELECTORS = exports.ERC20_CLEAR_SIGNED_SELECTORS = exports.intAsHexBytes = exports.decodeTxInfo = exports.maybeHexBuffer = exports.hexBuffer = exports.splitPath = exports.padHexString = void 0;
|
|
4
4
|
const rlp_1 = require("@ethersproject/rlp");
|
|
5
5
|
const bignumber_js_1 = require("bignumber.js");
|
|
6
|
+
const padHexString = (str) => {
|
|
7
|
+
return str.length % 2 ? "0" + str : str;
|
|
8
|
+
};
|
|
9
|
+
exports.padHexString = padHexString;
|
|
6
10
|
function splitPath(path) {
|
|
7
11
|
const result = [];
|
|
8
12
|
const components = path.split("/");
|
|
@@ -20,7 +24,8 @@ function splitPath(path) {
|
|
|
20
24
|
}
|
|
21
25
|
exports.splitPath = splitPath;
|
|
22
26
|
function hexBuffer(str) {
|
|
23
|
-
|
|
27
|
+
const strWithoutPrefix = str.startsWith("0x") ? str.slice(2) : str;
|
|
28
|
+
return Buffer.from((0, exports.padHexString)(strWithoutPrefix), "hex");
|
|
24
29
|
}
|
|
25
30
|
exports.hexBuffer = hexBuffer;
|
|
26
31
|
function maybeHexBuffer(str) {
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,4CAAoD;AACpD,+CAAyC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib-es/utils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
3
|
import { LedgerEthTransactionResolution } from "./services/types";
|
|
4
|
+
export declare const padHexString: (str: string) => string;
|
|
4
5
|
export declare function splitPath(path: string): number[];
|
|
5
6
|
export declare function hexBuffer(str: string): Buffer;
|
|
6
7
|
export declare function maybeHexBuffer(str: string | null | undefined): Buffer | null | undefined;
|
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;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAchD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAElE,eAAO,MAAM,YAAY,QAAS,MAAM,WAEvC,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAchD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAGxF;AAED,eAAO,MAAM,YAAY,UAAW,MAAM;;;;;;CAyEzC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,SAAS,MAAM,KAAG,MAChB,CAAC;AAE5C;;;;;;GAMG;AAEH,oBAAY,4BAA4B;IACtC,OAAO,eAAe;IACtB,QAAQ,eAAe;CACxB;AAED,oBAAY,6BAA6B;IACvC,OAAO,eAAe;IACtB,oBAAoB,eAAe;IACnC,aAAa,eAAe;IAC5B,kBAAkB,eAAe;IACjC,4BAA4B,eAAe;CAC5C;AAED,oBAAY,8BAA8B;IACxC,oBAAoB,eAAe;IACnC,kBAAkB,eAAe;IACjC,wBAAwB,eAAe;CACxC;AAED,eAAO,MAAM,cAAc,gCAA8C,CAAC;AAC1E,eAAO,MAAM,YAAY,oEAGxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBACT,QAAQ,8BAA8B,CAAC,EAAE,KAC1D,8BAgBF,CAAC"}
|
package/lib-es/utils.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { encode, decode } from "@ethersproject/rlp";
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
|
+
export const padHexString = (str) => {
|
|
4
|
+
return str.length % 2 ? "0" + str : str;
|
|
5
|
+
};
|
|
3
6
|
export function splitPath(path) {
|
|
4
7
|
const result = [];
|
|
5
8
|
const components = path.split("/");
|
|
@@ -16,7 +19,8 @@ export function splitPath(path) {
|
|
|
16
19
|
return result;
|
|
17
20
|
}
|
|
18
21
|
export function hexBuffer(str) {
|
|
19
|
-
|
|
22
|
+
const strWithoutPrefix = str.startsWith("0x") ? str.slice(2) : str;
|
|
23
|
+
return Buffer.from(padHexString(strWithoutPrefix), "hex");
|
|
20
24
|
}
|
|
21
25
|
export function maybeHexBuffer(str) {
|
|
22
26
|
if (!str)
|
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,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YACjB,OAAO,CAAC,qCAAqC;SAC9C;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7D,MAAM,IAAI,UAAU,CAAC;SACtB;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,
|
|
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.34.
|
|
3
|
+
"version": "6.34.6-next.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet Ethereum Application API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -30,15 +30,15 @@
|
|
|
30
30
|
"@ethersproject/abi": "^5.5.0",
|
|
31
31
|
"@ethersproject/rlp": "^5.5.0",
|
|
32
32
|
"axios": "^1.3.4",
|
|
33
|
-
"bignumber.js": "^9.1.
|
|
34
|
-
"@ledgerhq/cryptoassets": "^
|
|
35
|
-
"@ledgerhq/domain-service": "^1.1.
|
|
33
|
+
"bignumber.js": "^9.1.2",
|
|
34
|
+
"@ledgerhq/cryptoassets": "^10.0.0-next.0",
|
|
35
|
+
"@ledgerhq/domain-service": "^1.1.11-next.0",
|
|
36
36
|
"@ledgerhq/errors": "^6.14.0",
|
|
37
|
-
"@ledgerhq/evm-tools": "^1.0.
|
|
37
|
+
"@ledgerhq/evm-tools": "^1.0.7-next.0",
|
|
38
38
|
"@ledgerhq/hw-transport": "^6.28.8",
|
|
39
39
|
"@ledgerhq/hw-transport-mocker": "^6.27.19",
|
|
40
40
|
"@ledgerhq/logs": "^6.10.1",
|
|
41
|
-
"@ledgerhq/types-live": "^6.
|
|
41
|
+
"@ledgerhq/types-live": "^6.40.0-next.0"
|
|
42
42
|
},
|
|
43
43
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
|
44
44
|
"devDependencies": {
|
package/src/utils.ts
CHANGED
|
@@ -2,6 +2,10 @@ import { encode, decode } from "@ethersproject/rlp";
|
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
3
|
import { LedgerEthTransactionResolution } from "./services/types";
|
|
4
4
|
|
|
5
|
+
export const padHexString = (str: string) => {
|
|
6
|
+
return str.length % 2 ? "0" + str : str;
|
|
7
|
+
};
|
|
8
|
+
|
|
5
9
|
export function splitPath(path: string): number[] {
|
|
6
10
|
const result: number[] = [];
|
|
7
11
|
const components = path.split("/");
|
|
@@ -19,7 +23,8 @@ export function splitPath(path: string): number[] {
|
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
export function hexBuffer(str: string): Buffer {
|
|
22
|
-
|
|
26
|
+
const strWithoutPrefix = str.startsWith("0x") ? str.slice(2) : str;
|
|
27
|
+
return Buffer.from(padHexString(strWithoutPrefix), "hex");
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
export function maybeHexBuffer(str: string | null | undefined): Buffer | null | undefined {
|
|
@@ -242,5 +242,29 @@ describe("EIP712", () => {
|
|
|
242
242
|
v: 28,
|
|
243
243
|
});
|
|
244
244
|
});
|
|
245
|
+
|
|
246
|
+
test("should sign correctly the 14.json sample message (shorthand byte string => 0x3 vs 0x03)", async () => {
|
|
247
|
+
const apdusBuffer = await fs.readFile(getFilePath("apdu", "14"), "utf-8");
|
|
248
|
+
const messageShorthand = await fs
|
|
249
|
+
.readFile(getFilePath("message", "14"), "utf-8")
|
|
250
|
+
.then(JSON.parse);
|
|
251
|
+
const messageFull = await fs
|
|
252
|
+
.readFile(getFilePath("message", "14bis"), "utf-8")
|
|
253
|
+
.then(JSON.parse);
|
|
254
|
+
|
|
255
|
+
const transportShort = await openTransportReplayer(RecordStore.fromString(`${apdusBuffer}`));
|
|
256
|
+
const ethShort = new Eth(transportShort);
|
|
257
|
+
const resultShorthand = await ethShort.signEIP712Message("44'/60'/0'/0/0", messageShorthand);
|
|
258
|
+
const transportFull = await openTransportReplayer(RecordStore.fromString(`${apdusBuffer}`));
|
|
259
|
+
const ethFull = new Eth(transportFull);
|
|
260
|
+
const resultFull = await ethFull.signEIP712Message("44'/60'/0'/0/0", messageFull);
|
|
261
|
+
|
|
262
|
+
expect(resultShorthand).toEqual(resultFull);
|
|
263
|
+
expect(resultShorthand).toEqual({
|
|
264
|
+
r: "15502f71994b3a6cade2f2aa0243058ccfd44d09ad1fb5392180f2a430ed396d",
|
|
265
|
+
s: "1ecf5ac4964fd1068ad90b2586bc12e9ac9a77fb04331da54023ee1674794411",
|
|
266
|
+
v: 27,
|
|
267
|
+
});
|
|
268
|
+
});
|
|
245
269
|
});
|
|
246
270
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
+
import { hexBuffer, padHexString } from "../../src/utils";
|
|
2
3
|
import {
|
|
3
4
|
constructTypeDescByteString,
|
|
4
5
|
destructTypeFromString,
|
|
@@ -6,10 +7,6 @@ import {
|
|
|
6
7
|
makeTypeEntryStructBuffer,
|
|
7
8
|
} from "../../src/modules/EIP712/utils";
|
|
8
9
|
|
|
9
|
-
const padHexString = (str: string) => {
|
|
10
|
-
return str.length % 2 ? "0" + str : str;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
10
|
const convertTwosComplementToDecimalString = (hex: string, initialValue: string) => {
|
|
14
11
|
if (!initialValue?.startsWith("-")) {
|
|
15
12
|
return new BigNumber(padHexString(hex), 16).toFixed();
|
|
@@ -410,5 +407,35 @@ describe("EIP712", () => {
|
|
|
410
407
|
});
|
|
411
408
|
});
|
|
412
409
|
});
|
|
410
|
+
|
|
411
|
+
describe("hexBuffer", () => {
|
|
412
|
+
const hexValues = [
|
|
413
|
+
"0",
|
|
414
|
+
"1",
|
|
415
|
+
"2",
|
|
416
|
+
"3",
|
|
417
|
+
"4",
|
|
418
|
+
"5",
|
|
419
|
+
"6",
|
|
420
|
+
"7",
|
|
421
|
+
"8",
|
|
422
|
+
"9",
|
|
423
|
+
"A",
|
|
424
|
+
"B",
|
|
425
|
+
"C",
|
|
426
|
+
"D",
|
|
427
|
+
"E",
|
|
428
|
+
"F",
|
|
429
|
+
];
|
|
430
|
+
it.each(hexValues)(
|
|
431
|
+
"should bufferize every possible byte string of: %s",
|
|
432
|
+
(noPrefixShorthand: string) => {
|
|
433
|
+
const prefixFull = `0x0${noPrefixShorthand}`;
|
|
434
|
+
const prefixShorthand = `0x${noPrefixShorthand}`;
|
|
435
|
+
expect(Buffer.compare(hexBuffer(prefixFull), hexBuffer(prefixShorthand))).toBe(0);
|
|
436
|
+
expect(Buffer.compare(hexBuffer(prefixFull), hexBuffer(noPrefixShorthand))).toBe(0);
|
|
437
|
+
},
|
|
438
|
+
);
|
|
439
|
+
});
|
|
413
440
|
});
|
|
414
441
|
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
=> e01a0000144368616e67654f776e65725468726573686f6c64
|
|
2
|
+
<= 9000
|
|
3
|
+
=> e01a00ff0f42200c6e65775468726573686f6c64
|
|
4
|
+
<= 9000
|
|
5
|
+
=> e01a00000c454950373132446f6d61696e
|
|
6
|
+
<= 9000
|
|
7
|
+
=> e01a00ff0605046e616d65
|
|
8
|
+
<= 9000
|
|
9
|
+
=> e01a00ff09050776657273696f6e
|
|
10
|
+
<= 9000
|
|
11
|
+
=> e01c00000c454950373132446f6d61696e
|
|
12
|
+
<= 9000
|
|
13
|
+
=> e01c00ff1600144368616e67654f776e65725468726573686f6c64
|
|
14
|
+
<= 9000
|
|
15
|
+
=> e01c00ff03000131
|
|
16
|
+
<= 9000
|
|
17
|
+
=> e01c0000144368616e67654f776e65725468726573686f6c64
|
|
18
|
+
<= 9000
|
|
19
|
+
=> e01c00ff03000103
|
|
20
|
+
<= 9000
|
|
21
|
+
=> e00c000115058000002c8000003c800000000000000000000000
|
|
22
|
+
<= 1b15502f71994b3a6cade2f2aa0243058ccfd44d09ad1fb5392180f2a430ed396d1ecf5ac4964fd1068ad90b2586bc12e9ac9a77fb04331da54023ee16747944119000
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"types": {
|
|
3
|
+
"EIP712Domain": [
|
|
4
|
+
{
|
|
5
|
+
"name": "name",
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "version",
|
|
10
|
+
"type": "string"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"ChangeOwnerThreshold": [
|
|
14
|
+
{
|
|
15
|
+
"name": "newThreshold",
|
|
16
|
+
"type": "uint256"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"primaryType": "ChangeOwnerThreshold",
|
|
21
|
+
"domain": {
|
|
22
|
+
"name": "ChangeOwnerThreshold",
|
|
23
|
+
"version": "1"
|
|
24
|
+
},
|
|
25
|
+
"message": {
|
|
26
|
+
"newThreshold": "0x3"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"types": {
|
|
3
|
+
"EIP712Domain": [
|
|
4
|
+
{
|
|
5
|
+
"name": "name",
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "version",
|
|
10
|
+
"type": "string"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"ChangeOwnerThreshold": [
|
|
14
|
+
{
|
|
15
|
+
"name": "newThreshold",
|
|
16
|
+
"type": "uint256"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"primaryType": "ChangeOwnerThreshold",
|
|
21
|
+
"domain": {
|
|
22
|
+
"name": "ChangeOwnerThreshold",
|
|
23
|
+
"version": "1"
|
|
24
|
+
},
|
|
25
|
+
"message": {
|
|
26
|
+
"newThreshold": "0x03"
|
|
27
|
+
}
|
|
28
|
+
}
|