diff --git a/.circleci/config.yml b/.circleci/config.yml index f3fc08f7775e..9bf6b163fd75 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -131,6 +131,17 @@ jobs: name: "Build" command: cond_spot_run_build barretenberg-x86_64-linux-clang-assert 128 + barretenberg-x86_64-linux-clang-sol: + docker: + - image: aztecprotocol/alpine-build-image + resource_class: small + steps: + - *checkout + - *setup_env + - run: + name: "Build" + command: cond_spot_run_build barretenberg-x86_64-linux-clang-sol 32 + barretenberg-stdlib-tests: docker: - image: aztecprotocol/alpine-build-image @@ -465,6 +476,17 @@ jobs: name: "Build and test" command: build aztec-node | add_timestamps + mainnet-fork: + machine: + image: ubuntu-2204:2023.07.2 + resource_class: large + steps: + - *checkout + - *setup_env + - run: + name: "Build" + command: build mainnet-fork | add_timestamps + aztec-faucet: machine: image: ubuntu-2204:2023.07.2 @@ -1143,6 +1165,7 @@ workflows: - barretenberg-x86_64-linux-clang-assert: *defaults - barretenberg-x86_64-linux-clang-fuzzing: *defaults - barretenberg-wasm-linux-clang: *defaults + - barretenberg-x86_64-linux-clang-sol: *defaults - barretenberg-proof-system-tests: *bb_test - barretenberg-honk-tests: *bb_test - barretenberg-dsl-tests: *bb_test @@ -1211,6 +1234,8 @@ workflows: - l1-contracts: *defaults - noir-contracts-build: *defaults + - mainnet-fork: *defaults + # Yarn Project - yarn-project-base: requires: diff --git a/barretenberg/.dockerignore b/barretenberg/.dockerignore index b38d06b33567..2920dd00c6c0 100644 --- a/barretenberg/.dockerignore +++ b/barretenberg/.dockerignore @@ -3,6 +3,9 @@ sol/cache sol/out sol/Dockerfile sol/lib +sol/.foundry +sol/cache +sol/out cpp/build cpp/srs_db/ignition .gitmodules \ No newline at end of file diff --git a/barretenberg/sol/.gitignore b/barretenberg/sol/.gitignore index 434dd3d2ff48..9a39bcb1ccd7 100644 --- a/barretenberg/sol/.gitignore +++ b/barretenberg/sol/.gitignore @@ -12,4 +12,4 @@ out/ .vscode/settings.json .foundry -build/ \ No newline at end of file +**/build*/* diff --git a/barretenberg/sol/.rebuild_patterns b/barretenberg/sol/.rebuild_patterns new file mode 100644 index 000000000000..df72c4c5c9d5 --- /dev/null +++ b/barretenberg/sol/.rebuild_patterns @@ -0,0 +1,7 @@ +^barretenberg/cpp/.*\.(cpp|cc|cxx|c\+\+|h|hpp|hxx|h\+\+|c|h|inl|inc|ipp|tpp|cmake)$ +^barretenberg/cpp/.*CMakeLists\.txt$ +^barretenberg/cpp/.*Dockerfile.*$ +^barretenberg/cpp/scripts/ +^barretenberg/sol/src/ +^barretenberg/sol/scripts/ +^barretenberg/sol/test/ diff --git a/barretenberg/sol/Dockerfile b/barretenberg/sol/Dockerfile index 0b6d172926b7..bae96012f4c5 100644 --- a/barretenberg/sol/Dockerfile +++ b/barretenberg/sol/Dockerfile @@ -1,9 +1,9 @@ -FROM alpine:3.17 +FROM alpine:3.18 RUN apk update \ && apk upgrade \ && apk add --no-cache \ build-base \ - clang15 \ + clang16 \ openmp-dev \ cmake \ ninja \ @@ -15,7 +15,7 @@ WORKDIR /usr/src/barretenberg/cpp COPY ./cpp . # Build everything to ensure everything builds. All tests will be run from the result of this build. -RUN cmake --preset default && cmake --build --preset default --target solidity_key_gen solidity_proof_gen +RUN cmake --preset clang16 && cmake --build --preset clang16 --target solidity_key_gen solidity_proof_gen FROM docker.io/frolvlad/alpine-glibc:alpine-3.17_glibc-2.34 as builder RUN apk update && apk add git curl build-base openmp-dev bash @@ -38,4 +38,5 @@ RUN cd ../cpp/srs_db && ./download_ignition.sh 3 && cd ../../sol RUN ./scripts/init.sh +# TestBase is excluded as it is just boilerplate RUN forge test --no-match-contract TestBase \ No newline at end of file diff --git a/build_manifest.yml b/build_manifest.yml index c3d413b15527..dbacc1f9262a 100644 --- a/build_manifest.yml +++ b/build_manifest.yml @@ -23,6 +23,11 @@ barretenberg-wasm-linux-clang: dockerfile: dockerfiles/Dockerfile.wasm-linux-clang rebuildPatterns: .rebuild_patterns +barretenberg-x86_64-linux-clang-sol: + buildDir: barretenberg + dockerfile: sol/Dockerfile + rebuildPatterns: sol/.rebuild_patterns + bb.js: buildDir: barretenberg/ts dependencies: @@ -174,6 +179,10 @@ p2p-bootstrap: dependencies: - yarn-project +mainnet-fork: + buildDir: iac/mainnet-fork + projectDir: iac/mainnet-fork + docs: buildDir: . dockerfile: docs/Dockerfile diff --git a/iac/mainnet-fork/Dockerfile b/iac/mainnet-fork/Dockerfile new file mode 100644 index 000000000000..c0240ccadc85 --- /dev/null +++ b/iac/mainnet-fork/Dockerfile @@ -0,0 +1,18 @@ +FROM ubuntu:focal + +# Install nginx +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections +RUN apt-get update && apt install -y git curl nginx + +# Copy nginx config +COPY . . +COPY nginx/gateway.conf /etc/nginx/gateway.conf +COPY nginx/nginx.conf /etc/nginx/nginx.conf + +# Install foundry +RUN ./scripts/install_foundry.sh +ENV PATH="./foundry/bin:${PATH}" + +# Run anvil and nginx +EXPOSE 80 +ENTRYPOINT ["sh", "-c", "./scripts/run_nginx_anvil.sh"] \ No newline at end of file diff --git a/iac/mainnet-fork/nginx/gateway.conf b/iac/mainnet-fork/nginx/gateway.conf new file mode 100644 index 000000000000..74f889b9eff1 --- /dev/null +++ b/iac/mainnet-fork/nginx/gateway.conf @@ -0,0 +1,14 @@ +server { + listen 80 default_server; + listen 8545; + + location = /{{API_KEY}} { + proxy_pass http://0.0.0.0:8544; + rewrite ^/{{API_KEY}}(.*) /$1 break; + } + + # Error responses + error_page 404 = @400; # Treat invalid paths as bad requests + proxy_intercept_errors on; # Do not send backend errors to client + default_type application/json; # If no content-type, assume JSON +} \ No newline at end of file diff --git a/iac/mainnet-fork/nginx/nginx.conf b/iac/mainnet-fork/nginx/nginx.conf new file mode 100644 index 000000000000..0deef80724e2 --- /dev/null +++ b/iac/mainnet-fork/nginx/nginx.conf @@ -0,0 +1,53 @@ + +events { + worker_connections 768; + # multi_accept on; +} + +http { + + ## + # Basic Settings + ## + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + ## + # SSL Settings + ## + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE + ssl_prefer_server_ciphers on; + + ## + # Logging Settings + ## + + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + + ## + # Gzip Settings + ## + + gzip on; + + # gzip_vary on; + # gzip_proxied any; + # gzip_comp_level 6; + # gzip_buffers 16 8k; + # gzip_http_version 1.1; + # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; + + + include /etc/nginx/gateway.conf; + include /etc/nginx/conf.d/*.conf; +} + diff --git a/iac/mainnet-fork/scripts/install_foundry.sh b/iac/mainnet-fork/scripts/install_foundry.sh new file mode 100755 index 000000000000..3842f6a4318b --- /dev/null +++ b/iac/mainnet-fork/scripts/install_foundry.sh @@ -0,0 +1,21 @@ +#!/bin/sh +set -eu + +export FOUNDRY_DIR="$PWD/.foundry" +FOUNDRY_BIN_DIR="$FOUNDRY_DIR/bin" +BIN_URL="https://raw.githubusercontent.com/foundry-rs/foundry/master/foundryup/foundryup" +BIN_PATH="$FOUNDRY_BIN_DIR/foundryup" +FOUNDRY_MAN_DIR="$FOUNDRY_DIR/share/man/man1" + +# Clean +rm -rf $FOUNDRY_DIR + +# Install foundryup. +mkdir -p $FOUNDRY_BIN_DIR +mkdir -p $FOUNDRY_MAN_DIR +curl -# -L $BIN_URL -o $BIN_PATH +chmod +x $BIN_PATH +export PATH=$FOUNDRY_BIN_DIR:$PATH + +# Use version. +foundryup \ No newline at end of file diff --git a/iac/mainnet-fork/scripts/run_nginx_anvil.sh b/iac/mainnet-fork/scripts/run_nginx_anvil.sh new file mode 100755 index 000000000000..4b701f132560 --- /dev/null +++ b/iac/mainnet-fork/scripts/run_nginx_anvil.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -eum pipefail + +# Replace API_KEY in nginx config +echo "Replacing api key with $API_KEY in nginx config..." +sed -i 's/{{API_KEY}}/'$API_KEY'/' /etc/nginx/gateway.conf + +# Run nginx and anvil alongside each other +trap 'kill $(jobs -p)' SIGTERM + +# Anvil defaults - Nginx assumes these values to be as they are +HOST="0.0.0.0" +PORT=8544 +ETHEREUM_HOST=$HOST:$PORT + +# Data directory for anvil state +mkdir -p /data + +# Run anvil silently +.foundry/bin/anvil --silent --host $HOST -p $PORT -m "$MNEMONIC" -f=https://mainnet.infura.io/v3/$INFURA_API_KEY --chain-id=$CHAIN_ID --fork-block-number=15918000 --block-base-fee-per-gas=10 -s=$SNAPSHOT_FREQUENCY --state=./data/state --balance=1000000000000000000 >/dev/null & + +echo "Waiting for ethereum host at $ETHEREUM_HOST..." +while ! curl -s $ETHEREUM_HOST >/dev/null; do sleep 1; done + +echo "Starting nginx..." +nginx & +wait diff --git a/iac/mainnet-fork/scripts/wait_for_fork b/iac/mainnet-fork/scripts/wait_for_fork new file mode 100755 index 000000000000..4d990e30f888 --- /dev/null +++ b/iac/mainnet-fork/scripts/wait_for_fork @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +# When destroying and applying mainnet fork terraform, it may not be +# ready for a while, as it must register with DNS etc. +# This script waits on a healthy status from the fork - a valid response to the chainid request +# We retry every 20 seconds, and wait for a total of 5 minutes (15 times) + +export ETHEREUM_HOST="https://aztec-mainnet-fork.aztec.network:8545/$FORK_API_KEY" + +curl -H "Content-Type: application/json" -X POST --data '{"method":"eth_chainId","params":[],"id":33,"jsonrpc":"2.0"}' \ + --connect-timeout 30 \ + --retry 15 \ + --retry-delay 20 \ + $ETHEREUM_HOST diff --git a/iac/mainnet-fork/terraform/main.tf b/iac/mainnet-fork/terraform/main.tf new file mode 100644 index 000000000000..beb2ab353576 --- /dev/null +++ b/iac/mainnet-fork/terraform/main.tf @@ -0,0 +1,276 @@ +terraform { + backend "s3" { + bucket = "aztec-terraform" + key = "aztec-network/mainnet-fork" + region = "eu-west-2" + } + required_providers { + aws = { + source = "hashicorp/aws" + version = "3.74.2" + } + } +} + +data "terraform_remote_state" "setup_iac" { + backend = "s3" + config = { + bucket = "aztec-terraform" + key = "setup/setup-iac" + region = "eu-west-2" + } +} + +data "terraform_remote_state" "aztec-network_iac" { + backend = "s3" + config = { + bucket = "aztec-terraform" + key = "aztec-network/iac" + region = "eu-west-2" + } +} + +data "terraform_remote_state" "aztec2_iac" { + backend = "s3" + config = { + bucket = "aztec-terraform" + key = "aztec2/iac" + region = "eu-west-2" + } +} + + +data "aws_alb" "aztec-network_alb" { + arn = data.terraform_remote_state.aztec2_iac.outputs.alb_arn +} + +provider "aws" { + profile = "default" + region = "eu-west-2" +} + +resource "aws_service_discovery_service" "aztec_mainnet_fork" { + name = "aztec-network-mainnet-fork" + + health_check_custom_config { + failure_threshold = 1 + } + + dns_config { + namespace_id = data.terraform_remote_state.setup_iac.outputs.local_service_discovery_id + + dns_records { + ttl = 60 + type = "A" + } + + dns_records { + ttl = 60 + type = "SRV" + } + + routing_policy = "MULTIVALUE" + } +} + +# EFS filesystem for mainnet fork +resource "aws_efs_file_system" "aztec_mainnet_fork_data_store" { + creation_token = "aztec-network-mainnet-fork-data" + + tags = { + Name = "aztec-network-mainnet-fork-data" + } + + lifecycle_policy { + transition_to_ia = "AFTER_30_DAYS" + } +} + +resource "aws_efs_mount_target" "aztec_fork_private_az1" { + file_system_id = aws_efs_file_system.aztec_mainnet_fork_data_store.id + subnet_id = data.terraform_remote_state.setup_iac.outputs.subnet_az1_private_id + security_groups = [data.terraform_remote_state.setup_iac.outputs.security_group_private_id] +} + +resource "aws_efs_mount_target" "aztec_fork_private_az2" { + file_system_id = aws_efs_file_system.aztec_mainnet_fork_data_store.id + subnet_id = data.terraform_remote_state.setup_iac.outputs.subnet_az2_private_id + security_groups = [data.terraform_remote_state.setup_iac.outputs.security_group_private_id] +} + +# Define deployment task and service +resource "aws_ecs_task_definition" "aztec_mainnet_fork" { + family = "aztec-network-mainnet-fork" + requires_compatibilities = ["FARGATE"] + network_mode = "awsvpc" + cpu = "2048" + memory = "4096" + execution_role_arn = data.terraform_remote_state.setup_iac.outputs.ecs_task_execution_role_arn + + volume { + name = "efs-data-store" + efs_volume_configuration { + file_system_id = aws_efs_file_system.aztec_mainnet_fork_data_store.id + } + } + + container_definitions = < + diff --git a/yarn-project/boxes/blank/package.json b/yarn-project/boxes/blank/package.json index bb9633069f8b..dd7928c6d36c 100644 --- a/yarn-project/boxes/blank/package.json +++ b/yarn-project/boxes/blank/package.json @@ -47,11 +47,11 @@ "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.45.0", + "eslint": "^8.21.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.27.5", "jest": "^29.6.4", - "prettier": "^3.0.3", + "prettier": "^2.8.8", "resolve-typescript-plugin": "^2.0.1", "stream-browserify": "^3.0.0", "ts-jest": "^29.1.1", diff --git a/yarn-project/boxes/blank/src/index.html b/yarn-project/boxes/blank/src/index.html index 84f225fe8a91..f87ccadb3bd5 100644 --- a/yarn-project/boxes/blank/src/index.html +++ b/yarn-project/boxes/blank/src/index.html @@ -1,4 +1,4 @@ - + diff --git a/yarn-project/boxes/token/package.json b/yarn-project/boxes/token/package.json index d6830d533e35..d80c4536a6e8 100644 --- a/yarn-project/boxes/token/package.json +++ b/yarn-project/boxes/token/package.json @@ -61,7 +61,7 @@ "autoprefixer": "^10.4.15", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", - "eslint": "^8.45.0", + "eslint": "^8.21.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.27.5", "eslint-plugin-react-hooks": "^4.6.0", @@ -69,7 +69,7 @@ "jest": "^29.6.4", "postcss": "^8.4.29", "postcss-loader": "^7.3.3", - "prettier": "^3.0.3", + "prettier": "^2.8.8", "resolve-typescript-plugin": "^2.0.1", "stream-browserify": "^3.0.0", "style-loader": "^3.3.3", diff --git a/yarn-project/boxes/token/src/app/index.html b/yarn-project/boxes/token/src/app/index.html index a81c17f2a873..6fedf6b23a64 100644 --- a/yarn-project/boxes/token/src/app/index.html +++ b/yarn-project/boxes/token/src/app/index.html @@ -1,4 +1,4 @@ - + diff --git a/yarn-project/boxes/token/src/tests/token_simulator.ts b/yarn-project/boxes/token/src/tests/token_simulator.ts index 94f9fe887f22..c91d8554773b 100644 --- a/yarn-project/boxes/token/src/tests/token_simulator.ts +++ b/yarn-project/boxes/token/src/tests/token_simulator.ts @@ -6,11 +6,7 @@ export class TokenSimulator { private balancePublic: Map = new Map(); public totalSupply: bigint = 0n; - constructor( - protected token: TokenContract, - protected logger: DebugLogger, - protected accounts: AztecAddress[], - ) {} + constructor(protected token: TokenContract, protected logger: DebugLogger, protected accounts: AztecAddress[]) {} public mintPrivate(amount: bigint) { this.totalSupply += amount; diff --git a/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts b/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts index b0eca576525f..2aa7f94cbebe 100644 --- a/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts +++ b/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts @@ -234,5 +234,5 @@ describe('e2e_cross_chain_messaging', () => { ).rejects.toThrowError( "Failed to solve brillig function, reason: explicit trap hit in brillig 'l1_to_l2_message_data.message.content == content'", ); - }); + }, 50_000); }); diff --git a/yarn-project/noir-compiler/src/compile/nargo.ts b/yarn-project/noir-compiler/src/compile/nargo.ts index fcab4866669d..85443ebf6311 100644 --- a/yarn-project/noir-compiler/src/compile/nargo.ts +++ b/yarn-project/noir-compiler/src/compile/nargo.ts @@ -1,7 +1,7 @@ import { LogFn, createDebugLogger } from '@aztec/foundation/log'; import { execSync } from 'child_process'; -import { readFileSync, readdirSync, statSync } from 'fs'; +import { readFileSync, readdirSync, statSync, unlinkSync } from 'fs'; import { emptyDirSync } from 'fs-extra'; import path from 'path'; @@ -66,6 +66,8 @@ export class NargoContractCompiler { } else { contractArtifacts.set(filename, JSON.parse(readFileSync(file).toString()) as NoirCompiledContract); } + // Delete the file as it is not needed anymore and it can cause issues with prettier + unlinkSync(file); } } diff --git a/yarn-project/noir-contracts/scripts/types_all.sh b/yarn-project/noir-contracts/scripts/types_all.sh index 72524da1c395..e94eb026a13b 100755 --- a/yarn-project/noir-contracts/scripts/types_all.sh +++ b/yarn-project/noir-contracts/scripts/types_all.sh @@ -1,3 +1,6 @@ #!/bin/bash # Run the types script for all files -./scripts/types.sh $(./scripts/get_all_contracts.sh) \ No newline at end of file +./scripts/types.sh $(./scripts/get_all_contracts.sh) + +# Remove the debug files as they are no longer needed and can cause prettier and build issues +rm -r ./target/debug* \ No newline at end of file diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index fcb0ef359339..cb4b83a07961 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -1642,30 +1642,6 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.2": - version: 2.1.2 - resolution: "@eslint/eslintrc@npm:2.1.2" - dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 - languageName: node - linkType: hard - -"@eslint/js@npm:8.48.0": - version: 8.48.0 - resolution: "@eslint/js@npm:8.48.0" - checksum: b2755f9c0ee810c886eba3c50dcacb184ba5a5cd1cbc01988ee506ad7340653cae0bd55f1d95c64b56dfc6d25c2caa7825335ffd2c50165bae9996fe0f396851 - languageName: node - linkType: hard - "@eslint/js@npm:^8.46.0": version: 8.46.0 resolution: "@eslint/js@npm:8.46.0" @@ -7053,7 +7029,7 @@ __metadata: classnames: ^2.3.2 copy-webpack-plugin: ^11.0.0 css-loader: ^6.8.1 - eslint: ^8.45.0 + eslint: ^8.21.0 eslint-import-resolver-typescript: ^3.5.5 eslint-plugin-import: ^2.27.5 eslint-plugin-react-hooks: ^4.6.0 @@ -7063,7 +7039,7 @@ __metadata: node-sass: ^9.0.0 postcss: ^8.4.29 postcss-loader: ^7.3.3 - prettier: ^3.0.3 + prettier: ^2.8.8 react: ^18.2.0 react-dom: ^18.2.0 resolve-typescript-plugin: ^2.0.1 @@ -7097,11 +7073,11 @@ __metadata: "@typescript-eslint/eslint-plugin": ^6.0.0 "@typescript-eslint/parser": ^6.0.0 copy-webpack-plugin: ^11.0.0 - eslint: ^8.45.0 + eslint: ^8.21.0 eslint-import-resolver-typescript: ^3.5.5 eslint-plugin-import: ^2.27.5 jest: ^29.6.4 - prettier: ^3.0.3 + prettier: ^2.8.8 resolve-typescript-plugin: ^2.0.1 serve: ^14.2.1 stream-browserify: ^3.0.0 @@ -9480,13 +9456,6 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 - languageName: node - linkType: hard - "eslint@npm:^8.21.0, eslint@npm:^8.35.0, eslint@npm:^8.37.0": version: 8.46.0 resolution: "eslint@npm:8.46.0" @@ -9534,53 +9503,6 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.45.0": - version: 8.48.0 - resolution: "eslint@npm:8.48.0" - dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.2 - "@eslint/js": 8.48.0 - "@humanwhocodes/config-array": ^0.11.10 - "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.12.4 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - find-up: ^5.0.0 - glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 - ignore: ^5.2.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 - bin: - eslint: bin/eslint.js - checksum: f20b359a4f8123fec5c033577368cc020d42978b1b45303974acd8da7a27063168ee3fe297ab5b35327162f6a93154063e3ce6577102f70f9809aff793db9bd0 - languageName: node - linkType: hard - "espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" @@ -15651,15 +15573,6 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.0.3": - version: 3.0.3 - resolution: "prettier@npm:3.0.3" - bin: - prettier: bin/prettier.cjs - checksum: e10b9af02b281f6c617362ebd2571b1d7fc9fb8a3bd17e371754428cda992e5e8d8b7a046e8f7d3e2da1dcd21aa001e2e3c797402ebb6111b5cd19609dd228e0 - languageName: node - linkType: hard - "pretty-format@npm:^29.0.0, pretty-format@npm:^29.6.2": version: 29.6.2 resolution: "pretty-format@npm:29.6.2" @@ -17986,7 +17899,7 @@ __metadata: classnames: ^2.3.2 copy-webpack-plugin: ^11.0.0 css-loader: ^6.8.1 - eslint: ^8.45.0 + eslint: ^8.21.0 eslint-import-resolver-typescript: ^3.5.5 eslint-plugin-import: ^2.27.5 eslint-plugin-react-hooks: ^4.6.0 @@ -17996,7 +17909,7 @@ __metadata: node-sass: ^9.0.0 postcss: ^8.4.29 postcss-loader: ^7.3.3 - prettier: ^3.0.3 + prettier: ^2.8.8 react: ^18.2.0 react-dom: ^18.2.0 resolve-typescript-plugin: ^2.0.1 diff --git a/yellow-paper/docs/intro.md b/yellow-paper/docs/intro.md index 2b26bc7248c7..8e9e682243af 100644 --- a/yellow-paper/docs/intro.md +++ b/yellow-paper/docs/intro.md @@ -235,4 +235,4 @@ The draft subsections are mere suggestions (and serve as a helpful reminder of t - Bytecode commitment circuit [???] - Smart Contracts [Lasse] - ... -- Acknowledgements \ No newline at end of file +- Acknowledgements