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