forked from argentlabs/argent-x
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstarknet+4.21.0.patch
83 lines (81 loc) · 3.12 KB
/
starknet+4.21.0.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
diff --git a/node_modules/starknet/dist/index.js b/node_modules/starknet/dist/index.js
index 6f50706..b384ddf 100644
--- a/node_modules/starknet/dist/index.js
+++ b/node_modules/starknet/dist/index.js
@@ -88,6 +88,7 @@ __export(hash_exports, {
});
var import_keccak = require("ethereum-cryptography/keccak.js");
var import_utils = require("ethereum-cryptography/utils.js");
+var import_micro_starknet = __toESM(require("micro-starknet"));
var import_minimalistic_assert3 = __toESM(require("minimalistic-assert"));
// src/constants.ts
@@ -2425,26 +2426,9 @@ function getSelector(value) {
}
return getSelectorFromName(value);
}
-var constantPoints = CONSTANT_POINTS.map(
- (coords) => ec.curve.point(coords[0], coords[1])
-);
function pedersen(input) {
- let point = constantPoints[0];
- for (let i = 0; i < input.length; i += 1) {
- let x = toBN(input[i]);
- (0, import_minimalistic_assert3.default)(x.gte(ZERO) && x.lt(toBN(addHexPrefix(FIELD_PRIME))), `Invalid input: ${input[i]}`);
- if (!x.isZero()) {
- for (let j = 0; j < 252; j += 1) {
- const pt = constantPoints[2 + i * 252 + j];
- (0, import_minimalistic_assert3.default)(!point.getX().eq(pt.getX()));
- if (x.and(ONE).toNumber() !== 0) {
- point = point.add(pt);
- }
- x = x.shrn(1);
- }
- }
- }
- return addHexPrefix(point.getX().toString(16));
+ var i = input.map((x) =>toBN(x)).map((x) => toHex(x));
+ return addHexPrefix(((0, import_micro_starknet.pedersen)(i[0], i[1])));
}
function computeHashOnElements(data) {
return [...data, data.length].reduce((x, y) => pedersen([x, y]), 0).toString();
diff --git a/node_modules/starknet/dist/index.mjs b/node_modules/starknet/dist/index.mjs
index 2c713c3..93b01e6 100644
--- a/node_modules/starknet/dist/index.mjs
+++ b/node_modules/starknet/dist/index.mjs
@@ -31,7 +31,7 @@ __export(hash_exports, {
});
import { keccak256 } from "ethereum-cryptography/keccak.js";
import { hexToBytes } from "ethereum-cryptography/utils.js";
-import assert3 from "minimalistic-assert";
+import { pedersen as microPedersen } from "micro-starknet"
// src/constants.ts
var constants_exports = {};
@@ -2368,26 +2368,9 @@ function getSelector(value) {
}
return getSelectorFromName(value);
}
-var constantPoints = CONSTANT_POINTS.map(
- (coords) => ec.curve.point(coords[0], coords[1])
-);
function pedersen(input) {
- let point = constantPoints[0];
- for (let i = 0; i < input.length; i += 1) {
- let x = toBN(input[i]);
- assert3(x.gte(ZERO) && x.lt(toBN(addHexPrefix(FIELD_PRIME))), `Invalid input: ${input[i]}`);
- if (!x.isZero()) {
- for (let j = 0; j < 252; j += 1) {
- const pt = constantPoints[2 + i * 252 + j];
- assert3(!point.getX().eq(pt.getX()));
- if (x.and(ONE).toNumber() !== 0) {
- point = point.add(pt);
- }
- x = x.shrn(1);
- }
- }
- }
- return addHexPrefix(point.getX().toString(16));
+ const i = input.map(x => toBN(x)).map(toHex);
+ return addHexPrefix(microPedersen(i[0], i[1]));
}
function computeHashOnElements(data) {
return [...data, data.length].reduce((x, y) => pedersen([x, y]), 0).toString();