@aztec/foundation 3.0.0-devnet.2 → 3.0.0-manual.20251030
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/config/env_var.d.ts +1 -1
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/crypto/bn254/index.d.ts +54 -0
- package/dest/crypto/bn254/index.d.ts.map +1 -0
- package/dest/crypto/bn254/index.js +140 -0
- package/dest/crypto/grumpkin/index.d.ts +6 -11
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +5 -11
- package/dest/crypto/index.d.ts +1 -0
- package/dest/crypto/index.d.ts.map +1 -1
- package/dest/crypto/index.js +1 -0
- package/dest/fields/fields.d.ts +5 -0
- package/dest/fields/fields.d.ts.map +1 -1
- package/dest/fields/fields.js +16 -3
- package/package.json +2 -2
- package/src/config/env_var.ts +3 -1
- package/src/crypto/bn254/index.ts +167 -0
- package/src/crypto/grumpkin/index.ts +6 -14
- package/src/crypto/index.ts +1 -0
- package/src/fields/fields.ts +16 -1
package/dest/config/env_var.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type EnvVar = 'REGISTRY_CONTRACT_ADDRESS' | 'FEE_ASSET_HANDLER_CONTRACT_ADDRESS' | 'SLASH_FACTORY_CONTRACT_ADDRESS' | 'ACVM_BINARY_PATH' | 'ACVM_WORKING_DIRECTORY' | 'API_KEY' | 'API_PREFIX' | 'ARCHIVER_MAX_LOGS' | 'ARCHIVER_POLLING_INTERVAL_MS' | 'ARCHIVER_URL' | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS' | 'ARCHIVER_BATCH_SIZE' | 'AZTEC_ADMIN_PORT' | 'AZTEC_NODE_ADMIN_URL' | 'AZTEC_NODE_URL' | 'AZTEC_PORT' | 'BB_BINARY_PATH' | 'BB_SKIP_CLEANUP' | 'BB_WORKING_DIRECTORY' | 'BB_NUM_IVC_VERIFIERS' | 'BB_IVC_CONCURRENCY' | 'BOOTSTRAP_NODES' | 'BLOB_SINK_ARCHIVE_API_URL' | 'BLOB_SINK_PORT' | 'BLOB_SINK_URL' | 'BOT_DA_GAS_LIMIT' | 'BOT_FEE_PAYMENT_METHOD' | 'BOT_BASE_FEE_PADDING' | 'BOT_FLUSH_SETUP_TRANSACTIONS' | 'BOT_FOLLOW_CHAIN' | 'BOT_L2_GAS_LIMIT' | 'BOT_MAX_PENDING_TXS' | 'BOT_NO_START' | 'BOT_L1_MNEMONIC' | 'BOT_L1_PRIVATE_KEY' | 'BOT_L1_TO_L2_TIMEOUT_SECONDS' | 'BOT_PRIVATE_KEY' | 'BOT_ACCOUNT_SALT' | 'BOT_PRIVATE_TRANSFERS_PER_TX' | 'BOT_PUBLIC_TRANSFERS_PER_TX' | 'BOT_RECIPIENT_ENCRYPTION_SECRET' | 'BOT_TOKEN_CONTRACT' | 'BOT_TOKEN_SALT' | 'BOT_TX_INTERVAL_SECONDS' | 'BOT_TX_MINED_WAIT_SECONDS' | 'BOT_MAX_CONSECUTIVE_ERRORS' | 'BOT_STOP_WHEN_UNHEALTHY' | 'BOT_AMM_TXS' | 'COINBASE' | 'CRS_PATH' | 'DATA_DIRECTORY' | 'DATA_STORE_MAP_SIZE_KB' | 'ARCHIVER_STORE_MAP_SIZE_KB' | 'BLOB_SINK_MAP_SIZE_KB' | 'P2P_STORE_MAP_SIZE_KB' | 'PROVER_BROKER_STORE_MAP_SIZE_KB' | 'WS_DB_MAP_SIZE_KB' | 'ARCHIVE_TREE_MAP_SIZE_KB' | 'NULLIFIER_TREE_MAP_SIZE_KB' | 'NOTE_HASH_TREE_MAP_SIZE_KB' | 'MESSAGE_TREE_MAP_SIZE_KB' | 'PUBLIC_DATA_TREE_MAP_SIZE_KB' | 'DEBUG' | 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY' | 'DEPLOY_AZTEC_CONTRACTS_SALT' | 'ETHEREUM_HOSTS' | 'FEE_RECIPIENT' | 'FORCE_COLOR' | 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS' | 'KEY_STORE_DIRECTORY' | 'L1_CHAIN_ID' | 'L1_CONSENSUS_HOST_URLS' | 'L1_CONSENSUS_HOST_API_KEYS' | 'L1_CONSENSUS_HOST_API_KEY_HEADERS' | 'LOG_JSON' | 'LOG_MULTILINE' | 'LOG_LEVEL' | 'MNEMONIC' | 'NETWORK' | 'NETWORK_CONFIG_LOCATION' | 'NO_PXE' | 'USE_GCLOUD_LOGGING' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' | 'OTEL_COLLECT_INTERVAL_MS' | 'OTEL_EXCLUDE_METRICS' | 'OTEL_EXPORT_TIMEOUT_MS' | 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'PUBLIC_OTEL_INCLUDE_METRICS' | 'PUBLIC_OTEL_COLLECT_FROM' | 'PUBLIC_OTEL_OPT_OUT' | 'P2P_BLOCK_CHECK_INTERVAL_MS' | 'P2P_BLOCK_REQUEST_BATCH_SIZE' | 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK' | 'P2P_BOOTSTRAP_NODES_AS_FULL_PEERS' | 'P2P_ENABLED' | 'P2P_DISCOVERY_DISABLED' | 'P2P_GOSSIPSUB_D' | 'P2P_GOSSIPSUB_DHI' | 'P2P_GOSSIPSUB_DLO' | 'P2P_GOSSIPSUB_DLAZY' | 'P2P_GOSSIPSUB_FLOOD_PUBLISH' | 'P2P_GOSSIPSUB_INTERVAL_MS' | 'P2P_GOSSIPSUB_MCACHE_GOSSIP' | 'P2P_GOSSIPSUB_MCACHE_LENGTH' | 'P2P_GOSSIPSUB_SEEN_TTL' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT' | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT' | 'P2P_L2_QUEUE_SIZE' | 'P2P_MAX_PEERS' | 'P2P_PEER_CHECK_INTERVAL_MS' | 'P2P_PEER_PENALTY_VALUES' | 'P2P_QUERY_FOR_IP' | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS' | 'P2P_REQRESP_DIAL_TIMEOUT_MS' | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS' | 'P2P_DISABLE_STATUS_HANDSHAKE' | 'P2P_ALLOW_ONLY_VALIDATORS' | 'P2P_MAX_AUTH_FAILED_ATTEMPTS_ALLOWED' | 'P2P_REQRESP_OPTIMISTIC_NEGOTIATION' | 'P2P_DOUBLE_SPEND_SEVERE_PEER_PENALTY_WINDOW' | 'P2P_LISTEN_ADDR' | 'P2P_PORT' | 'P2P_BROADCAST_PORT' | 'P2P_IP' | 'P2P_ARCHIVED_TX_LIMIT' | 'P2P_TRUSTED_PEERS' | 'P2P_PRIVATE_PEERS' | 'P2P_PREFERRED_PEERS' | 'P2P_MAX_TX_POOL_SIZE' | 'P2P_TX_POOL_OVERFLOW_FACTOR' | 'P2P_SEEN_MSG_CACHE_SIZE' | 'P2P_DROP_TX' | 'P2P_DROP_TX_CHANCE' | 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG' | 'PEER_ID_PRIVATE_KEY' | 'PEER_ID_PRIVATE_KEY_PATH' | 'PROVER_AGENT_COUNT' | 'PROVER_AGENT_PROOF_TYPES' | 'PROVER_AGENT_POLL_INTERVAL_MS' | 'PROVER_BROKER_HOST' | 'PROVER_BROKER_JOB_TIMEOUT_MS' | 'PROVER_BROKER_POLL_INTERVAL_MS' | 'PROVER_BROKER_JOB_MAX_RETRIES' | 'PROVER_BROKER_BATCH_INTERVAL_MS' | 'PROVER_BROKER_BATCH_SIZE' | 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR' | 'PROVER_COORDINATION_NODE_URLS' | 'PROVER_FAILED_PROOF_STORE' | 'PROVER_NODE_FAILED_EPOCH_STORE' | 'PROVER_NODE_DISABLE_PROOF_PUBLISH' | 'PROVER_ID' | 'PROVER_NODE_POLLING_INTERVAL_MS' | 'PROVER_NODE_MAX_PENDING_JOBS' | 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH' | 'PROVER_NODE_TX_GATHERING_INTERVAL_MS' | 'PROVER_NODE_TX_GATHERING_BATCH_SIZE' | 'PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS_PER_NODE' | 'PROVER_NODE_TX_GATHERING_TIMEOUT_MS' | 'PROVER_PUBLISHER_PRIVATE_KEY' | 'PROVER_PUBLISHER_PRIVATE_KEYS' | 'PROVER_PUBLISHER_ADDRESSES' | 'PROVER_PUBLISHER_ALLOW_INVALID_STATES' | 'PROVER_REAL_PROOFS' | 'PROVER_TEST_DELAY_FACTOR' | 'PROVER_TEST_DELAY_MS' | 'PROVER_TEST_DELAY_TYPE' | 'PXE_L2_BLOCK_BATCH_SIZE' | 'PXE_PROVER_ENABLED' | 'RPC_MAX_BATCH_SIZE' | 'RPC_MAX_BODY_SIZE' | 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT' | 'RPC_SIMULATE_PUBLIC_MAX_DEBUG_LOG_MEMORY_READS' | 'SENTINEL_ENABLED' | 'SENTINEL_HISTORY_LENGTH_IN_EPOCHS' | 'SENTINEL_HISTORIC_PROVEN_PERFORMANCE_LENGTH_IN_EPOCHS' | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES' | 'SEQ_MAX_TX_PER_BLOCK' | 'SEQ_MIN_TX_PER_BLOCK' | 'SEQ_PUBLISH_TXS_WITH_PROPOSALS' | 'SEQ_MAX_DA_BLOCK_GAS' | 'SEQ_MAX_L2_BLOCK_GAS' | 'SEQ_PUBLISHER_PRIVATE_KEY' | 'SEQ_PUBLISHER_PRIVATE_KEYS' | 'SEQ_PUBLISHER_ADDRESSES' | 'SEQ_PUBLISHER_ALLOW_INVALID_STATES' | 'SEQ_TX_POLLING_INTERVAL_MS' | 'SEQ_ENFORCE_TIME_TABLE' | 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT' | 'SEQ_ATTESTATION_PROPAGATION_TIME' | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER' | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER' | 'SLASH_MIN_PENALTY_PERCENTAGE' | 'SLASH_MAX_PENALTY_PERCENTAGE' | 'SLASH_VALIDATORS_ALWAYS' | 'SLASH_VALIDATORS_NEVER' | 'SLASH_PRUNE_PENALTY' | 'SLASH_DATA_WITHHOLDING_PENALTY' | 'SLASH_INACTIVITY_PENALTY' | 'SLASH_INACTIVITY_TARGET_PERCENTAGE' | 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD' | 'SLASH_INVALID_BLOCK_PENALTY' | 'SLASH_OVERRIDE_PAYLOAD' | 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY' | 'SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY' | 'SLASH_UNKNOWN_PENALTY' | 'SLASH_GRACE_PERIOD_L2_SLOTS' | 'SLASH_OFFENSE_EXPIRATION_ROUNDS' | 'SLASH_MAX_PAYLOAD_SIZE' | 'SLASH_EXECUTE_ROUNDS_LOOK_BACK' | 'SYNC_MODE' | 'SYNC_SNAPSHOTS_URLS' | 'SYNC_SNAPSHOTS_URL' | 'TELEMETRY' | 'TEST_ACCOUNTS' | 'SPONSORED_FPC' | 'TX_COLLECTION_FAST_NODES_TIMEOUT_BEFORE_REQ_RESP_MS' | 'TX_COLLECTION_SLOW_NODES_INTERVAL_MS' | 'TX_COLLECTION_SLOW_REQ_RESP_INTERVAL_MS' | 'TX_COLLECTION_SLOW_REQ_RESP_TIMEOUT_MS' | 'TX_COLLECTION_RECONCILE_INTERVAL_MS' | 'TX_COLLECTION_DISABLE_SLOW_DURING_FAST_REQUESTS' | 'TX_COLLECTION_FAST_NODE_INTERVAL_MS' | 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE' | 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE' | 'TX_COLLECTION_NODE_RPC_URLS' | 'TX_PUBLIC_SETUP_ALLOWLIST' | 'TXE_PORT' | 'TRANSACTIONS_DISABLED' | 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS' | 'VALIDATOR_DISABLED' | 'VALIDATOR_PRIVATE_KEYS' | 'VALIDATOR_PRIVATE_KEY' | 'VALIDATOR_REEXECUTE' | 'VALIDATOR_ADDRESSES' | 'ROLLUP_VERSION' | 'WS_BLOCK_CHECK_INTERVAL_MS' | 'WS_PROVEN_BLOCKS_ONLY' | 'WS_BLOCK_REQUEST_BATCH_SIZE' | 'L1_READER_VIEM_POLLING_INTERVAL_MS' | 'WS_DATA_DIRECTORY' | 'WS_NUM_HISTORIC_BLOCKS' | 'ETHEREUM_SLOT_DURATION' | 'AZTEC_SLOT_DURATION' | 'AZTEC_EPOCH_DURATION' | 'AZTEC_TARGET_COMMITTEE_SIZE' | 'AZTEC_LAG_IN_EPOCHS' | 'AZTEC_PROOF_SUBMISSION_EPOCHS' | 'AZTEC_ACTIVATION_THRESHOLD' | 'AZTEC_EJECTION_THRESHOLD' | 'AZTEC_LOCAL_EJECTION_THRESHOLD' | 'AZTEC_MANA_TARGET' | 'AZTEC_PROVING_COST_PER_MANA' | 'AZTEC_SLASHING_QUORUM' | 'AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS' | 'AZTEC_SLASHING_LIFETIME_IN_ROUNDS' | 'AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS' | 'AZTEC_SLASHING_VETOER' | 'AZTEC_SLASHING_OFFSET_IN_ROUNDS' | 'AZTEC_SLASHING_DISABLE_DURATION' | 'AZTEC_SLASH_AMOUNT_SMALL' | 'AZTEC_SLASH_AMOUNT_MEDIUM' | 'AZTEC_SLASH_AMOUNT_LARGE' | 'AZTEC_SLASHER_FLAVOR' | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM' | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE' | 'AZTEC_EXIT_DELAY_SECONDS' | 'L1_GAS_LIMIT_BUFFER_PERCENTAGE' | 'L1_GAS_PRICE_MAX' | 'L1_BLOB_FEE_PER_GAS_MAX' | 'L1_PRIORITY_FEE_BUMP_PERCENTAGE' | 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE' | 'L1_FIXED_PRIORITY_FEE_PER_GAS' | 'L1_TX_MONITOR_MAX_ATTEMPTS' | 'L1_TX_MONITOR_CHECK_INTERVAL_MS' | 'L1_TX_MONITOR_STALL_TIME_MS' | 'L1_TX_MONITOR_TX_TIMEOUT_MS' | 'L1_TX_MONITOR_CANCEL_TX_ON_TIMEOUT' | 'L1_TX_MONITOR_TX_CANCELLATION_TIMEOUT_MS' | 'L1_TX_MONITOR_TX_UNSEEN_CONSIDERED_DROPPED_MS' | 'FAUCET_MNEMONIC_ADDRESS_INDEX' | 'FAUCET_ETH_AMOUNT' | 'FAUCET_INTERVAL_MS' | 'FAUCET_L1_ASSETS' | 'K8S_POD_NAME' | 'K8S_POD_UID' | 'K8S_NAMESPACE_NAME' | 'VALIDATOR_REEXECUTE_DEADLINE_MS' | 'ALWAYS_REEXECUTE_BLOCK_PROPOSALS' | 'AUTO_UPDATE' | 'AUTO_UPDATE_URL' | 'WEB3_SIGNER_URL';
|
|
1
|
+
export type EnvVar = 'REGISTRY_CONTRACT_ADDRESS' | 'FEE_ASSET_HANDLER_CONTRACT_ADDRESS' | 'SLASH_FACTORY_CONTRACT_ADDRESS' | 'ACVM_BINARY_PATH' | 'ACVM_WORKING_DIRECTORY' | 'API_KEY' | 'API_PREFIX' | 'ARCHIVER_MAX_LOGS' | 'ARCHIVER_POLLING_INTERVAL_MS' | 'ARCHIVER_URL' | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS' | 'ARCHIVER_BATCH_SIZE' | 'AZTEC_ADMIN_PORT' | 'AZTEC_NODE_ADMIN_URL' | 'AZTEC_NODE_URL' | 'AZTEC_PORT' | 'BB_BINARY_PATH' | 'BB_SKIP_CLEANUP' | 'BB_WORKING_DIRECTORY' | 'BB_NUM_IVC_VERIFIERS' | 'BB_IVC_CONCURRENCY' | 'BOOTSTRAP_NODES' | 'BLOB_SINK_ARCHIVE_API_URL' | 'BLOB_SINK_PORT' | 'BLOB_SINK_URL' | 'BOT_DA_GAS_LIMIT' | 'BOT_FEE_PAYMENT_METHOD' | 'BOT_BASE_FEE_PADDING' | 'BOT_FLUSH_SETUP_TRANSACTIONS' | 'BOT_FOLLOW_CHAIN' | 'BOT_L2_GAS_LIMIT' | 'BOT_MAX_PENDING_TXS' | 'BOT_NO_START' | 'BOT_L1_MNEMONIC' | 'BOT_L1_PRIVATE_KEY' | 'BOT_L1_TO_L2_TIMEOUT_SECONDS' | 'BOT_PRIVATE_KEY' | 'BOT_ACCOUNT_SALT' | 'BOT_PRIVATE_TRANSFERS_PER_TX' | 'BOT_PUBLIC_TRANSFERS_PER_TX' | 'BOT_RECIPIENT_ENCRYPTION_SECRET' | 'BOT_TOKEN_CONTRACT' | 'BOT_TOKEN_SALT' | 'BOT_TX_INTERVAL_SECONDS' | 'BOT_TX_MINED_WAIT_SECONDS' | 'BOT_MAX_CONSECUTIVE_ERRORS' | 'BOT_STOP_WHEN_UNHEALTHY' | 'BOT_AMM_TXS' | 'COINBASE' | 'CRS_PATH' | 'DATA_DIRECTORY' | 'DATA_STORE_MAP_SIZE_KB' | 'ARCHIVER_STORE_MAP_SIZE_KB' | 'BLOB_SINK_MAP_SIZE_KB' | 'P2P_STORE_MAP_SIZE_KB' | 'PROVER_BROKER_STORE_MAP_SIZE_KB' | 'WS_DB_MAP_SIZE_KB' | 'ARCHIVE_TREE_MAP_SIZE_KB' | 'NULLIFIER_TREE_MAP_SIZE_KB' | 'NOTE_HASH_TREE_MAP_SIZE_KB' | 'MESSAGE_TREE_MAP_SIZE_KB' | 'PUBLIC_DATA_TREE_MAP_SIZE_KB' | 'DEBUG' | 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY' | 'DEPLOY_AZTEC_CONTRACTS_SALT' | 'ETHEREUM_HOSTS' | 'FEE_RECIPIENT' | 'FORCE_COLOR' | 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS' | 'KEY_STORE_DIRECTORY' | 'L1_CHAIN_ID' | 'L1_CONSENSUS_HOST_URLS' | 'L1_CONSENSUS_HOST_API_KEYS' | 'L1_CONSENSUS_HOST_API_KEY_HEADERS' | 'LOG_JSON' | 'LOG_MULTILINE' | 'LOG_LEVEL' | 'MNEMONIC' | 'NETWORK' | 'NETWORK_CONFIG_LOCATION' | 'NO_PXE' | 'USE_GCLOUD_LOGGING' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' | 'OTEL_COLLECT_INTERVAL_MS' | 'OTEL_EXCLUDE_METRICS' | 'OTEL_EXPORT_TIMEOUT_MS' | 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'PUBLIC_OTEL_INCLUDE_METRICS' | 'PUBLIC_OTEL_COLLECT_FROM' | 'PUBLIC_OTEL_OPT_OUT' | 'P2P_BLOCK_CHECK_INTERVAL_MS' | 'P2P_BLOCK_REQUEST_BATCH_SIZE' | 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK' | 'P2P_BOOTSTRAP_NODES_AS_FULL_PEERS' | 'P2P_ENABLED' | 'P2P_DISCOVERY_DISABLED' | 'P2P_GOSSIPSUB_D' | 'P2P_GOSSIPSUB_DHI' | 'P2P_GOSSIPSUB_DLO' | 'P2P_GOSSIPSUB_DLAZY' | 'P2P_GOSSIPSUB_FLOOD_PUBLISH' | 'P2P_GOSSIPSUB_INTERVAL_MS' | 'P2P_GOSSIPSUB_MCACHE_GOSSIP' | 'P2P_GOSSIPSUB_MCACHE_LENGTH' | 'P2P_GOSSIPSUB_SEEN_TTL' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT' | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT' | 'P2P_L2_QUEUE_SIZE' | 'P2P_MAX_PEERS' | 'P2P_PEER_CHECK_INTERVAL_MS' | 'P2P_PEER_PENALTY_VALUES' | 'P2P_QUERY_FOR_IP' | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS' | 'P2P_REQRESP_DIAL_TIMEOUT_MS' | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS' | 'P2P_DISABLE_STATUS_HANDSHAKE' | 'P2P_ALLOW_ONLY_VALIDATORS' | 'P2P_MAX_AUTH_FAILED_ATTEMPTS_ALLOWED' | 'P2P_REQRESP_OPTIMISTIC_NEGOTIATION' | 'P2P_DOUBLE_SPEND_SEVERE_PEER_PENALTY_WINDOW' | 'P2P_LISTEN_ADDR' | 'P2P_PORT' | 'P2P_BROADCAST_PORT' | 'P2P_IP' | 'P2P_ARCHIVED_TX_LIMIT' | 'P2P_TRUSTED_PEERS' | 'P2P_PRIVATE_PEERS' | 'P2P_PREFERRED_PEERS' | 'P2P_MAX_TX_POOL_SIZE' | 'P2P_TX_POOL_OVERFLOW_FACTOR' | 'P2P_SEEN_MSG_CACHE_SIZE' | 'P2P_DROP_TX' | 'P2P_DROP_TX_CHANCE' | 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG' | 'PEER_ID_PRIVATE_KEY' | 'PEER_ID_PRIVATE_KEY_PATH' | 'PROVER_AGENT_COUNT' | 'PROVER_AGENT_PROOF_TYPES' | 'PROVER_AGENT_POLL_INTERVAL_MS' | 'PROVER_BROKER_HOST' | 'PROVER_BROKER_JOB_TIMEOUT_MS' | 'PROVER_BROKER_POLL_INTERVAL_MS' | 'PROVER_BROKER_JOB_MAX_RETRIES' | 'PROVER_BROKER_BATCH_INTERVAL_MS' | 'PROVER_BROKER_BATCH_SIZE' | 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR' | 'PROVER_COORDINATION_NODE_URLS' | 'PROVER_FAILED_PROOF_STORE' | 'PROVER_NODE_FAILED_EPOCH_STORE' | 'PROVER_NODE_DISABLE_PROOF_PUBLISH' | 'PROVER_ID' | 'PROVER_NODE_POLLING_INTERVAL_MS' | 'PROVER_NODE_MAX_PENDING_JOBS' | 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH' | 'PROVER_NODE_TX_GATHERING_INTERVAL_MS' | 'PROVER_NODE_TX_GATHERING_BATCH_SIZE' | 'PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS_PER_NODE' | 'PROVER_NODE_TX_GATHERING_TIMEOUT_MS' | 'PROVER_PUBLISHER_PRIVATE_KEY' | 'PROVER_PUBLISHER_PRIVATE_KEYS' | 'PROVER_PUBLISHER_ADDRESSES' | 'PROVER_PUBLISHER_ALLOW_INVALID_STATES' | 'PROVER_REAL_PROOFS' | 'PROVER_TEST_DELAY_FACTOR' | 'PROVER_TEST_DELAY_MS' | 'PROVER_TEST_DELAY_TYPE' | 'PXE_L2_BLOCK_BATCH_SIZE' | 'PXE_PROVER_ENABLED' | 'RPC_MAX_BATCH_SIZE' | 'RPC_MAX_BODY_SIZE' | 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT' | 'RPC_SIMULATE_PUBLIC_MAX_DEBUG_LOG_MEMORY_READS' | 'SENTINEL_ENABLED' | 'SENTINEL_HISTORY_LENGTH_IN_EPOCHS' | 'SENTINEL_HISTORIC_PROVEN_PERFORMANCE_LENGTH_IN_EPOCHS' | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES' | 'SEQ_MAX_TX_PER_BLOCK' | 'SEQ_MIN_TX_PER_BLOCK' | 'SEQ_PUBLISH_TXS_WITH_PROPOSALS' | 'SEQ_MAX_DA_BLOCK_GAS' | 'SEQ_MAX_L2_BLOCK_GAS' | 'SEQ_PUBLISHER_PRIVATE_KEY' | 'SEQ_PUBLISHER_PRIVATE_KEYS' | 'SEQ_PUBLISHER_ADDRESSES' | 'SEQ_PUBLISHER_ALLOW_INVALID_STATES' | 'SEQ_TX_POLLING_INTERVAL_MS' | 'SEQ_ENFORCE_TIME_TABLE' | 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT' | 'SEQ_ATTESTATION_PROPAGATION_TIME' | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER' | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER' | 'SLASH_MIN_PENALTY_PERCENTAGE' | 'SLASH_MAX_PENALTY_PERCENTAGE' | 'SLASH_VALIDATORS_ALWAYS' | 'SLASH_VALIDATORS_NEVER' | 'SLASH_PRUNE_PENALTY' | 'SLASH_DATA_WITHHOLDING_PENALTY' | 'SLASH_INACTIVITY_PENALTY' | 'SLASH_INACTIVITY_TARGET_PERCENTAGE' | 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD' | 'SLASH_INVALID_BLOCK_PENALTY' | 'SLASH_OVERRIDE_PAYLOAD' | 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY' | 'SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY' | 'SLASH_UNKNOWN_PENALTY' | 'SLASH_GRACE_PERIOD_L2_SLOTS' | 'SLASH_OFFENSE_EXPIRATION_ROUNDS' | 'SLASH_MAX_PAYLOAD_SIZE' | 'SLASH_EXECUTE_ROUNDS_LOOK_BACK' | 'SYNC_MODE' | 'SYNC_SNAPSHOTS_URLS' | 'SYNC_SNAPSHOTS_URL' | 'TELEMETRY' | 'TEST_ACCOUNTS' | 'SPONSORED_FPC' | 'TX_COLLECTION_FAST_NODES_TIMEOUT_BEFORE_REQ_RESP_MS' | 'TX_COLLECTION_SLOW_NODES_INTERVAL_MS' | 'TX_COLLECTION_SLOW_REQ_RESP_INTERVAL_MS' | 'TX_COLLECTION_SLOW_REQ_RESP_TIMEOUT_MS' | 'TX_COLLECTION_RECONCILE_INTERVAL_MS' | 'TX_COLLECTION_DISABLE_SLOW_DURING_FAST_REQUESTS' | 'TX_COLLECTION_FAST_NODE_INTERVAL_MS' | 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE' | 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE' | 'TX_COLLECTION_NODE_RPC_URLS' | 'TX_PUBLIC_SETUP_ALLOWLIST' | 'TXE_PORT' | 'TRANSACTIONS_DISABLED' | 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS' | 'VALIDATOR_DISABLED' | 'VALIDATOR_PRIVATE_KEYS' | 'VALIDATOR_PRIVATE_KEY' | 'VALIDATOR_REEXECUTE' | 'VALIDATOR_ADDRESSES' | 'ROLLUP_VERSION' | 'WS_BLOCK_CHECK_INTERVAL_MS' | 'WS_PROVEN_BLOCKS_ONLY' | 'WS_BLOCK_REQUEST_BATCH_SIZE' | 'L1_READER_VIEM_POLLING_INTERVAL_MS' | 'WS_DATA_DIRECTORY' | 'WS_NUM_HISTORIC_BLOCKS' | 'ETHEREUM_SLOT_DURATION' | 'AZTEC_SLOT_DURATION' | 'AZTEC_EPOCH_DURATION' | 'AZTEC_TARGET_COMMITTEE_SIZE' | 'AZTEC_LAG_IN_EPOCHS' | 'AZTEC_PROOF_SUBMISSION_EPOCHS' | 'AZTEC_ACTIVATION_THRESHOLD' | 'AZTEC_EJECTION_THRESHOLD' | 'AZTEC_LOCAL_EJECTION_THRESHOLD' | 'AZTEC_MANA_TARGET' | 'AZTEC_PROVING_COST_PER_MANA' | 'AZTEC_SLASHING_QUORUM' | 'AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS' | 'AZTEC_SLASHING_LIFETIME_IN_ROUNDS' | 'AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS' | 'AZTEC_SLASHING_VETOER' | 'AZTEC_SLASHING_OFFSET_IN_ROUNDS' | 'AZTEC_SLASHING_DISABLE_DURATION' | 'AZTEC_SLASH_AMOUNT_SMALL' | 'AZTEC_SLASH_AMOUNT_MEDIUM' | 'AZTEC_SLASH_AMOUNT_LARGE' | 'AZTEC_SLASHER_FLAVOR' | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM' | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE' | 'AZTEC_EXIT_DELAY_SECONDS' | 'L1_GAS_LIMIT_BUFFER_PERCENTAGE' | 'L1_GAS_PRICE_MAX' | 'L1_BLOB_FEE_PER_GAS_MAX' | 'L1_PRIORITY_FEE_BUMP_PERCENTAGE' | 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE' | 'L1_FIXED_PRIORITY_FEE_PER_GAS' | 'L1_TX_MONITOR_MAX_ATTEMPTS' | 'L1_TX_MONITOR_CHECK_INTERVAL_MS' | 'L1_TX_MONITOR_STALL_TIME_MS' | 'L1_TX_MONITOR_TX_TIMEOUT_MS' | 'L1_TX_MONITOR_CANCEL_TX_ON_TIMEOUT' | 'L1_TX_MONITOR_TX_CANCELLATION_TIMEOUT_MS' | 'L1_TX_MONITOR_TX_UNSEEN_CONSIDERED_DROPPED_MS' | 'FAUCET_MNEMONIC_ADDRESS_INDEX' | 'FAUCET_ETH_AMOUNT' | 'FAUCET_INTERVAL_MS' | 'FAUCET_L1_ASSETS' | 'K8S_POD_NAME' | 'K8S_POD_UID' | 'K8S_NAMESPACE_NAME' | 'VALIDATOR_REEXECUTE_DEADLINE_MS' | 'ALWAYS_REEXECUTE_BLOCK_PROPOSALS' | 'AUTO_UPDATE' | 'AUTO_UPDATE_URL' | 'WEB3_SIGNER_URL' | 'SKIP_ARCHIVER_INITIAL_SYNC' | 'BLOB_ALLOW_EMPTY_SOURCES';
|
|
2
2
|
//# sourceMappingURL=env_var.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env_var.d.ts","sourceRoot":"","sources":["../../src/config/env_var.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env_var.d.ts","sourceRoot":"","sources":["../../src/config/env_var.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Fq, Fr } from '../../fields/fields.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=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/bn254/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,YAAY;aAEL,CAAC,EAAE,EAAE;aACL,CAAC,EAAE,EAAE;gBADL,CAAC,EAAE,EAAE,EACL,CAAC,EAAE,EAAE;IAGvB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAIvB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IASnC;;;;OAIG;WACU,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB1D;;;;OAIG;WACU,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAWtE;;;;OAIG;IACH,QAAQ,IAAI,MAAM;IAWlB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAIpC,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;GAIG;AACH,qBAAa,YAAY;aAEL,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aACX,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;gBADX,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACX,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAG7B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAO7B;;;;OAIG;WACU,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB1D,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IASpC,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { BN254_G1_GENERATOR, BN254_G2_GENERATOR, BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
+
import { Fq } from '../../fields/fields.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
|
+
await BarretenbergSync.initSingleton();
|
|
53
|
+
const api = BarretenbergSync.getSingleton();
|
|
54
|
+
const response = api.bn254G1FromCompressed({
|
|
55
|
+
compressed: new Uint8Array(compressed)
|
|
56
|
+
});
|
|
57
|
+
return Bn254G1Point.fromBbApiPoint(response.point);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Compress this BN254 G1 point to 32 bytes.
|
|
61
|
+
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
62
|
+
* in the most significant bit (bit 255).
|
|
63
|
+
*/ compress() {
|
|
64
|
+
const xBytes = this.x.toBuffer();
|
|
65
|
+
// Get the least significant bit of y to determine the sign
|
|
66
|
+
const yLsb = this.y.toBigInt() & 1n;
|
|
67
|
+
// If y is odd, set the most significant bit (bit 255) of the output
|
|
68
|
+
if (yLsb === 1n) {
|
|
69
|
+
xBytes[0] |= 0x80;
|
|
70
|
+
}
|
|
71
|
+
return xBytes;
|
|
72
|
+
}
|
|
73
|
+
equals(other) {
|
|
74
|
+
return this.x.equals(other.x) && this.y.equals(other.y);
|
|
75
|
+
}
|
|
76
|
+
toString() {
|
|
77
|
+
return `Bn254G1Point(x: ${this.x.toString()}, y: ${this.y.toString()})`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* BN254 G2 point using foundation field classes.
|
|
82
|
+
* Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
|
|
83
|
+
* G2 points use extension field coordinates (Fq2).
|
|
84
|
+
*/ export class Bn254G2Point {
|
|
85
|
+
x;
|
|
86
|
+
y;
|
|
87
|
+
constructor(x, y){
|
|
88
|
+
this.x = x;
|
|
89
|
+
this.y = y;
|
|
90
|
+
}
|
|
91
|
+
toBbApiPoint() {
|
|
92
|
+
return {
|
|
93
|
+
x: [
|
|
94
|
+
this.x[0].toBuffer(),
|
|
95
|
+
this.x[1].toBuffer()
|
|
96
|
+
],
|
|
97
|
+
y: [
|
|
98
|
+
this.y[0].toBuffer(),
|
|
99
|
+
this.y[1].toBuffer()
|
|
100
|
+
]
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
static fromBbApiPoint(point) {
|
|
104
|
+
return new Bn254G2Point([
|
|
105
|
+
Fq.fromBuffer(Buffer.from(point.x[0])),
|
|
106
|
+
Fq.fromBuffer(Buffer.from(point.x[1]))
|
|
107
|
+
], [
|
|
108
|
+
Fq.fromBuffer(Buffer.from(point.y[0])),
|
|
109
|
+
Fq.fromBuffer(Buffer.from(point.y[1]))
|
|
110
|
+
]);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get the generator point for BN254 G2, or perform scalar multiplication.
|
|
114
|
+
* When called without arguments, returns the base generator point.
|
|
115
|
+
* When called with a scalar, returns scalar * generator.
|
|
116
|
+
*/ static async generator(scalar) {
|
|
117
|
+
if (!scalar) {
|
|
118
|
+
return new Bn254G2Point([
|
|
119
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[0])),
|
|
120
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[1]))
|
|
121
|
+
], [
|
|
122
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[0])),
|
|
123
|
+
Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[1]))
|
|
124
|
+
]);
|
|
125
|
+
}
|
|
126
|
+
await BarretenbergSync.initSingleton();
|
|
127
|
+
const api = BarretenbergSync.getSingleton();
|
|
128
|
+
const response = api.bn254G2Mul({
|
|
129
|
+
point: BN254_G2_GENERATOR,
|
|
130
|
+
scalar: scalar.toBuffer()
|
|
131
|
+
});
|
|
132
|
+
return Bn254G2Point.fromBbApiPoint(response.point);
|
|
133
|
+
}
|
|
134
|
+
equals(other) {
|
|
135
|
+
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]);
|
|
136
|
+
}
|
|
137
|
+
toString() {
|
|
138
|
+
return `Bn254G2Point(x: (${this.x[0].toString()}, ${this.x[1].toString()}), y: (${this.y[0].toString()}, ${this.y[1].toString()}))`;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -3,43 +3,38 @@ import { Fr, type GrumpkinScalar, Point } from '@aztec/foundation/fields';
|
|
|
3
3
|
* Grumpkin elliptic curve operations.
|
|
4
4
|
*/
|
|
5
5
|
export declare class Grumpkin {
|
|
6
|
-
static generator: Point;
|
|
7
|
-
/**
|
|
8
|
-
* Point generator
|
|
9
|
-
* @returns The generator for the curve.
|
|
10
|
-
*/
|
|
11
|
-
generator(): Point;
|
|
6
|
+
static readonly generator: Point;
|
|
12
7
|
/**
|
|
13
8
|
* Multiplies a point by a scalar (adds the point `scalar` amount of times).
|
|
14
9
|
* @param point - Point to multiply.
|
|
15
10
|
* @param scalar - Scalar to multiply by.
|
|
16
11
|
* @returns Result of the multiplication.
|
|
17
12
|
*/
|
|
18
|
-
mul(point: Point, scalar: GrumpkinScalar): Promise<Point>;
|
|
13
|
+
static mul(point: Point, scalar: GrumpkinScalar): Promise<Point>;
|
|
19
14
|
/**
|
|
20
15
|
* Add two points.
|
|
21
16
|
* @param a - Point a in the addition
|
|
22
17
|
* @param b - Point b to add to a
|
|
23
18
|
* @returns Result of the addition.
|
|
24
19
|
*/
|
|
25
|
-
add(a: Point, b: Point): Promise<Point>;
|
|
20
|
+
static add(a: Point, b: Point): Promise<Point>;
|
|
26
21
|
/**
|
|
27
22
|
* Multiplies a set of points by a scalar.
|
|
28
23
|
* @param points - Points to multiply.
|
|
29
24
|
* @param scalar - Scalar to multiply by.
|
|
30
25
|
* @returns Points multiplied by the scalar.
|
|
31
26
|
*/
|
|
32
|
-
batchMul(points: Point[], scalar: GrumpkinScalar): Promise<Point[]>;
|
|
27
|
+
static batchMul(points: Point[], scalar: GrumpkinScalar): Promise<Point[]>;
|
|
33
28
|
/**
|
|
34
29
|
* Gets a random field element.
|
|
35
30
|
* @returns Random field element.
|
|
36
31
|
*/
|
|
37
|
-
getRandomFr(): Promise<Fr>;
|
|
32
|
+
static getRandomFr(): Promise<Fr>;
|
|
38
33
|
/**
|
|
39
34
|
* Converts a 512 bits long buffer to a field.
|
|
40
35
|
* @param uint512Buf - The buffer to convert.
|
|
41
36
|
* @returns Buffer representation of the field element.
|
|
42
37
|
*/
|
|
43
|
-
reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
|
|
38
|
+
static reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
|
|
44
39
|
}
|
|
45
40
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE1E;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE1E;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,QAAQ,CAAC,SAAS,QAKrB;IAEJ;;;;;OAKG;WACiB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAU7E;;;;;OAKG;WACiB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAU3D;;;;;OAKG;WACiB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc;IAWpE;;;OAGG;WACiB,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC;IAO9C;;;;OAIG;WACiB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAMzE"}
|
|
@@ -71,17 +71,11 @@ import { Fr, Point } from '@aztec/foundation/fields';
|
|
|
71
71
|
0x2c
|
|
72
72
|
]));
|
|
73
73
|
/**
|
|
74
|
-
* Point generator
|
|
75
|
-
* @returns The generator for the curve.
|
|
76
|
-
*/ generator() {
|
|
77
|
-
return Grumpkin.generator;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
74
|
* Multiplies a point by a scalar (adds the point `scalar` amount of times).
|
|
81
75
|
* @param point - Point to multiply.
|
|
82
76
|
* @param scalar - Scalar to multiply by.
|
|
83
77
|
* @returns Result of the multiplication.
|
|
84
|
-
*/ async mul(point, scalar) {
|
|
78
|
+
*/ static async mul(point, scalar) {
|
|
85
79
|
await BarretenbergSync.initSingleton({
|
|
86
80
|
wasmPath: process.env.BB_WASM_PATH
|
|
87
81
|
});
|
|
@@ -103,7 +97,7 @@ import { Fr, Point } from '@aztec/foundation/fields';
|
|
|
103
97
|
* @param a - Point a in the addition
|
|
104
98
|
* @param b - Point b to add to a
|
|
105
99
|
* @returns Result of the addition.
|
|
106
|
-
*/ async add(a, b) {
|
|
100
|
+
*/ static async add(a, b) {
|
|
107
101
|
await BarretenbergSync.initSingleton({
|
|
108
102
|
wasmPath: process.env.BB_WASM_PATH
|
|
109
103
|
});
|
|
@@ -128,7 +122,7 @@ import { Fr, Point } from '@aztec/foundation/fields';
|
|
|
128
122
|
* @param points - Points to multiply.
|
|
129
123
|
* @param scalar - Scalar to multiply by.
|
|
130
124
|
* @returns Points multiplied by the scalar.
|
|
131
|
-
*/ async batchMul(points, scalar) {
|
|
125
|
+
*/ static async batchMul(points, scalar) {
|
|
132
126
|
await BarretenbergSync.initSingleton({
|
|
133
127
|
wasmPath: process.env.BB_WASM_PATH
|
|
134
128
|
});
|
|
@@ -148,7 +142,7 @@ import { Fr, Point } from '@aztec/foundation/fields';
|
|
|
148
142
|
/**
|
|
149
143
|
* Gets a random field element.
|
|
150
144
|
* @returns Random field element.
|
|
151
|
-
*/ async getRandomFr() {
|
|
145
|
+
*/ static async getRandomFr() {
|
|
152
146
|
await BarretenbergSync.initSingleton({
|
|
153
147
|
wasmPath: process.env.BB_WASM_PATH
|
|
154
148
|
});
|
|
@@ -162,7 +156,7 @@ import { Fr, Point } from '@aztec/foundation/fields';
|
|
|
162
156
|
* Converts a 512 bits long buffer to a field.
|
|
163
157
|
* @param uint512Buf - The buffer to convert.
|
|
164
158
|
* @returns Buffer representation of the field element.
|
|
165
|
-
*/ async reduce512BufferToFr(uint512Buf) {
|
|
159
|
+
*/ static async reduce512BufferToFr(uint512Buf) {
|
|
166
160
|
await BarretenbergSync.initSingleton({
|
|
167
161
|
wasmPath: process.env.BB_WASM_PATH
|
|
168
162
|
});
|
package/dest/crypto/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './poseidon/index.js';
|
|
|
7
7
|
export * from './secp256k1-signer/index.js';
|
|
8
8
|
export * from './keys/index.js';
|
|
9
9
|
export * from './aes128/index.js';
|
|
10
|
+
export * from './bn254/index.js';
|
|
10
11
|
export * from './grumpkin/index.js';
|
|
11
12
|
export * from './ecdsa/index.js';
|
|
12
13
|
export * from './secp256k1/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
package/dest/crypto/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export * from './poseidon/index.js';
|
|
|
7
7
|
export * from './secp256k1-signer/index.js';
|
|
8
8
|
export * from './keys/index.js';
|
|
9
9
|
export * from './aes128/index.js';
|
|
10
|
+
export * from './bn254/index.js';
|
|
10
11
|
export * from './grumpkin/index.js';
|
|
11
12
|
export * from './ecdsa/index.js';
|
|
12
13
|
export * from './secp256k1/index.js';
|
package/dest/fields/fields.d.ts
CHANGED
|
@@ -157,6 +157,11 @@ export declare class Fq extends BaseField {
|
|
|
157
157
|
static fromHexString(buf: string): Fq;
|
|
158
158
|
static fromHighLow(high: Fr, low: Fr): Fq;
|
|
159
159
|
add(rhs: Fq): Fq;
|
|
160
|
+
/**
|
|
161
|
+
* Computes a square root of the field element.
|
|
162
|
+
* @returns A square root of the field element (null if it does not exist).
|
|
163
|
+
*/
|
|
164
|
+
sqrt(): Promise<Fq | null>;
|
|
160
165
|
toJSON(): `0x${string}`;
|
|
161
166
|
toFields(): Fr[];
|
|
162
167
|
static get schema(): import("zod").ZodType<Fq, any, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/fields/fields.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/fields/fields.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK/B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAO7D;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,IAAI;IACvC,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,uBAAe,SAAS;IACtB,MAAM,CAAC,aAAa,SAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAE1B;;;SAGK;IACL,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,iCAAiC;IACjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,SAAS,aAAa,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM;IAwB3E,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM;IAEpC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAOlB,QAAQ,IAAI,KAAK,MAAM,EAAE;IAIzB,QAAQ,IAAI,MAAM;IAUlB,MAAM,IAAI,OAAO;IAIjB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAQlB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAKxB,aAAa,IAAI,MAAM;IAKvB,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAI/B,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAI3B,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAM/B,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,OAAO;IAIlB,cAAc,IAAI,MAAM;IAIxB,OAAO;CAGR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAGhG;AAiCD,+DAA+D;AAC/D,MAAM,WAAW,EAAE;IACjB,aAAa;IACb,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,EAAG,SAAQ,SAAS;IAC/B,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,GAAG,KAAc;IACxB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,eAAe,KAA6B;gBAEvC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,GAAG,MAAM;IAI1D,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB,SAAS,CAAC,OAAO;IAIjB,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,IAAI;IAIX,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;IAIvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAI/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAItC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAW7B;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IAIhC,iBAAiB;IAEjB,GAAG,CAAC,GAAG,EAAE,EAAE;IAIX,MAAM;IAIN,MAAM;IAIN,GAAG,CAAC,GAAG,EAAE,EAAE;IAKX,GAAG,CAAC,GAAG,EAAE,EAAE;IAIX,GAAG,CAAC,GAAG,EAAE,EAAE;IAUX,IAAI,CAAC,GAAG,EAAE,EAAE;IAQZ;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;IAWhC,MAAM;IAIN,MAAM,KAAK,MAAM,2CAEhB;CACF;AAKD;;GAEG;AACH,MAAM,WAAW,EAAE;IACjB,aAAa;IACb,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,EAAG,SAAQ,SAAS;IAC/B,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,OAAO,CAAC,MAAM,CAAC,UAAU,CAA6C;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,EAAE,IAAI,EAAE,CAEX;gBAEW,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,GAAG,MAAM;IAI1D,SAAS,CAAC,OAAO;IAIjB,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,IAAI;IAIX,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAI/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAItC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAW7B;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IAIhC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;IAIzC,GAAG,CAAC,GAAG,EAAE,EAAE;IAIX;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;IAWhC,MAAM;IAIN,QAAQ;IAOR,MAAM,KAAK,MAAM,2CAEhB;CACF;AAgCD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAChC,eAAO,MAAM,cAAc,WAAK,CAAC;AAEjC,6GAA6G;AAC7G,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,IAC3G,OAAO,MAAM,YACtB"}
|
package/dest/fields/fields.js
CHANGED
|
@@ -235,9 +235,7 @@ const ZERO_BUFFER = Buffer.alloc(32);
|
|
|
235
235
|
* Computes a square root of the field element.
|
|
236
236
|
* @returns A square root of the field element (null if it does not exist).
|
|
237
237
|
*/ async sqrt() {
|
|
238
|
-
await BarretenbergSync.initSingleton(
|
|
239
|
-
wasmPath: process.env.BB_WASM_PATH
|
|
240
|
-
});
|
|
238
|
+
await BarretenbergSync.initSingleton();
|
|
241
239
|
const api = BarretenbergSync.getSingleton();
|
|
242
240
|
const response = api.bn254FrSqrt({
|
|
243
241
|
input: this.toBuffer()
|
|
@@ -322,6 +320,21 @@ TypeRegistry.register('Fr', Fr);
|
|
|
322
320
|
add(rhs) {
|
|
323
321
|
return new Fq((this.toBigInt() + rhs.toBigInt()) % Fq.MODULUS);
|
|
324
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Computes a square root of the field element.
|
|
325
|
+
* @returns A square root of the field element (null if it does not exist).
|
|
326
|
+
*/ async sqrt() {
|
|
327
|
+
await BarretenbergSync.initSingleton();
|
|
328
|
+
const api = BarretenbergSync.getSingleton();
|
|
329
|
+
const response = api.bn254FqSqrt({
|
|
330
|
+
input: this.toBuffer()
|
|
331
|
+
});
|
|
332
|
+
if (!response.isSquareRoot) {
|
|
333
|
+
// Field element is not a quadratic residue mod p so it has no square root.
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
336
|
+
return Fq.fromBuffer(Buffer.from(response.value));
|
|
337
|
+
}
|
|
325
338
|
toJSON() {
|
|
326
339
|
return this.toString();
|
|
327
340
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/foundation",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-manual.20251030",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dest/index.js",
|
|
6
6
|
"types": "./dest/index.d.ts",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"testEnvironment": "../../foundation/src/jest/env.mjs"
|
|
104
104
|
},
|
|
105
105
|
"dependencies": {
|
|
106
|
-
"@aztec/bb.js": "3.0.0-
|
|
106
|
+
"@aztec/bb.js": "3.0.0-manual.20251030",
|
|
107
107
|
"@koa/cors": "^5.0.0",
|
|
108
108
|
"@noble/curves": "=1.7.0",
|
|
109
109
|
"bn.js": "^5.2.1",
|
package/src/config/env_var.ts
CHANGED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BN254_G1_GENERATOR,
|
|
3
|
+
BN254_G2_GENERATOR,
|
|
4
|
+
BarretenbergSync,
|
|
5
|
+
type Bn254G1Point as BbApiBn254G1Point,
|
|
6
|
+
type Bn254G2Point as BbApiBn254G2Point,
|
|
7
|
+
} from '@aztec/bb.js';
|
|
8
|
+
|
|
9
|
+
import { Fq, Fr } from '../../fields/fields.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* BN254 G1 point using foundation field classes.
|
|
13
|
+
* Represents a point on the BN254 elliptic curve in affine coordinates.
|
|
14
|
+
*/
|
|
15
|
+
export class Bn254G1Point {
|
|
16
|
+
constructor(
|
|
17
|
+
public readonly x: Fq,
|
|
18
|
+
public readonly y: Fq,
|
|
19
|
+
) {}
|
|
20
|
+
|
|
21
|
+
private toBbApiPoint(): BbApiBn254G1Point {
|
|
22
|
+
return {
|
|
23
|
+
x: this.x.toBuffer(),
|
|
24
|
+
y: this.y.toBuffer(),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private static fromBbApiPoint(point: BbApiBn254G1Point): Bn254G1Point {
|
|
29
|
+
return new Bn254G1Point(Fq.fromBuffer(Buffer.from(point.x)), Fq.fromBuffer(Buffer.from(point.y)));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async isOnCurve(): Promise<boolean> {
|
|
33
|
+
await BarretenbergSync.initSingleton();
|
|
34
|
+
const api = BarretenbergSync.getSingleton();
|
|
35
|
+
|
|
36
|
+
const apiPoint = this.toBbApiPoint();
|
|
37
|
+
const response = api.bn254G1IsOnCurve({ point: apiPoint });
|
|
38
|
+
return response.isOnCurve;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Get the generator point for BN254 G1, or perform scalar multiplication.
|
|
43
|
+
* When called without arguments, returns the base generator point.
|
|
44
|
+
* When called with a scalar, returns scalar * generator (useful for public key derivation).
|
|
45
|
+
*/
|
|
46
|
+
static async generator(scalar?: Fr): Promise<Bn254G1Point> {
|
|
47
|
+
if (!scalar) {
|
|
48
|
+
return new Bn254G1Point(
|
|
49
|
+
Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.x)),
|
|
50
|
+
Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.y)),
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
await BarretenbergSync.initSingleton();
|
|
55
|
+
const api = BarretenbergSync.getSingleton();
|
|
56
|
+
|
|
57
|
+
const response = api.bn254G1Mul({
|
|
58
|
+
point: BN254_G1_GENERATOR,
|
|
59
|
+
scalar: scalar.toBuffer(),
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
return Bn254G1Point.fromBbApiPoint(response.point);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Decompress a BN254 G1 point from compressed form (32 bytes).
|
|
67
|
+
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
68
|
+
* in the most significant bit.
|
|
69
|
+
*/
|
|
70
|
+
static async fromCompressed(compressed: Buffer): Promise<Bn254G1Point> {
|
|
71
|
+
await BarretenbergSync.initSingleton();
|
|
72
|
+
const api = BarretenbergSync.getSingleton();
|
|
73
|
+
|
|
74
|
+
const response = api.bn254G1FromCompressed({
|
|
75
|
+
compressed: new Uint8Array(compressed),
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
return Bn254G1Point.fromBbApiPoint(response.point);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Compress this BN254 G1 point to 32 bytes.
|
|
83
|
+
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
84
|
+
* in the most significant bit (bit 255).
|
|
85
|
+
*/
|
|
86
|
+
compress(): Buffer {
|
|
87
|
+
const xBytes = this.x.toBuffer();
|
|
88
|
+
// Get the least significant bit of y to determine the sign
|
|
89
|
+
const yLsb = this.y.toBigInt() & 1n;
|
|
90
|
+
// If y is odd, set the most significant bit (bit 255) of the output
|
|
91
|
+
if (yLsb === 1n) {
|
|
92
|
+
xBytes[0] |= 0x80;
|
|
93
|
+
}
|
|
94
|
+
return xBytes;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
equals(other: Bn254G1Point): boolean {
|
|
98
|
+
return this.x.equals(other.x) && this.y.equals(other.y);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
toString(): string {
|
|
102
|
+
return `Bn254G1Point(x: ${this.x.toString()}, y: ${this.y.toString()})`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* BN254 G2 point using foundation field classes.
|
|
108
|
+
* Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
|
|
109
|
+
* G2 points use extension field coordinates (Fq2).
|
|
110
|
+
*/
|
|
111
|
+
export class Bn254G2Point {
|
|
112
|
+
constructor(
|
|
113
|
+
public readonly x: [Fq, Fq],
|
|
114
|
+
public readonly y: [Fq, Fq],
|
|
115
|
+
) {}
|
|
116
|
+
|
|
117
|
+
private toBbApiPoint(): BbApiBn254G2Point {
|
|
118
|
+
return {
|
|
119
|
+
x: [this.x[0].toBuffer(), this.x[1].toBuffer()],
|
|
120
|
+
y: [this.y[0].toBuffer(), this.y[1].toBuffer()],
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
private static fromBbApiPoint(point: BbApiBn254G2Point): Bn254G2Point {
|
|
125
|
+
return new Bn254G2Point(
|
|
126
|
+
[Fq.fromBuffer(Buffer.from(point.x[0])), Fq.fromBuffer(Buffer.from(point.x[1]))],
|
|
127
|
+
[Fq.fromBuffer(Buffer.from(point.y[0])), Fq.fromBuffer(Buffer.from(point.y[1]))],
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Get the generator point for BN254 G2, or perform scalar multiplication.
|
|
133
|
+
* When called without arguments, returns the base generator point.
|
|
134
|
+
* When called with a scalar, returns scalar * generator.
|
|
135
|
+
*/
|
|
136
|
+
static async generator(scalar?: Fr): Promise<Bn254G2Point> {
|
|
137
|
+
if (!scalar) {
|
|
138
|
+
return new Bn254G2Point(
|
|
139
|
+
[Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[0])), Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[1]))],
|
|
140
|
+
[Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[0])), Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[1]))],
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
await BarretenbergSync.initSingleton();
|
|
145
|
+
const api = BarretenbergSync.getSingleton();
|
|
146
|
+
|
|
147
|
+
const response = api.bn254G2Mul({
|
|
148
|
+
point: BN254_G2_GENERATOR as BbApiBn254G2Point,
|
|
149
|
+
scalar: scalar.toBuffer(),
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
return Bn254G2Point.fromBbApiPoint(response.point);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
equals(other: Bn254G2Point): boolean {
|
|
156
|
+
return (
|
|
157
|
+
this.x[0].equals(other.x[0]) &&
|
|
158
|
+
this.x[1].equals(other.x[1]) &&
|
|
159
|
+
this.y[0].equals(other.y[0]) &&
|
|
160
|
+
this.y[1].equals(other.y[1])
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
toString(): string {
|
|
165
|
+
return `Bn254G2Point(x: (${this.x[0].toString()}, ${this.x[1].toString()}), y: (${this.y[0].toString()}, ${this.y[1].toString()}))`;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
@@ -6,28 +6,20 @@ import { Fr, type GrumpkinScalar, Point } from '@aztec/foundation/fields';
|
|
|
6
6
|
*/
|
|
7
7
|
export class Grumpkin {
|
|
8
8
|
// prettier-ignore
|
|
9
|
-
static generator = Point.fromBuffer(Buffer.from([
|
|
9
|
+
static readonly generator = Point.fromBuffer(Buffer.from([
|
|
10
10
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
11
11
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
|
12
12
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xcf, 0x13, 0x5e, 0x75, 0x06, 0xa4, 0x5d, 0x63,
|
|
13
13
|
0x2d, 0x27, 0x0d, 0x45, 0xf1, 0x18, 0x12, 0x94, 0x83, 0x3f, 0xc4, 0x8d, 0x82, 0x3f, 0x27, 0x2c,
|
|
14
14
|
]));
|
|
15
15
|
|
|
16
|
-
/**
|
|
17
|
-
* Point generator
|
|
18
|
-
* @returns The generator for the curve.
|
|
19
|
-
*/
|
|
20
|
-
public generator(): Point {
|
|
21
|
-
return Grumpkin.generator;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
16
|
/**
|
|
25
17
|
* Multiplies a point by a scalar (adds the point `scalar` amount of times).
|
|
26
18
|
* @param point - Point to multiply.
|
|
27
19
|
* @param scalar - Scalar to multiply by.
|
|
28
20
|
* @returns Result of the multiplication.
|
|
29
21
|
*/
|
|
30
|
-
public async mul(point: Point, scalar: GrumpkinScalar): Promise<Point> {
|
|
22
|
+
public static async mul(point: Point, scalar: GrumpkinScalar): Promise<Point> {
|
|
31
23
|
await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
|
|
32
24
|
const api = BarretenbergSync.getSingleton();
|
|
33
25
|
const response = api.grumpkinMul({
|
|
@@ -43,7 +35,7 @@ export class Grumpkin {
|
|
|
43
35
|
* @param b - Point b to add to a
|
|
44
36
|
* @returns Result of the addition.
|
|
45
37
|
*/
|
|
46
|
-
public async add(a: Point, b: Point): Promise<Point> {
|
|
38
|
+
public static async add(a: Point, b: Point): Promise<Point> {
|
|
47
39
|
await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
|
|
48
40
|
const api = BarretenbergSync.getSingleton();
|
|
49
41
|
const response = api.grumpkinAdd({
|
|
@@ -59,7 +51,7 @@ export class Grumpkin {
|
|
|
59
51
|
* @param scalar - Scalar to multiply by.
|
|
60
52
|
* @returns Points multiplied by the scalar.
|
|
61
53
|
*/
|
|
62
|
-
public async batchMul(points: Point[], scalar: GrumpkinScalar) {
|
|
54
|
+
public static async batchMul(points: Point[], scalar: GrumpkinScalar) {
|
|
63
55
|
await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
|
|
64
56
|
const api = BarretenbergSync.getSingleton();
|
|
65
57
|
const response = api.grumpkinBatchMul({
|
|
@@ -74,7 +66,7 @@ export class Grumpkin {
|
|
|
74
66
|
* Gets a random field element.
|
|
75
67
|
* @returns Random field element.
|
|
76
68
|
*/
|
|
77
|
-
public async getRandomFr(): Promise<Fr> {
|
|
69
|
+
public static async getRandomFr(): Promise<Fr> {
|
|
78
70
|
await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
|
|
79
71
|
const api = BarretenbergSync.getSingleton();
|
|
80
72
|
const response = api.grumpkinGetRandomFr({ dummy: 0 });
|
|
@@ -86,7 +78,7 @@ export class Grumpkin {
|
|
|
86
78
|
* @param uint512Buf - The buffer to convert.
|
|
87
79
|
* @returns Buffer representation of the field element.
|
|
88
80
|
*/
|
|
89
|
-
public async reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr> {
|
|
81
|
+
public static async reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr> {
|
|
90
82
|
await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
|
|
91
83
|
const api = BarretenbergSync.getSingleton();
|
|
92
84
|
const response = api.grumpkinReduce512({ input: uint512Buf });
|
package/src/crypto/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './poseidon/index.js';
|
|
|
7
7
|
export * from './secp256k1-signer/index.js';
|
|
8
8
|
export * from './keys/index.js';
|
|
9
9
|
export * from './aes128/index.js';
|
|
10
|
+
export * from './bn254/index.js';
|
|
10
11
|
export * from './grumpkin/index.js';
|
|
11
12
|
export * from './ecdsa/index.js';
|
|
12
13
|
export * from './secp256k1/index.js';
|
package/src/fields/fields.ts
CHANGED
|
@@ -321,7 +321,7 @@ export class Fr extends BaseField {
|
|
|
321
321
|
* @returns A square root of the field element (null if it does not exist).
|
|
322
322
|
*/
|
|
323
323
|
async sqrt(): Promise<Fr | null> {
|
|
324
|
-
await BarretenbergSync.initSingleton(
|
|
324
|
+
await BarretenbergSync.initSingleton();
|
|
325
325
|
const api = BarretenbergSync.getSingleton();
|
|
326
326
|
const response = api.bn254FrSqrt({ input: this.toBuffer() });
|
|
327
327
|
if (!response.isSquareRoot) {
|
|
@@ -434,6 +434,21 @@ export class Fq extends BaseField {
|
|
|
434
434
|
return new Fq((this.toBigInt() + rhs.toBigInt()) % Fq.MODULUS);
|
|
435
435
|
}
|
|
436
436
|
|
|
437
|
+
/**
|
|
438
|
+
* Computes a square root of the field element.
|
|
439
|
+
* @returns A square root of the field element (null if it does not exist).
|
|
440
|
+
*/
|
|
441
|
+
async sqrt(): Promise<Fq | null> {
|
|
442
|
+
await BarretenbergSync.initSingleton();
|
|
443
|
+
const api = BarretenbergSync.getSingleton();
|
|
444
|
+
const response = api.bn254FqSqrt({ input: this.toBuffer() });
|
|
445
|
+
if (!response.isSquareRoot) {
|
|
446
|
+
// Field element is not a quadratic residue mod p so it has no square root.
|
|
447
|
+
return null;
|
|
448
|
+
}
|
|
449
|
+
return Fq.fromBuffer(Buffer.from(response.value));
|
|
450
|
+
}
|
|
451
|
+
|
|
437
452
|
toJSON() {
|
|
438
453
|
return this.toString();
|
|
439
454
|
}
|