@aztec/foundation 0.0.1-commit.d3ec352c → 0.0.1-commit.fcb71a6
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/dest/array/index.d.ts +2 -1
- package/dest/array/index.d.ts.map +1 -1
- package/dest/array/index.js +1 -0
- package/dest/array/sorted_array.d.ts +10 -0
- package/dest/array/sorted_array.d.ts.map +1 -0
- package/dest/array/sorted_array.js +106 -0
- package/dest/buffer/buffer16.d.ts +2 -2
- package/dest/buffer/buffer16.d.ts.map +1 -1
- package/dest/buffer/buffer16.js +1 -1
- package/dest/buffer/buffer32.d.ts +2 -2
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +1 -1
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +10 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +16 -2
- package/dest/config/network_config.d.ts +13 -1
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +3 -1
- package/dest/crypto/bls/bn254_keystore.js +1 -1
- package/dest/crypto/bls/index.js +1 -1
- package/dest/crypto/bn254/index.d.ts +35 -51
- package/dest/crypto/bn254/index.d.ts.map +1 -1
- package/dest/crypto/bn254/index.js +51 -140
- package/dest/crypto/ecdsa/signature.d.ts +2 -2
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/ecdsa/signature.js +2 -2
- package/dest/crypto/grumpkin/index.d.ts +4 -2
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +2 -1
- package/dest/crypto/keys/index.d.ts +2 -2
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +1 -1
- package/dest/crypto/poseidon/index.d.ts +2 -2
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +1 -1
- package/dest/crypto/schnorr/index.d.ts +3 -2
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +1 -1
- package/dest/crypto/schnorr/signature.d.ts +2 -2
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +2 -2
- package/dest/crypto/sha256/index.d.ts +2 -2
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +1 -1
- package/dest/crypto/sha512/index.d.ts +2 -2
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/sha512/index.js +1 -1
- package/dest/crypto/signature/index.d.ts +2 -2
- package/dest/crypto/signature/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.d.ts +2 -2
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +1 -1
- package/dest/crypto/sync/poseidon/index.d.ts +2 -2
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +1 -1
- package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -0
- package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +6 -6
- package/dest/curves/bls12/index.d.ts +3 -0
- package/dest/curves/bls12/index.d.ts.map +1 -0
- package/dest/curves/bls12/index.js +2 -0
- package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +4 -4
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/{fields/bls12_point.js → curves/bls12/point.js} +7 -7
- package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +7 -15
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/{fields/fields.js → curves/bn254/field.js} +30 -47
- package/dest/curves/bn254/index.d.ts +3 -0
- package/dest/curves/bn254/index.d.ts.map +1 -0
- package/dest/curves/bn254/index.js +2 -0
- package/dest/curves/bn254/point.d.ts +54 -0
- package/dest/curves/bn254/point.d.ts.map +1 -0
- package/dest/curves/bn254/point.js +143 -0
- package/dest/curves/grumpkin/index.d.ts +10 -0
- package/dest/curves/grumpkin/index.d.ts.map +1 -0
- package/dest/curves/grumpkin/index.js +3 -0
- package/dest/{fields → curves/grumpkin}/point.d.ts +3 -3
- package/dest/curves/grumpkin/point.d.ts.map +1 -0
- package/dest/{fields → curves/grumpkin}/point.js +7 -7
- package/dest/eth-address/index.d.ts +3 -2
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +6 -1
- package/dest/iterator/filter.d.ts +3 -0
- package/dest/iterator/filter.d.ts.map +1 -0
- package/dest/iterator/filter.js +7 -0
- package/dest/iterator/index.d.ts +2 -0
- package/dest/iterator/index.d.ts.map +1 -0
- package/dest/iterator/index.js +1 -0
- package/dest/schemas/schemas.d.ts +7 -3
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +9 -3
- package/dest/schemas/types.d.ts +31 -1
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/types.js +25 -1
- package/dest/serialize/field_reader.d.ts +2 -2
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +1 -1
- package/dest/serialize/free_funcs.d.ts +2 -2
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +1 -1
- package/dest/serialize/serialize.d.ts +2 -2
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +1 -1
- package/dest/sleep/index.d.ts +3 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +4 -0
- package/dest/timer/date.d.ts +2 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +3 -0
- package/dest/trees/balanced_merkle_tree.d.ts +1 -1
- package/dest/trees/balanced_merkle_tree.d.ts.map +1 -1
- package/dest/trees/balanced_merkle_tree.js +3 -1
- package/dest/trees/indexed_merkle_tree.js +1 -1
- package/dest/trees/membership_witness.d.ts +2 -2
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +1 -1
- package/dest/trees/merkle_tree_calculator.js +1 -1
- package/dest/trees/sibling_path.d.ts +2 -2
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +2 -2
- package/dest/types/index.d.ts +3 -1
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +3 -0
- package/package.json +23 -5
- package/src/array/index.ts +1 -0
- package/src/array/sorted_array.ts +133 -0
- package/src/buffer/buffer16.ts +2 -2
- package/src/buffer/buffer32.ts +2 -2
- package/src/config/env_var.ts +16 -6
- package/src/config/index.ts +20 -2
- package/src/config/network_config.ts +2 -0
- package/src/crypto/bls/bn254_keystore.ts +1 -1
- package/src/crypto/bls/index.ts +1 -1
- package/src/crypto/bn254/index.ts +50 -159
- package/src/crypto/ecdsa/signature.ts +2 -2
- package/src/crypto/grumpkin/index.ts +3 -1
- package/src/crypto/keys/index.ts +1 -1
- package/src/crypto/pedersen/pedersen.wasm.ts +1 -1
- package/src/crypto/poseidon/index.ts +1 -1
- package/src/crypto/schnorr/index.ts +2 -1
- package/src/crypto/schnorr/signature.ts +2 -2
- package/src/crypto/sha256/index.ts +1 -1
- package/src/crypto/sha512/index.ts +1 -1
- package/src/crypto/signature/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +1 -1
- package/src/crypto/sync/poseidon/index.ts +1 -1
- package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
- package/src/curves/bls12/index.ts +2 -0
- package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
- package/src/{fields/fields.ts → curves/bn254/field.ts} +33 -56
- package/src/curves/bn254/index.ts +2 -0
- package/src/curves/bn254/point.ts +170 -0
- package/src/curves/grumpkin/index.ts +11 -0
- package/src/{fields → curves/grumpkin}/point.ts +7 -7
- package/src/eth-address/index.ts +7 -1
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- package/src/schemas/schemas.ts +14 -3
- package/src/schemas/types.ts +33 -0
- package/src/serialize/field_reader.ts +1 -1
- package/src/serialize/free_funcs.ts +1 -1
- package/src/serialize/serialize.ts +1 -1
- package/src/sleep/index.ts +6 -0
- package/src/timer/date.ts +4 -0
- package/src/trees/balanced_merkle_tree.ts +3 -1
- package/src/trees/indexed_merkle_tree.ts +1 -1
- package/src/trees/membership_witness.ts +1 -1
- package/src/trees/merkle_tree_calculator.ts +1 -1
- package/src/trees/sibling_path.ts +2 -2
- package/src/types/index.ts +5 -0
- package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
- package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
- package/dest/crypto/bn254/bn254_utils.js +0 -56
- package/dest/crypto/index.d.ts +0 -17
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/index.js +0 -16
- package/dest/fields/bls12_fields.d.ts.map +0 -1
- package/dest/fields/bls12_point.d.ts.map +0 -1
- package/dest/fields/coordinate.d.ts +0 -63
- package/dest/fields/coordinate.d.ts.map +0 -1
- package/dest/fields/coordinate.js +0 -96
- package/dest/fields/fields.d.ts.map +0 -1
- package/dest/fields/index.d.ts +0 -6
- package/dest/fields/index.d.ts.map +0 -1
- package/dest/fields/index.js +0 -5
- package/dest/fields/point.d.ts.map +0 -1
- package/dest/index.d.ts +0 -31
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -31
- package/src/crypto/bn254/bn254_utils.ts +0 -64
- package/src/crypto/index.ts +0 -16
- package/src/fields/coordinate.ts +0 -104
- package/src/fields/index.ts +0 -5
- package/src/index.ts +0 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381';
|
|
2
2
|
import { inspect } from 'util';
|
|
3
|
-
import { toBigIntBE, toBufferBE } from '
|
|
4
|
-
import { randomBytes } from '
|
|
5
|
-
import { hexSchemaFor } from '
|
|
6
|
-
import { BufferReader } from '
|
|
7
|
-
import { TypeRegistry } from '
|
|
8
|
-
import { Fr } from '
|
|
3
|
+
import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
|
|
4
|
+
import { randomBytes } from '../../crypto/random/index.js';
|
|
5
|
+
import { hexSchemaFor } from '../../schemas/utils.js';
|
|
6
|
+
import { BufferReader } from '../../serialize/buffer_reader.js';
|
|
7
|
+
import { TypeRegistry } from '../../serialize/type_registry.js';
|
|
8
|
+
import { Fr } from '../bn254/field.js';
|
|
9
9
|
/**
|
|
10
10
|
* Base BLS12field class.
|
|
11
11
|
*/ export class BLS12Field {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './field.js';
|
|
2
|
+
export * from './point.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ProjPointType } from '@noble/curves/abstract/weierstrass';
|
|
2
2
|
import { inspect } from 'util';
|
|
3
|
-
import { BufferReader } from '
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { BufferReader } from '../../serialize/index.js';
|
|
4
|
+
import { Fr } from '../bn254/field.js';
|
|
5
|
+
import { BLS12Fq, BLS12Fr } from './field.js';
|
|
6
6
|
/**
|
|
7
7
|
* Represents a Point on an elliptic curve with x and y coordinates.
|
|
8
8
|
* The Point class provides methods for creating instances from different input types,
|
|
@@ -217,4 +217,4 @@ export declare class BLS12Point {
|
|
|
217
217
|
export declare class BLSPointNotOnCurveError extends Error {
|
|
218
218
|
constructor(x: BLS12Fq, y?: BLS12Fq);
|
|
219
219
|
}
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7YUFXSCxDQUFDLEVBQUUsT0FBTzthQUlWLENBQUMsRUFBRSxPQUFPO2FBSVYsVUFBVSxFQUFFLE9BQU87SUFsQnJDLE1BQU0sQ0FBQyxJQUFJLGFBQW9EO0lBQy9ELE1BQU0sQ0FBQyxHQUFHLGFBQWlHO0lBQzNHLE1BQU0sQ0FBQyxhQUFhLFNBQTZCO0lBQ2pELE1BQU0sQ0FBQyx3QkFBd0IsU0FBeUI7SUFDeEQsTUFBTSxDQUFDLGVBQWUsMEJBQXNGO0lBRTVHO0lBQ0U7O09BRUc7SUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRztJQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO0lBQ2EsVUFBVSxFQUFFLE9BQU8sRUFRcEM7SUFFRCxNQUFNLGtCQUVMO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBTWY7SUFFRCxNQUFNLEtBQUssTUFBTSxtREFFaEI7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sZUFZWjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBSTlDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sY0FFNUI7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxRQUFRLElBQUksTUFBTSxDQU1qQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBcUI1QztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsYUFBYSxTQUdaO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FFdEM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUV6QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQU8zRDtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxjQWM1QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBRXhDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBS3hDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxXQVd0QztJQUVEOzs7T0FHRztJQUNILGVBQWUsY0FFZDtJQUVEOzs7O09BSUc7SUFDSCxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUzs7OztNQU1SO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsNEJBTVA7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLGtCQUVQO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLFdBRXJCO0lBRUQ7O09BRUc7SUFDSCxNQUFNLFlBRUw7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEdBQUcsWUFFYjtJQUVELCtDQUErQztJQUUvQyxzQkFBc0IsMEJBRXJCO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQsTUFBTSxlQUVMO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxjQU1mO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLGNBRXJCO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLGNBT3BEO0NBQ0Y7QUFFRCxxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBR2xDO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/point.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381';
|
|
2
2
|
import { inspect } from 'util';
|
|
3
|
-
import { toBufferBE } from '
|
|
4
|
-
import { randomBoolean } from '
|
|
5
|
-
import { hexSchemaFor } from '
|
|
6
|
-
import { BufferReader, serializeToBuffer } from '
|
|
7
|
-
import { bufferToHex, hexToBuffer } from '
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import { toBufferBE } from '../../bigint-buffer/index.js';
|
|
4
|
+
import { randomBoolean } from '../../crypto/random/index.js';
|
|
5
|
+
import { hexSchemaFor } from '../../schemas/utils.js';
|
|
6
|
+
import { BufferReader, serializeToBuffer } from '../../serialize/index.js';
|
|
7
|
+
import { bufferToHex, hexToBuffer } from '../../string/index.js';
|
|
8
|
+
import { Fr } from '../bn254/field.js';
|
|
9
|
+
import { BLS12Fq } from './field.js';
|
|
10
10
|
/**
|
|
11
11
|
* Represents a Point on an elliptic curve with x and y coordinates.
|
|
12
12
|
* The Point class provides methods for creating instances from different input types,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { inspect } from 'util';
|
|
2
|
-
import { BufferReader } from '
|
|
2
|
+
import { BufferReader } from '../../serialize/buffer_reader.js';
|
|
3
3
|
/**
|
|
4
4
|
* Represents a field derived from BaseField.
|
|
5
5
|
*/
|
|
@@ -12,14 +12,12 @@ type DerivedField<T extends BaseField> = {
|
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* Base field class.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* We only check we are within the field modulus when initializing with bigint.
|
|
15
|
+
* Uses bigint as the internal representation.
|
|
16
|
+
* Buffers are generated on demand from the bigint value.
|
|
18
17
|
*/
|
|
19
18
|
declare abstract class BaseField {
|
|
20
19
|
static SIZE_IN_BYTES: number;
|
|
21
|
-
private
|
|
22
|
-
private asBigInt?;
|
|
20
|
+
private readonly asBigInt;
|
|
23
21
|
/**
|
|
24
22
|
* Return bigint representation.
|
|
25
23
|
* @deprecated Just to get things compiling. Use toBigInt().
|
|
@@ -30,7 +28,7 @@ declare abstract class BaseField {
|
|
|
30
28
|
protected constructor(value: number | bigint | boolean | BaseField | Buffer);
|
|
31
29
|
protected abstract modulus(): bigint;
|
|
32
30
|
/**
|
|
33
|
-
*
|
|
31
|
+
* Converts the bigint to a Buffer.
|
|
34
32
|
*/
|
|
35
33
|
toBuffer(): Buffer;
|
|
36
34
|
toString(): `0x${string}`;
|
|
@@ -50,6 +48,7 @@ declare abstract class BaseField {
|
|
|
50
48
|
equals(rhs: BaseField): boolean;
|
|
51
49
|
lt(rhs: BaseField): boolean;
|
|
52
50
|
cmp(rhs: BaseField): -1 | 0 | 1;
|
|
51
|
+
static cmp(lhs: BaseField, rhs: BaseField): -1 | 0 | 1;
|
|
53
52
|
isZero(): boolean;
|
|
54
53
|
isEmpty(): boolean;
|
|
55
54
|
toFriendlyJSON(): string;
|
|
@@ -175,14 +174,7 @@ export declare class Fq extends BaseField {
|
|
|
175
174
|
toFields(): Fr[];
|
|
176
175
|
static get schema(): import("zod").ZodType<Fq, any, string>;
|
|
177
176
|
}
|
|
178
|
-
/**
|
|
179
|
-
* GrumpkinScalar is an Fq.
|
|
180
|
-
* @remarks Called GrumpkinScalar because it is used to represent elements in Grumpkin's scalar field as defined in
|
|
181
|
-
* the Aztec Protocol Specs.
|
|
182
|
-
*/
|
|
183
|
-
export type GrumpkinScalar = Fq;
|
|
184
|
-
export declare const GrumpkinScalar: typeof Fq;
|
|
185
177
|
/** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */
|
|
186
178
|
export declare function reduceFn<TInput, TField extends BaseField>(fn: (input: TInput) => Buffer, field: DerivedField<TField>): (input: TInput) => TField;
|
|
187
179
|
export {};
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLaEU7O0dBRUc7QUFDSCxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsU0FBUyxJQUFJO0lBQ3ZDLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDcEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsdUJBQWUsU0FBUztJQUN0QixNQUFNLENBQUMsYUFBYSxTQUFNO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFTO0lBRWxDOzs7U0FHSztJQUNMLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FFbEI7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUVqQjtJQUVELFNBQVMsYUFBYSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFtQjFFO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBRXJDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sSUFBSSxPQUFPLENBRWhCO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRDs7O09BR0c7SUFDSCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELGFBQWEsSUFBSSxNQUFNLENBR3RCO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxT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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
2
|
import { inspect } from 'util';
|
|
3
|
-
import { toBigIntBE, toBufferBE } from '
|
|
4
|
-
import { randomBytes } from '
|
|
5
|
-
import { hexSchemaFor } from '
|
|
6
|
-
import { BufferReader } from '
|
|
7
|
-
import { TypeRegistry } from '
|
|
8
|
-
const ZERO_BUFFER = Buffer.alloc(32);
|
|
3
|
+
import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
|
|
4
|
+
import { randomBytes } from '../../crypto/random/index.js';
|
|
5
|
+
import { hexSchemaFor } from '../../schemas/utils.js';
|
|
6
|
+
import { BufferReader } from '../../serialize/buffer_reader.js';
|
|
7
|
+
import { TypeRegistry } from '../../serialize/type_registry.js';
|
|
9
8
|
/**
|
|
10
9
|
* Base field class.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* We only check we are within the field modulus when initializing with bigint.
|
|
10
|
+
* Uses bigint as the internal representation.
|
|
11
|
+
* Buffers are generated on demand from the bigint value.
|
|
14
12
|
*/ class BaseField {
|
|
15
13
|
static SIZE_IN_BYTES = 32;
|
|
16
|
-
asBuffer;
|
|
17
14
|
asBigInt;
|
|
18
15
|
/**
|
|
19
16
|
* Return bigint representation.
|
|
@@ -29,81 +26,68 @@ const ZERO_BUFFER = Buffer.alloc(32);
|
|
|
29
26
|
if (value.length > BaseField.SIZE_IN_BYTES) {
|
|
30
27
|
throw new Error(`Value length ${value.length} exceeds ${BaseField.SIZE_IN_BYTES}`);
|
|
31
28
|
}
|
|
32
|
-
this.
|
|
33
|
-
Buffer.alloc(BaseField.SIZE_IN_BYTES - value.length),
|
|
34
|
-
value
|
|
35
|
-
]);
|
|
29
|
+
this.asBigInt = toBigIntBE(value);
|
|
36
30
|
} else if (typeof value === 'bigint' || typeof value === 'number' || typeof value === 'boolean') {
|
|
37
31
|
this.asBigInt = BigInt(value);
|
|
38
|
-
if (this.asBigInt >= this.modulus()) {
|
|
39
|
-
throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
|
|
40
|
-
} else if (this.asBigInt < 0n) {
|
|
41
|
-
throw new Error(`Value 0x${this.asBigInt.toString(16)} is negative.`);
|
|
42
|
-
}
|
|
43
32
|
} else if (value instanceof BaseField) {
|
|
44
|
-
this.asBuffer = value.asBuffer;
|
|
45
33
|
this.asBigInt = value.asBigInt;
|
|
46
34
|
} else {
|
|
47
35
|
throw new Error(`Type '${typeof value}' with value '${value}' passed to BaseField ctor.`);
|
|
48
36
|
}
|
|
37
|
+
if (this.asBigInt < 0n) {
|
|
38
|
+
throw new Error(`Value 0x${this.asBigInt.toString(16)} is negative.`);
|
|
39
|
+
} else if (this.asBigInt >= this.modulus()) {
|
|
40
|
+
throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
|
|
41
|
+
}
|
|
49
42
|
}
|
|
50
43
|
/**
|
|
51
|
-
*
|
|
44
|
+
* Converts the bigint to a Buffer.
|
|
52
45
|
*/ toBuffer() {
|
|
53
|
-
|
|
54
|
-
this.asBuffer = toBufferBE(this.asBigInt, 32);
|
|
55
|
-
}
|
|
56
|
-
return Buffer.from(this.asBuffer);
|
|
46
|
+
return toBufferBE(this.asBigInt, 32);
|
|
57
47
|
}
|
|
58
48
|
toString() {
|
|
59
|
-
return `0x${this.
|
|
49
|
+
return `0x${this.asBigInt.toString(16).padStart(64, '0')}`;
|
|
60
50
|
}
|
|
61
51
|
toBigInt() {
|
|
62
|
-
if (this.asBigInt === undefined) {
|
|
63
|
-
this.asBigInt = toBigIntBE(this.asBuffer);
|
|
64
|
-
if (this.asBigInt >= this.modulus()) {
|
|
65
|
-
throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
52
|
return this.asBigInt;
|
|
69
53
|
}
|
|
70
54
|
toBool() {
|
|
71
|
-
return
|
|
55
|
+
return this.asBigInt !== 0n;
|
|
72
56
|
}
|
|
73
57
|
/**
|
|
74
58
|
* Converts this field to a number.
|
|
75
59
|
* Throws if the underlying value is greater than MAX_SAFE_INTEGER.
|
|
76
60
|
*/ toNumber() {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
throw new Error(`Value ${value.toString(16)} greater than than max safe integer`);
|
|
61
|
+
if (this.asBigInt > Number.MAX_SAFE_INTEGER) {
|
|
62
|
+
throw new Error(`Value ${this.asBigInt.toString(16)} greater than than max safe integer`);
|
|
80
63
|
}
|
|
81
|
-
return Number(
|
|
64
|
+
return Number(this.asBigInt);
|
|
82
65
|
}
|
|
83
66
|
/**
|
|
84
67
|
* Converts this field to a number.
|
|
85
68
|
* May cause loss of precision if the underlying value is greater than MAX_SAFE_INTEGER.
|
|
86
69
|
*/ toNumberUnsafe() {
|
|
87
|
-
|
|
88
|
-
return Number(value);
|
|
70
|
+
return Number(this.asBigInt);
|
|
89
71
|
}
|
|
90
72
|
toShortString() {
|
|
91
73
|
const str = this.toString();
|
|
92
74
|
return `${str.slice(0, 10)}...${str.slice(-4)}`;
|
|
93
75
|
}
|
|
94
76
|
equals(rhs) {
|
|
95
|
-
return this.
|
|
77
|
+
return this.asBigInt === rhs.asBigInt;
|
|
96
78
|
}
|
|
97
79
|
lt(rhs) {
|
|
98
|
-
return this.
|
|
80
|
+
return this.asBigInt < rhs.asBigInt;
|
|
99
81
|
}
|
|
100
82
|
cmp(rhs) {
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
83
|
+
const rhsBigInt = rhs.asBigInt;
|
|
84
|
+
return this.asBigInt === rhsBigInt ? 0 : this.asBigInt < rhsBigInt ? -1 : 1;
|
|
85
|
+
}
|
|
86
|
+
static cmp(lhs, rhs) {
|
|
87
|
+
return lhs.cmp(rhs);
|
|
104
88
|
}
|
|
105
89
|
isZero() {
|
|
106
|
-
return this.
|
|
90
|
+
return this.asBigInt === 0n;
|
|
107
91
|
}
|
|
108
92
|
isEmpty() {
|
|
109
93
|
return this.isZero();
|
|
@@ -143,7 +127,7 @@ const ZERO_BUFFER = Buffer.alloc(32);
|
|
|
143
127
|
throw new Error(`Invalid hex-encoded string: "${buf}"`);
|
|
144
128
|
}
|
|
145
129
|
const buffer = Buffer.from(checked.length % 2 === 1 ? '0' + checked : checked, 'hex');
|
|
146
|
-
return new f(buffer);
|
|
130
|
+
return new f(toBigIntBE(buffer));
|
|
147
131
|
}
|
|
148
132
|
/**
|
|
149
133
|
* Fr field class.
|
|
@@ -397,7 +381,6 @@ TypeRegistry.register('Fq', Fq);
|
|
|
397
381
|
];
|
|
398
382
|
}
|
|
399
383
|
}
|
|
400
|
-
export const GrumpkinScalar = Fq;
|
|
401
384
|
/** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */ export function reduceFn(fn, field) {
|
|
402
385
|
return (input)=>fromBufferReduce(fn(input), field);
|
|
403
386
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './field.js';
|
|
2
|
+
export * from './point.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Fq, Fr } from './field.js';
|
|
2
|
+
/**
|
|
3
|
+
* BN254 G1 point using foundation field classes.
|
|
4
|
+
* Represents a point on the BN254 elliptic curve in affine coordinates.
|
|
5
|
+
*/
|
|
6
|
+
export declare class Bn254G1Point {
|
|
7
|
+
readonly x: Fq;
|
|
8
|
+
readonly y: Fq;
|
|
9
|
+
constructor(x: Fq, y: Fq);
|
|
10
|
+
private toBbApiPoint;
|
|
11
|
+
private static fromBbApiPoint;
|
|
12
|
+
isOnCurve(): Promise<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Get the generator point for BN254 G1, or perform scalar multiplication.
|
|
15
|
+
* When called without arguments, returns the base generator point.
|
|
16
|
+
* When called with a scalar, returns scalar * generator (useful for public key derivation).
|
|
17
|
+
*/
|
|
18
|
+
static generator(scalar?: Fr): Promise<Bn254G1Point>;
|
|
19
|
+
/**
|
|
20
|
+
* Decompress a BN254 G1 point from compressed form (32 bytes).
|
|
21
|
+
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
22
|
+
* in the most significant bit.
|
|
23
|
+
*/
|
|
24
|
+
static fromCompressed(compressed: Buffer): Promise<Bn254G1Point>;
|
|
25
|
+
/**
|
|
26
|
+
* Compress this BN254 G1 point to 32 bytes.
|
|
27
|
+
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
28
|
+
* in the most significant bit (bit 255).
|
|
29
|
+
*/
|
|
30
|
+
compress(): Buffer;
|
|
31
|
+
equals(other: Bn254G1Point): boolean;
|
|
32
|
+
toString(): string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* BN254 G2 point using foundation field classes.
|
|
36
|
+
* Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
|
|
37
|
+
* G2 points use extension field coordinates (Fq2).
|
|
38
|
+
*/
|
|
39
|
+
export declare class Bn254G2Point {
|
|
40
|
+
readonly x: [Fq, Fq];
|
|
41
|
+
readonly y: [Fq, Fq];
|
|
42
|
+
constructor(x: [Fq, Fq], y: [Fq, Fq]);
|
|
43
|
+
private toBbApiPoint;
|
|
44
|
+
private static fromBbApiPoint;
|
|
45
|
+
/**
|
|
46
|
+
* Get the generator point for BN254 G2, or perform scalar multiplication.
|
|
47
|
+
* When called without arguments, returns the base generator point.
|
|
48
|
+
* When called with a scalar, returns scalar * generator.
|
|
49
|
+
*/
|
|
50
|
+
static generator(scalar?: Fr): Promise<Bn254G2Point>;
|
|
51
|
+
equals(other: Bn254G2Point): boolean;
|
|
52
|
+
toString(): string;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEM7OztHQUdHO0FBQ0gscUJBQWEsWUFBWTthQUVMLENBQUMsRUFBRSxFQUFFO2FBQ0wsQ0FBQyxFQUFFLEVBQUU7SUFGdkIsWUFDa0IsQ0FBQyxFQUFFLEVBQUUsRUFDTCxDQUFDLEVBQUUsRUFBRSxFQUNuQjtJQUVKLE9BQU8sQ0FBQyxZQUFZO0lBT3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYztJQUl2QixTQUFTLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQU9sQztJQUVEOzs7O09BSUc7SUFDSCxPQUFhLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQWlCekQ7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYSxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBWXJFO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsSUFBSSxNQUFNLENBU2pCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUVuQztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gscUJBQWEsWUFBWTthQUVMLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDWCxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRjdCLFlBQ2tCLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDWCxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3pCO0lBRUosT0FBTyxDQUFDLFlBQVk7SUFPcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjO0lBTzdCOzs7O09BSUc7SUFDSCxPQUFhLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQWlCekQ7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksR0FBRyxPQUFPLENBT25DO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7Q0FDRiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/point.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEpC;;;GAGG;AACH,qBAAa,YAAY;aAEL,CAAC,EAAE,EAAE;aACL,CAAC,EAAE,EAAE;IAFvB,YACkB,CAAC,EAAE,EAAE,EACL,CAAC,EAAE,EAAE,EACnB;IAEJ,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAIvB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAOlC;IAED;;;;OAIG;IACH,OAAa,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBzD;IAED;;;;OAIG;IACH,OAAa,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAYrE;IAED;;;;OAIG;IACH,QAAQ,IAAI,MAAM,CASjB;IAED,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEnC;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED;;;;GAIG;AACH,qBAAa,YAAY;aAEL,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aACX,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAF7B,YACkB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACX,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACzB;IAEJ,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAO7B;;;;OAIG;IACH,OAAa,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBzD;IAED,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAOnC;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { BN254_G1_GENERATOR, BN254_G2_GENERATOR, BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
+
import { Fq } from './field.js';
|
|
3
|
+
/**
|
|
4
|
+
* BN254 G1 point using foundation field classes.
|
|
5
|
+
* Represents a point on the BN254 elliptic curve in affine coordinates.
|
|
6
|
+
*/ export class Bn254G1Point {
|
|
7
|
+
x;
|
|
8
|
+
y;
|
|
9
|
+
constructor(x, y){
|
|
10
|
+
this.x = x;
|
|
11
|
+
this.y = y;
|
|
12
|
+
}
|
|
13
|
+
toBbApiPoint() {
|
|
14
|
+
return {
|
|
15
|
+
x: this.x.toBuffer(),
|
|
16
|
+
y: this.y.toBuffer()
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
static fromBbApiPoint(point) {
|
|
20
|
+
return new Bn254G1Point(Fq.fromBuffer(Buffer.from(point.x)), Fq.fromBuffer(Buffer.from(point.y)));
|
|
21
|
+
}
|
|
22
|
+
async isOnCurve() {
|
|
23
|
+
await BarretenbergSync.initSingleton();
|
|
24
|
+
const api = BarretenbergSync.getSingleton();
|
|
25
|
+
const apiPoint = this.toBbApiPoint();
|
|
26
|
+
const response = api.bn254G1IsOnCurve({
|
|
27
|
+
point: apiPoint
|
|
28
|
+
});
|
|
29
|
+
return response.isOnCurve;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the generator point for BN254 G1, or perform scalar multiplication.
|
|
33
|
+
* When called without arguments, returns the base generator point.
|
|
34
|
+
* When called with a scalar, returns scalar * generator (useful for public key derivation).
|
|
35
|
+
*/ static async generator(scalar) {
|
|
36
|
+
if (!scalar) {
|
|
37
|
+
return new Bn254G1Point(Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.x)), Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.y)));
|
|
38
|
+
}
|
|
39
|
+
await BarretenbergSync.initSingleton();
|
|
40
|
+
const api = BarretenbergSync.getSingleton();
|
|
41
|
+
const response = api.bn254G1Mul({
|
|
42
|
+
point: BN254_G1_GENERATOR,
|
|
43
|
+
scalar: scalar.toBuffer()
|
|
44
|
+
});
|
|
45
|
+
return Bn254G1Point.fromBbApiPoint(response.point);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Decompress a BN254 G1 point from compressed form (32 bytes).
|
|
49
|
+
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
50
|
+
* in the most significant bit.
|
|
51
|
+
*/ static async fromCompressed(compressed) {
|
|
52
|
+
if (compressed.length !== 32) {
|
|
53
|
+
throw new Error('Invalid compressed point length');
|
|
54
|
+
}
|
|
55
|
+
await BarretenbergSync.initSingleton();
|
|
56
|
+
const api = BarretenbergSync.getSingleton();
|
|
57
|
+
const response = api.bn254G1FromCompressed({
|
|
58
|
+
compressed: new Uint8Array(compressed)
|
|
59
|
+
});
|
|
60
|
+
return Bn254G1Point.fromBbApiPoint(response.point);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Compress this BN254 G1 point to 32 bytes.
|
|
64
|
+
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
65
|
+
* in the most significant bit (bit 255).
|
|
66
|
+
*/ compress() {
|
|
67
|
+
const xBytes = this.x.toBuffer();
|
|
68
|
+
// Get the least significant bit of y to determine the sign
|
|
69
|
+
const yLsb = this.y.toBigInt() & 1n;
|
|
70
|
+
// If y is odd, set the most significant bit (bit 255) of the output
|
|
71
|
+
if (yLsb === 1n) {
|
|
72
|
+
xBytes[0] |= 0x80;
|
|
73
|
+
}
|
|
74
|
+
return xBytes;
|
|
75
|
+
}
|
|
76
|
+
equals(other) {
|
|
77
|
+
return this.x.equals(other.x) && this.y.equals(other.y);
|
|
78
|
+
}
|
|
79
|
+
toString() {
|
|
80
|
+
return `Bn254G1Point(x: ${this.x.toString()}, y: ${this.y.toString()})`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* BN254 G2 point using foundation field classes.
|
|
85
|
+
* Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
|
|
86
|
+
* G2 points use extension field coordinates (Fq2).
|
|
87
|
+
*/ export class Bn254G2Point {
|
|
88
|
+
x;
|
|
89
|
+
y;
|
|
90
|
+
constructor(x, y){
|
|
91
|
+
this.x = x;
|
|
92
|
+
this.y = y;
|
|
93
|
+
}
|
|
94
|
+
toBbApiPoint() {
|
|
95
|
+
return {
|
|
96
|
+
x: [
|
|
97
|
+
this.x[0].toBuffer(),
|
|
98
|
+
this.x[1].toBuffer()
|
|
99
|
+
],
|
|
100
|
+
y: [
|
|
101
|
+
this.y[0].toBuffer(),
|
|
102
|
+
this.y[1].toBuffer()
|
|
103
|
+
]
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
static fromBbApiPoint(point) {
|
|
107
|
+
return new Bn254G2Point([
|
|
108
|
+
Fq.fromBuffer(Buffer.from(point.x[0])),
|
|
109
|
+
Fq.fromBuffer(Buffer.from(point.x[1]))
|
|
110
|
+
], [
|
|
111
|
+
Fq.fromBuffer(Buffer.from(point.y[0])),
|
|
112
|
+
Fq.fromBuffer(Buffer.from(point.y[1]))
|
|
113
|
+
]);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the generator point for BN254 G2, or perform scalar multiplication.
|
|
117
|
+
* When called without arguments, returns the base generator point.
|
|
118
|
+
* When called with a scalar, returns scalar * generator.
|
|
119
|
+
*/ static async generator(scalar) {
|
|
120
|
+
if (!scalar) {
|
|
121
|
+
return new Bn254G2Point([
|
|
122
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[0])),
|
|
123
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[1]))
|
|
124
|
+
], [
|
|
125
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[0])),
|
|
126
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[1]))
|
|
127
|
+
]);
|
|
128
|
+
}
|
|
129
|
+
await BarretenbergSync.initSingleton();
|
|
130
|
+
const api = BarretenbergSync.getSingleton();
|
|
131
|
+
const response = api.bn254G2Mul({
|
|
132
|
+
point: BN254_G2_GENERATOR,
|
|
133
|
+
scalar: scalar.toBuffer()
|
|
134
|
+
});
|
|
135
|
+
return Bn254G2Point.fromBbApiPoint(response.point);
|
|
136
|
+
}
|
|
137
|
+
equals(other) {
|
|
138
|
+
return this.x[0].equals(other.x[0]) && this.x[1].equals(other.x[1]) && this.y[0].equals(other.y[0]) && this.y[1].equals(other.y[1]);
|
|
139
|
+
}
|
|
140
|
+
toString() {
|
|
141
|
+
return `Bn254G2Point(x: (${this.x[0].toString()}, ${this.x[1].toString()}), y: (${this.y[0].toString()}, ${this.y[1].toString()}))`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Fq } from '../bn254/field.js';
|
|
2
|
+
export * from './point.js';
|
|
3
|
+
/**
|
|
4
|
+
* GrumpkinScalar is an Fq.
|
|
5
|
+
* @remarks Called GrumpkinScalar because it is used to represent elements in Grumpkin's scalar field as defined in
|
|
6
|
+
* the Aztec Protocol Specs.
|
|
7
|
+
*/
|
|
8
|
+
export type GrumpkinScalar = Fq;
|
|
9
|
+
export declare const GrumpkinScalar: typeof Fq;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZ3J1bXBraW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDLGNBQWMsWUFBWSxDQUFDO0FBRTNCOzs7O0dBSUc7QUFDSCxNQUFNLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxlQUFPLE1BQU0sY0FBYyxXQUFLLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/grumpkin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,cAAc,YAAY,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAChC,eAAO,MAAM,cAAc,WAAK,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BufferReader, FieldReader } from '
|
|
2
|
-
import { Fr } from '
|
|
1
|
+
import { BufferReader, FieldReader } from '../../serialize/index.js';
|
|
2
|
+
import { Fr } from '../bn254/field.js';
|
|
3
3
|
/**
|
|
4
4
|
* Represents a Point on an elliptic curve with x and y coordinates.
|
|
5
5
|
* The Point class provides methods for creating instances from different input types,
|
|
@@ -170,4 +170,4 @@ export declare class Point {
|
|
|
170
170
|
export declare class NotOnCurveError extends Error {
|
|
171
171
|
constructor(x: Fr);
|
|
172
172
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZ3J1bXBraW4vcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gscUJBQWEsS0FBSzthQVlFLENBQUMsRUFBRSxFQUFFO2FBSUwsQ0FBQyxFQUFFLEVBQUU7YUFJTCxVQUFVLEVBQUUsT0FBTztJQW5CckMsTUFBTSxDQUFDLElBQUksUUFBc0M7SUFDakQsTUFBTSxDQUFDLGFBQWEsU0FBd0I7SUFDNUMsTUFBTSxDQUFDLHdCQUF3QixTQUFvQjtJQUVuRCx5REFBeUQ7SUFDekQsU0FBZ0IsSUFBSSxTQUFXO0lBRS9CO0lBQ0U7O09BRUc7SUFDYSxDQUFDLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNhLENBQUMsRUFBRSxFQUFFO0lBQ3JCOztPQUVHO0lBQ2EsVUFBVSxFQUFFLE9BQU8sRUFHcEM7SUFFRCxNQUFNLGtCQUVMO0lBRUQsTUFBTSxLQUFLLE1BQU0sOENBR2hCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBUXRDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWEsTUFBTSxtQkFZbEI7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxTQUc5QztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBUXpFO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sU0FFNUI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLFNBRzNDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxPQUFhLFlBQVksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLGtCQWM3QztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBT3ZDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FFMUI7SUFFRDs7O09BR0c7SUFDSCxTQUFTOzs7O01BTVI7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxRQUFRLDRCQVNQO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCLDRCQVdqQjtJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsa0JBRVA7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsYUFBYSxXQUdaO0lBRUQsWUFBWTs7OztNQUlYO0lBR0QsbUJBQW1COzs7Ozs7TUFFbEI7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssV0FFaEI7SUFFRCxNQUFNLFlBRUw7SUFFRCxJQUFJLGdCQUVIO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxHQUFHLFlBRWI7SUFFRCxZQUFZLFlBV1g7Q0FDRjtBQUVELHFCQUFhLGVBQWdCLFNBQVEsS0FBSztJQUN4QyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBR2hCO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/grumpkin/point.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,KAAK;aAYE,CAAC,EAAE,EAAE;aAIL,CAAC,EAAE,EAAE;aAIL,UAAU,EAAE,OAAO;IAnBrC,MAAM,CAAC,IAAI,QAAsC;IACjD,MAAM,CAAC,aAAa,SAAwB;IAC5C,MAAM,CAAC,wBAAwB,SAAoB;IAEnD,yDAAyD;IACzD,SAAgB,IAAI,SAAW;IAE/B;IACE;;OAEG;IACa,CAAC,EAAE,EAAE;IACrB;;OAEG;IACa,CAAC,EAAE,EAAE;IACrB;;OAEG;IACa,UAAU,EAAE,OAAO,EAGpC;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,8CAGhB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAQtC;IAED;;;;OAIG;IACH,OAAa,MAAM,mBAYlB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,SAG9C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAQzE;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,SAE5B;IAED;;;OAGG;IACH,QAAQ,SAEP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,SAG3C;IAED;;;;;;;;OAQG;IACH,OAAa,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,kBAc7C;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAOvC;IAED;;;;OAIG;IACH,UAAU,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAE1B;IAED;;;OAGG;IACH,SAAS;;;;MAMR;IAED;;;;;;;;;OASG;IACH,QAAQ,4BASP;IAED;;;OAGG;IACH,kBAAkB,4BAWjB;IAED;;;;;;OAMG;IACH,QAAQ,kBAEP;IAED;;;;;;;OAOG;IACH,aAAa,WAGZ;IAED,YAAY;;;;MAIX;IAGD,mBAAmB;;;;;;MAElB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,KAAK,WAEhB;IAED,MAAM,YAEL;IAED,IAAI,gBAEH;IAED;;;OAGG;IACH,IAAW,GAAG,YAEb;IAED,YAAY,YAWX;CACF;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,CAAC,EAAE,EAAE,EAGhB;CACF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { toBigIntBE } from '
|
|
2
|
-
import { poseidon2Hash } from '
|
|
3
|
-
import { randomBoolean } from '
|
|
4
|
-
import { hexSchemaFor } from '
|
|
5
|
-
import { BufferReader, FieldReader, serializeToBuffer } from '
|
|
6
|
-
import { bufferToHex, hexToBuffer } from '
|
|
7
|
-
import { Fr } from '
|
|
1
|
+
import { toBigIntBE } from '../../bigint-buffer/index.js';
|
|
2
|
+
import { poseidon2Hash } from '../../crypto/poseidon/index.js';
|
|
3
|
+
import { randomBoolean } from '../../crypto/random/index.js';
|
|
4
|
+
import { hexSchemaFor } from '../../schemas/utils.js';
|
|
5
|
+
import { BufferReader, FieldReader, serializeToBuffer } from '../../serialize/index.js';
|
|
6
|
+
import { bufferToHex, hexToBuffer } from '../../string/index.js';
|
|
7
|
+
import { Fr } from '../bn254/field.js';
|
|
8
8
|
/**
|
|
9
9
|
* Represents a Point on an elliptic curve with x and y coordinates.
|
|
10
10
|
* The Point class provides methods for creating instances from different input types,
|