starknet 5.19.3 → 5.19.4
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/CHANGELOG.md +7 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.global.js +205 -240
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +20 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.global.js
CHANGED
|
@@ -778,7 +778,7 @@ var starknet = (() => {
|
|
|
778
778
|
function utf8ToArray(str) {
|
|
779
779
|
return new TextEncoder().encode(str);
|
|
780
780
|
}
|
|
781
|
-
var pascalToSnake = (text) => text.split(/(?=[A-Z])/).join("_").toUpperCase();
|
|
781
|
+
var pascalToSnake = (text) => !/[a-z]/.test(text) ? text.split(/(?=[A-Z])/).join("_").toUpperCase() : text;
|
|
782
782
|
|
|
783
783
|
// src/constants.ts
|
|
784
784
|
var HEX_STR_TRANSACTION_VERSION_1 = "0x1";
|
|
@@ -3048,7 +3048,7 @@ var starknet = (() => {
|
|
|
3048
3048
|
var _1n = BigInt(1);
|
|
3049
3049
|
var _2n = BigInt(2);
|
|
3050
3050
|
var u8a = (a) => a instanceof Uint8Array;
|
|
3051
|
-
var hexes = Array.from({ length: 256 }, (
|
|
3051
|
+
var hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
|
|
3052
3052
|
function bytesToHex(bytes2) {
|
|
3053
3053
|
if (!u8a(bytes2))
|
|
3054
3054
|
throw new Error("Uint8Array expected");
|
|
@@ -3070,15 +3070,16 @@ var starknet = (() => {
|
|
|
3070
3070
|
function hexToBytes(hex) {
|
|
3071
3071
|
if (typeof hex !== "string")
|
|
3072
3072
|
throw new Error("hex string expected, got " + typeof hex);
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3073
|
+
const len = hex.length;
|
|
3074
|
+
if (len % 2)
|
|
3075
|
+
throw new Error("padded hex string expected, got unpadded hex of length " + len);
|
|
3076
|
+
const array = new Uint8Array(len / 2);
|
|
3076
3077
|
for (let i = 0; i < array.length; i++) {
|
|
3077
3078
|
const j = i * 2;
|
|
3078
3079
|
const hexByte = hex.slice(j, j + 2);
|
|
3079
3080
|
const byte = Number.parseInt(hexByte, 16);
|
|
3080
3081
|
if (Number.isNaN(byte) || byte < 0)
|
|
3081
|
-
throw new Error("
|
|
3082
|
+
throw new Error("Invalid byte sequence");
|
|
3082
3083
|
array[i] = byte;
|
|
3083
3084
|
}
|
|
3084
3085
|
return array;
|
|
@@ -3091,9 +3092,15 @@ var starknet = (() => {
|
|
|
3091
3092
|
throw new Error("Uint8Array expected");
|
|
3092
3093
|
return hexToNumber(bytesToHex(Uint8Array.from(bytes2).reverse()));
|
|
3093
3094
|
}
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3095
|
+
function numberToBytesBE(n, len) {
|
|
3096
|
+
return hexToBytes(n.toString(16).padStart(len * 2, "0"));
|
|
3097
|
+
}
|
|
3098
|
+
function numberToBytesLE(n, len) {
|
|
3099
|
+
return numberToBytesBE(n, len).reverse();
|
|
3100
|
+
}
|
|
3101
|
+
function numberToVarBytesBE(n) {
|
|
3102
|
+
return hexToBytes(numberToHexUnpadded(n));
|
|
3103
|
+
}
|
|
3097
3104
|
function ensureBytes(title, hex, expectedLength) {
|
|
3098
3105
|
let res;
|
|
3099
3106
|
if (typeof hex === "string") {
|
|
@@ -3112,10 +3119,10 @@ var starknet = (() => {
|
|
|
3112
3119
|
throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);
|
|
3113
3120
|
return res;
|
|
3114
3121
|
}
|
|
3115
|
-
function concatBytes(...
|
|
3116
|
-
const r = new Uint8Array(
|
|
3122
|
+
function concatBytes(...arrays) {
|
|
3123
|
+
const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));
|
|
3117
3124
|
let pad = 0;
|
|
3118
|
-
|
|
3125
|
+
arrays.forEach((a) => {
|
|
3119
3126
|
if (!u8a(a))
|
|
3120
3127
|
throw new Error("Uint8Array expected");
|
|
3121
3128
|
r.set(a, pad);
|
|
@@ -3132,10 +3139,9 @@ var starknet = (() => {
|
|
|
3132
3139
|
return true;
|
|
3133
3140
|
}
|
|
3134
3141
|
function utf8ToBytes(str) {
|
|
3135
|
-
if (typeof str !== "string")
|
|
3142
|
+
if (typeof str !== "string")
|
|
3136
3143
|
throw new Error(`utf8ToBytes expected string, got ${typeof str}`);
|
|
3137
|
-
|
|
3138
|
-
return new TextEncoder().encode(str);
|
|
3144
|
+
return new Uint8Array(new TextEncoder().encode(str));
|
|
3139
3145
|
}
|
|
3140
3146
|
function bitLen(n) {
|
|
3141
3147
|
let len;
|
|
@@ -3143,8 +3149,12 @@ var starknet = (() => {
|
|
|
3143
3149
|
;
|
|
3144
3150
|
return len;
|
|
3145
3151
|
}
|
|
3146
|
-
|
|
3147
|
-
|
|
3152
|
+
function bitGet(n, pos) {
|
|
3153
|
+
return n >> BigInt(pos) & _1n;
|
|
3154
|
+
}
|
|
3155
|
+
var bitSet = (n, pos, value) => {
|
|
3156
|
+
return n | (value ? _1n : _0n) << BigInt(pos);
|
|
3157
|
+
};
|
|
3148
3158
|
var bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;
|
|
3149
3159
|
var u8n = (data) => new Uint8Array(data);
|
|
3150
3160
|
var u8fr = (arr) => Uint8Array.from(arr);
|
|
@@ -3201,6 +3211,7 @@ var starknet = (() => {
|
|
|
3201
3211
|
function: (val) => typeof val === "function",
|
|
3202
3212
|
boolean: (val) => typeof val === "boolean",
|
|
3203
3213
|
string: (val) => typeof val === "string",
|
|
3214
|
+
stringOrUint8Array: (val) => typeof val === "string" || val instanceof Uint8Array,
|
|
3204
3215
|
isSafeInteger: (val) => Number.isSafeInteger(val),
|
|
3205
3216
|
array: (val) => Array.isArray(val),
|
|
3206
3217
|
field: (val, object) => object.Fp.isValid(val),
|
|
@@ -3305,12 +3316,12 @@ var starknet = (() => {
|
|
|
3305
3316
|
starknetKeccak: () => starknetKeccak
|
|
3306
3317
|
});
|
|
3307
3318
|
|
|
3308
|
-
// node_modules/
|
|
3319
|
+
// node_modules/@scure/starknet/lib/esm/index.js
|
|
3309
3320
|
var esm_exports = {};
|
|
3310
3321
|
__export(esm_exports, {
|
|
3311
3322
|
CURVE: () => CURVE,
|
|
3312
3323
|
Fp251: () => Fp251,
|
|
3313
|
-
|
|
3324
|
+
MAX_VALUE: () => MAX_VALUE,
|
|
3314
3325
|
ProjectivePoint: () => ProjectivePoint,
|
|
3315
3326
|
Signature: () => Signature,
|
|
3316
3327
|
_poseidonMDS: () => _poseidonMDS,
|
|
@@ -3322,7 +3333,6 @@ var starknet = (() => {
|
|
|
3322
3333
|
getSharedSecret: () => getSharedSecret,
|
|
3323
3334
|
getStarkKey: () => getStarkKey,
|
|
3324
3335
|
grindKey: () => grindKey,
|
|
3325
|
-
hashChain: () => hashChain,
|
|
3326
3336
|
keccak: () => keccak,
|
|
3327
3337
|
pedersen: () => pedersen,
|
|
3328
3338
|
poseidonBasic: () => poseidonBasic,
|
|
@@ -3342,15 +3352,11 @@ var starknet = (() => {
|
|
|
3342
3352
|
if (!Number.isSafeInteger(n) || n < 0)
|
|
3343
3353
|
throw new Error(`Wrong positive integer: ${n}`);
|
|
3344
3354
|
}
|
|
3345
|
-
function bool(b) {
|
|
3346
|
-
if (typeof b !== "boolean")
|
|
3347
|
-
throw new Error(`Expected boolean, not ${b}`);
|
|
3348
|
-
}
|
|
3349
3355
|
function bytes(b, ...lengths) {
|
|
3350
3356
|
if (!(b instanceof Uint8Array))
|
|
3351
|
-
throw new
|
|
3357
|
+
throw new Error("Expected Uint8Array");
|
|
3352
3358
|
if (lengths.length > 0 && !lengths.includes(b.length))
|
|
3353
|
-
throw new
|
|
3359
|
+
throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);
|
|
3354
3360
|
}
|
|
3355
3361
|
function hash(hash2) {
|
|
3356
3362
|
if (typeof hash2 !== "function" || typeof hash2.create !== "function")
|
|
@@ -3371,19 +3377,10 @@ var starknet = (() => {
|
|
|
3371
3377
|
throw new Error(`digestInto() expects output buffer of length at least ${min}`);
|
|
3372
3378
|
}
|
|
3373
3379
|
}
|
|
3374
|
-
var assert2 = {
|
|
3375
|
-
number,
|
|
3376
|
-
bool,
|
|
3377
|
-
bytes,
|
|
3378
|
-
hash,
|
|
3379
|
-
exists,
|
|
3380
|
-
output
|
|
3381
|
-
};
|
|
3382
|
-
var assert_default = assert2;
|
|
3383
3380
|
|
|
3384
3381
|
// node_modules/@noble/hashes/esm/_u64.js
|
|
3385
|
-
var U32_MASK64 = BigInt(2 ** 32 - 1);
|
|
3386
|
-
var _32n = BigInt(32);
|
|
3382
|
+
var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
|
|
3383
|
+
var _32n = /* @__PURE__ */ BigInt(32);
|
|
3387
3384
|
function fromBig(n, le = false) {
|
|
3388
3385
|
if (le)
|
|
3389
3386
|
return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) };
|
|
@@ -3398,92 +3395,44 @@ var starknet = (() => {
|
|
|
3398
3395
|
}
|
|
3399
3396
|
return [Ah, Al];
|
|
3400
3397
|
}
|
|
3401
|
-
var toBig = (h, l) => BigInt(h >>> 0) << _32n | BigInt(l >>> 0);
|
|
3402
|
-
var shrSH = (h, l, s) => h >>> s;
|
|
3403
|
-
var shrSL = (h, l, s) => h << 32 - s | l >>> s;
|
|
3404
|
-
var rotrSH = (h, l, s) => h >>> s | l << 32 - s;
|
|
3405
|
-
var rotrSL = (h, l, s) => h << 32 - s | l >>> s;
|
|
3406
|
-
var rotrBH = (h, l, s) => h << 64 - s | l >>> s - 32;
|
|
3407
|
-
var rotrBL = (h, l, s) => h >>> s - 32 | l << 64 - s;
|
|
3408
|
-
var rotr32H = (h, l) => l;
|
|
3409
|
-
var rotr32L = (h, l) => h;
|
|
3410
3398
|
var rotlSH = (h, l, s) => h << s | l >>> 32 - s;
|
|
3411
3399
|
var rotlSL = (h, l, s) => l << s | h >>> 32 - s;
|
|
3412
3400
|
var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s;
|
|
3413
3401
|
var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s;
|
|
3414
|
-
function add(Ah, Al, Bh, Bl) {
|
|
3415
|
-
const l = (Al >>> 0) + (Bl >>> 0);
|
|
3416
|
-
return { h: Ah + Bh + (l / 2 ** 32 | 0) | 0, l: l | 0 };
|
|
3417
|
-
}
|
|
3418
|
-
var add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);
|
|
3419
|
-
var add3H = (low, Ah, Bh, Ch) => Ah + Bh + Ch + (low / 2 ** 32 | 0) | 0;
|
|
3420
|
-
var add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);
|
|
3421
|
-
var add4H = (low, Ah, Bh, Ch, Dh) => Ah + Bh + Ch + Dh + (low / 2 ** 32 | 0) | 0;
|
|
3422
|
-
var add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
|
|
3423
|
-
var add5H = (low, Ah, Bh, Ch, Dh, Eh) => Ah + Bh + Ch + Dh + Eh + (low / 2 ** 32 | 0) | 0;
|
|
3424
|
-
var u64 = {
|
|
3425
|
-
fromBig,
|
|
3426
|
-
split,
|
|
3427
|
-
toBig,
|
|
3428
|
-
shrSH,
|
|
3429
|
-
shrSL,
|
|
3430
|
-
rotrSH,
|
|
3431
|
-
rotrSL,
|
|
3432
|
-
rotrBH,
|
|
3433
|
-
rotrBL,
|
|
3434
|
-
rotr32H,
|
|
3435
|
-
rotr32L,
|
|
3436
|
-
rotlSH,
|
|
3437
|
-
rotlSL,
|
|
3438
|
-
rotlBH,
|
|
3439
|
-
rotlBL,
|
|
3440
|
-
add,
|
|
3441
|
-
add3L,
|
|
3442
|
-
add3H,
|
|
3443
|
-
add4L,
|
|
3444
|
-
add4H,
|
|
3445
|
-
add5H,
|
|
3446
|
-
add5L
|
|
3447
|
-
};
|
|
3448
|
-
var u64_default = u64;
|
|
3449
3402
|
|
|
3450
3403
|
// node_modules/@noble/hashes/esm/crypto.js
|
|
3451
3404
|
var crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : void 0;
|
|
3452
3405
|
|
|
3453
3406
|
// node_modules/@noble/hashes/esm/utils.js
|
|
3407
|
+
var u8a2 = (a) => a instanceof Uint8Array;
|
|
3454
3408
|
var u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
|
|
3455
3409
|
var createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
|
|
3456
3410
|
var rotr = (word, shift) => word << 32 - shift | word >>> shift;
|
|
3457
3411
|
var isLE = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68;
|
|
3458
3412
|
if (!isLE)
|
|
3459
3413
|
throw new Error("Non little-endian hardware is not supported");
|
|
3460
|
-
var hexes2 = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, "0"));
|
|
3461
3414
|
function utf8ToBytes2(str) {
|
|
3462
|
-
if (typeof str !== "string")
|
|
3463
|
-
throw new
|
|
3464
|
-
|
|
3465
|
-
return new TextEncoder().encode(str);
|
|
3415
|
+
if (typeof str !== "string")
|
|
3416
|
+
throw new Error(`utf8ToBytes expected string, got ${typeof str}`);
|
|
3417
|
+
return new Uint8Array(new TextEncoder().encode(str));
|
|
3466
3418
|
}
|
|
3467
3419
|
function toBytes(data) {
|
|
3468
3420
|
if (typeof data === "string")
|
|
3469
3421
|
data = utf8ToBytes2(data);
|
|
3470
|
-
if (!(data
|
|
3471
|
-
throw new
|
|
3422
|
+
if (!u8a2(data))
|
|
3423
|
+
throw new Error(`expected Uint8Array, got ${typeof data}`);
|
|
3472
3424
|
return data;
|
|
3473
3425
|
}
|
|
3474
3426
|
function concatBytes2(...arrays) {
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
pad += arr.length;
|
|
3485
|
-
}
|
|
3486
|
-
return result;
|
|
3427
|
+
const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));
|
|
3428
|
+
let pad = 0;
|
|
3429
|
+
arrays.forEach((a) => {
|
|
3430
|
+
if (!u8a2(a))
|
|
3431
|
+
throw new Error("Uint8Array expected");
|
|
3432
|
+
r.set(a, pad);
|
|
3433
|
+
pad += a.length;
|
|
3434
|
+
});
|
|
3435
|
+
return r;
|
|
3487
3436
|
}
|
|
3488
3437
|
var Hash = class {
|
|
3489
3438
|
// Safe version that clones internal state
|
|
@@ -3491,15 +3440,16 @@ var starknet = (() => {
|
|
|
3491
3440
|
return this._cloneInto();
|
|
3492
3441
|
}
|
|
3493
3442
|
};
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
const
|
|
3443
|
+
var toStr = {}.toString;
|
|
3444
|
+
function wrapConstructor(hashCons) {
|
|
3445
|
+
const hashC = (msg) => hashCons().update(toBytes(msg)).digest();
|
|
3446
|
+
const tmp = hashCons();
|
|
3497
3447
|
hashC.outputLen = tmp.outputLen;
|
|
3498
3448
|
hashC.blockLen = tmp.blockLen;
|
|
3499
|
-
hashC.create = () =>
|
|
3449
|
+
hashC.create = () => hashCons();
|
|
3500
3450
|
return hashC;
|
|
3501
3451
|
}
|
|
3502
|
-
function
|
|
3452
|
+
function wrapXOFConstructorWithOpts(hashCons) {
|
|
3503
3453
|
const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();
|
|
3504
3454
|
const tmp = hashCons({});
|
|
3505
3455
|
hashC.outputLen = tmp.outputLen;
|
|
@@ -3516,12 +3466,12 @@ var starknet = (() => {
|
|
|
3516
3466
|
|
|
3517
3467
|
// node_modules/@noble/hashes/esm/sha3.js
|
|
3518
3468
|
var [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];
|
|
3519
|
-
var _0n2 = BigInt(0);
|
|
3520
|
-
var _1n2 = BigInt(1);
|
|
3521
|
-
var _2n2 = BigInt(2);
|
|
3522
|
-
var _7n = BigInt(7);
|
|
3523
|
-
var _256n = BigInt(256);
|
|
3524
|
-
var _0x71n = BigInt(113);
|
|
3469
|
+
var _0n2 = /* @__PURE__ */ BigInt(0);
|
|
3470
|
+
var _1n2 = /* @__PURE__ */ BigInt(1);
|
|
3471
|
+
var _2n2 = /* @__PURE__ */ BigInt(2);
|
|
3472
|
+
var _7n = /* @__PURE__ */ BigInt(7);
|
|
3473
|
+
var _256n = /* @__PURE__ */ BigInt(256);
|
|
3474
|
+
var _0x71n = /* @__PURE__ */ BigInt(113);
|
|
3525
3475
|
for (let round = 0, R = _1n2, x = 1, y = 0; round < 24; round++) {
|
|
3526
3476
|
[x, y] = [y, (2 * x + 3 * y) % 5];
|
|
3527
3477
|
SHA3_PI.push(2 * (5 * y + x));
|
|
@@ -3530,13 +3480,13 @@ var starknet = (() => {
|
|
|
3530
3480
|
for (let j = 0; j < 7; j++) {
|
|
3531
3481
|
R = (R << _1n2 ^ (R >> _7n) * _0x71n) % _256n;
|
|
3532
3482
|
if (R & _2n2)
|
|
3533
|
-
t ^= _1n2 << (_1n2 << BigInt(j)) - _1n2;
|
|
3483
|
+
t ^= _1n2 << (_1n2 << /* @__PURE__ */ BigInt(j)) - _1n2;
|
|
3534
3484
|
}
|
|
3535
3485
|
_SHA3_IOTA.push(t);
|
|
3536
3486
|
}
|
|
3537
|
-
var [SHA3_IOTA_H, SHA3_IOTA_L] =
|
|
3538
|
-
var rotlH = (h, l, s) => s > 32 ?
|
|
3539
|
-
var rotlL = (h, l, s) => s > 32 ?
|
|
3487
|
+
var [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);
|
|
3488
|
+
var rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s);
|
|
3489
|
+
var rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s);
|
|
3540
3490
|
function keccakP(s, rounds = 24) {
|
|
3541
3491
|
const B = new Uint32Array(5 * 2);
|
|
3542
3492
|
for (let round = 24 - rounds; round < 24; round++) {
|
|
@@ -3590,7 +3540,7 @@ var starknet = (() => {
|
|
|
3590
3540
|
this.posOut = 0;
|
|
3591
3541
|
this.finished = false;
|
|
3592
3542
|
this.destroyed = false;
|
|
3593
|
-
|
|
3543
|
+
number(outputLen);
|
|
3594
3544
|
if (0 >= this.blockLen || this.blockLen >= 200)
|
|
3595
3545
|
throw new Error("Sha3 supports only keccak-f1600 function");
|
|
3596
3546
|
this.state = new Uint8Array(200);
|
|
@@ -3602,7 +3552,7 @@ var starknet = (() => {
|
|
|
3602
3552
|
this.pos = 0;
|
|
3603
3553
|
}
|
|
3604
3554
|
update(data) {
|
|
3605
|
-
|
|
3555
|
+
exists(this);
|
|
3606
3556
|
const { blockLen, state } = this;
|
|
3607
3557
|
data = toBytes(data);
|
|
3608
3558
|
const len = data.length;
|
|
@@ -3627,8 +3577,8 @@ var starknet = (() => {
|
|
|
3627
3577
|
this.keccak();
|
|
3628
3578
|
}
|
|
3629
3579
|
writeInto(out) {
|
|
3630
|
-
|
|
3631
|
-
|
|
3580
|
+
exists(this, false);
|
|
3581
|
+
bytes(out);
|
|
3632
3582
|
this.finish();
|
|
3633
3583
|
const bufferOut = this.state;
|
|
3634
3584
|
const { blockLen } = this;
|
|
@@ -3648,11 +3598,11 @@ var starknet = (() => {
|
|
|
3648
3598
|
return this.writeInto(out);
|
|
3649
3599
|
}
|
|
3650
3600
|
xof(bytes2) {
|
|
3651
|
-
|
|
3601
|
+
number(bytes2);
|
|
3652
3602
|
return this.xofInto(new Uint8Array(bytes2));
|
|
3653
3603
|
}
|
|
3654
3604
|
digestInto(out) {
|
|
3655
|
-
|
|
3605
|
+
output(out, this);
|
|
3656
3606
|
if (this.finished)
|
|
3657
3607
|
throw new Error("digest() was already called");
|
|
3658
3608
|
this.writeInto(out);
|
|
@@ -3682,17 +3632,17 @@ var starknet = (() => {
|
|
|
3682
3632
|
}
|
|
3683
3633
|
};
|
|
3684
3634
|
var gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));
|
|
3685
|
-
var sha3_224 = gen(6, 144, 224 / 8);
|
|
3686
|
-
var sha3_256 = gen(6, 136, 256 / 8);
|
|
3687
|
-
var sha3_384 = gen(6, 104, 384 / 8);
|
|
3688
|
-
var sha3_512 = gen(6, 72, 512 / 8);
|
|
3689
|
-
var keccak_224 = gen(1, 144, 224 / 8);
|
|
3690
|
-
var keccak_256 = gen(1, 136, 256 / 8);
|
|
3691
|
-
var keccak_384 = gen(1, 104, 384 / 8);
|
|
3692
|
-
var keccak_512 = gen(1, 72, 512 / 8);
|
|
3693
|
-
var genShake = (suffix, blockLen, outputLen) =>
|
|
3694
|
-
var shake128 = genShake(31, 168, 128 / 8);
|
|
3695
|
-
var shake256 = genShake(31, 136, 256 / 8);
|
|
3635
|
+
var sha3_224 = /* @__PURE__ */ gen(6, 144, 224 / 8);
|
|
3636
|
+
var sha3_256 = /* @__PURE__ */ gen(6, 136, 256 / 8);
|
|
3637
|
+
var sha3_384 = /* @__PURE__ */ gen(6, 104, 384 / 8);
|
|
3638
|
+
var sha3_512 = /* @__PURE__ */ gen(6, 72, 512 / 8);
|
|
3639
|
+
var keccak_224 = /* @__PURE__ */ gen(1, 144, 224 / 8);
|
|
3640
|
+
var keccak_256 = /* @__PURE__ */ gen(1, 136, 256 / 8);
|
|
3641
|
+
var keccak_384 = /* @__PURE__ */ gen(1, 104, 384 / 8);
|
|
3642
|
+
var keccak_512 = /* @__PURE__ */ gen(1, 72, 512 / 8);
|
|
3643
|
+
var genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === void 0 ? outputLen : opts.dkLen, true));
|
|
3644
|
+
var shake128 = /* @__PURE__ */ genShake(31, 168, 128 / 8);
|
|
3645
|
+
var shake256 = /* @__PURE__ */ genShake(31, 136, 256 / 8);
|
|
3696
3646
|
|
|
3697
3647
|
// node_modules/@noble/hashes/esm/_sha2.js
|
|
3698
3648
|
function setBigUint64(view, byteOffset, value, isLE2) {
|
|
@@ -3722,7 +3672,7 @@ var starknet = (() => {
|
|
|
3722
3672
|
this.view = createView(this.buffer);
|
|
3723
3673
|
}
|
|
3724
3674
|
update(data) {
|
|
3725
|
-
|
|
3675
|
+
exists(this);
|
|
3726
3676
|
const { view, buffer, blockLen } = this;
|
|
3727
3677
|
data = toBytes(data);
|
|
3728
3678
|
const len = data.length;
|
|
@@ -3747,8 +3697,8 @@ var starknet = (() => {
|
|
|
3747
3697
|
return this;
|
|
3748
3698
|
}
|
|
3749
3699
|
digestInto(out) {
|
|
3750
|
-
|
|
3751
|
-
|
|
3700
|
+
exists(this);
|
|
3701
|
+
output(out, this);
|
|
3752
3702
|
this.finished = true;
|
|
3753
3703
|
const { buffer, view, blockLen, isLE: isLE2 } = this;
|
|
3754
3704
|
let { pos } = this;
|
|
@@ -3797,7 +3747,7 @@ var starknet = (() => {
|
|
|
3797
3747
|
// node_modules/@noble/hashes/esm/sha256.js
|
|
3798
3748
|
var Chi = (a, b, c) => a & b ^ ~a & c;
|
|
3799
3749
|
var Maj = (a, b, c) => a & b ^ a & c ^ b & c;
|
|
3800
|
-
var SHA256_K = new Uint32Array([
|
|
3750
|
+
var SHA256_K = /* @__PURE__ */ new Uint32Array([
|
|
3801
3751
|
1116352408,
|
|
3802
3752
|
1899447441,
|
|
3803
3753
|
3049323471,
|
|
@@ -3863,7 +3813,7 @@ var starknet = (() => {
|
|
|
3863
3813
|
3204031479,
|
|
3864
3814
|
3329325298
|
|
3865
3815
|
]);
|
|
3866
|
-
var IV = new Uint32Array([
|
|
3816
|
+
var IV = /* @__PURE__ */ new Uint32Array([
|
|
3867
3817
|
1779033703,
|
|
3868
3818
|
3144134277,
|
|
3869
3819
|
1013904242,
|
|
@@ -3873,7 +3823,7 @@ var starknet = (() => {
|
|
|
3873
3823
|
528734635,
|
|
3874
3824
|
1541459225
|
|
3875
3825
|
]);
|
|
3876
|
-
var SHA256_W = new Uint32Array(64);
|
|
3826
|
+
var SHA256_W = /* @__PURE__ */ new Uint32Array(64);
|
|
3877
3827
|
var SHA256 = class extends SHA2 {
|
|
3878
3828
|
constructor() {
|
|
3879
3829
|
super(64, 32, 8, false);
|
|
@@ -3944,22 +3894,7 @@ var starknet = (() => {
|
|
|
3944
3894
|
this.buffer.fill(0);
|
|
3945
3895
|
}
|
|
3946
3896
|
};
|
|
3947
|
-
var
|
|
3948
|
-
constructor() {
|
|
3949
|
-
super();
|
|
3950
|
-
this.A = 3238371032 | 0;
|
|
3951
|
-
this.B = 914150663 | 0;
|
|
3952
|
-
this.C = 812702999 | 0;
|
|
3953
|
-
this.D = 4144912697 | 0;
|
|
3954
|
-
this.E = 4290775857 | 0;
|
|
3955
|
-
this.F = 1750603025 | 0;
|
|
3956
|
-
this.G = 1694076839 | 0;
|
|
3957
|
-
this.H = 3204075428 | 0;
|
|
3958
|
-
this.outputLen = 28;
|
|
3959
|
-
}
|
|
3960
|
-
};
|
|
3961
|
-
var sha256 = wrapConstructor(() => new SHA256());
|
|
3962
|
-
var sha224 = wrapConstructor(() => new SHA224());
|
|
3897
|
+
var sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());
|
|
3963
3898
|
|
|
3964
3899
|
// node_modules/@noble/curves/esm/abstract/modular.js
|
|
3965
3900
|
var _0n3 = BigInt(0);
|
|
@@ -4150,7 +4085,7 @@ var starknet = (() => {
|
|
|
4150
4085
|
}
|
|
4151
4086
|
function Field(ORDER, bitLen2, isLE2 = false, redef = {}) {
|
|
4152
4087
|
if (ORDER <= _0n3)
|
|
4153
|
-
throw new Error(`Expected
|
|
4088
|
+
throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);
|
|
4154
4089
|
const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen2);
|
|
4155
4090
|
if (BYTES > 2048)
|
|
4156
4091
|
throw new Error("Field lengths over 2048 bytes are not supported");
|
|
@@ -4198,14 +4133,25 @@ var starknet = (() => {
|
|
|
4198
4133
|
});
|
|
4199
4134
|
return Object.freeze(f);
|
|
4200
4135
|
}
|
|
4201
|
-
function
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
const
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4136
|
+
function getFieldBytesLength(fieldOrder) {
|
|
4137
|
+
if (typeof fieldOrder !== "bigint")
|
|
4138
|
+
throw new Error("field order must be bigint");
|
|
4139
|
+
const bitLength = fieldOrder.toString(2).length;
|
|
4140
|
+
return Math.ceil(bitLength / 8);
|
|
4141
|
+
}
|
|
4142
|
+
function getMinHashLength(fieldOrder) {
|
|
4143
|
+
const length = getFieldBytesLength(fieldOrder);
|
|
4144
|
+
return length + Math.ceil(length / 2);
|
|
4145
|
+
}
|
|
4146
|
+
function mapHashToField(key, fieldOrder, isLE2 = false) {
|
|
4147
|
+
const len = key.length;
|
|
4148
|
+
const fieldLen = getFieldBytesLength(fieldOrder);
|
|
4149
|
+
const minLen = getMinHashLength(fieldOrder);
|
|
4150
|
+
if (len < 16 || len < minLen || len > 1024)
|
|
4151
|
+
throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);
|
|
4152
|
+
const num = isLE2 ? bytesToNumberBE(key) : bytesToNumberLE(key);
|
|
4153
|
+
const reduced = mod(num, fieldOrder - _1n3) + _1n3;
|
|
4154
|
+
return isLE2 ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);
|
|
4209
4155
|
}
|
|
4210
4156
|
|
|
4211
4157
|
// node_modules/@noble/curves/esm/abstract/poseidon.js
|
|
@@ -4216,43 +4162,17 @@ var starknet = (() => {
|
|
|
4216
4162
|
validateOpts: () => validateOpts
|
|
4217
4163
|
});
|
|
4218
4164
|
function validateOpts(opts) {
|
|
4219
|
-
const { Fp } = opts;
|
|
4165
|
+
const { Fp, mds, reversePartialPowIdx: rev, roundConstants: rc } = opts;
|
|
4166
|
+
const { roundsFull, roundsPartial, sboxPower, t } = opts;
|
|
4220
4167
|
validateField(Fp);
|
|
4221
4168
|
for (const i of ["t", "roundsFull", "roundsPartial"]) {
|
|
4222
4169
|
if (typeof opts[i] !== "number" || !Number.isSafeInteger(opts[i]))
|
|
4223
4170
|
throw new Error(`Poseidon: invalid param ${i}=${opts[i]} (${typeof opts[i]})`);
|
|
4224
4171
|
}
|
|
4225
|
-
if (
|
|
4226
|
-
throw new Error(`Poseidon: invalid param reversePartialPowIdx=${opts.reversePartialPowIdx}`);
|
|
4227
|
-
let sboxPower = opts.sboxPower;
|
|
4228
|
-
if (sboxPower === void 0)
|
|
4229
|
-
sboxPower = 5;
|
|
4230
|
-
if (typeof sboxPower !== "number" || !Number.isSafeInteger(sboxPower))
|
|
4231
|
-
throw new Error(`Poseidon wrong sboxPower=${sboxPower}`);
|
|
4232
|
-
const _sboxPower = BigInt(sboxPower);
|
|
4233
|
-
let sboxFn = (n) => FpPow(Fp, n, _sboxPower);
|
|
4234
|
-
if (sboxPower === 3)
|
|
4235
|
-
sboxFn = (n) => Fp.mul(Fp.sqrN(n), n);
|
|
4236
|
-
else if (sboxPower === 5)
|
|
4237
|
-
sboxFn = (n) => Fp.mul(Fp.sqrN(Fp.sqrN(n)), n);
|
|
4238
|
-
if (opts.roundsFull % 2 !== 0)
|
|
4239
|
-
throw new Error(`Poseidon roundsFull is not even: ${opts.roundsFull}`);
|
|
4240
|
-
const rounds = opts.roundsFull + opts.roundsPartial;
|
|
4241
|
-
if (!Array.isArray(opts.roundConstants) || opts.roundConstants.length !== rounds)
|
|
4242
|
-
throw new Error("Poseidon: wrong round constants");
|
|
4243
|
-
const roundConstants = opts.roundConstants.map((rc) => {
|
|
4244
|
-
if (!Array.isArray(rc) || rc.length !== opts.t)
|
|
4245
|
-
throw new Error(`Poseidon wrong round constants: ${rc}`);
|
|
4246
|
-
return rc.map((i) => {
|
|
4247
|
-
if (typeof i !== "bigint" || !Fp.isValid(i))
|
|
4248
|
-
throw new Error(`Poseidon wrong round constant=${i}`);
|
|
4249
|
-
return Fp.create(i);
|
|
4250
|
-
});
|
|
4251
|
-
});
|
|
4252
|
-
if (!Array.isArray(opts.mds) || opts.mds.length !== opts.t)
|
|
4172
|
+
if (!Array.isArray(mds) || mds.length !== t)
|
|
4253
4173
|
throw new Error("Poseidon: wrong MDS matrix");
|
|
4254
|
-
const
|
|
4255
|
-
if (!Array.isArray(mdsRow) || mdsRow.length !==
|
|
4174
|
+
const _mds = mds.map((mdsRow) => {
|
|
4175
|
+
if (!Array.isArray(mdsRow) || mdsRow.length !== t)
|
|
4256
4176
|
throw new Error(`Poseidon MDS matrix row: ${mdsRow}`);
|
|
4257
4177
|
return mdsRow.map((i) => {
|
|
4258
4178
|
if (typeof i !== "bigint")
|
|
@@ -4260,7 +4180,31 @@ var starknet = (() => {
|
|
|
4260
4180
|
return Fp.create(i);
|
|
4261
4181
|
});
|
|
4262
4182
|
});
|
|
4263
|
-
|
|
4183
|
+
if (rev !== void 0 && typeof rev !== "boolean")
|
|
4184
|
+
throw new Error(`Poseidon: invalid param reversePartialPowIdx=${rev}`);
|
|
4185
|
+
if (roundsFull % 2 !== 0)
|
|
4186
|
+
throw new Error(`Poseidon roundsFull is not even: ${roundsFull}`);
|
|
4187
|
+
const rounds = roundsFull + roundsPartial;
|
|
4188
|
+
if (!Array.isArray(rc) || rc.length !== rounds)
|
|
4189
|
+
throw new Error("Poseidon: wrong round constants");
|
|
4190
|
+
const roundConstants = rc.map((rc2) => {
|
|
4191
|
+
if (!Array.isArray(rc2) || rc2.length !== t)
|
|
4192
|
+
throw new Error(`Poseidon wrong round constants: ${rc2}`);
|
|
4193
|
+
return rc2.map((i) => {
|
|
4194
|
+
if (typeof i !== "bigint" || !Fp.isValid(i))
|
|
4195
|
+
throw new Error(`Poseidon wrong round constant=${i}`);
|
|
4196
|
+
return Fp.create(i);
|
|
4197
|
+
});
|
|
4198
|
+
});
|
|
4199
|
+
if (!sboxPower || ![3, 5, 7].includes(sboxPower))
|
|
4200
|
+
throw new Error(`Poseidon wrong sboxPower=${sboxPower}`);
|
|
4201
|
+
const _sboxPower = BigInt(sboxPower);
|
|
4202
|
+
let sboxFn = (n) => FpPow(Fp, n, _sboxPower);
|
|
4203
|
+
if (sboxPower === 3)
|
|
4204
|
+
sboxFn = (n) => Fp.mul(Fp.sqrN(n), n);
|
|
4205
|
+
else if (sboxPower === 5)
|
|
4206
|
+
sboxFn = (n) => Fp.mul(Fp.sqrN(Fp.sqrN(n)), n);
|
|
4207
|
+
return Object.freeze({ ...opts, rounds, sboxFn, roundConstants, mds: _mds });
|
|
4264
4208
|
}
|
|
4265
4209
|
function splitConstants(rc, t) {
|
|
4266
4210
|
if (typeof t !== "number")
|
|
@@ -4279,16 +4223,17 @@ var starknet = (() => {
|
|
|
4279
4223
|
return res;
|
|
4280
4224
|
}
|
|
4281
4225
|
function poseidon(opts) {
|
|
4282
|
-
const
|
|
4283
|
-
const
|
|
4284
|
-
const
|
|
4226
|
+
const _opts = validateOpts(opts);
|
|
4227
|
+
const { Fp, mds, roundConstants, rounds, roundsPartial, sboxFn, t } = _opts;
|
|
4228
|
+
const halfRoundsFull = _opts.roundsFull / 2;
|
|
4229
|
+
const partialIdx = _opts.reversePartialPowIdx ? t - 1 : 0;
|
|
4285
4230
|
const poseidonRound = (values, isFull, idx) => {
|
|
4286
|
-
values = values.map((i, j) => Fp.add(i,
|
|
4231
|
+
values = values.map((i, j) => Fp.add(i, roundConstants[idx][j]));
|
|
4287
4232
|
if (isFull)
|
|
4288
4233
|
values = values.map((i) => sboxFn(i));
|
|
4289
4234
|
else
|
|
4290
4235
|
values[partialIdx] = sboxFn(values[partialIdx]);
|
|
4291
|
-
values =
|
|
4236
|
+
values = mds.map((i) => i.reduce((acc, i2, j) => Fp.add(acc, Fp.mulN(i2, values[j])), Fp.ZERO));
|
|
4292
4237
|
return values;
|
|
4293
4238
|
};
|
|
4294
4239
|
const poseidonHash2 = function poseidonHash3(values) {
|
|
@@ -4302,7 +4247,7 @@ var starknet = (() => {
|
|
|
4302
4247
|
let round = 0;
|
|
4303
4248
|
for (let i = 0; i < halfRoundsFull; i++)
|
|
4304
4249
|
values = poseidonRound(values, true, round++);
|
|
4305
|
-
for (let i = 0; i <
|
|
4250
|
+
for (let i = 0; i < roundsPartial; i++)
|
|
4306
4251
|
values = poseidonRound(values, false, round++);
|
|
4307
4252
|
for (let i = 0; i < halfRoundsFull; i++)
|
|
4308
4253
|
values = poseidonRound(values, true, round++);
|
|
@@ -4310,7 +4255,7 @@ var starknet = (() => {
|
|
|
4310
4255
|
throw new Error(`Poseidon: wrong number of rounds: last round=${round}, total=${rounds}`);
|
|
4311
4256
|
return values;
|
|
4312
4257
|
};
|
|
4313
|
-
poseidonHash2.roundConstants =
|
|
4258
|
+
poseidonHash2.roundConstants = roundConstants;
|
|
4314
4259
|
return poseidonHash2;
|
|
4315
4260
|
}
|
|
4316
4261
|
|
|
@@ -4529,7 +4474,7 @@ var starknet = (() => {
|
|
|
4529
4474
|
function weierstrassPoints(opts) {
|
|
4530
4475
|
const CURVE2 = validatePointOpts(opts);
|
|
4531
4476
|
const { Fp } = CURVE2;
|
|
4532
|
-
const toBytes2 = CURVE2.toBytes || ((
|
|
4477
|
+
const toBytes2 = CURVE2.toBytes || ((_c, point, _isCompressed) => {
|
|
4533
4478
|
const a = point.toAffine();
|
|
4534
4479
|
return concatBytes(Uint8Array.from([4]), Fp.toBytes(a.x), Fp.toBytes(a.y));
|
|
4535
4480
|
});
|
|
@@ -4641,7 +4586,7 @@ var starknet = (() => {
|
|
|
4641
4586
|
// A point on curve is valid if it conforms to equation.
|
|
4642
4587
|
assertValidity() {
|
|
4643
4588
|
if (this.is0()) {
|
|
4644
|
-
if (CURVE2.allowInfinityPoint)
|
|
4589
|
+
if (CURVE2.allowInfinityPoint && !Fp.is0(this.py))
|
|
4645
4590
|
return;
|
|
4646
4591
|
throw new Error("bad point: ZERO");
|
|
4647
4592
|
}
|
|
@@ -4944,7 +4889,7 @@ var starknet = (() => {
|
|
|
4944
4889
|
}
|
|
4945
4890
|
const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder } = weierstrassPoints({
|
|
4946
4891
|
...CURVE2,
|
|
4947
|
-
toBytes(
|
|
4892
|
+
toBytes(_c, point, isCompressed) {
|
|
4948
4893
|
const a = point.toAffine();
|
|
4949
4894
|
const x = Fp.toBytes(a.x);
|
|
4950
4895
|
const cat = concatBytes;
|
|
@@ -5067,13 +5012,12 @@ var starknet = (() => {
|
|
|
5067
5012
|
},
|
|
5068
5013
|
normPrivateKeyToScalar,
|
|
5069
5014
|
/**
|
|
5070
|
-
* Produces cryptographically secure private key from random of size
|
|
5071
|
-
*
|
|
5015
|
+
* Produces cryptographically secure private key from random of size
|
|
5016
|
+
* (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.
|
|
5072
5017
|
*/
|
|
5073
5018
|
randomPrivateKey: () => {
|
|
5074
|
-
const
|
|
5075
|
-
|
|
5076
|
-
return numberToBytesBE(num, CURVE2.nByteLength);
|
|
5019
|
+
const length = getMinHashLength(CURVE2.n);
|
|
5020
|
+
return mapHashToField(CURVE2.randomBytes(length), CURVE2.n);
|
|
5077
5021
|
},
|
|
5078
5022
|
/**
|
|
5079
5023
|
* Creates precompute table for an arbitrary EC point. Makes point "cached".
|
|
@@ -5143,7 +5087,7 @@ var starknet = (() => {
|
|
|
5143
5087
|
const seedArgs = [int2octets(d), int2octets(h1int)];
|
|
5144
5088
|
if (ent != null) {
|
|
5145
5089
|
const e = ent === true ? randomBytes2(Fp.BYTES) : ent;
|
|
5146
|
-
seedArgs.push(ensureBytes("extraEntropy", e
|
|
5090
|
+
seedArgs.push(ensureBytes("extraEntropy", e));
|
|
5147
5091
|
}
|
|
5148
5092
|
const seed = concatBytes(...seedArgs);
|
|
5149
5093
|
const m = h1int;
|
|
@@ -5173,7 +5117,8 @@ var starknet = (() => {
|
|
|
5173
5117
|
const defaultVerOpts = { lowS: CURVE2.lowS, prehash: false };
|
|
5174
5118
|
function sign2(msgHash, privKey, opts = defaultSigOpts) {
|
|
5175
5119
|
const { seed, k2sig } = prepSig(msgHash, privKey, opts);
|
|
5176
|
-
const
|
|
5120
|
+
const C = CURVE2;
|
|
5121
|
+
const drbg = createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);
|
|
5177
5122
|
return drbg(seed, k2sig);
|
|
5178
5123
|
}
|
|
5179
5124
|
Point.BASE._setWindowSize(8);
|
|
@@ -5239,10 +5184,12 @@ var starknet = (() => {
|
|
|
5239
5184
|
for (let o = q - _1n5; o % _2n4 === _0n5; o /= _2n4)
|
|
5240
5185
|
l += _1n5;
|
|
5241
5186
|
const c1 = l;
|
|
5242
|
-
const
|
|
5187
|
+
const _2n_pow_c1_1 = _2n4 << c1 - _1n5 - _1n5;
|
|
5188
|
+
const _2n_pow_c1 = _2n_pow_c1_1 * _2n4;
|
|
5189
|
+
const c2 = (q - _1n5) / _2n_pow_c1;
|
|
5243
5190
|
const c3 = (c2 - _1n5) / _2n4;
|
|
5244
|
-
const c4 =
|
|
5245
|
-
const c5 =
|
|
5191
|
+
const c4 = _2n_pow_c1 - _1n5;
|
|
5192
|
+
const c5 = _2n_pow_c1_1;
|
|
5246
5193
|
const c6 = Fp.pow(Z, c2);
|
|
5247
5194
|
const c7 = Fp.pow(Z, (c2 + _1n5) / _2n4);
|
|
5248
5195
|
let sqrtRatio = (u, v) => {
|
|
@@ -5263,7 +5210,8 @@ var starknet = (() => {
|
|
|
5263
5210
|
tv3 = Fp.cmov(tv2, tv3, isQR);
|
|
5264
5211
|
tv4 = Fp.cmov(tv5, tv4, isQR);
|
|
5265
5212
|
for (let i = c1; i > _1n5; i--) {
|
|
5266
|
-
let tv52 =
|
|
5213
|
+
let tv52 = i - _2n4;
|
|
5214
|
+
tv52 = _2n4 << tv52 - _1n5;
|
|
5267
5215
|
let tvv5 = Fp.pow(tv4, tv52);
|
|
5268
5216
|
const e1 = Fp.eql(tvv5, Fp.ONE);
|
|
5269
5217
|
tv2 = Fp.mul(tv3, tv1);
|
|
@@ -5336,11 +5284,11 @@ var starknet = (() => {
|
|
|
5336
5284
|
super();
|
|
5337
5285
|
this.finished = false;
|
|
5338
5286
|
this.destroyed = false;
|
|
5339
|
-
|
|
5287
|
+
hash(hash2);
|
|
5340
5288
|
const key = toBytes(_key);
|
|
5341
5289
|
this.iHash = hash2.create();
|
|
5342
5290
|
if (typeof this.iHash.update !== "function")
|
|
5343
|
-
throw new
|
|
5291
|
+
throw new Error("Expected instance of class which extends utils.Hash");
|
|
5344
5292
|
this.blockLen = this.iHash.blockLen;
|
|
5345
5293
|
this.outputLen = this.iHash.outputLen;
|
|
5346
5294
|
const blockLen = this.blockLen;
|
|
@@ -5356,13 +5304,13 @@ var starknet = (() => {
|
|
|
5356
5304
|
pad.fill(0);
|
|
5357
5305
|
}
|
|
5358
5306
|
update(buf) {
|
|
5359
|
-
|
|
5307
|
+
exists(this);
|
|
5360
5308
|
this.iHash.update(buf);
|
|
5361
5309
|
return this;
|
|
5362
5310
|
}
|
|
5363
5311
|
digestInto(out) {
|
|
5364
|
-
|
|
5365
|
-
|
|
5312
|
+
exists(this);
|
|
5313
|
+
bytes(out, this.outputLen);
|
|
5366
5314
|
this.finished = true;
|
|
5367
5315
|
this.iHash.digestInto(out);
|
|
5368
5316
|
this.oHash.update(out);
|
|
@@ -5404,8 +5352,9 @@ var starknet = (() => {
|
|
|
5404
5352
|
};
|
|
5405
5353
|
}
|
|
5406
5354
|
|
|
5407
|
-
// node_modules/
|
|
5355
|
+
// node_modules/@scure/starknet/lib/esm/index.js
|
|
5408
5356
|
var CURVE_ORDER = BigInt("3618502788666131213697322783095070105526743751716087489154079457884512865583");
|
|
5357
|
+
var MAX_VALUE = BigInt("0x800000000000000000000000000000000000000000000000000000000000000");
|
|
5409
5358
|
var nBitLength = 252;
|
|
5410
5359
|
function bits2int(bytes2) {
|
|
5411
5360
|
while (bytes2[0] === 0)
|
|
@@ -5454,12 +5403,39 @@ var starknet = (() => {
|
|
|
5454
5403
|
function getSharedSecret(privKeyA, pubKeyB) {
|
|
5455
5404
|
return curve.getSharedSecret(normPrivKey(privKeyA), pubKeyB);
|
|
5456
5405
|
}
|
|
5406
|
+
function checkSignature(signature) {
|
|
5407
|
+
const { r, s } = signature;
|
|
5408
|
+
if (r < 0n || r >= MAX_VALUE)
|
|
5409
|
+
throw new Error(`Signature.r should be [1, ${MAX_VALUE})`);
|
|
5410
|
+
const w = invert(s, CURVE_ORDER);
|
|
5411
|
+
if (w < 0n || w >= MAX_VALUE)
|
|
5412
|
+
throw new Error(`inv(Signature.s) should be [1, ${MAX_VALUE})`);
|
|
5413
|
+
}
|
|
5414
|
+
function checkMessage(msgHash) {
|
|
5415
|
+
const bytes2 = ensureBytes2(msgHash);
|
|
5416
|
+
const num = bytesToNumberBE(bytes2);
|
|
5417
|
+
if (num >= MAX_VALUE)
|
|
5418
|
+
throw new Error(`msgHash should be [0, ${MAX_VALUE})`);
|
|
5419
|
+
return bytes2;
|
|
5420
|
+
}
|
|
5457
5421
|
function sign(msgHash, privKey, opts) {
|
|
5458
|
-
|
|
5422
|
+
const sig = curve.sign(checkMessage(msgHash), normPrivKey(privKey), opts);
|
|
5423
|
+
checkSignature(sig);
|
|
5424
|
+
return sig;
|
|
5459
5425
|
}
|
|
5460
5426
|
function verify(signature, msgHash, pubKey) {
|
|
5461
|
-
|
|
5462
|
-
|
|
5427
|
+
if (!(signature instanceof Signature)) {
|
|
5428
|
+
const bytes2 = ensureBytes2(signature);
|
|
5429
|
+
try {
|
|
5430
|
+
signature = Signature.fromDER(bytes2);
|
|
5431
|
+
} catch (derError) {
|
|
5432
|
+
if (!(derError instanceof DER.Err))
|
|
5433
|
+
throw derError;
|
|
5434
|
+
signature = Signature.fromCompact(bytes2);
|
|
5435
|
+
}
|
|
5436
|
+
}
|
|
5437
|
+
checkSignature(signature);
|
|
5438
|
+
return curve.verify(signature, checkMessage(msgHash), ensureBytes2(pubKey));
|
|
5463
5439
|
}
|
|
5464
5440
|
var { CURVE, ProjectivePoint, Signature, utils } = curve;
|
|
5465
5441
|
function extractX(bytes2) {
|
|
@@ -5470,9 +5446,6 @@ var starknet = (() => {
|
|
|
5470
5446
|
function strip0x(hex) {
|
|
5471
5447
|
return hex.replace(/^0x/i, "");
|
|
5472
5448
|
}
|
|
5473
|
-
function numberTo0x16(num) {
|
|
5474
|
-
return `0x${num.toString(16)}`;
|
|
5475
|
-
}
|
|
5476
5449
|
function grindKey(seed) {
|
|
5477
5450
|
const _seed = ensureBytes2(seed);
|
|
5478
5451
|
const sha256mask = 2n ** 256n;
|
|
@@ -5558,18 +5531,10 @@ var starknet = (() => {
|
|
|
5558
5531
|
point = pedersenSingle(point, y, PEDERSEN_POINTS2);
|
|
5559
5532
|
return extractX(point.toRawBytes(true));
|
|
5560
5533
|
}
|
|
5561
|
-
function hashChain(data, fn = pedersen) {
|
|
5562
|
-
if (!Array.isArray(data) || data.length < 1)
|
|
5563
|
-
throw new Error("data should be array of at least 1 element");
|
|
5564
|
-
if (data.length === 1)
|
|
5565
|
-
return numberTo0x16(pedersenArg(data[0]));
|
|
5566
|
-
return Array.from(data).reverse().reduce((acc, i) => fn(i, acc));
|
|
5567
|
-
}
|
|
5568
5534
|
var computeHashOnElements = (data, fn = pedersen) => [0, ...data, data.length].reduce((x, y) => fn(x, y));
|
|
5569
5535
|
var MASK_2502 = bitMask(250);
|
|
5570
5536
|
var keccak = (data) => bytesToNumberBE(keccak_256(data)) & MASK_2502;
|
|
5571
5537
|
var sha256Num = (data) => bytesToNumberBE(sha256(data));
|
|
5572
|
-
var Fp253 = Field(BigInt("14474011154664525231415395255581126252639794253786371766033694892385558855681"));
|
|
5573
5538
|
var Fp251 = Field(BigInt("3618502788666131213697322783095070105623107215331596699973092056135872020481"));
|
|
5574
5539
|
function poseidonRoundConstant(Fp, name, idx) {
|
|
5575
5540
|
const val = Fp.fromBytes(sha256(utf8ToBytes2(`${name}${idx}`)));
|
|
@@ -6228,10 +6193,6 @@ var starknet = (() => {
|
|
|
6228
6193
|
if (isTypeEthAddress(abiType)) {
|
|
6229
6194
|
return unorderedItem;
|
|
6230
6195
|
}
|
|
6231
|
-
if (isTypeStruct(abiType, structs)) {
|
|
6232
|
-
const abiOfStruct = structs[abiType].members;
|
|
6233
|
-
return orderStruct(unorderedItem, abiOfStruct);
|
|
6234
|
-
}
|
|
6235
6196
|
if (isTypeUint256(abiType)) {
|
|
6236
6197
|
const u256 = unorderedItem;
|
|
6237
6198
|
if (typeof u256 !== "object") {
|
|
@@ -6242,6 +6203,10 @@ var starknet = (() => {
|
|
|
6242
6203
|
}
|
|
6243
6204
|
return { low: u256.low, high: u256.high };
|
|
6244
6205
|
}
|
|
6206
|
+
if (isTypeStruct(abiType, structs)) {
|
|
6207
|
+
const abiOfStruct = structs[abiType].members;
|
|
6208
|
+
return orderStruct(unorderedItem, abiOfStruct);
|
|
6209
|
+
}
|
|
6245
6210
|
return unorderedItem;
|
|
6246
6211
|
};
|
|
6247
6212
|
const orderStruct = (unorderedObject2, abiObject) => {
|