@qevm/hash 5.7.1

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 (48) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +34 -0
  3. package/lib/_version.d.ts +2 -0
  4. package/lib/_version.d.ts.map +1 -0
  5. package/lib/_version.js +5 -0
  6. package/lib/_version.js.map +1 -0
  7. package/lib/ens-normalize/decoder.d.ts +50 -0
  8. package/lib/ens-normalize/decoder.d.ts.map +1 -0
  9. package/lib/ens-normalize/decoder.js +266 -0
  10. package/lib/ens-normalize/decoder.js.map +1 -0
  11. package/lib/ens-normalize/include.d.ts +30 -0
  12. package/lib/ens-normalize/include.d.ts.map +1 -0
  13. package/lib/ens-normalize/include.js +38 -0
  14. package/lib/ens-normalize/include.js.map +1 -0
  15. package/lib/ens-normalize/lib.d.ts +31 -0
  16. package/lib/ens-normalize/lib.d.ts.map +1 -0
  17. package/lib/ens-normalize/lib.js +148 -0
  18. package/lib/ens-normalize/lib.js.map +1 -0
  19. package/lib/id.d.ts +2 -0
  20. package/lib/id.d.ts.map +1 -0
  21. package/lib/id.js +10 -0
  22. package/lib/id.js.map +1 -0
  23. package/lib/index.d.ts +7 -0
  24. package/lib/index.d.ts.map +1 -0
  25. package/lib/index.js +17 -0
  26. package/lib/index.js.map +1 -0
  27. package/lib/message.d.ts +4 -0
  28. package/lib/message.d.ts.map +1 -0
  29. package/lib/message.js +19 -0
  30. package/lib/message.js.map +1 -0
  31. package/lib/namehash.d.ts +5 -0
  32. package/lib/namehash.d.ts.map +1 -0
  33. package/lib/namehash.js +79 -0
  34. package/lib/namehash.js.map +1 -0
  35. package/lib/typed-data.d.ts +29 -0
  36. package/lib/typed-data.d.ts.map +1 -0
  37. package/lib/typed-data.js +501 -0
  38. package/lib/typed-data.js.map +1 -0
  39. package/package.json +32 -0
  40. package/src.ts/_version.ts +1 -0
  41. package/src.ts/ens-normalize/decoder.ts +283 -0
  42. package/src.ts/ens-normalize/include.ts +37 -0
  43. package/src.ts/ens-normalize/lib.ts +140 -0
  44. package/src.ts/id.ts +6 -0
  45. package/src.ts/index.ts +24 -0
  46. package/src.ts/message.ts +15 -0
  47. package/src.ts/namehash.ts +83 -0
  48. package/src.ts/typed-data.ts +507 -0
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * MIT License
4
+ *
5
+ * Copyright (c) 2021 Andrew Raffensperger
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ *
25
+ * This is a near carbon-copy of the original source (link below) with the
26
+ * TypeScript typings added and a few tweaks to make it ES3-compatible.
27
+ *
28
+ * See: https://github.com/adraffy/ens-normalize.js
29
+ */
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.ens_normalize = exports.ens_normalize_post_check = void 0;
32
+ var strings_1 = require("@ethersproject/strings");
33
+ var include_js_1 = require("./include.js");
34
+ var r = (0, include_js_1.getData)();
35
+ var decoder_js_1 = require("./decoder.js");
36
+ // @TODO: This should be lazily loaded
37
+ var VALID = new Set((0, decoder_js_1.read_member_array)(r));
38
+ var IGNORED = new Set((0, decoder_js_1.read_member_array)(r));
39
+ var MAPPED = (0, decoder_js_1.read_mapped_map)(r);
40
+ var EMOJI_ROOT = (0, decoder_js_1.read_emoji_trie)(r);
41
+ //const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));
42
+ //const STOP = 0x2E;
43
+ var HYPHEN = 0x2D;
44
+ var UNDERSCORE = 0x5F;
45
+ function explode_cp(name) {
46
+ return (0, strings_1.toUtf8CodePoints)(name);
47
+ }
48
+ function filter_fe0f(cps) {
49
+ return cps.filter(function (cp) { return cp != 0xFE0F; });
50
+ }
51
+ function ens_normalize_post_check(name) {
52
+ for (var _i = 0, _a = name.split('.'); _i < _a.length; _i++) {
53
+ var label = _a[_i];
54
+ var cps = explode_cp(label);
55
+ try {
56
+ for (var i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {
57
+ if (cps[i] !== UNDERSCORE) {
58
+ throw new Error("underscore only allowed at start");
59
+ }
60
+ }
61
+ if (cps.length >= 4 && cps.every(function (cp) { return cp < 0x80; }) && cps[2] === HYPHEN && cps[3] === HYPHEN) {
62
+ throw new Error("invalid label extension");
63
+ }
64
+ }
65
+ catch (err) {
66
+ throw new Error("Invalid label \"" + label + "\": " + err.message);
67
+ }
68
+ }
69
+ return name;
70
+ }
71
+ exports.ens_normalize_post_check = ens_normalize_post_check;
72
+ function ens_normalize(name) {
73
+ return ens_normalize_post_check(normalize(name, filter_fe0f));
74
+ }
75
+ exports.ens_normalize = ens_normalize;
76
+ function normalize(name, emoji_filter) {
77
+ var input = explode_cp(name).reverse(); // flip for pop
78
+ var output = [];
79
+ while (input.length) {
80
+ var emoji = consume_emoji_reversed(input);
81
+ if (emoji) {
82
+ output.push.apply(output, emoji_filter(emoji));
83
+ continue;
84
+ }
85
+ var cp = input.pop();
86
+ if (VALID.has(cp)) {
87
+ output.push(cp);
88
+ continue;
89
+ }
90
+ if (IGNORED.has(cp)) {
91
+ continue;
92
+ }
93
+ var cps = MAPPED[cp];
94
+ if (cps) {
95
+ output.push.apply(output, cps);
96
+ continue;
97
+ }
98
+ throw new Error("Disallowed codepoint: 0x" + cp.toString(16).toUpperCase());
99
+ }
100
+ return ens_normalize_post_check(nfc(String.fromCodePoint.apply(String, output)));
101
+ }
102
+ function nfc(s) {
103
+ return s.normalize('NFC');
104
+ }
105
+ function consume_emoji_reversed(cps, eaten) {
106
+ var _a;
107
+ var node = EMOJI_ROOT;
108
+ var emoji;
109
+ var saved;
110
+ var stack = [];
111
+ var pos = cps.length;
112
+ if (eaten)
113
+ eaten.length = 0; // clear input buffer (if needed)
114
+ var _loop_1 = function () {
115
+ var cp = cps[--pos];
116
+ node = (_a = node.branches.find(function (x) { return x.set.has(cp); })) === null || _a === void 0 ? void 0 : _a.node;
117
+ if (!node)
118
+ return "break";
119
+ if (node.save) { // remember
120
+ saved = cp;
121
+ }
122
+ else if (node.check) { // check exclusion
123
+ if (cp === saved)
124
+ return "break";
125
+ }
126
+ stack.push(cp);
127
+ if (node.fe0f) {
128
+ stack.push(0xFE0F);
129
+ if (pos > 0 && cps[pos - 1] == 0xFE0F)
130
+ pos--; // consume optional FE0F
131
+ }
132
+ if (node.valid) { // this is a valid emoji (so far)
133
+ emoji = stack.slice(); // copy stack
134
+ if (node.valid == 2)
135
+ emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)
136
+ if (eaten)
137
+ eaten.push.apply(eaten, cps.slice(pos).reverse()); // copy input (if needed)
138
+ cps.length = pos; // truncate
139
+ }
140
+ };
141
+ while (pos) {
142
+ var state_1 = _loop_1();
143
+ if (state_1 === "break")
144
+ break;
145
+ }
146
+ return emoji;
147
+ }
148
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src.ts/ens-normalize/lib.ts"],"names":[],"mappings":"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"}
package/lib/id.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function id(text: string): string;
2
+ //# sourceMappingURL=id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src.ts/id.ts"],"names":[],"mappings":"AAGA,wBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvC"}
package/lib/id.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.id = void 0;
4
+ var keccak256_1 = require("@ethersproject/keccak256");
5
+ var strings_1 = require("@ethersproject/strings");
6
+ function id(text) {
7
+ return (0, keccak256_1.keccak256)((0, strings_1.toUtf8Bytes)(text));
8
+ }
9
+ exports.id = id;
10
+ //# sourceMappingURL=id.js.map
package/lib/id.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../src.ts/id.ts"],"names":[],"mappings":";;;AAAA,sDAAqD;AACrD,kDAAqD;AAErD,SAAgB,EAAE,CAAC,IAAY;IAC3B,OAAO,IAAA,qBAAS,EAAC,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAC,CAAC;AACxC,CAAC;AAFD,gBAEC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { id } from "./id";
2
+ import { dnsEncode, isValidName, namehash } from "./namehash";
3
+ import { hashMessage, messagePrefix } from "./message";
4
+ import { ensNormalize } from "./namehash";
5
+ import { TypedDataEncoder as _TypedDataEncoder } from "./typed-data";
6
+ export { id, dnsEncode, namehash, isValidName, ensNormalize, messagePrefix, hashMessage, _TypedDataEncoder, };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,EACH,EAAE,EAEF,SAAS,EACT,QAAQ,EACR,WAAW,EAEX,YAAY,EAEZ,aAAa,EACb,WAAW,EAEX,iBAAiB,GACpB,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._TypedDataEncoder = exports.hashMessage = exports.messagePrefix = exports.ensNormalize = exports.isValidName = exports.namehash = exports.dnsEncode = exports.id = void 0;
4
+ var id_1 = require("./id");
5
+ Object.defineProperty(exports, "id", { enumerable: true, get: function () { return id_1.id; } });
6
+ var namehash_1 = require("./namehash");
7
+ Object.defineProperty(exports, "dnsEncode", { enumerable: true, get: function () { return namehash_1.dnsEncode; } });
8
+ Object.defineProperty(exports, "isValidName", { enumerable: true, get: function () { return namehash_1.isValidName; } });
9
+ Object.defineProperty(exports, "namehash", { enumerable: true, get: function () { return namehash_1.namehash; } });
10
+ var message_1 = require("./message");
11
+ Object.defineProperty(exports, "hashMessage", { enumerable: true, get: function () { return message_1.hashMessage; } });
12
+ Object.defineProperty(exports, "messagePrefix", { enumerable: true, get: function () { return message_1.messagePrefix; } });
13
+ var namehash_2 = require("./namehash");
14
+ Object.defineProperty(exports, "ensNormalize", { enumerable: true, get: function () { return namehash_2.ensNormalize; } });
15
+ var typed_data_1 = require("./typed-data");
16
+ Object.defineProperty(exports, "_TypedDataEncoder", { enumerable: true, get: function () { return typed_data_1.TypedDataEncoder; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,2BAA0B;AAStB,mFATK,OAAE,OASL;AARN,uCAA8D;AAU1D,0FAVK,oBAAS,OAUL;AAET,4FAZgB,sBAAW,OAYhB;AADX,yFAX6B,mBAAQ,OAW7B;AAVZ,qCAAuD;AAgBnD,4FAhBK,qBAAW,OAgBL;AADX,8FAfkB,uBAAa,OAelB;AAbjB,uCAA0C;AAWtC,6FAXK,uBAAY,OAWL;AAThB,2CAAqE;AAcjE,kGAdyB,6BAAiB,OAczB"}
@@ -0,0 +1,4 @@
1
+ import { Bytes } from "@qevm/bytes";
2
+ export declare const messagePrefix = "\u0019Cellframe\n";
3
+ export declare function hashMessage(message: Bytes | string): string;
4
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src.ts/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAU,MAAM,aAAa,CAAC;AAI5C,eAAO,MAAM,aAAa,sBAAoB,CAAC;AAE/C,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAO3D"}
package/lib/message.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hashMessage = exports.messagePrefix = void 0;
4
+ var bytes_1 = require("@qevm/bytes");
5
+ var keccak256_1 = require("@ethersproject/keccak256");
6
+ var strings_1 = require("@ethersproject/strings");
7
+ exports.messagePrefix = "\x19Cellframe\n";
8
+ function hashMessage(message) {
9
+ if (typeof (message) === "string") {
10
+ message = (0, strings_1.toUtf8Bytes)(message);
11
+ }
12
+ return (0, keccak256_1.keccak256)((0, bytes_1.concat)([
13
+ (0, strings_1.toUtf8Bytes)(exports.messagePrefix),
14
+ (0, strings_1.toUtf8Bytes)(String(message.length)),
15
+ message
16
+ ]));
17
+ }
18
+ exports.hashMessage = hashMessage;
19
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../src.ts/message.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,sDAAqD;AACrD,kDAAqD;AAExC,QAAA,aAAa,GAAG,iBAAiB,CAAC;AAE/C,SAAgB,WAAW,CAAC,OAAuB;IAC/C,IAAI,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;QAAE,OAAO,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;KAAE;IACrE,OAAO,IAAA,qBAAS,EAAC,IAAA,cAAM,EAAC;QACpB,IAAA,qBAAW,EAAC,qBAAa,CAAC;QAC1B,IAAA,qBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO;KACV,CAAC,CAAC,CAAC;AACR,CAAC;AAPD,kCAOC"}
@@ -0,0 +1,5 @@
1
+ export declare function ensNormalize(name: string): string;
2
+ export declare function isValidName(name: string): boolean;
3
+ export declare function namehash(name: string): string;
4
+ export declare function dnsEncode(name: string): string;
5
+ //# sourceMappingURL=namehash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namehash.d.ts","sourceRoot":"","sources":["../src.ts/namehash.ts"],"names":[],"mappings":"AA0CA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc7C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa9C"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dnsEncode = exports.namehash = exports.isValidName = exports.ensNormalize = void 0;
4
+ var bytes_1 = require("@qevm/bytes");
5
+ var strings_1 = require("@ethersproject/strings");
6
+ var keccak256_1 = require("@ethersproject/keccak256");
7
+ var logger_1 = require("@ethersproject/logger");
8
+ var _version_1 = require("./_version");
9
+ var logger = new logger_1.Logger(_version_1.version);
10
+ var lib_1 = require("./ens-normalize/lib");
11
+ var Zeros = new Uint8Array(32);
12
+ Zeros.fill(0);
13
+ function checkComponent(comp) {
14
+ if (comp.length === 0) {
15
+ throw new Error("invalid ENS name; empty component");
16
+ }
17
+ return comp;
18
+ }
19
+ function ensNameSplit(name) {
20
+ var bytes = (0, strings_1.toUtf8Bytes)((0, lib_1.ens_normalize)(name));
21
+ var comps = [];
22
+ if (name.length === 0) {
23
+ return comps;
24
+ }
25
+ var last = 0;
26
+ for (var i = 0; i < bytes.length; i++) {
27
+ var d = bytes[i];
28
+ // A separator (i.e. "."); copy this component
29
+ if (d === 0x2e) {
30
+ comps.push(checkComponent(bytes.slice(last, i)));
31
+ last = i + 1;
32
+ }
33
+ }
34
+ // There was a stray separator at the end of the name
35
+ if (last >= bytes.length) {
36
+ throw new Error("invalid ENS name; empty component");
37
+ }
38
+ comps.push(checkComponent(bytes.slice(last)));
39
+ return comps;
40
+ }
41
+ function ensNormalize(name) {
42
+ return ensNameSplit(name).map(function (comp) { return (0, strings_1.toUtf8String)(comp); }).join(".");
43
+ }
44
+ exports.ensNormalize = ensNormalize;
45
+ function isValidName(name) {
46
+ try {
47
+ return (ensNameSplit(name).length !== 0);
48
+ }
49
+ catch (error) { }
50
+ return false;
51
+ }
52
+ exports.isValidName = isValidName;
53
+ function namehash(name) {
54
+ /* istanbul ignore if */
55
+ if (typeof (name) !== "string") {
56
+ logger.throwArgumentError("invalid ENS name; not a string", "name", name);
57
+ }
58
+ var result = Zeros;
59
+ var comps = ensNameSplit(name);
60
+ while (comps.length) {
61
+ result = (0, keccak256_1.keccak256)((0, bytes_1.concat)([result, (0, keccak256_1.keccak256)(comps.pop())]));
62
+ }
63
+ return (0, bytes_1.hexlify)(result);
64
+ }
65
+ exports.namehash = namehash;
66
+ function dnsEncode(name) {
67
+ return (0, bytes_1.hexlify)((0, bytes_1.concat)(ensNameSplit(name).map(function (comp) {
68
+ // DNS does not allow components over 63 bytes in length
69
+ if (comp.length > 63) {
70
+ throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");
71
+ }
72
+ var bytes = new Uint8Array(comp.length + 1);
73
+ bytes.set(comp, 1);
74
+ bytes[0] = bytes.length - 1;
75
+ return bytes;
76
+ }))) + "00";
77
+ }
78
+ exports.dnsEncode = dnsEncode;
79
+ //# sourceMappingURL=namehash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namehash.js","sourceRoot":"","sources":["../src.ts/namehash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { TypedDataDomain, TypedDataField } from "@qevm/abstract-signer";
2
+ export declare class TypedDataEncoder {
3
+ readonly primaryType: string;
4
+ readonly types: Record<string, Array<TypedDataField>>;
5
+ readonly _encoderCache: Record<string, (value: any) => string>;
6
+ readonly _types: Record<string, string>;
7
+ constructor(types: Record<string, Array<TypedDataField>>);
8
+ getEncoder(type: string): (value: any) => string;
9
+ _getEncoder(type: string): (value: any) => string;
10
+ encodeType(name: string): string;
11
+ encodeData(type: string, value: any): string;
12
+ hashStruct(name: string, value: Record<string, any>): string;
13
+ encode(value: Record<string, any>): string;
14
+ hash(value: Record<string, any>): string;
15
+ _visit(type: string, value: any, callback: (type: string, data: any) => any): any;
16
+ visit(value: Record<string, any>, callback: (type: string, data: any) => any): any;
17
+ static from(types: Record<string, Array<TypedDataField>>): TypedDataEncoder;
18
+ static getPrimaryType(types: Record<string, Array<TypedDataField>>): string;
19
+ static hashStruct(name: string, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): string;
20
+ static hashDomain(domain: TypedDataDomain): string;
21
+ static encode(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): string;
22
+ static hash(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): string;
23
+ static resolveNames(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>, resolveName: (name: string) => Promise<string>): Promise<{
24
+ domain: TypedDataDomain;
25
+ value: any;
26
+ }>;
27
+ static getPayload(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): any;
28
+ }
29
+ //# sourceMappingURL=typed-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-data.d.ts","sourceRoot":"","sources":["../src.ts/typed-data.ts"],"names":[],"mappings":"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"}