diff --git a/.env.example b/.env.example index 6d0daff12..2a7fe6b34 100644 --- a/.env.example +++ b/.env.example @@ -7,6 +7,7 @@ ETH_NODE_URI_ARBITRUM=https://1rpc.io/arb #[pre-commit-checker: not a secret] ETH_NODE_URI_AURORA=https://1rpc.io/aurora #[pre-commit-checker: not a secret] ETH_NODE_URI_AVALANCHE=https://1rpc.io/avax/c #[pre-commit-checker: not a secret] ETH_NODE_URI_BASE=https://mainnet.base.org #[pre-commit-checker: not a secret] +ETH_NODE_URI_BERACHAIN=https://rpc.berachain.com #[pre-commit-checker: not a secret] ETH_NODE_URI_BLAST=https://rpc.blast.io #[pre-commit-checker: not a secret] ETH_NODE_URI_BOBA=https://mainnet.boba.network #[pre-commit-checker: not a secret] ETH_NODE_URI_BSC=https://1rpc.io/bnb #[pre-commit-checker: not a secret] @@ -31,7 +32,9 @@ ETH_NODE_URI_POLYGONZKEVM=https://zkevm-rpc.com #[pre-commit-checker: not a secr ETH_NODE_URI_ROOTSTOCK=https://rootstock.drpc.org #[pre-commit-checker: not a secret] ETH_NODE_URI_SEI=https://evm-rpc.sei-apis.com #[pre-commit-checker: not a secret] ETH_NODE_URI_SCROLL=https://1rpc.io/scroll #[pre-commit-checker: not a secret] +ETH_NODE_URI_SONEIUM=https://rpc.soneium.org #[pre-commit-checker: not a secret] ETH_NODE_URI_TAIKO=https://rpc.taiko.tools #[pre-commit-checker: not a secret] +ETH_NODE_URI_UNICHAIN=https://mainnet.unichain.org #[pre-commit-checker: not a secret] ETH_NODE_URI_WORLDCHAIN=https://worldchain-mainnet.g.alchemy.com/public #[pre-commit-checker: not a secret] ETH_NODE_URI_XLAYER=https://rpc.xlayer.tech #[pre-commit-checker: not a secret] ETH_NODE_URI_ZKSYNC=https://zksync2-mainnet.zksync #[pre-commit-checker: not a secret] @@ -60,6 +63,7 @@ MODE_ETHERSCAN_API_KEY= OPBNB_ETHERSCAN_API_KEY= ROOTSTOCK_ETHERSCAN_API_KEY= SEI_ETHERSCAN_API_KEY= +UNICHAIN_ETHERSCAN_API_KEY= XLAYER_ETHERSCAN_API_KEY= ZKSYNC_ETHERSCAN_API_KEY= diff --git a/.github/workflows/diamondEmergencyPause.yml b/.github/workflows/diamondEmergencyPause.yml index 70623e806..431b462b6 100644 --- a/.github/workflows/diamondEmergencyPause.yml +++ b/.github/workflows/diamondEmergencyPause.yml @@ -55,6 +55,7 @@ jobs: ETH_NODE_URI_AURORA: ${{ secrets.ETH_NODE_URI_AURORA }} ETH_NODE_URI_AVALANCHE: ${{ secrets.ETH_NODE_URI_AVALANCHE }} ETH_NODE_URI_BASE: ${{ secrets.ETH_NODE_URI_BASE }} + ETH_NODE_URI_BERACHAIN: ${{ secrets.ETH_NODE_URI_BERACHAIN }} ETH_NODE_URI_BLAST: ${{ secrets.ETH_NODE_URI_BLAST }} ETH_NODE_URI_BOBA: ${{ secrets.ETH_NODE_URI_BOBA }} ETH_NODE_URI_BSC: ${{ secrets.ETH_NODE_URI_BSC }} @@ -80,8 +81,10 @@ jobs: ETH_NODE_URI_ROOTSTOCK: ${{ secrets.ETH_NODE_URI_ROOTSTOCK }} ETH_NODE_URI_SCROLL: ${{ secrets.ETH_NODE_URI_SCROLL }} ETH_NODE_URI_SEI: ${{ secrets.ETH_NODE_URI_SEI }} + ETH_NODE_URI_SONEIUM: ${{ secrets.ETH_NODE_URI_SONEIUM }} ETH_NODE_URI_SONIC: ${{ secrets.ETH_NODE_URI_SONIC }} ETH_NODE_URI_TAIKO: ${{ secrets.ETH_NODE_URI_TAIKO }} + ETH_NODE_URI_UNICHAIN: ${{ secrets.ETH_NODE_URI_UNICHAIN }} ETH_NODE_URI_WORLDCHAIN: ${{ secrets.ETH_NODE_URI_WORLDCHAIN }} ETH_NODE_URI_XLAYER: ${{ secrets.ETH_NODE_URI_XLAYER }} ETH_NODE_URI_ZKSYNC: ${{ secrets.ETH_NODE_URI_ZKSYNC }} diff --git a/.github/workflows/enforceTestCoverage.yml b/.github/workflows/enforceTestCoverage.yml index 6f19208b5..b92f522cc 100644 --- a/.github/workflows/enforceTestCoverage.yml +++ b/.github/workflows/enforceTestCoverage.yml @@ -29,22 +29,40 @@ jobs: MIN_TEST_COVERAGE: ${{ secrets.MIN_TEST_COVERAGE }} steps: - uses: actions/checkout@v4.1.7 + with: + fetch-depth: 0 + + - name: Check for Solidity file changes + id: check_files + run: | + git fetch origin ${{ github.base_ref }} --depth=1 + CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -E '^src/.*\.sol|^test/.*\.sol' || true) + if [[ -n "$CHANGED_FILES" ]]; then + echo "solidity_changed=true" >> "$GITHUB_ENV" + else + echo "solidity_changed=false" >> "$GITHUB_ENV" + fi - name: Set up Node.js uses: actions/setup-node@v4.1.0 with: node-version: '20' + if: env.solidity_changed == 'true' - name: Install dev dependencies run: yarn install + if: env.solidity_changed == 'true' - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1.3.1 + if: env.solidity_changed == 'true' - name: Install Dependencies run: forge install + if: env.solidity_changed == 'true' - name: Generate Coverage Report + if: env.solidity_changed == 'true' run: | forge coverage --report lcov --force --evm-version 'shanghai' --ir-minimum @@ -55,6 +73,7 @@ jobs: echo "Coverage report successfully filtered" - name: Generate Coverage Summary + if: env.solidity_changed == 'true' run: | @@ -133,6 +152,7 @@ jobs: } >> "$GITHUB_ENV" - name: Comment with Coverage Summary in PR + if: env.solidity_changed == 'true' uses: mshick/add-pr-comment@v2.8.2 with: repo-token: ${{ secrets.GIT_ACTIONS_BOT_PAT_CLASSIC }} @@ -142,3 +162,8 @@ jobs: ${{ env.FUNCTION_COVERAGE_REPORT }} ${{ env.BRANCH_COVERAGE_REPORT }} ${{ env.RESULT_COVERAGE_REPORT }} + + + - name: Skip Tests (No Solidity Changes) + if: env.solidity_changed == 'false' + run: echo "No Solidity files changed. Skipping test coverage check." diff --git a/.github/workflows/olympixStaticAnalysis.yml b/.github/workflows/olympixStaticAnalysis.yml new file mode 100644 index 000000000..b308307fb --- /dev/null +++ b/.github/workflows/olympixStaticAnalysis.yml @@ -0,0 +1,55 @@ +name: Olympix Static Analysis + +# - runs the olympix static analyzer on newly added or modified solidity contracts inside the src/ folder in a pull request +# - detects potential security vulnerabilities and uploads the results to github code scanning +# - only scans diff (added, renamed, modified) solidity files in src/ instead of the whole repository +# - ensures security issues are identified before merging, allowing the team to review and discuss findings within the PR + +on: + pull_request: + types: + - opened + - synchronize + - reopened + - ready_for_review + paths: + - 'src/**/*.sol' + +jobs: + static-analysis: + name: Static Analysis Security Check + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Get added, renamed, modified Solidity Files + id: changed-files + uses: tj-actions/changed-files@v45 + with: + files: | + src/**/*.sol + + - name: Convert Changed Files to Args + if: steps.changed-files.outputs.any_changed == 'true' + id: format-args + env: + ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + run: | + args=$(echo $ALL_CHANGED_FILES | xargs -n 1 -I {} printf -- "-p %s " "{}") + echo "ARGS=$args" >> $GITHUB_ENV + + - name: Run Olympix Integrated Security + if: steps.changed-files.outputs.any_changed == 'true' + uses: olympix/integrated-security@main + env: + OLYMPIX_API_TOKEN: ${{ secrets.OLYMPIX_API_TOKEN }} + with: + args: --output-format sarif --output-path ./ ${{ env.ARGS }} + + - name: Upload Result to GitHub Code Scanning + if: steps.changed-files.outputs.any_changed == 'true' + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: olympix.sarif \ No newline at end of file diff --git a/.github/workflows/securityAlertsReview.yml b/.github/workflows/securityAlertsReview.yml new file mode 100644 index 000000000..b132f5203 --- /dev/null +++ b/.github/workflows/securityAlertsReview.yml @@ -0,0 +1,272 @@ +name: Security Alerts Review + +# - ensures that all security alerts from olympix static analysis are properly handled before merging +# - enforces a strict review policy where every alert must be either resolved or dismissed with a justification +# - prevents merging a PR if any alerts are unresolved or dismissed without a comment or wrong dismissed reason +# - helps maintain a transparent and collaborative security review process by generating a pr comment summarizing the status of all security alerts +# - automatically reverts the PR to draft status if blocking alerts exist +# - leaves a summary of all alerts in a comment starting with "🤖 GitHub Action: Security Alerts Review 🔍" + +on: + pull_request: + types: + - ready_for_review + paths: + - 'src/**/*.sol' + workflow_dispatch: + +jobs: + check-security-alerts: + runs-on: ubuntu-latest + + steps: + # Ensure that the Olympix Static Analysis workflow has run successfully at least once before proceeding. + # This check is necessary because the Security Alerts Review workflow should not proceed unless + # a valid Olympix Static Analysis report is available for the current branch. + - name: Check if Olympix Static Analysis has run at least once and was successful + id: check-analysis + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH_NAME: ${{ github.head_ref }} + run: | + # Fallback in case BRANCH_NAME is empty. + if [ -z "$BRANCH_NAME" ]; then + BRANCH_NAME="${GITHUB_HEAD_REF:-${GITHUB_REF##*/}}" + echo "BRANCH_NAME was empty, falling back to: $BRANCH_NAME" + fi + + echo "Checking latest Olympix Static Analysis run for branch: $BRANCH_NAME" + + # Fetch the latest completed runs of the Olympix Static Analysis workflow + LATEST_RUN=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" \ + "https://api.github.com/repos/${{ github.repository }}/actions/workflows/olympixStaticAnalysis.yml/runs?status=completed&per_page=10") + + # Filter to find the first run with head_branch matching our branch name + WORKFLOW_STATUS=$(echo "$LATEST_RUN" | jq -r --arg branch "$BRANCH_NAME" '.workflow_runs[] | select(.head_branch == $branch) | .conclusion' | head -n1) + + if [[ "$WORKFLOW_STATUS" != "success" ]]; then + echo "The Olympix Static Analysis workflow has not been successfully completed for branch: $BRANCH_NAME." + echo "The Security Alerts Review workflow cannot continue because a valid Olympix Static Analysis report is required." + exit 1 + fi + + - uses: actions/checkout@v4 + + - uses: jwalton/gh-find-current-pr@master + id: findPr + + - name: Validate and set PR Number + id: fetch_pr + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + if [ -z "${{ steps.findPr.outputs.number }}" ]; then + echo "Error: No pull request found." >&2 + exit 1 + fi + echo "Found PR number: ${{ steps.findPr.outputs.number }}" + PR_NUMBER=${{ steps.findPr.outputs.number }} + echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV + echo "Pull Request Number is: $PR_NUMBER" + + - name: Fetch Security Alerts for PR + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + echo "Fetching security alerts for PR #${PR_NUMBER}..." + + # Fetch security alerts + ALERTS=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" \ + "https://api.github.com/repos/${{ github.repository }}/code-scanning/alerts?pr=${PR_NUMBER}") + + # Log raw API response for debugging + echo "Raw API Response:" + echo "$ALERTS" + + # Extract unresolved alerts (open alerts) + UNRESOLVED_ALERTS=$(echo "$ALERTS" | jq -c '[.[] | select(.state == "open") ]' || echo "[]") + # Extract dismissed alerts without comments (empty dismissed_comment) + DISMISSED_ALERTS=$(echo "$ALERTS" | jq -c '[.[] | select(.state == "dismissed" and (.dismissed_comment == null or .dismissed_comment == ""))]' || echo "[]") + # Extract resolved alerts (dismissed alerts with comments) - successful dismissals + RESOLVED_ALERTS=$(echo "$ALERTS" | jq -c '[.[] | select(.state == "dismissed" and (.dismissed_comment != null and .dismissed_comment != ""))]' || echo "[]") + + UNRESOLVED_COUNT=$(echo "$UNRESOLVED_ALERTS" | jq -r 'length') + DISMISSED_COUNT=$(echo "$DISMISSED_ALERTS" | jq -r 'length') + COMMENTED_COUNT=$(echo "$RESOLVED_ALERTS" | jq -r 'length') + + # Count dismissed alerts with the invalid reason "Used in tests" (invalid because only production code is analyzed) + INVALID_REASON_COUNT=$(echo "$RESOLVED_ALERTS" | jq -r '[.[] | select(.dismissed_reason == "used in tests")] | length') + + # Output for debugging + echo "UNRESOLVED_ALERTS: $UNRESOLVED_ALERTS" + echo "DISMISSED_ALERTS (without comments): $DISMISSED_ALERTS" + echo "RESOLVED_ALERTS (with comments): $RESOLVED_ALERTS" + echo "UNRESOLVED_COUNT: $UNRESOLVED_COUNT" + echo "DISMISSED_COUNT: $DISMISSED_COUNT" + echo "COMMENTED_COUNT: $COMMENTED_COUNT" + echo "INVALID_REASON_COUNT: $INVALID_REASON_COUNT" + + # Save values in the environment as single-line JSON + echo "UNRESOLVED_ALERTS=$UNRESOLVED_ALERTS" >> $GITHUB_ENV + echo "DISMISSED_ALERTS=$DISMISSED_ALERTS" >> $GITHUB_ENV + echo "RESOLVED_ALERTS=$RESOLVED_ALERTS" >> $GITHUB_ENV + echo "UNRESOLVED_COUNT=$UNRESOLVED_COUNT" >> $GITHUB_ENV + echo "DISMISSED_COUNT=$DISMISSED_COUNT" >> $GITHUB_ENV + echo "COMMENTED_COUNT=$COMMENTED_COUNT" >> $GITHUB_ENV + echo "INVALID_REASON_COUNT=$INVALID_REASON_COUNT" >> $GITHUB_ENV + + - name: Find Existing PR Comment + id: find_comment + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + echo "Searching for existing PR comment..." + + COMMENT_ID=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" \ + "https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/comments" | jq -r \ + '.[] | select(.body | startswith("### 🤖 GitHub Action: Security Alerts Review")) | .id') + + if [[ -n "$COMMENT_ID" && "$COMMENT_ID" != "null" ]]; then + echo "EXISTING_COMMENT_ID=$COMMENT_ID" >> $GITHUB_ENV + fi + + echo "Found comment ID: $COMMENT_ID" + + - name: Post or Update PR Comment + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + COMMENT_BODY="### 🤖 GitHub Action: Security Alerts Review 🔍\n\n" + + # Add Unresolved Alerts + if [[ "$UNRESOLVED_COUNT" -gt 0 ]]; then + COMMENT_BODY+="🚨 **Unresolved Security Alerts Found!** 🚨\n" + COMMENT_BODY+="The following security alerts must be **resolved** before merging:\n\n" + + while IFS= read -r row; do + ALERT_URL=$(echo "$row" | jq -r '.html_url') + ALERT_FILE=$(echo "$row" | jq -r '.most_recent_instance.location.path') + ALERT_DESCRIPTION=$(echo "$row" | jq -r '.most_recent_instance.message.text') + + COMMENT_BODY+="🔴 [View Alert]($ALERT_URL) - **File:** \`$ALERT_FILE\`\n" + COMMENT_BODY+=" 🔹 $ALERT_DESCRIPTION\n\n" + done < <(echo "$UNRESOLVED_ALERTS" | jq -c '.[]') + fi + + # Add Dismissed Alerts Without Comments + if [[ "$DISMISSED_COUNT" -gt 0 ]]; then + COMMENT_BODY+="The following alerts were dismissed but require a dismissal comment:\n\n" + + while IFS= read -r row; do + ALERT_URL=$(echo "$row" | jq -r '.html_url') + ALERT_FILE=$(echo "$row" | jq -r '.most_recent_instance.location.path') + ALERT_DESCRIPTION=$(echo "$row" | jq -r '.most_recent_instance.message.text') + + COMMENT_BODY+="🟡 [View Alert]($ALERT_URL) - **File:** \`$ALERT_FILE\`\n" + COMMENT_BODY+=" 🔹 $ALERT_DESCRIPTION\n\n" + done < <(echo "$DISMISSED_ALERTS" | jq -c '.[]') + fi + + + # Add alerts dismissed with an invalid reason ("Used in tests") + if [[ "$INVALID_REASON_COUNT" -gt 0 ]]; then + COMMENT_BODY+="❌ **Invalid Dismissal Reasons Found!** ❌\n" + COMMENT_BODY+="The following alerts were dismissed with the reason **Used in tests**, which is not allowed for production code. Please provide a valid dismissal reason.\n\n" + + while IFS= read -r row; do + ALERT_URL=$(echo "$row" | jq -r '.html_url') + ALERT_FILE=$(echo "$row" | jq -r '.most_recent_instance.location.path') + ALERT_DESCRIPTION=$(echo "$row" | jq -r '.most_recent_instance.message.text') + DISMISS_REASON=$(echo "$row" | jq -r '.dismissed_reason') + CAPITALIZED_REASON=$(echo "$DISMISS_REASON" | sed 's/^\(.\)/\U\1/') + + COMMENT_BODY+="❌ [View Alert]($ALERT_URL) - **File:** \`$ALERT_FILE\`\n" + COMMENT_BODY+=" 🔹 $ALERT_DESCRIPTION\n" + COMMENT_BODY+=" 🔹 Dismiss Reason: **$CAPITALIZED_REASON** (invalid for production code)\n\n" + done < <(echo "$RESOLVED_ALERTS" | jq -c '.[] | select(.dismissed_reason == "used in tests")') + fi + + if [[ "$UNRESOLVED_COUNT" -gt 0 || "$DISMISSED_COUNT" -gt 0 || "$INVALID_REASON_COUNT" -gt 0 ]]; then + COMMENT_BODY+="⚠️ **Please resolve the above issues before merging.**\n\n" + fi + + # Add Dismissed Alerts With Valid Comments (Successful dismissals) + if [[ "$COMMENTED_COUNT" -gt 0 ]]; then + COMMENT_BODY+="🟢 **Dismissed Security Alerts with Comments**\n" + COMMENT_BODY+="The following alerts were dismissed with proper comments:\n\n" + + while IFS= read -r row; do + # Skip alerts that were dismissed with an invalid reason + if echo "$row" | jq -e 'select(.dismissed_reason == "used in tests")' > /dev/null; then + continue + fi + + ALERT_URL=$(echo "$row" | jq -r '.html_url') + ALERT_FILE=$(echo "$row" | jq -r '.most_recent_instance.location.path') + ALERT_DESCRIPTION=$(echo "$row" | jq -r '.most_recent_instance.message.text') + DISMISS_REASON=$(echo "$row" | jq -r '.dismissed_reason') + DISMISS_COMMENT=$(echo "$row" | jq -r '.dismissed_comment') + CAPITALIZED_REASON=$(echo "$DISMISS_REASON" | sed 's/^\(.\)/\U\1/') + + COMMENT_BODY+="🟢 [View Alert]($ALERT_URL) - **File:** \`$ALERT_FILE\`\n" + COMMENT_BODY+=" 🔹 $ALERT_DESCRIPTION\n" + COMMENT_BODY+=" 🔹 Dismiss Reason: **$CAPITALIZED_REASON**\n" + COMMENT_BODY+=" 🔹 Dismiss Comment: $DISMISS_COMMENT\n\n" + done < <(echo "$RESOLVED_ALERTS" | jq -c '.[]') + fi + + # If no unresolved alerts and no dismissed alerts missing comments or with invalid reasons, add overall success message + if [[ "$UNRESOLVED_COUNT" -eq 0 && "$DISMISSED_COUNT" -eq 0 && "$INVALID_REASON_COUNT" -eq 0 ]]; then + COMMENT_BODY+="✅ **No unresolved security alerts!** 🎉\n\n" + fi + + # Update existing comment if found; otherwise, post a new one. + if [[ -n "$EXISTING_COMMENT_ID" ]]; then + echo "Updating existing comment ID: $EXISTING_COMMENT_ID" + curl -s -X PATCH -H "Authorization: token ${GITHUB_TOKEN}" -H "Content-Type: application/json" \ + -d "{\"body\": \"$COMMENT_BODY\"}" \ + "https://api.github.com/repos/${{ github.repository }}/issues/comments/${EXISTING_COMMENT_ID}" + else + echo "Posting new comment to PR..." + curl -s -X POST -H "Authorization: token ${GITHUB_TOKEN}" -H "Content-Type: application/json" \ + -d "{\"body\": \"$COMMENT_BODY\"}" \ + "https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/comments" + fi + + - name: Check if Action Should Fail And Revert To Draft + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_NUMBER: ${{ env.PR_NUMBER }} + run: | + echo "🔍 Checking if the workflow should fail and revert PR to draft based on security alerts..." + + # Check if there are any unresolved alerts, dismissed alerts missing comments or invalid dismissal reasons. + if [[ "$UNRESOLVED_COUNT" -gt 0 || "$DISMISSED_COUNT" -gt 0 || "$INVALID_REASON_COUNT" -gt 0 ]]; then + echo "❌ ERROR: Found issues in the PR:" + if [[ "$UNRESOLVED_COUNT" -gt 0 ]]; then + echo "- $UNRESOLVED_COUNT unresolved security alert(s) found!" + fi + if [[ "$DISMISSED_COUNT" -gt 0 ]]; then + echo "- $DISMISSED_COUNT security alert(s) were dismissed without comments!" + fi + if [[ "$INVALID_REASON_COUNT" -gt 0 ]]; then + echo "- $INVALID_REASON_COUNT alert(s) have an invalid dismissal reason (\"Used in tests\")." + fi + echo "⚠️ These alerts must be resolved before merging." + + # Retrieve PR Node ID + PULL_REQUEST_NODE_ID="${{ github.event.pull_request.node_id }}" + echo "PR Node ID: $PULL_REQUEST_NODE_ID" + + # Revert the PR to draft. + # To convert a PR to a draft GitHub only provides a GraphQL api, there is no REST API for this + echo "Reverting PR #${PR_NUMBER} to draft state due to blocking security issues..." + curl -H "Authorization: Bearer $GITHUB_TOKEN" \ + -H "Content-Type: application/json" \ + -X POST \ + -d '{"query": "mutation { convertPullRequestToDraft(input: {pullRequestId: \"'"$PULL_REQUEST_NODE_ID"'\"}) { pullRequest { id isDraft } } }"}' \ + https://api.github.com/graphql + exit 1 + fi + + echo "✅ No blocking security issues found. The workflow will pass successfully." diff --git a/archive/test/LiFiDiamondImmutable.t.sol b/archive/test/LiFiDiamondImmutable.t.sol index 9fabf0631..e5386c5d8 100644 --- a/archive/test/LiFiDiamondImmutable.t.sol +++ b/archive/test/LiFiDiamondImmutable.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicensed -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import { LiFiDiamondImmutable } from "lifi/LiFiDiamondImmutable.sol"; import { LibDiamond } from "lifi/Libraries/LibDiamond.sol"; diff --git a/config/across.json b/config/across.json index d3e924ce0..666be7381 100644 --- a/config/across.json +++ b/config/across.json @@ -140,6 +140,18 @@ "0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df" ] }, + "soneium": { + "chainId": 1868, + "acrossSpokePool": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", + "weth": "0x4200000000000000000000000000000000000006", + "tokensToApprove": ["0x4200000000000000000000000000000000000006"] + }, + "unichain": { + "chainId": 130, + "acrossSpokePool": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64", + "weth": "0x4200000000000000000000000000000000000006", + "tokensToApprove": ["0x4200000000000000000000000000000000000006"] + }, "worldchain": { "chainId": 480, "acrossSpokePool": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64", diff --git a/config/amarok.json b/config/amarok.json index 18ff58ecf..68e05120a 100644 --- a/config/amarok.json +++ b/config/amarok.json @@ -35,6 +35,12 @@ "domain": "", "tokensToApprove": [] }, + "berachain": { + "chainId": 80094, + "connextHandler": "0x0000000000000000000000000000000000000000", + "domain": "", + "tokensToApprove": [] + }, "bsc": { "chainId": 56, "connextHandler": "0xCd401c10afa37d641d2F594852DA94C700e4F2CE", @@ -90,9 +96,7 @@ "chainId": 34443, "connextHandler": "0x7380511493DD4c2f1dD75E9CCe5bD52C787D4B51", "domain": "1836016741", - "tokensToApprove": [ - "0x4200000000000000000000000000000000000006" - ] + "tokensToApprove": ["0x4200000000000000000000000000000000000006"] }, "arbitrum": { "chainId": 42161, @@ -282,12 +286,24 @@ "domain": "", "tokensToApprove": [] }, + "soneium": { + "chainId": 1868, + "connextHandler": "0x0000000000000000000000000000000000000000", + "domain": "", + "tokensToApprove": [] + }, "sonic": { "chainId": 146, "connextHandler": "0x0000000000000000000000000000000000000000", "domain": "", "tokensToApprove": [] }, + "unichain": { + "chainId": 130, + "connextHandler": "0x0000000000000000000000000000000000000000", + "domain": "", + "tokensToApprove": [] + }, "worldchain": { "chainId": 480, "connextHandler": "0x0000000000000000000000000000000000000000", diff --git a/config/dexs.json b/config/dexs.json index 5e59b6e32..f796461ff 100644 --- a/config/dexs.json +++ b/config/dexs.json @@ -44,7 +44,8 @@ "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0x7d0ccaa3fac1e5a943c5168b6ced828691b46b36", "0x40aA958dd87FC8305b97f2BA922CDdCa374bcD7f", - "0xFe837A3530dD566401d35beFCd55582AF7c4dfFC" + "0xFe837A3530dD566401d35beFCd55582AF7c4dfFC", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "abstract": [ "0xde6A2171959d7b82aAD8e8B14cc84684C3a186AC", @@ -95,13 +96,15 @@ "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0xf332761c673b59b21ff6dfa8ada44d78c12def09", - "0x70cBb871E8f30Fc8Ce23609E9E0Ea87B6b222F58" + "0x70cBb871E8f30Fc8Ce23609E9E0Ea87B6b222F58", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "apechain": [ "0xEe80aaE1e39b1d25b9FC99c8edF02bCd81f9eA30", "0x6e067b6E29791126CD21f7DB316704E29d38447D", "0x92A30698e56091f50a2a12947593A6cC46c55E39", - "0x2D4ffb5219fC3C84905ec7CAEe2740d9dDa8271D" + "0x2D4ffb5219fC3C84905ec7CAEe2740d9dDa8271D", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "aurora": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -167,7 +170,8 @@ "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", "0x1dac23e41fc8ce857e86fd8c1ae5b6121c67d96d", "0x40aA958dd87FC8305b97f2BA922CDdCa374bcD7f", - "0x3a64Ec3606FF7310E8fAd6FcC008e39705fB496d" + "0x3a64Ec3606FF7310E8fAd6FcC008e39705fB496d", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "base": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -194,7 +198,16 @@ "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0x6b2c0c7be2048daa9b5527982c29f48062b34d58", - "0x57df6092665eb6058DE53939612413ff4B09114E" + "0x57df6092665eb6058DE53939612413ff4B09114E", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" + ], + "berachain": [ + "0x070EC43b4222E0f17EEcD2C839cb9D1D5adeF73c", + "0xbf7d441A5015d92357bB41DB2552E11619D62326", + "0x6295b30297C254108E0bF16C70D513d2043E3d45", + "0xe2Bd045c9C7c765D0920BB4e12D5B584eA682C29", + "0x6131b5fae19ea4f9d964eac0408e4408b66337b5", + "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64" ], "blast": [ "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", @@ -211,7 +224,8 @@ "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0x2e86f54943fafd2cb62958c3deed36c879e3e944", - "0x5fD2Dc91FF1dE7FF4AEB1CACeF8E9911bAAECa68" + "0x5fD2Dc91FF1dE7FF4AEB1CACeF8E9911bAAECa68", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "boba": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -236,7 +250,8 @@ "0x80C7DD17B01855a6D2347444a0FCC36136a314de", "0xbe811a0d44e2553d25d11cb8dc0d3f0d0e6430e6", "0xe43ca1Dee3F0fc1e2df73A0745674545F11A59F5", - "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55" + "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "bsc": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -282,7 +297,8 @@ "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0x9333c74bdd1e118634fe5664aca7a9710b108bab", "0x2c34A2Fb1d0b4f55de51E1d0bDEfaDDce6b7cDD6", - "0x0343C5757Fb98aD9eF39824e08B852aF61C71c64" + "0x0343C5757Fb98aD9eF39824e08B852aF61C71c64", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "celo": [ "0xC85c2B19958D116d79C654ecE73b359c08802A76", @@ -303,7 +319,8 @@ "0xF2ee649caB7a0edEdED7a27821B0aCDF77778aeD", "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "0xCdBCd51a5E8728E0AF4895ce5771b7d17fF71959", - "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55" + "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "cronos": [ "0xdFC2983401614118E1F2D5A5FD93C17Fecf8BdC6", @@ -329,7 +346,8 @@ "0xf88F6948C8AFf60c0B011f3175CDF459c66Ed035", "0x3a629404258dF01bef29Dd5d428508D92e207bD0", "0xf332761c673b59b21ff6dfa8ada44d78c12def09", - "0x70cbb871e8f30fc8ce23609e9e0ea87b6b222f58" + "0x70cbb871e8f30fc8ce23609e9e0ea87b6b222f58", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "evmos": [ "0xdFC2983401614118E1F2D5A5FD93C17Fecf8BdC6", @@ -381,7 +399,8 @@ "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", "0xf332761c673b59b21ff6dfa8ada44d78c12def09", - "0x70cBb871E8f30Fc8Ce23609E9E0Ea87B6b222F58" + "0x70cBb871E8f30Fc8Ce23609E9E0Ea87B6b222F58", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "fuse": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -401,7 +420,8 @@ "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "0x1be211D8DA40BC0ae8719c6663307Bfc987b1d6c", "0xaa26771d497814E81D305c511Efbb3ceD90BF5bd", - "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55" + "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "gnosis": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -432,7 +452,8 @@ "0x1e9B24073183d5c6B7aE5FB4b8f0b1dd83FDC77a", "0xBBDe1d67297329148Fe1ED5e6B00114842728e65", "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", - "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55" + "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "gravity": [ "0x79540403cdE176Ca5f1fb95bE84A7ec91fFDEF76", @@ -468,7 +489,8 @@ "0xB49EaD76FE09967D7CA0dbCeF3C3A06eb3Aa0cB4", "0x6352a56caadc4f1e25cd6c75970fa768a3304e64", "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", - "0xf012702a5f0e54015362cBCA26a26fc90AA832a3" + "0xf012702a5f0e54015362cBCA26a26fc90AA832a3", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "heco": [ "0xdFC2983401614118E1F2D5A5FD93C17Fecf8BdC6", @@ -512,7 +534,8 @@ "0x0ec6D2eEb94541C51620830D151995fCFf83Aa74", "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", "0x6b2c0c7be2048daa9b5527982c29f48062b34d58", - "0x57df6092665eb6058DE53939612413ff4B09114E" + "0x57df6092665eb6058DE53939612413ff4B09114E", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "lisk": [ "0x603a538477d44064eA5A5d8C345b4Ff6fca1142a", @@ -534,7 +557,8 @@ "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0x6131b5fae19ea4f9d964eac0408e4408b66337b5", "0x6b2c0c7be2048daa9b5527982c29f48062b34d58", - "0x57df6092665eb6058DE53939612413ff4B09114E" + "0x57df6092665eb6058DE53939612413ff4B09114E", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "metis": [ "0x6352a56caadc4f1e25cd6c75970fa768a3304e64", @@ -544,7 +568,8 @@ "0x799525cE72B5cc9eb310dc8c7b9e7A3128a6dA79", "0x9E4c63c9a0EDE2Ca2e772ee48C819Ca5CB4529AC", "0x6b2c0c7be2048daa9b5527982c29f48062b34d58", - "0x57df6092665eb6058DE53939612413ff4B09114E" + "0x57df6092665eb6058DE53939612413ff4B09114E", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "mode": [ "0x7E15EB462cdc67Cf92Af1f7102465a8F8c784874", @@ -558,7 +583,8 @@ "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0xd0f95fafa06de1b21e79db03c649919501e99ea9", "0xbd0ebe49779e154e5042b34d5bcfbc498e4b3249", - "0x78bF01555bCF05e6B1d4dad017dBD0A105652DC9" + "0x78bF01555bCF05e6B1d4dad017dBD0A105652DC9", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "moonbeam": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -577,7 +603,8 @@ "0xB45e53277a7e0F1D35f2a77160e91e25507f1763", "0x6c5A9e667297b409B5dD9850b38889ab84110c2A", "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", - "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc" + "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "moonriver": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -602,7 +629,8 @@ "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "0x9e4791ad13f14783C7B2A6A7bD8D6DDD1DC95847", "0x7af71799C40F952237eAA4D81A77C1af49125113", - "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55" + "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "nova": [ "0xdFC2983401614118E1F2D5A5FD93C17Fecf8BdC6", @@ -673,12 +701,11 @@ "0x96E04591579f298681361C6122Dc4Ef405c19385", "0x4C5D5234f232BD2D76B96aA33F5AE4FCF0E4BFAb", "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", - "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3" + "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "opbnb": [ "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", - "0xf332761c673b59b21ff6dfa8ada44d78c12def09", - "0x68D6B739D2020067D1e2F713b999dA97E4d54812", "0x6A2420650139854F17964b8C3Bb60248470aB57E", "0xEc41F702d36b43a1E1d017Cb4da92F431dFA7a0E", "0x077A38b812e57E2e76849954c880E1a2f5e0A68d" @@ -733,7 +760,8 @@ "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0xa748d6573aca135af68f2635be60cb80278bd855", "0x3B86917369B83a6892f553609F3c2F439C184e31", - "0x46AFE01D758a46d64c7d8E0791314D5db3E2e683" + "0x46AFE01D758a46d64c7d8E0791314D5db3E2e683", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "polygonzkevm": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -757,7 +785,8 @@ "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "0x6b2c0c7be2048daa9b5527982c29f48062b34d58", - "0x57df6092665eb6058DE53939612413ff4B09114E" + "0x57df6092665eb6058DE53939612413ff4B09114E", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "rootstock": [ "0x6352A56caaDc4F1e25cd6c75970fA768A3304E64", @@ -767,7 +796,8 @@ "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "0xF2ee649caB7a0edEdED7a27821B0aCDF77778aeD", "0xb46e319390De313B8cc95EA5aa30C7bBFD79Da94", - "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55" + "0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "sei": [ "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", @@ -791,7 +821,8 @@ "0x78bF01555bCF05e6B1d4dad017dBD0A105652DC9", "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "0x6b2c0c7be2048daa9b5527982c29f48062b34d58", - "0x57df6092665eb6058DE53939612413ff4B09114E" + "0x57df6092665eb6058DE53939612413ff4B09114E", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "sonic": [ "0xaFb8cC8fCd71cd768Ce117C11eB723119FCDb1f8", @@ -799,14 +830,23 @@ "0xbA01f8b54F8F6B3789Bc9E1Bbd7206bE4e6830e5", "0x6352a56caadc4f1e25cd6c75970fa768a3304e64", "0x6131B5fae19EA4f9D964eAc0408E4408b66337b5", - "0xaC041Df48dF9791B0654f1Dbbf2CC8450C5f2e9D" + "0xaC041Df48dF9791B0654f1Dbbf2CC8450C5f2e9D", + "0xadf8d87723ec7f011ae56ddd6dc10fa8b2c3863a", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" ], "taiko": [ "0xDd8A081efC90DFFD79940948a1528C51793C4B03", "0xff2F39692A90262b8Ed4DFD92799bB450425773F", "0xD989E929517B0e5eD0c8EfE7607Fa167B697cBa8", "0xcaA342e4f781d63EF41E220D7622B97E66BAEcF3", - "0x0ec6D2eEb94541C51620830D151995fCFf83Aa74" + "0x0ec6D2eEb94541C51620830D151995fCFf83Aa74", + "0xc55332b1d758e798a8dB1f255B029f045C4958b7" + ], + "unichain": [ + "0x8295805320853d6B28778fC8f5199327e62e3d87", + "0x9679d1f7D955C81827c6842b3119B911943958eE", + "0x86E5a407385364B86B3e502644EfFee1a43C9a7b", + "0x808151156cB5054418B689af97639CaeAF7712aC" ], "velas": [ "0xdFC2983401614118E1F2D5A5FD93C17Fecf8BdC6", @@ -852,7 +892,8 @@ "0x1F683faf1E2a770aa75f7B2e92117A5c11183E9C", "0x4000f76450d9d40558fd60F66863F583B7A5BCCb", "0xb9061e38fee7d30134f56aef7117e2f6d1580666", - "0xc67879F4065d3B9fe1C09EE990B891Aa8E3a4c2f" + "0xc67879F4065d3B9fe1C09EE990B891Aa8E3a4c2f", + "0x70487a4CB3e097B90699e4B5AA35D75f2b7ad160" ], "---------------FROM HERE ON JUST OLD NETWORKS - PLEASE ADD NEW NETWORKS ABOVE IN ALPHABETICAL ORDER ^^^^ ----------": [], "goerli": [ @@ -867,9 +908,7 @@ "0xf91bb752490473b8342a3e964e855b9f9a2a668e" ], "avalancheFujiTestnet": [], - "bscTestnet": [ - "0x1b02da8cb0d097eb8d57a175b88c7d8b47997506" - ], + "bscTestnet": ["0x1b02da8cb0d097eb8d57a175b88c7d8b47997506"], "localanvil": [], "mumbai": [ "0x5215E9fd223BC909083fbdB2860213873046e45d", @@ -877,5 +916,11 @@ "0xfD0af5274aA16C72B7c463B22a435C06DEBbe894", "0xf471d32cb40837bf24529fcf17418fc1a4807626", "0x427bFc2E0aa683ec43fbF7861d5F4A74147938d8" + ], + "soneium": [ + "0x8295805320853d6B28778fC8f5199327e62e3d87", + "0x86E5a407385364B86B3e502644EfFee1a43C9a7b", + "0x9679d1f7D955C81827c6842b3119B911943958eE", + "0xf89901c677c9fb8D04BdE96e8aa6c6eAB5cA5Fd4" ] } diff --git a/config/gaszip.json b/config/gaszip.json index d34ee2428..9e70dd779 100644 --- a/config/gaszip.json +++ b/config/gaszip.json @@ -7,6 +7,7 @@ "apechain": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "avalanche": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "base": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", + "berachain": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "bsc": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "blast": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "fantom": "0xA60768b03eB14d940F6c9a8553329B7F9037C91b", @@ -20,8 +21,10 @@ "optimism": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "polygon": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "scroll": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", + "soneium": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "sonic": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "taiko": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", + "unichain": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "worldchain": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "xlayer": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "zksync": "0x252fb662e4d7435d2a5ded8ec94d8932cf76c178" diff --git a/config/global.json b/config/global.json index c9923421d..d9b4afa9b 100644 --- a/config/global.json +++ b/config/global.json @@ -1,10 +1,13 @@ { "create3Factory": { "default": "0x93FEC2C00BfE902F733B57c5a6CeeD7CD1384AE1", + "berachain": "0x5f63A2d7850776465b84Bc0fe6284BBC8188dbC7", + "kaia": "0xC3C73FEE9Cef413880696e6C39365BDf8cD564f9", "linea": "0x8437A5fE47A4Df14700c96DF1870824e72FA8499", "metis": "0x763f212f355433C59d734C71247d16fCE74D8785", + "soneium": "0xeBbbaC35500713C4AD49929e1bE4225c7efF6510", "taiko": "0x8437A5fE47A4Df14700c96DF1870824e72FA8499", - "kaia": "0xC3C73FEE9Cef413880696e6C39365BDf8cD564f9" + "unichain": "0xeBbbaC35500713C4AD49929e1bE4225c7efF6510" }, "refundWallet": "0x156CeBba59DEB2cB23742F70dCb0a11cC775591F", "withdrawWallet": "0x08647cc950813966142A416D40C382e2c5DB73bB", @@ -45,8 +48,21 @@ ], "autoWhitelistPeripheryContracts": [ "FeeCollector", - "LiFuelFeeCollector", + "GasZipPeriphery", "TokenWrapper", "LiFiDEXAggregator" + ], + "coreFacets": [ + "AccessManagerFacet", + "CalldataVerificationFacet", + "DexManagerFacet", + "DiamondCutFacet", + "DiamondLoupeFacet", + "EmergencyPauseFacet", + "GenericSwapFacet", + "GenericSwapFacetV3", + "OwnershipFacet", + "PeripheryRegistryFacet", + "WithdrawFacet" ] } diff --git a/config/networks.json b/config/networks.json index 53deb31ed..521e1d50f 100644 --- a/config/networks.json +++ b/config/networks.json @@ -125,6 +125,24 @@ "safeWebUrl": "https://app.safe.global/transactions/queue?safe=base:0x1F6974C11B833Eb52ea07E0B442510165D87d82e", "gasZipChainId": 54 }, + "berachain": { + "name": "berachain", + "chainId": 80094, + "nativeAddress": "0x0000000000000000000000000000000000000000", + "nativeCurrency": "BERA", + "wrappedNativeAddress": "0x6969696969696969696969696969696969696969", + "status": "active", + "type": "mainnet", + "rpcUrl": "https://rpc.berachain.com", + "verificationType": "etherscan", + "explorerUrl": "https://berascan.com/", + "explorerApiUrl": "https://api.berascan.com", + "multicallAddress": "0xcA11bde05977b3631167028862bE2a173976CA11", + "safeApiUrl": "https://transaction.safe.berachain.com/api", + "safeAddress": "0xdf61270fDC1A892874Fd3C0143A0A4CBA74F4EF1", + "safeWebUrl": "https://safe.berachain.com/home?safe=berachain:0xdf61270fDC1A892874Fd3C0143A0A4CBA74F4EF1", + "gasZipChainId": 143 + }, "blast": { "name": "blast", "chainId": 81457, @@ -593,6 +611,24 @@ "safeWebUrl": "https://sei-safe.protofire.io/transactions/queue?safe=sei:0xdf61270fDC1A892874Fd3C0143A0A4CBA74F4EF1", "gasZipChainId": 246 }, + "soneium": { + "name": "soneium", + "chainId": 1868, + "nativeAddress": "0x0000000000000000000000000000000000000000", + "nativeCurrency": "ETH", + "wrappedNativeAddress": "0x4200000000000000000000000000000000000006", + "status": "active", + "type": "mainnet", + "rpcUrl": "https://rpc.soneium.org", + "verificationType": "blockscout", + "explorerUrl": "https://soneium.blockscout.com/", + "explorerApiUrl": "https://soneium.blockscout.com/api", + "multicallAddress": "0xcA11bde05977b3631167028862bE2a173976CA11", + "safeApiUrl": "https://trx-soneium-stg.safe.protofire.io/api", + "safeAddress": "0x245B16CaCE8730b009c5352186DcE7d73c3037A1", + "safeWebUrl": "https://safe.optimism.io/transactions/queue?safe=soneium:0x245B16CaCE8730b009c5352186DcE7d73c3037A1", + "gasZipChainId": 414 + }, "sonic": { "name": "sonic", "chainId": 146, @@ -629,6 +665,24 @@ "safeWebUrl": "https://safe.taiko.xyz/transactions/queue?safe=tko-mainnet:0xa89a87986e8ee1Ac8fDaCc5Ac91627010Ec9f772", "gasZipChainId": 249 }, + "unichain": { + "name": "Unichain", + "chainId": 130, + "nativeAddress": "0x0000000000000000000000000000000000000000", + "nativeCurrency": "ETH", + "wrappedNativeAddress": "0x4200000000000000000000000000000000000006", + "status": "active", + "type": "mainnet", + "rpcUrl": "https://mainnet.unichain.org", + "verificationType": "blockscout", + "explorerUrl": "https://unichain.blockscout.com", + "explorerApiUrl": "https://unichain.blockscout.com/api?", + "multicallAddress": "0xcA11bde05977b3631167028862bE2a173976CA11", + "safeApiUrl": "https://safe-transaction-unichain.safe.global/api", + "safeAddress": "0x428653b7537717cA9B81b453601436D576081aF6", + "safeWebUrl": "https://app.safe.global/transactions/queue?safe=unichain:0x428653b7537717cA9B81b453601436D576081aF6", + "gasZipChainId": 362 + }, "worldchain": { "name": "World Chain", "chainId": 480, diff --git a/config/permit2Proxy.json b/config/permit2Proxy.json index 7ecc986a8..8af8d352c 100644 --- a/config/permit2Proxy.json +++ b/config/permit2Proxy.json @@ -5,6 +5,7 @@ "aurora": "", "avalanche": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "base": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "berachain": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "blast": "0x000000000022d473030f116ddee9f6b43ac78ba3", "boba": "", "bsc": "0x000000000022D473030F116dDEE9F6B43aC78BA3", @@ -27,6 +28,8 @@ "rootstock": "", "scroll": "", "sei": "", + "soneium": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "taiko": "", + "unichain": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "zksync": "0x0000000000225e31d15943971f47ad3022f714fa" } diff --git a/config/relay.json b/config/relay.json index acc8a9599..402df7d8a 100644 --- a/config/relay.json +++ b/config/relay.json @@ -14,6 +14,11 @@ "relayReceiver": "0xa5f565650890fba1824ee0f21ebbbf660a179934", "relaySolver": "0xf70da97812CB96acDF810712Aa562db8dfA3dbEF" }, + "berachain": { + "chainId": 80094, + "relayReceiver": "0x7f4babd2c7d35221e72ab67ea72cba99573a0089", + "relaySolver": "0xf70da97812CB96acDF810712Aa562db8dfA3dbEF" + }, "bsc": { "chainId": 56, "relayReceiver": "0xa5f565650890fba1824ee0f21ebbbf660a179934", @@ -119,6 +124,16 @@ "relayReceiver": "0x00000000aa467eba42a3d604b3d74d63b2b6c6cb", "relaySolver": "0xf70da97812CB96acDF810712Aa562db8dfA3dbEF" }, + "soneium": { + "chainId": 1868, + "relayReceiver": "0x7f4babd2c7d35221e72ab67ea72cba99573a0089", + "relaySolver": "0xf70da97812CB96acDF810712Aa562db8dfA3dbEF" + }, + "unichain": { + "chainId": 130, + "relayReceiver": "0x47eb64e17a6d2fd559b608695e6d308cced918dd", + "relaySolver": "0xf70da97812CB96acDF810712Aa562db8dfA3dbEF" + }, "zora": { "chainId": 7777777, "relayReceiver": "0xa5f565650890fba1824ee0f21ebbbf660a179934", diff --git a/config/sigs.json b/config/sigs.json index 76e50a450..79f0a28d6 100644 --- a/config/sigs.json +++ b/config/sigs.json @@ -153,6 +153,8 @@ "0x0d5f0e3b", "0x08298b5a", "0xff84aafa", - "0x01617fab" + "0x01617fab", + "0xdd9c5f96", + "0xee623204" ] } diff --git a/config/stargate.json b/config/stargate.json index ee7aa8e60..4e7aafe4c 100644 --- a/config/stargate.json +++ b/config/stargate.json @@ -7,6 +7,7 @@ "aurora": "0x1a44076050125825900e736c501f859c50fE728c", "avalanche": "0x1a44076050125825900e736c501f859c50fE728c", "base": "0x1a44076050125825900e736c501f859c50fE728c", + "berachain": "0x6F475642a6e85809B1c36Fa62763669b1b48DD5B", "boba": "0x0000000000000000000000000000000000000000", "blast": "0x1a44076050125825900e736c501f859c50fE728c", "bsc": "0x1a44076050125825900e736c501f859c50fE728c", @@ -36,6 +37,7 @@ "metis": "0x1a44076050125825900e736c501f859c50fE728c", "mode": "0x1a44076050125825900e736c501f859c50fE728c", "mantle": "0x1a44076050125825900e736c501f859c50fE728c", + "soneium": "0x4bcb6a963a9563c33569d7a512d35754221f3a19", "scroll": "0x1a44076050125825900e736c501f859c50fE728c", "taiko": "0x1a44076050125825900e736c501f859c50fE728c", "xlayer": "0x0000000000000000000000000000000000000000", @@ -48,25 +50,28 @@ "tokenMessaging": { "LinkToDeployedToAddresses": "https://stargateprotocol.gitbook.io/stargate/v/v2-developer-docs/technical-reference/mainnet-contracts", "mainnet": "0x6d6620eFa72948C5f68A3C8646d58C00d3f4A980", + "berachain": "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6", "bsc": "0x6e3d884c96d640526f273c61dfcf08915ebd7e2b", - "polygon": "0x6ce9bf8cdab780416ad1fd87b318a077d2f50eac", "abstract": "0x183D6b82680189bB4dB826F739CdC9527D467B25", "arbitrum": "0x19cfce47ed54a88614648dc3f19a5980097007dd", + "aurora": "0x5f688f563dc16590e570f97b542fa87931af2fed", + "avalanche": "0x17e450be3ba9557f2378e20d64ad417e59ef9a34", + "base": "0x5634c4a5fed09819e3c46d86a965dd9447d86e47", + "fantom": "----FantomIsNotSupportedByStargateV2----", "fuse": "0x45a01e4e04f14f7a4a6702c74187c5f6222033cd", + "gnosis": "0xAf368c91793CB22739386DFCbBb2F1A9e4bCBeBf", + "gravity": "0x9c2dc7377717603eB92b2655c5f2E7997a4945BD", + "kaia": "0x16F3F98D82d965988E6853681fD578F4d719A1c0", + "linea": "0x5f688f563dc16590e570f97b542fa87931af2fed", "mantle": "0x41b491285a4f888f9f636cec8a363ab9770a0aef", "metis": "0xcbe78230cca58b9ef4c3c5d1bc0d7e4b3206588a", - "linea": "0x5f688f563dc16590e570f97b542fa87931af2fed", - "kaia": "0x16F3F98D82d965988E6853681fD578F4d719A1c0", - "scroll": "0x4e422b0acb2bd7e3ac70b5c0e5eb806e86a94038", - "optimism": "0xf1fcb4cbd57b67d683972a59b6a7b1e2e8bf27e6", "opbnb": "0x0000000000000000000000000000000000000000", - "base": "0x5634c4a5fed09819e3c46d86a965dd9447d86e47", - "avalanche": "0x17e450be3ba9557f2378e20d64ad417e59ef9a34", - "aurora": "0x5f688f563dc16590e570f97b542fa87931af2fed", - "fantom": "----FantomIsNotSupportedByStargateV2----", - "gravity": "0x9c2dc7377717603eB92b2655c5f2E7997a4945BD", + "optimism": "0xf1fcb4cbd57b67d683972a59b6a7b1e2e8bf27e6", + "polygon": "0x6ce9bf8cdab780416ad1fd87b318a077d2f50eac", "rootstock": "0x45a01e4e04f14f7a4a6702c74187c5f6222033cd", "sei": "0x1502FA4be69d526124D453619276FacCab275d3D", + "scroll": "0x4e422b0acb2bd7e3ac70b5c0e5eb806e86a94038", + "soneium": "0xAF54BE5B6eEc24d6BFACf1cce4eaF680A8239398", "taiko": "0x45d417612e177672958dC0537C45a8f8d754Ac2E", "zksync": "---comingSoon---" }, @@ -211,6 +216,7 @@ "aurora": "0x0000000000000000000000000000000000000000", "avalanche": "0xeCc19E177d24551aA7ed6Bc6FE566eCa726CC8a9", "base": "0xeCc19E177d24551aA7ed6Bc6FE566eCa726CC8a9", + "berachain": "0x0000000000000000000000000000000000000000", "boba": "0x0000000000000000000000000000000000000000", "blast": "0x0000000000000000000000000000000000000000", "bsc": "0xeCc19E177d24551aA7ed6Bc6FE566eCa726CC8a9", @@ -245,8 +251,10 @@ "mantle": "0x296F55F8Fb28E498B858d0BcDA06D955B2Cb3f97", "scroll": "0x0000000000000000000000000000000000000000", "sonic": "0x0000000000000000000000000000000000000000", + "soneium": "0x0000000000000000000000000000000000000000", "xlayer": "0x0000000000000000000000000000000000000000", "taiko": "0x0000000000000000000000000000000000000000", + "unichain": "0x0000000000000000000000000000000000000000", "worldchain": "0x0000000000000000000000000000000000000000", "localanvil": "0x0000000000000000000000000000000000000000", "mumbai": "0x0000000000000000000000000000000000000000", @@ -258,6 +266,7 @@ "aurora": "0x0000000000000000000000000000000000000000", "avalanche": "0x45A01E4e04F14f7A4a6702c74187c5F6222033cd", "base": "0x45f1A95A4D3f3836523F5c83673c797f4d4d263B", + "berachain": "0x0000000000000000000000000000000000000000", "blast": "0x0000000000000000000000000000000000000000", "boba": "0x0000000000000000000000000000000000000000", "bsc": "0x4a364f8c717cAAD9A442737Eb7b8A55cc6cf18D8", @@ -287,8 +296,10 @@ "mantle": "0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590", "metis": "0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590", "scroll": "0x36d4686e19c052787D7f24E6913cEbC025714895", - "xlayer": "0x0000000000000000000000000000000000000000", + "soneium": "0x0000000000000000000000000000000000000000", "taiko": "0x0000000000000000000000000000000000000000", + "unichain": "0x0000000000000000000000000000000000000000", + "xlayer": "0x0000000000000000000000000000000000000000", "localanvil": "0x0000000000000000000000000000000000000000", "mumbai": "0x817436a076060D158204d955E5403b6Ed0A5fac0", "sepolia": "0x0000000000000000000000000000000000000000" diff --git a/config/symbiosis.json b/config/symbiosis.json index 22ef91771..51559970c 100644 --- a/config/symbiosis.json +++ b/config/symbiosis.json @@ -19,6 +19,10 @@ "metaRouter": "0x691df9C4561d95a4a726313089c8536dd682b946", "gateway": "0x41Ae964d0F61Bb5F5e253141A462aD6F3b625B92" }, + "berachain": { + "metaRouter": "0xcE8f24A58D85eD5c5A6824f7be1F8d4711A0eb4C", + "gateway": "0xAdB2d3b711Bb8d8Ea92ff70292c466140432c278" + }, "blast": { "metaRouter": "0x7057aB3fB2BeE9c18e0cDe4240DE4ff7f159E365", "gateway": "0xa0079829B9F1Edc5DD0DE3eC104f281745C4bD81" @@ -39,6 +43,10 @@ "metaRouter": "0xcE8f24A58D85eD5c5A6824f7be1F8d4711A0eb4C", "gateway": "0xAdB2d3b711Bb8d8Ea92ff70292c466140432c278" }, + "gnosis": { + "metaRouter": "0xcE8f24A58D85eD5c5A6824f7be1F8d4711A0eb4C", + "gateway": "0xAdB2d3b711Bb8d8Ea92ff70292c466140432c278" + }, "gravity": { "metaRouter": "0xcE8f24A58D85eD5c5A6824f7be1F8d4711A0eb4C", "gateway": "0xAdB2d3b711Bb8d8Ea92ff70292c466140432c278" diff --git a/config/tokenwrapper.json b/config/tokenwrapper.json index b91e980b6..ad10e7465 100644 --- a/config/tokenwrapper.json +++ b/config/tokenwrapper.json @@ -2,6 +2,7 @@ "comment": "Note: this file is generated by a backend script, do not change it manually!", "mainnet": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "abstract": "0x3439153EB7AF838Ad19d56E1571FBD09333C2809", + "berachain": "0x6969696969696969696969696969696969696969", "optimism": "0x4200000000000000000000000000000000000006", "cronos": "0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23", "rootstock": "0x542fda317318ebf1d3deaf76e0b632741a7e677d", @@ -34,8 +35,10 @@ "lisk": "0x4200000000000000000000000000000000000006", "blast": "0x4300000000000000000000000000000000000004", "worldchain": "0x4200000000000000000000000000000000000006", + "unichain": "0x4200000000000000000000000000000000000006", "taiko": "0xA51894664A773981C6C112C43ce576f315d5b1B6", "scroll": "0x5300000000000000000000000000000000000004", + "soneium": "0x4200000000000000000000000000000000000006", "sonic": "0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38", "aurora": "0xc9bdeed33cd01541e1eed10f90519d2c06fe3feb", "harmony": "0xcf664087a5bb0237a0bad6742852ec6c8d69a27a" diff --git a/deployments/_deployments_log_file.json b/deployments/_deployments_log_file.json index 67ad271d2..597fcdb7c 100644 --- a/deployments/_deployments_log_file.json +++ b/deployments/_deployments_log_file.json @@ -760,6 +760,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x53d3837f141655a62ddc6778aB8d9eE80b9e60FF", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:19:11", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x2407c1598650f8CD4Aaa0c1a4BCcd12D4999a6E9", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:02", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x2407c1598650f8CD4Aaa0c1a4BCcd12D4999a6E9", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:30:48", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "DiamondLoupeFacet": { @@ -1510,6 +1552,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x95a05b09d2c84d8a37c03536A0BAd75876F8F8e9", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:19:57", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x1E007BB710D4330109B4Cf4f3D4D8e25a8b54BEB", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:09", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x1E007BB710D4330109B4Cf4f3D4D8e25a8b54BEB", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:31:08", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "OwnershipFacet": { @@ -2259,6 +2343,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x696d81Ff9FCa84aCA9Aba638CbB6Bf6904121000", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:20:42", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x42e4Ef53e8d905A5D02CC12b8C60D27800F76121", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:40", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x42e4Ef53e8d905A5D02CC12b8C60D27800F76121", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:43:11", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "DexManagerFacet": { @@ -3310,6 +3436,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xD0F9b85c78ee9260E96dA3D86095e1D82cf67D33", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:21:25", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x668442675e54Af64E6cD551CB1C061EF5f26C237", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:06:55", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x668442675e54Af64E6cD551CB1C061EF5f26C237", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:41:38", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "AccessManagerFacet": { @@ -4060,6 +4228,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x446DfC584888e6Da7Bda3a608f89B041Efa09cD2", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:22:10", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xcdEC3efD307BaC9dD88c7EdD962F7681C79eD90E", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:06:38", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xcdEC3efD307BaC9dD88c7EdD962F7681C79eD90E", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:41:06", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "WithdrawFacet": { @@ -4796,6 +5006,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xEb2d26137D826a97BDfc3b873C4d34ecc47797F8", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:22:56", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xC20773bbD1c8Fb749E7DaE5236800A5Dd5F39ed8", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:55", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xC20773bbD1c8Fb749E7DaE5236800A5Dd5F39ed8", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:43:43", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "PeripheryRegistryFacet": { @@ -5545,6 +5797,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xf3ca4ad4FC7405c24398b4c20A6A81D612f7039e", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:23:43", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x6adB9BBCaAbf760f401bdA7730Aa4F6C1eF65456", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:48", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x6adB9BBCaAbf760f401bdA7730Aa4F6C1eF65456", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:43:27", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "LiFiDiamond": { @@ -6269,6 +6563,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xf909c4Ae16622898b885B89d7F839E0244851c66", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 11:07:39", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c00000000000000000000000053d3837f141655a62ddc6778ab8d9ee80b9e60ff", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x864b314D4C5a0399368609581d3E8933a63b9232", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:08:02", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c0000000000000000000000002407c1598650f8cd4aaa0c1a4bccd12d4999a6e9", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x864b314D4C5a0399368609581d3E8933a63b9232", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:43:58", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c0000000000000000000000002407c1598650f8cd4aaa0c1a4bccd12d4999a6e9", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "LiFiDiamondImmutable": { @@ -8064,9 +8400,51 @@ } ] } - } - }, - "HopFacetOptimized": { + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xf818b7bb46Cb22Be28e1efB932373Aa80955Be08", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:25:15", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x85a52070bf96f96B6bD4e06Ec536991879058BDF", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:25", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x85a52070bf96f96B6bD4e06Ec536991879058BDF", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:32:33", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + } + }, + "HopFacetOptimized": { "optimism": { "production": { "1.0.0": [ @@ -9590,6 +9968,20 @@ } ] } + }, + "berachain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x4d28ac993509C637F9EC37C7a6E14F9097F0a408", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:24:29", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } } }, "MultichainFacet": { @@ -11526,6 +11918,48 @@ } ] } + }, + "berachain": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0x988764Fd9F705163c530388b42dD7181edA3F502", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:13:49", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0xE16150617A4560925ef8e68E8efa3D68Bec3Bb7F", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:14:56", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0xE16150617A4560925ef8e68E8efa3D68Bec3Bb7F", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:39:47", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "Executor": { @@ -12450,6 +12884,48 @@ } ] } + }, + "berachain": { + "production": { + "2.1.0": [ + { + "ADDRESS": "0xf89Cc8190c911DB1AFd1f3B1ee711179b6867A23", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 13:11:04", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000988764fd9f705163c530388b42dd7181eda3f502000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "2.1.0": [ + { + "ADDRESS": "0xCA847a739BA26238488cb85A2a28A4ad677716e1", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:17:40", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000e16150617a4560925ef8e68e8efa3d68bec3bb7f000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "2.1.0": [ + { + "ADDRESS": "0xCA847a739BA26238488cb85A2a28A4ad677716e1", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:40:29", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000e16150617a4560925ef8e68e8efa3d68bec3bb7f000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "FeeCollector": { @@ -13175,6 +13651,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x070EC43b4222E0f17EEcD2C839cb9D1D5adeF73c", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 12:03:42", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000008647cc950813966142a416d40c382e2c5db73bb", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x8295805320853d6B28778fC8f5199327e62e3d87", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:18:20", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000008647cc950813966142a416d40c382e2c5db73bb", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x8295805320853d6B28778fC8f5199327e62e3d87", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:41:12", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000008647cc950813966142a416d40c382e2c5db73bb", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "Receiver": { @@ -14455,6 +14973,48 @@ } ] } + }, + "berachain": { + "production": { + "2.1.0": [ + { + "ADDRESS": "0xa0786bDbA37b48a25943386a122aC3443AB9695B", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 12:10:15", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89cc8190c911db1afd1f3b1ee711179b6867a2300000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "2.1.0": [ + { + "ADDRESS": "0x614Fe86aF0b9740946A94a5Cb8f07C1Dc9d77eBC", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:25:20", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ca847a739ba26238488cb85a2a28a4ad677716e100000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "2.1.0": [ + { + "ADDRESS": "0x614Fe86aF0b9740946A94a5Cb8f07C1Dc9d77eBC", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:43:24", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ca847a739ba26238488cb85a2a28a4ad677716e100000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "ServiceFeeCollector": { @@ -20101,6 +20661,20 @@ } ] } + }, + "berachain": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0xeAA6214121098d633677Da06f05c9EF1287d17dc", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:26:46", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } } }, "CalldataVerificationFacet": { @@ -20889,6 +21463,48 @@ } ] } + }, + "berachain": { + "production": { + "1.2.0": [ + { + "ADDRESS": "0xbf6A78E2E457F377a281394f0d117F61300b14e7", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:27:30", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.2.0": [ + { + "ADDRESS": "0x091EBD75fCD19286b082Ce27b955F01816Af16d2", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:06:45", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.2.0": [ + { + "ADDRESS": "0x091EBD75fCD19286b082Ce27b955F01816Af16d2", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:41:21", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "LiFuelFeeCollector": { @@ -22677,6 +23293,34 @@ } ] } + }, + "gnosis": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x5656E307E4dEd573695Dd3eAC64EC4778F910DcA", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-10 15:24:38", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000ce8f24a58d85ed5c5a6824f7be1f8d4711a0eb4c000000000000000000000000adb2d3b711bb8d8ea92ff70292c466140432c278", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x4007305106042a12C42Fa9D1F1D74cbf00453688", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 12:25:12", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000ce8f24a58d85ed5c5a6824f7be1f8d4711a0eb4c000000000000000000000000adb2d3b711bb8d8ea92ff70292c466140432c278", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } } }, "MayanBridgeFacet": { @@ -23290,33 +23934,75 @@ } ] } - } - }, - "GasRebateDistributor": { - "polygon": { - "staging": { - "1.0.0": [ + }, + "berachain": { + "production": { + "1.1.0": [ { - "ADDRESS": "0x3116B8F099D7eFA6e24f39F80146Aac423365EB9", + "ADDRESS": "0xbf7d441A5015d92357bB41DB2552E11619D62326", "OPTIMIZER_RUNS": "1000000", - "TIMESTAMP": "2024-03-25 09:50:38", - "CONSTRUCTOR_ARGS": "0x00000000000000000000000029dacdf7ccadf4ee67c923b4c22255a4b2494ed7b1a3e69afbb24ad2239e09935fdec19313f8b4b914e9a0cb8d956dab28464f0b000000000000000000000000000000000000000000000000000000006600e5b70000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359", - "SALT": "", + "TIMESTAMP": "2025-02-07 12:11:13", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000006969696969696969696969696969696969696969000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f", + "SALT": "2025020701", "VERIFIED": "true" } ] } - } - }, - "MayanFacet": { - "bsc": { - "staging": { - "1.0.0": [ + }, + "soneium": { + "production": { + "1.1.0": [ { - "ADDRESS": "0xd596C903d78870786c5DB0E448ce7F87A65A0daD", + "ADDRESS": "0x86E5a407385364B86B3e502644EfFee1a43C9a7b", "OPTIMIZER_RUNS": "1000000", - "TIMESTAMP": "2024-06-28 14:20:50", - "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", + "TIMESTAMP": "2025-02-13 08:20:45", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0x86E5a407385364B86B3e502644EfFee1a43C9a7b", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:44:07", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f", + "SALT": "", + "VERIFIED": "true" + } + ] + } + } + }, + "GasRebateDistributor": { + "polygon": { + "staging": { + "1.0.0": [ + { + "ADDRESS": "0x3116B8F099D7eFA6e24f39F80146Aac423365EB9", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-03-25 09:50:38", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000029dacdf7ccadf4ee67c923b4c22255a4b2494ed7b1a3e69afbb24ad2239e09935fdec19313f8b4b914e9a0cb8d956dab28464f0b000000000000000000000000000000000000000000000000000000006600e5b70000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359", + "SALT": "", + "VERIFIED": "true" + } + ] + } + } + }, + "MayanFacet": { + "bsc": { + "staging": { + "1.0.0": [ + { + "ADDRESS": "0xd596C903d78870786c5DB0E448ce7F87A65A0daD", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-06-28 14:20:50", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000654874eb7f59c6f5b39931fc45dc45337c967c3", "SALT": "", "VERIFIED": "true" } @@ -24028,6 +24714,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x74FD5F9d0E816fA4134BAb0d348c3eF9E62CEe4A", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 10:26:01", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000000000000000000000000000000000000000000", + "SALT": "20250207", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x09d0AD68C55F44ea64A8B758c457ED63a3177b11", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:33", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000000000000000000000000000000000000000000", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x09d0AD68C55F44ea64A8B758c457ED63a3177b11", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:42:55", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000000000000000000000000000000000000000000", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "StargateFacetV2": { @@ -24460,6 +25188,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x2021C1900709E2bfa428908055E0a2A4cF818944", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 12:54:30", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000af5191b0de278c7286d6c7cc6ab6bb8a73ba2cd6", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x2f257730442765d7A489FaCaEA1bbC905eCBB701", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:13:40", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000af54be5b6eec24d6bfacf1cce4eaf680a8239398", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "gnosis": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xCB68AAcEb848E5007B56b1ff09D240CE8946B4EC", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 16:43:59", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000af368c91793cb22739386dfcbbb2f1a9e4bcbebf", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "ReceiverStargateV2": { @@ -24740,6 +25510,48 @@ } ] } + }, + "berachain": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0xbF80bE7F2A67BC036d2d8fFa7F9Fa8228af94eB2", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 12:57:06", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f000000000000000000000000f89cc8190c911db1afd1f3b1ee711179b6867a23000000000000000000000000af5191b0de278c7286d6c7cc6ab6bb8a73ba2cd60000000000000000000000006f475642a6e85809b1c36fa62763669b1b48dd5b00000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0x65B6093ff981113AC6efb5b77B2D74D96edF4593", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:47:17", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f000000000000000000000000ca847a739ba26238488cb85a2a28a4ad677716e1000000000000000000000000af54be5b6eec24d6bfacf1cce4eaf680a82393980000000000000000000000004bcb6a963a9563c33569d7a512d35754221f3a1900000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "gnosis": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0x0dC56076590CdF0efc37114273f02f45A96B5500", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 16:47:19", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f0000000000000000000000002dfadab8266483bed9fd9a292ce56596a2d1378d000000000000000000000000af368c91793cb22739386dfcbbb2f1a9e4bcbebf0000000000000000000000001a44076050125825900e736c501f859c50fe728c00000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "LiFiDEXAggregator": { @@ -25318,6 +26130,48 @@ } ] } + }, + "berachain": { + "production": { + "1.6.0": [ + { + "ADDRESS": "0x6295b30297C254108E0bF16C70D513d2043E3d45", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 12:14:05", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.6.0": [ + { + "ADDRESS": "0x9679d1f7D955C81827c6842b3119B911943958eE", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:19:00", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.6.0": [ + { + "ADDRESS": "0x9679d1f7D955C81827c6842b3119B911943958eE", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:41:53", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "EmergencyPauseFacet": { @@ -25900,6 +26754,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xFF25e3D1Ab54314087955E8Bc952201cF3BC5210", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 11:32:19", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xE48CA2A762503bc317C62f56B46D4270bA41835E", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 08:31:51", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "", + "VERIFIED": true + } + ] + } + }, + "soneium": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xE48CA2A762503bc317C62f56B46D4270bA41835E", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:07:16", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "AcrossFacetV3": { @@ -26246,6 +27142,34 @@ } ] } + }, + "soneium": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0xE6b06df46a7bde3973DBa0876d9fB319177abAe6", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:11:29", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000003bad7ad0728f9917d1bf08af5782dcbd516cdd960000000000000000000000004200000000000000000000000000000000000006", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0xE6b06df46a7bde3973DBa0876d9fB319177abAe6", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:06:03", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec640000000000000000000000004200000000000000000000000000000000000006", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "ReceiverAcrossV3": { @@ -26573,6 +27497,34 @@ } ] } + }, + "soneium": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0x03C0d38939752A266991f887d45c93e5a0181c9A", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:45:57", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f000000000000000000000000ca847a739ba26238488cb85a2a28a4ad677716e10000000000000000000000003bad7ad0728f9917d1bf08af5782dcbd516cdd9600000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0x03C0d38939752A266991f887d45c93e5a0181c9A", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 17:23:10", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f000000000000000000000000ca847a739ba26238488cb85a2a28a4ad677716e100000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec6400000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "AcrossFacetPackedV3": { @@ -26889,6 +27841,34 @@ } ] } + }, + "soneium": { + "production": { + "1.2.0": [ + { + "ADDRESS": "0xd28932aB46626CdB224Ff95BaA42ed1dc75712f0", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:09:24", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000003bad7ad0728f9917d1bf08af5782dcbd516cdd96000000000000000000000000420000000000000000000000000000000000000600000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.2.0": [ + { + "ADDRESS": "0xd28932aB46626CdB224Ff95BaA42ed1dc75712f0", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:33:54", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec64000000000000000000000000420000000000000000000000000000000000000600000000000000000000000011f1022ca6adef6400e5677528a80d49a069c00c", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "Permit2Proxy": { @@ -27069,6 +28049,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.2": [ + { + "ADDRESS": "0x6602DFf46cfFf22a24Ef3C4e68BAc2F4bcc83D0f", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 13:15:19", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000f909c4ae16622898b885b89d7f839e0244851c66000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000df61270fdc1a892874fd3c0143a0a4cba74f4ef1", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.2": [ + { + "ADDRESS": "0x4BDB8cb372AeF4047626869dD5580536DBA9b053", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:19:37", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000864b314d4c5a0399368609581d3e8933a63b9232000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000245b16cace8730b009c5352186dce7d73c3037a1", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.2": [ + { + "ADDRESS": "0x4BDB8cb372AeF4047626869dD5580536DBA9b053", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:42:40", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000864b314d4c5a0399368609581d3e8933a63b9232000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000428653b7537717ca9b81b453601436d576081af6", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "GasZipFacet": { @@ -27429,6 +28451,48 @@ } ] } + }, + "berachain": { + "production": { + "2.0.2": [ + { + "ADDRESS": "0x7B47250AAbDE56A6c927F2144ffd770D9F93D9d2", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-11 18:57:58", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000002a37d63eadfe4b4682a3c28c1c2cd4f109cc2762", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "2.0.2": [ + { + "ADDRESS": "0xBfc367eedaC8Ad5Bc80869760ce7a777cd8FE11C", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:14:39", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000002a37d63eadfe4b4682a3c28c1c2cd4f109cc2762", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "2.0.2": [ + { + "ADDRESS": "0x2B7D697018626E32c2E3252eCB47488A3a694166", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 18:28:07", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000002a37d63eadfe4b4682a3c28c1c2cd4f109cc2762", + "SALT": "1234", + "VERIFIED": "true" + } + ] + } } }, "GasZipPeriphery": { @@ -27779,6 +28843,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xe2Bd045c9C7c765D0920BB4e12D5B584eA682C29", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-11 19:01:29", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000002a37d63eadfe4b4682a3c28c1c2cd4f109cc27620000000000000000000000006295b30297c254108e0bf16c70d513d2043e3d45000000000000000000000000df61270fdc1a892874fd3c0143a0a4cba74f4ef1", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xf89901c677c9fb8D04BdE96e8aa6c6eAB5cA5Fd4", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:23:12", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000002a37d63eadfe4b4682a3c28c1c2cd4f109cc27620000000000000000000000009679d1f7d955c81827c6842b3119b911943958ee000000000000000000000000245b16cace8730b009c5352186dce7d73c3037a1", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x808151156cB5054418B689af97639CaeAF7712aC", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 18:29:09", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000002a37d63eadfe4b4682a3c28c1c2cd4f109cc27620000000000000000000000009679d1f7d955c81827c6842b3119b911943958ee000000000000000000000000428653b7537717ca9b81b453601436d576081af6", + "SALT": "1234", + "VERIFIED": "true" + } + ] + } } }, "RelayFacet": { @@ -28139,6 +29245,48 @@ } ] } + }, + "berachain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x2cA8aB6C4d344E3E1E97755C58c53e047ddcfda9", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-07 12:48:24", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000007f4babd2c7d35221e72ab67ea72cba99573a0089000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef", + "SALT": "2025020701", + "VERIFIED": "true" + } + ] + } + }, + "soneium": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x2010a7848E26D3B83038269953305075D65F7141", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-13 08:12:33", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000007f4babd2c7d35221e72ab67ea72cba99573a0089000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef", + "SALT": "", + "VERIFIED": "true" + } + ] + } + }, + "unichain": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x2010a7848E26D3B83038269953305075D65F7141", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2025-02-12 09:08:06", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000047eb64e17a6d2fd559b608695e6d308cced918dd000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "GetGasFacet": { diff --git a/deployments/berachain.diamond.json b/deployments/berachain.diamond.json new file mode 100644 index 000000000..f1dadf86d --- /dev/null +++ b/deployments/berachain.diamond.json @@ -0,0 +1,80 @@ +{ + "LiFiDiamond": { + "Facets": { + "0x53d3837f141655a62ddc6778aB8d9eE80b9e60FF": { + "Name": "DiamondCutFacet", + "Version": "1.0.0" + }, + "0x696d81Ff9FCa84aCA9Aba638CbB6Bf6904121000": { + "Name": "OwnershipFacet", + "Version": "1.0.0" + }, + "0xEb2d26137D826a97BDfc3b873C4d34ecc47797F8": { + "Name": "WithdrawFacet", + "Version": "1.0.0" + }, + "0xD0F9b85c78ee9260E96dA3D86095e1D82cf67D33": { + "Name": "DexManagerFacet", + "Version": "1.0.1" + }, + "0x446DfC584888e6Da7Bda3a608f89B041Efa09cD2": { + "Name": "AccessManagerFacet", + "Version": "1.0.0" + }, + "0xf3ca4ad4FC7405c24398b4c20A6A81D612f7039e": { + "Name": "PeripheryRegistryFacet", + "Version": "1.0.0" + }, + "0xf818b7bb46Cb22Be28e1efB932373Aa80955Be08": { + "Name": "GenericSwapFacet", + "Version": "1.0.0" + }, + "0x74FD5F9d0E816fA4134BAb0d348c3eF9E62CEe4A": { + "Name": "GenericSwapFacetV3", + "Version": "1.0.1" + }, + "0xbf6A78E2E457F377a281394f0d117F61300b14e7": { + "Name": "CalldataVerificationFacet", + "Version": "1.2.0" + }, + "0x95a05b09d2c84d8a37c03536A0BAd75876F8F8e9": { + "Name": "DiamondLoupeFacet", + "Version": "1.0.0" + }, + "0x4007305106042a12C42Fa9D1F1D74cbf00453688": { + "Name": "SymbiosisFacet", + "Version": "1.0.0" + }, + "0x2cA8aB6C4d344E3E1E97755C58c53e047ddcfda9": { + "Name": "RelayFacet", + "Version": "1.0.0" + }, + "0x2021C1900709E2bfa428908055E0a2A4cF818944": { + "Name": "StargateFacetV2", + "Version": "1.0.1" + }, + "0xf1e14782c422B7Bd52cEc083BACb8d32e07ED393": { + "Name": "EmergencyPauseFacet", + "Version": "1.0.1" + }, + "0x7B47250AAbDE56A6c927F2144ffd770D9F93D9d2": { + "Name": "GasZipFacet", + "Version": "2.0.2" + } + }, + "Periphery": { + "ERC20Proxy": "0x988764Fd9F705163c530388b42dD7181edA3F502", + "Executor": "0xf89Cc8190c911DB1AFd1f3B1ee711179b6867A23", + "FeeCollector": "0x070EC43b4222E0f17EEcD2C839cb9D1D5adeF73c", + "GasZipPeriphery": "0xe2Bd045c9C7c765D0920BB4e12D5B584eA682C29", + "LiFiDEXAggregator": "0x6295b30297C254108E0bF16C70D513d2043E3d45", + "LiFuelFeeCollector": "", + "Permit2Proxy": "0x6602DFf46cfFf22a24Ef3C4e68BAc2F4bcc83D0f", + "Receiver": "0xa0786bDbA37b48a25943386a122aC3443AB9695B", + "ReceiverAcrossV3": "", + "ReceiverStargateV2": "0xbF80bE7F2A67BC036d2d8fFa7F9Fa8228af94eB2", + "RelayerCelerIM": "", + "TokenWrapper": "0xbf7d441A5015d92357bB41DB2552E11619D62326" + } + } +} diff --git a/deployments/berachain.json b/deployments/berachain.json new file mode 100644 index 000000000..5fa85367f --- /dev/null +++ b/deployments/berachain.json @@ -0,0 +1,29 @@ +{ + "DiamondCutFacet": "0x53d3837f141655a62ddc6778aB8d9eE80b9e60FF", + "DiamondLoupeFacet": "0x95a05b09d2c84d8a37c03536A0BAd75876F8F8e9", + "OwnershipFacet": "0x696d81Ff9FCa84aCA9Aba638CbB6Bf6904121000", + "DexManagerFacet": "0xD0F9b85c78ee9260E96dA3D86095e1D82cf67D33", + "AccessManagerFacet": "0x446DfC584888e6Da7Bda3a608f89B041Efa09cD2", + "WithdrawFacet": "0xEb2d26137D826a97BDfc3b873C4d34ecc47797F8", + "PeripheryRegistryFacet": "0xf3ca4ad4FC7405c24398b4c20A6A81D612f7039e", + "GenericSwapFacet": "0xf818b7bb46Cb22Be28e1efB932373Aa80955Be08", + "GenericSwapFacetV3": "0x74FD5F9d0E816fA4134BAb0d348c3eF9E62CEe4A", + "CalldataVerificationFacet": "0xbf6A78E2E457F377a281394f0d117F61300b14e7", + "LiFiDiamond": "0xf909c4Ae16622898b885B89d7F839E0244851c66", + "EmergencyPauseFacet": "0xf1e14782c422B7Bd52cEc083BACb8d32e07ED393", + "ERC20Proxy": "0x988764Fd9F705163c530388b42dD7181edA3F502", + "Executor": "0xf89Cc8190c911DB1AFd1f3B1ee711179b6867A23", + "FeeCollector": "0x070EC43b4222E0f17EEcD2C839cb9D1D5adeF73c", + "Receiver": "0xa0786bDbA37b48a25943386a122aC3443AB9695B", + "TokenWrapper": "0xbf7d441A5015d92357bB41DB2552E11619D62326", + "LiFiDEXAggregator": "0x6295b30297C254108E0bF16C70D513d2043E3d45", + "RelayFacet": "0x2cA8aB6C4d344E3E1E97755C58c53e047ddcfda9", + "LIFuelFacet": "0x4d28ac993509C637F9EC37C7a6E14F9097F0a408", + "StandardizedCallFacet": "0xeAA6214121098d633677Da06f05c9EF1287d17dc", + "SymbiosisFacet": "0x4007305106042a12C42Fa9D1F1D74cbf00453688", + "StargateFacetV2": "0x2021C1900709E2bfa428908055E0a2A4cF818944", + "ReceiverStargateV2": "0xbF80bE7F2A67BC036d2d8fFa7F9Fa8228af94eB2", + "Permit2Proxy": "0x6602DFf46cfFf22a24Ef3C4e68BAc2F4bcc83D0f", + "GasZipFacet": "0x7B47250AAbDE56A6c927F2144ffd770D9F93D9d2", + "GasZipPeriphery": "0xe2Bd045c9C7c765D0920BB4e12D5B584eA682C29" +} diff --git a/deployments/gnosis.diamond.json b/deployments/gnosis.diamond.json index 85abda5a8..e7f10a9ec 100644 --- a/deployments/gnosis.diamond.json +++ b/deployments/gnosis.diamond.json @@ -77,9 +77,9 @@ "Name": "CalldataVerificationFacet", "Version": "1.1.1" }, - "0xF965f52046D7095d5080bD31459601F4Eb24f72D": { - "Name": "", - "Version": "" + "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803": { + "Name": "DeBridgeDlnFacet", + "Version": "1.0.0" }, "0xF18A285f4e6f720Eb9b4e05df71f88b9552E6ADB": { "Name": "AmarokFacetPacked", @@ -94,23 +94,35 @@ "Version": "1.0.0" }, "0xF5c923a087fb3c554579e2DD10AB6E37E0f6F849": { - "Name": "", - "Version": "" + "Name": "GasZipFacet", + "Version": "2.0.0" + }, + "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5": { + "Name": "RelayFacet", + "Version": "1.0.0" + }, + "0x5656E307E4dEd573695Dd3eAC64EC4778F910DcA": { + "Name": "SymbiosisFacet", + "Version": "1.0.0" + }, + "0xCB68AAcEb848E5007B56b1ff09D240CE8946B4EC": { + "Name": "StargateFacetV2", + "Version": "1.0.1" } }, "Periphery": { "ERC20Proxy": "0x5741A7FfE7c39Ca175546a54985fA79211290b51", "Executor": "0x2dfaDAB8266483beD9Fd9A292Ce56596a2D1378D", "FeeCollector": "0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9", + "GasZipPeriphery": "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "LiFiDEXAggregator": "0x6140b987d6B51Fd75b66C3B07733Beb5167c42fc", "LiFuelFeeCollector": "0xc02FFcdD914DbA646704439c6090BAbaD521d04C", "Permit2Proxy": "", "Receiver": "0x5439f8ca43f832DD21a28C5BF038dad4c07ad02c", "ReceiverAcrossV3": "", - "ReceiverStargateV2": "", + "ReceiverStargateV2": "0x0dC56076590CdF0efc37114273f02f45A96B5500", "RelayerCelerIM": "", - "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d", - "GasZipPeriphery": "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3" + "TokenWrapper": "0x5215E9fd223BC909083fbdB2860213873046e45d" } } -} \ No newline at end of file +} diff --git a/deployments/gnosis.json b/deployments/gnosis.json index e482d50c4..07a1941ed 100644 --- a/deployments/gnosis.json +++ b/deployments/gnosis.json @@ -35,5 +35,8 @@ "GasZipFacet": "0xF5c923a087fb3c554579e2DD10AB6E37E0f6F849", "GasZipPeriphery": "0x9a21E33F1a78b17DAd32010CeDB9Fd2F071C17d3", "RelayFacet": "0x424BDbbaEda89732443fb1B737b6Dc194a6Ddbd5", - "DeBridgeDlnFacet": "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803" -} \ No newline at end of file + "DeBridgeDlnFacet": "0x18C85B940c29ECC3c210Ea40a5B6d91F5aeE2803", + "SymbiosisFacet": "0x5656E307E4dEd573695Dd3eAC64EC4778F910DcA", + "StargateFacetV2": "0xCB68AAcEb848E5007B56b1ff09D240CE8946B4EC", + "ReceiverStargateV2": "0x0dC56076590CdF0efc37114273f02f45A96B5500" +} diff --git a/deployments/soneium.diamond.json b/deployments/soneium.diamond.json new file mode 100644 index 000000000..c6752d0f8 --- /dev/null +++ b/deployments/soneium.diamond.json @@ -0,0 +1,84 @@ +{ + "LiFiDiamond": { + "Facets": { + "0x2407c1598650f8CD4Aaa0c1a4BCcd12D4999a6E9": { + "Name": "DiamondCutFacet", + "Version": "1.0.0" + }, + "0x1E007BB710D4330109B4Cf4f3D4D8e25a8b54BEB": { + "Name": "DiamondLoupeFacet", + "Version": "1.0.0" + }, + "0x42e4Ef53e8d905A5D02CC12b8C60D27800F76121": { + "Name": "OwnershipFacet", + "Version": "1.0.0" + }, + "0xC20773bbD1c8Fb749E7DaE5236800A5Dd5F39ed8": { + "Name": "WithdrawFacet", + "Version": "1.0.0" + }, + "0x668442675e54Af64E6cD551CB1C061EF5f26C237": { + "Name": "DexManagerFacet", + "Version": "1.0.1" + }, + "0xcdEC3efD307BaC9dD88c7EdD962F7681C79eD90E": { + "Name": "AccessManagerFacet", + "Version": "1.0.0" + }, + "0x6adB9BBCaAbf760f401bdA7730Aa4F6C1eF65456": { + "Name": "PeripheryRegistryFacet", + "Version": "1.0.0" + }, + "0x85a52070bf96f96B6bD4e06Ec536991879058BDF": { + "Name": "GenericSwapFacet", + "Version": "1.0.0" + }, + "0x09d0AD68C55F44ea64A8B758c457ED63a3177b11": { + "Name": "GenericSwapFacetV3", + "Version": "1.0.1" + }, + "0x091EBD75fCD19286b082Ce27b955F01816Af16d2": { + "Name": "CalldataVerificationFacet", + "Version": "1.2.0" + }, + "0xE48CA2A762503bc317C62f56B46D4270bA41835E": { + "Name": "EmergencyPauseFacet", + "Version": "1.0.1" + }, + "0xd28932aB46626CdB224Ff95BaA42ed1dc75712f0": { + "Name": "AcrossFacetPackedV3", + "Version": "1.2.0" + }, + "0xE6b06df46a7bde3973DBa0876d9fB319177abAe6": { + "Name": "AcrossFacetV3", + "Version": "1.1.0" + }, + "0x2010a7848E26D3B83038269953305075D65F7141": { + "Name": "RelayFacet", + "Version": "1.0.0" + }, + "0x2f257730442765d7A489FaCaEA1bbC905eCBB701": { + "Name": "StargateFacetV2", + "Version": "1.0.1" + }, + "0xBfc367eedaC8Ad5Bc80869760ce7a777cd8FE11C": { + "Name": "GasZipFacet", + "Version": "2.0.2" + } + }, + "Periphery": { + "ERC20Proxy": "0xE16150617A4560925ef8e68E8efa3D68Bec3Bb7F", + "Executor": "0xCA847a739BA26238488cb85A2a28A4ad677716e1", + "FeeCollector": "0x8295805320853d6B28778fC8f5199327e62e3d87", + "GasZipPeriphery": "0xf89901c677c9fb8D04BdE96e8aa6c6eAB5cA5Fd4", + "LiFiDEXAggregator": "0x9679d1f7D955C81827c6842b3119B911943958eE", + "LiFuelFeeCollector": "", + "Permit2Proxy": "0x4BDB8cb372AeF4047626869dD5580536DBA9b053", + "Receiver": "0x614Fe86aF0b9740946A94a5Cb8f07C1Dc9d77eBC", + "ReceiverAcrossV3": "0x03C0d38939752A266991f887d45c93e5a0181c9A", + "ReceiverStargateV2": "0x65B6093ff981113AC6efb5b77B2D74D96edF4593", + "RelayerCelerIM": "", + "TokenWrapper": "0x86E5a407385364B86B3e502644EfFee1a43C9a7b" + } + } +} \ No newline at end of file diff --git a/deployments/soneium.json b/deployments/soneium.json new file mode 100644 index 000000000..11f131fc3 --- /dev/null +++ b/deployments/soneium.json @@ -0,0 +1,29 @@ +{ + "AccessManagerFacet": "0xcdEC3efD307BaC9dD88c7EdD962F7681C79eD90E", + "CalldataVerificationFacet": "0x091EBD75fCD19286b082Ce27b955F01816Af16d2", + "DexManagerFacet": "0x668442675e54Af64E6cD551CB1C061EF5f26C237", + "DiamondCutFacet": "0x2407c1598650f8CD4Aaa0c1a4BCcd12D4999a6E9", + "DiamondLoupeFacet": "0x1E007BB710D4330109B4Cf4f3D4D8e25a8b54BEB", + "EmergencyPauseFacet": "0xE48CA2A762503bc317C62f56B46D4270bA41835E", + "GenericSwapFacet": "0x85a52070bf96f96B6bD4e06Ec536991879058BDF", + "GenericSwapFacetV3": "0x09d0AD68C55F44ea64A8B758c457ED63a3177b11", + "OwnershipFacet": "0x42e4Ef53e8d905A5D02CC12b8C60D27800F76121", + "PeripheryRegistryFacet": "0x6adB9BBCaAbf760f401bdA7730Aa4F6C1eF65456", + "WithdrawFacet": "0xC20773bbD1c8Fb749E7DaE5236800A5Dd5F39ed8", + "LiFiDiamond": "0x864b314D4C5a0399368609581d3E8933a63b9232", + "AcrossFacetPackedV3": "0xd28932aB46626CdB224Ff95BaA42ed1dc75712f0", + "AcrossFacetV3": "0xE6b06df46a7bde3973DBa0876d9fB319177abAe6", + "RelayFacet": "0x2010a7848E26D3B83038269953305075D65F7141", + "StargateFacetV2": "0x2f257730442765d7A489FaCaEA1bbC905eCBB701", + "GasZipFacet": "0xBfc367eedaC8Ad5Bc80869760ce7a777cd8FE11C", + "ERC20Proxy": "0xE16150617A4560925ef8e68E8efa3D68Bec3Bb7F", + "Executor": "0xCA847a739BA26238488cb85A2a28A4ad677716e1", + "FeeCollector": "0x8295805320853d6B28778fC8f5199327e62e3d87", + "LiFiDEXAggregator": "0x9679d1f7D955C81827c6842b3119B911943958eE", + "Permit2Proxy": "0x4BDB8cb372AeF4047626869dD5580536DBA9b053", + "TokenWrapper": "0x86E5a407385364B86B3e502644EfFee1a43C9a7b", + "GasZipPeriphery": "0xf89901c677c9fb8D04BdE96e8aa6c6eAB5cA5Fd4", + "Receiver": "0x614Fe86aF0b9740946A94a5Cb8f07C1Dc9d77eBC", + "ReceiverAcrossV3": "0x03C0d38939752A266991f887d45c93e5a0181c9A", + "ReceiverStargateV2": "0x65B6093ff981113AC6efb5b77B2D74D96edF4593" +} \ No newline at end of file diff --git a/deployments/unichain.diamond.json b/deployments/unichain.diamond.json new file mode 100644 index 000000000..9ed35425d --- /dev/null +++ b/deployments/unichain.diamond.json @@ -0,0 +1,80 @@ +{ + "LiFiDiamond": { + "Facets": { + "0x2407c1598650f8CD4Aaa0c1a4BCcd12D4999a6E9": { + "Name": "DiamondCutFacet", + "Version": "1.0.0" + }, + "0x1E007BB710D4330109B4Cf4f3D4D8e25a8b54BEB": { + "Name": "DiamondLoupeFacet", + "Version": "1.0.0" + }, + "0x42e4Ef53e8d905A5D02CC12b8C60D27800F76121": { + "Name": "OwnershipFacet", + "Version": "1.0.0" + }, + "0xC20773bbD1c8Fb749E7DaE5236800A5Dd5F39ed8": { + "Name": "WithdrawFacet", + "Version": "1.0.0" + }, + "0x668442675e54Af64E6cD551CB1C061EF5f26C237": { + "Name": "DexManagerFacet", + "Version": "1.0.1" + }, + "0xcdEC3efD307BaC9dD88c7EdD962F7681C79eD90E": { + "Name": "AccessManagerFacet", + "Version": "1.0.0" + }, + "0x6adB9BBCaAbf760f401bdA7730Aa4F6C1eF65456": { + "Name": "PeripheryRegistryFacet", + "Version": "1.0.0" + }, + "0x85a52070bf96f96B6bD4e06Ec536991879058BDF": { + "Name": "GenericSwapFacet", + "Version": "1.0.0" + }, + "0x09d0AD68C55F44ea64A8B758c457ED63a3177b11": { + "Name": "GenericSwapFacetV3", + "Version": "1.0.1" + }, + "0x091EBD75fCD19286b082Ce27b955F01816Af16d2": { + "Name": "CalldataVerificationFacet", + "Version": "1.2.0" + }, + "0xE48CA2A762503bc317C62f56B46D4270bA41835E": { + "Name": "EmergencyPauseFacet", + "Version": "1.0.1" + }, + "0xE6b06df46a7bde3973DBa0876d9fB319177abAe6": { + "Name": "AcrossFacetV3", + "Version": "1.1.0" + }, + "0x2010a7848E26D3B83038269953305075D65F7141": { + "Name": "RelayFacet", + "Version": "1.0.0" + }, + "0xd28932aB46626CdB224Ff95BaA42ed1dc75712f0": { + "Name": "AcrossFacetPackedV3", + "Version": "1.2.0" + }, + "0x2B7D697018626E32c2E3252eCB47488A3a694166": { + "Name": "GasZipFacet", + "Version": "2.0.2" + } + }, + "Periphery": { + "ERC20Proxy": "0xE16150617A4560925ef8e68E8efa3D68Bec3Bb7F", + "Executor": "0xCA847a739BA26238488cb85A2a28A4ad677716e1", + "FeeCollector": "0x8295805320853d6B28778fC8f5199327e62e3d87", + "GasZipPeriphery": "0x808151156cB5054418B689af97639CaeAF7712aC", + "LiFiDEXAggregator": "0x9679d1f7D955C81827c6842b3119B911943958eE", + "LiFuelFeeCollector": "", + "Permit2Proxy": "0x4BDB8cb372AeF4047626869dD5580536DBA9b053", + "Receiver": "0x614Fe86aF0b9740946A94a5Cb8f07C1Dc9d77eBC", + "ReceiverAcrossV3": "0x03C0d38939752A266991f887d45c93e5a0181c9A", + "ReceiverStargateV2": "", + "RelayerCelerIM": "", + "TokenWrapper": "0x86E5a407385364B86B3e502644EfFee1a43C9a7b" + } + } +} diff --git a/deployments/unichain.json b/deployments/unichain.json new file mode 100644 index 000000000..a12433a83 --- /dev/null +++ b/deployments/unichain.json @@ -0,0 +1,27 @@ +{ + "AccessManagerFacet": "0xcdEC3efD307BaC9dD88c7EdD962F7681C79eD90E", + "CalldataVerificationFacet": "0x091EBD75fCD19286b082Ce27b955F01816Af16d2", + "DexManagerFacet": "0x668442675e54Af64E6cD551CB1C061EF5f26C237", + "DiamondCutFacet": "0x2407c1598650f8CD4Aaa0c1a4BCcd12D4999a6E9", + "DiamondLoupeFacet": "0x1E007BB710D4330109B4Cf4f3D4D8e25a8b54BEB", + "EmergencyPauseFacet": "0xE48CA2A762503bc317C62f56B46D4270bA41835E", + "GenericSwapFacet": "0x85a52070bf96f96B6bD4e06Ec536991879058BDF", + "GenericSwapFacetV3": "0x09d0AD68C55F44ea64A8B758c457ED63a3177b11", + "OwnershipFacet": "0x42e4Ef53e8d905A5D02CC12b8C60D27800F76121", + "PeripheryRegistryFacet": "0x6adB9BBCaAbf760f401bdA7730Aa4F6C1eF65456", + "WithdrawFacet": "0xC20773bbD1c8Fb749E7DaE5236800A5Dd5F39ed8", + "LiFiDiamond": "0x864b314D4C5a0399368609581d3E8933a63b9232", + "AcrossFacetV3": "0xE6b06df46a7bde3973DBa0876d9fB319177abAe6", + "AcrossFacetPackedV3": "0xd28932aB46626CdB224Ff95BaA42ed1dc75712f0", + "RelayFacet": "0x2010a7848E26D3B83038269953305075D65F7141", + "ERC20Proxy": "0xE16150617A4560925ef8e68E8efa3D68Bec3Bb7F", + "Executor": "0xCA847a739BA26238488cb85A2a28A4ad677716e1", + "FeeCollector": "0x8295805320853d6B28778fC8f5199327e62e3d87", + "LiFiDEXAggregator": "0x9679d1f7D955C81827c6842b3119B911943958eE", + "Permit2Proxy": "0x4BDB8cb372AeF4047626869dD5580536DBA9b053", + "Receiver": "0x614Fe86aF0b9740946A94a5Cb8f07C1Dc9d77eBC", + "TokenWrapper": "0x86E5a407385364B86B3e502644EfFee1a43C9a7b", + "ReceiverAcrossV3": "0x03C0d38939752A266991f887d45c93e5a0181c9A", + "GasZipFacet": "0x2B7D697018626E32c2E3252eCB47488A3a694166", + "GasZipPeriphery": "0x808151156cB5054418B689af97639CaeAF7712aC" +} diff --git a/foundry.toml b/foundry.toml index ba2d0ac2e..c25ae2378 100644 --- a/foundry.toml +++ b/foundry.toml @@ -30,6 +30,7 @@ arbitrum = "${ETH_NODE_URI_ARBITRUM}" aurora = "${ETH_NODE_URI_AURORA}" avalanche = "${ETH_NODE_URI_AVALANCHE}" base = "${ETH_NODE_URI_BASE}" +berachain = "${ETH_NODE_URI_BERACHAIN}" blast = "${ETH_NODE_URI_BLAST}" boba = "${ETH_NODE_URI_BOBA}" bsc = "${ETH_NODE_URI_BSC}" @@ -59,9 +60,11 @@ polygon = "${ETH_NODE_URI_POLYGON}" polygonzkevm = "${ETH_NODE_URI_POLYGONZKEVM}" rootstock = "${ETH_NODE_URI_ROOTSTOCK}" sei = "${ETH_NODE_URI_SEI}" +soneium = "${ETH_NODE_URI_SONEIUM}" sonic = "${ETH_NODE_URI_SONIC}" taiko = "${ETH_NODE_URI_TAIKO}" velas = "${ETH_NODE_URI_VELAS}" +unichain = "${ETH_NODE_URI_UNICHAIN}" worldchain = "${ETH_NODE_URI_WORLDCHAIN}" xlayer = "${ETH_NODE_URI_XLAYER}" zksync = "${ETH_NODE_URI_ZKSYNC}" @@ -79,6 +82,7 @@ arbitrum = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan. aurora = { key = "${AURORA_ETHERSCAN_API_KEY}", url = "https://explorer.mainnet.aurora.dev/api", chain = "1313161554", verifier = "blockscout" } avalanche = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=43114", chain = "43114" } base = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=8453", chain = "8453" } +berachain = { key = "${BERACHAIN_ETHERSCAN_API_KEY}", url = "https://api.berascan.com", chain = "80094" } blast = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=81457", chain = "81457" } boba = { key = "${BOBA_ETHERSCAN_API_KEY}", url = "https://api.bobascan.com/api", chain = "288" } bsc = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=56", chain = "56" } @@ -104,8 +108,10 @@ polygon = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.i polygonzkevm = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=1101", chain = "1101" } rootstock= { key = "${ROOTSTOCK_ETHERSCAN_API_KEY}", url = "https://rootstock.blockscout.com/api", chain = "30", verifier = "blockscout" } scroll = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=534352", chain = "534352" } +soneium = { key = "${SONEIUM_ETHERSCAN_API_KEY}", url = "https://soneium.blockscout.com/api", verifier = "blockscout", chain = "1868" } sonic = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=146", chain = "146" } sei = { key = "${SEI_ETHERSCAN_API_KEY}", url = "https://seitrace.com/pacific-1/api", chain = "1329" } taiko = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=167000", chain = "167000" } +unichain = { key = "${UNICHAIN_ETHERSCAN_API_KEY}", url = "https://unichain.blockscout.com/api?", chain = "130" , verifier = "blockscout" } worldchain = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=480", chain = "480" } xlayer = { key = "${XLAYER_ETHERSCAN_API_KEY}", url = "https://www.oklink.com/api/v5/explorer/xlayer/api", chain = "196" } diff --git a/networks b/networks index 7823ce249..4850f358c 100644 --- a/networks +++ b/networks @@ -5,6 +5,7 @@ apechain aurora avalanche base +berachain blast boba bsc @@ -31,8 +32,10 @@ polygonzkevm rootstock scroll sei +soneium sonic taiko +unichain worldchain xlayer zksync diff --git a/package.json b/package.json index 01224a640..102b5ad3d 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "engines": { "node": ">= 12.18.0" }, - "type":"module", + "type": "module", "repository": "github:lifinance/contracts", "author": "LI.FI", "license": "MIT", @@ -42,7 +42,7 @@ "prettier-plugin-solidity": "^1.0.0-beta.19", "solhint": "^3.3.7", "solhint-plugin-prettier": "^0.0.5", - "solidity-coverage": "^0.7.20", + "solidity-coverage": "^0.8.14", "ts-generator": "^0.1.1", "ts-node": "^10.7.0", "typechain": "^8.0.0", @@ -50,7 +50,8 @@ "zksync-web3": "^0.14.3" }, "resolutions": { - "hardhat/**/@ethereumjs/tx": "3.5.0" + "hardhat/**/@ethereumjs/tx": "3.5.0", + "web3": "4.16.0" }, "scripts": { "preinstall": "bash preinstall.sh", diff --git a/preinstall.sh b/preinstall.sh index 4e4f2d598..aec55883e 100644 --- a/preinstall.sh +++ b/preinstall.sh @@ -37,7 +37,7 @@ install_package_mac() { OS=$(uname -s) # List of required packages -REQUIRED_PACKAGES=("jq" "bc") +REQUIRED_PACKAGES=("jq" "bc" "gum") for PACKAGE in "${REQUIRED_PACKAGES[@]}"; do if ! command -v "$PACKAGE" &> /dev/null; then diff --git a/script/config.example.sh b/script/config.example.sh index 48f9c5054..b9bebe886 100644 --- a/script/config.example.sh +++ b/script/config.example.sh @@ -67,15 +67,15 @@ DO_NOT_VERIFY_IN_THESE_NETWORKS="gnosis,testNetwork,aurora,localanvil" # the path to the file that contains a list of all networks NETWORKS_FILE_PATH="./networks" +# the path to the file that contains a list of all networks +GLOBAL_FILE_PATH="$(dirname "$0")/../config/global.json" + # script will use all periphery contracts by default, unless excluded here (must match exact filename without .sol, comma-separated without space) EXCLUDE_PERIPHERY_CONTRACTS="" # scripts will use all facet contracts by default, unless excluded here (must match exact filename without .sol, comma-separated without space) EXCLUDE_FACET_CONTRACTS="" -# contains a list of all facets that are considered core facets (and will be deployed to every network) -CORE_FACETS="DiamondCutFacet,DiamondLoupeFacet,OwnershipFacet,DexManagerFacet,AccessManagerFacet,WithdrawFacet,PeripheryRegistryFacet,LIFuelFacet,GenericSwapFacet,StandardizedCallFacet,CalldataVerificationFacet" - # enable/disable notification sounds for long-running scripts NOTIFICATION_SOUNDS=true @@ -103,3 +103,6 @@ WHITELIST_PERIPHERY="FeeCollector,LiFuelFeeCollector,TokenWrapper,LiFiDEXAggrega # if this flag is set to false, the scriptMaster will not compile on start (helpful for zksync/abstract to avoid constant recompilations) COMPILE_ON_STARTUP=false + +# if this flag is set to true, diamondCut and registerPeriphery tx will not be proposed to SAFE but executed directly +DEPLOY_NEW_NETWORK_MODE=true diff --git a/script/deploy/_targetState.json b/script/deploy/_targetState.json index 1d0ccaa35..915fbd2d4 100644 --- a/script/deploy/_targetState.json +++ b/script/deploy/_targetState.json @@ -2,28 +2,25 @@ "mainnet": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", "GasZipPeriphery": "1.0.1", "AcrossFacet": "2.0.0", "AcrossFacetPacked": "1.0.0", @@ -48,6 +45,7 @@ "OmniBridgeFacet": "1.0.0", "OptimismBridgeFacet": "1.0.0", "PolygonBridgeFacet": "1.0.0", + "RelayFacet": "1.0.0", "SquidFacet": "1.0.0", "StargateFacet": "2.2.0", "StargateFacetV2": "1.0.1", @@ -57,31 +55,59 @@ } } }, - "polygon": { + "abstract": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", + "GenericSwapFacet": "1.0.0", + "GenericSwapFacetV3": "1.0.1", "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", + "LiFiDiamond": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "GasZipFacet": "2.0.2", + "RelayFacet": "1.0.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.1.0", + "SymbiosisFacet": "1.0.0" + } + } + }, + "arbitrum": { + "production": { + "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", + "DiamondCutFacet": "1.0.0", + "DiamondLoupeFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", "GasZipPeriphery": "1.0.1", "AcrossFacet": "2.0.0", "AcrossFacetPacked": "1.0.0", @@ -101,6 +127,7 @@ "HopFacetPacked": "1.0.6", "HopFacetOptimized": "2.0.0", "MayanFacet": "1.0.0", + "RelayFacet": "1.0.0", "SquidFacet": "1.0.0", "StargateFacet": "2.2.0", "StargateFacetV2": "1.0.1", @@ -109,118 +136,67 @@ } } }, - "bsc": { - "staging": { + "aurora": { + "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.1", - "StandardizedCallFacet": "1.1.0", - "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "AllBridgeFacet": "2.0.0", - "AmarokFacet": "3.0.0", - "AmarokFacetPacked": "1.0.0", - "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0", - "HyphenFacet": "1.0.0", - "MayanFacet": "1.0.0", - "SquidFacet": "1.0.0", - "StargateFacet": "2.2.0", - "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", - "SymbiosisFacet": "1.0.0", - "ThorSwapFacet": "1.2.0", - "GasZipPeriphery": "1.0.0" - }, - "LiFiDiamondImmutable": { - "DiamondCutFacet": "1.0.0", - "DiamondLoupeFacet": "1.0.0", "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", "PeripheryRegistryFacet": "1.0.0", - "GenericSwapFacet": "1.0.0", - "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.1", - "StandardizedCallFacet": "1.1.0", - "LiFiDiamondImmutable": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "AllBridgeFacet": "2.0.0", - "AmarokFacet": "3.0.0", - "AmarokFacetPacked": "1.0.0", + "WithdrawFacet": "1.0.0", + "LiFiDiamond": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", "RelayerCelerIM": "2.0.0", - "CelerIMFacetImmutable": "2.0.0", - "HyphenFacet": "1.0.0", - "MayanFacet": "1.0.0", - "SquidFacet": "1.0.0", - "StargateFacet": "2.2.0", + "CelerIMFacetMutable": "2.0.0", "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", - "SymbiosisFacet": "1.0.0", - "ThorSwapFacet": "1.2.0" + "ReceiverStargateV2": "1.0.0" } - }, + } + }, + "avalanche": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", "GasZipPeriphery": "1.0.1", "AllBridgeFacet": "2.0.0", - "AmarokFacet": "3.0.0", - "AmarokFacetPacked": "1.0.0", "CBridgeFacet": "1.0.0", "CBridgeFacetPacked": "1.0.3", + "CelerCircleBridgeFacet": "1.0.1", "RelayerCelerIM": "2.0.0", "CelerIMFacetMutable": "2.0.0", "GasZipFacet": "2.0.2", "MayanFacet": "1.0.0", + "RelayFacet": "1.0.0", "SquidFacet": "1.0.0", "StargateFacet": "2.2.0", "StargateFacetV2": "1.0.1", @@ -230,146 +206,56 @@ } } }, - "gnosis": { + "apechain": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", - "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "GasZipPeriphery": "1.0.1", - "AmarokFacet": "3.0.0", - "AmarokFacetPacked": "1.0.0", - "CBridgeFacet": "1.0.0", - "GasZipFacet": "2.0.2", - "HopFacet": "2.0.0", - "HopFacetPacked": "1.0.6", - "HopFacetOptimized": "2.0.0", - "OmniBridgeFacet": "1.0.0" - } - } - }, - "fantom": { - "production": { - "LiFiDiamond": { - "DiamondCutFacet": "1.0.0", - "DiamondLoupeFacet": "1.0.0", "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", "PeripheryRegistryFacet": "1.0.0", - "GenericSwapFacet": "1.0.0", - "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", "GasZipPeriphery": "1.0.1", - "CBridgeFacet": "1.0.0", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0", "GasZipFacet": "2.0.2", - "SquidFacet": "1.0.0", - "StargateFacet": "2.2.0" + "RelayFacet": "1.0.0" } } }, - "okx": {}, - "avalanche": { + "base": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", - "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", - "GasZipPeriphery": "1.0.1", - "AllBridgeFacet": "2.0.0", - "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", - "CelerCircleBridgeFacet": "1.0.1", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0", - "GasZipFacet": "2.0.2", - "MayanFacet": "1.0.0", - "SquidFacet": "1.0.0", - "StargateFacet": "2.2.0", - "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", - "SymbiosisFacet": "1.0.0", - "ThorSwapFacet": "1.2.0" - } - } - }, - "arbitrum": { - "production": { - "LiFiDiamond": { - "DiamondCutFacet": "1.0.0", - "DiamondLoupeFacet": "1.0.0", "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", "PeripheryRegistryFacet": "1.0.0", - "GenericSwapFacet": "1.0.0", - "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", - "GasZipPeriphery": "1.0.1", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", "AcrossFacet": "2.0.0", "AcrossFacetPacked": "1.0.0", "AcrossFacetV3": "1.0.0", @@ -377,1244 +263,1118 @@ "ReceiverAcrossV3": "1.0.0", "AllBridgeFacet": "2.0.0", "AmarokFacet": "3.0.0", - "AmarokFacetPacked": "1.0.0", "CBridgeFacet": "1.0.0", "CBridgeFacetPacked": "1.0.3", "CelerCircleBridgeFacet": "1.0.1", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0", - "GasZipFacet": "2.0.2", "HopFacet": "2.0.0", "HopFacetPacked": "1.0.6", "HopFacetOptimized": "2.0.0", - "MayanFacet": "1.0.0", - "SquidFacet": "1.0.0", + "RelayFacet": "1.0.0", "StargateFacet": "2.2.0", "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", + "ReceiverStargateV2": "1.1.0", "SymbiosisFacet": "1.0.0" } } }, - "optimism": { + "berachain": { "production": { "LiFiDiamond": { - "DiamondCutFacet": "1.0.0", - "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", + "DiamondCutFacet": "1.0.0", + "DiamondLoupeFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", "GasZipPeriphery": "1.0.1", - "AcrossFacet": "2.0.0", - "AcrossFacetPacked": "1.0.0", - "AcrossFacetV3": "1.0.0", - "AcrossFacetPackedV3": "1.0.0", - "ReceiverAcrossV3": "1.0.0", - "AllBridgeFacet": "2.0.0", - "AmarokFacet": "3.0.0", - "AmarokFacetPacked": "1.0.0", - "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", - "CelerCircleBridgeFacet": "1.0.1", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0", "GasZipFacet": "2.0.2", - "HopFacet": "2.0.0", - "HopFacetPacked": "1.0.6", - "HopFacetOptimized": "2.0.0", - "StargateFacet": "2.2.0", + "RelayFacet": "1.0.0", "StargateFacetV2": "1.0.1", "ReceiverStargateV2": "1.0.0", "SymbiosisFacet": "1.0.0" } } }, - "moonriver": { + "blast": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "AcrossFacet": "2.0.0", + "AcrossFacetPacked": "1.0.0", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", "CBridgeFacet": "1.0.0", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0" + "CBridgeFacetPacked": "1.0.3", + "GasZipFacet": "2.0.2", + "RelayFacet": "1.0.0", + "SquidFacet": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "moonbeam": { + "boba": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "CBridgeFacet": "1.0.0", - "SquidFacet": "1.0.0" + "RelayFacet": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "fuse": { + "bsc": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", - "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.1.0" - } - } - }, - "velas": {}, - "harmony": {}, - "evmos": {}, - "aurora": { - "production": { - "LiFiDiamond": { - "DiamondCutFacet": "1.0.0", - "DiamondLoupeFacet": "1.0.0", "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", "PeripheryRegistryFacet": "1.0.0", - "GenericSwapFacet": "1.0.0", - "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "AllBridgeFacet": "2.0.0", + "AmarokFacet": "3.0.0", + "AmarokFacetPacked": "1.0.0", "CBridgeFacet": "1.0.0", + "CBridgeFacetPacked": "1.0.3", "RelayerCelerIM": "2.0.0", "CelerIMFacetMutable": "2.0.0", + "GasZipFacet": "2.0.2", + "MayanFacet": "1.0.0", + "RelayFacet": "1.0.0", + "SquidFacet": "1.0.0", + "StargateFacet": "2.2.0", "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0" + "ReceiverStargateV2": "1.0.0", + "SymbiosisFacet": "1.0.0", + "ThorSwapFacet": "1.2.0" } } }, - "boba": { + "celo": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", - "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "CBridgeFacet": "1.0.0", - "SymbiosisFacet": "1.0.0" - } - } - }, - "arbitrumnova": {}, - "zksync": { - "production": { - "LiFiDiamond": { - "DiamondCutFacet": "1.0.0", - "DiamondLoupeFacet": "1.0.0", "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", "PeripheryRegistryFacet": "1.0.0", - "GenericSwapFacet": "1.0.0", - "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", - "GasZipPeriphery": "1.0.1", - "AcrossFacet": "2.0.0", - "AcrossFacetPacked": "1.0.0", - "AcrossFacetV3": "1.0.0", - "AcrossFacetPackedV3": "1.0.0", - "ReceiverAcrossV3": "1.0.0", - "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", - "CelerIMFacetMutable": "2.0.0", - "GasZipFacet": "2.0.2", - "SymbiosisFacet": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "AllBridgeFacet": "2.0.0", + "SquidFacet": "1.0.0" } } }, - "polygonzkevm": { + "cronos": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "CBridgeFacet": "1.0.0", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0", - "HopFacet": "2.0.0", - "HopFacetPacked": "1.0.6", - "SymbiosisFacet": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0" } } }, - "linea": { + "fantom": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", - "ReceiverAcrossV3": "1.0.0", - "AmarokFacet": "3.0.0", "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", + "RelayerCelerIM": "2.0.0", + "CelerIMFacetMutable": "2.0.0", "GasZipFacet": "2.0.2", - "HopFacet": "2.0.0", - "HopFacetPacked": "1.0.6", - "HopFacetOptimized": "2.0.0", - "StargateFacet": "2.2.0", - "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", - "SymbiosisFacet": "1.0.0" + "SquidFacet": "1.0.0", + "StargateFacet": "2.2.0" } } }, - "base": { + "fraxtal": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", - "AcrossFacet": "2.0.0", - "AcrossFacetPacked": "1.0.0", - "AcrossFacetV3": "1.0.0", - "AcrossFacetPackedV3": "1.0.0", - "ReceiverAcrossV3": "1.0.0", - "AllBridgeFacet": "2.0.0", - "AmarokFacet": "3.0.0", - "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", - "CelerCircleBridgeFacet": "1.0.1", - "HopFacet": "2.0.0", - "HopFacetPacked": "1.0.6", - "HopFacetOptimized": "2.0.0", - "StargateFacet": "2.2.0", - "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "SquidFacet": "1.0.0", "SymbiosisFacet": "1.0.0" } } }, - "opbnb": { + "fuse": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.1.0" } } }, - "metis": { + "gnosis": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", "AmarokFacet": "3.0.0", + "AmarokFacetPacked": "1.0.0", + "CBridgeFacet": "1.0.0", "GasZipFacet": "2.0.2", - "StargateFacet": "2.2.0", + "HopFacet": "2.0.0", + "HopFacetPacked": "1.0.6", + "HopFacetOptimized": "2.0.0", + "OmniBridgeFacet": "1.0.0", "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", + "ReceiverStargateV2": "1.1.0", "SymbiosisFacet": "1.0.0" } } }, - "scroll": { + "gravity": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", - "AcrossFacet": "2.0.0", - "AcrossFacetPacked": "1.0.0", - "AcrossFacetV3": "1.0.0", - "AcrossFacetPackedV3": "1.0.0", - "ReceiverAcrossV3": "1.0.0", "CBridgeFacet": "1.0.0", "CBridgeFacetPacked": "1.0.3", + "RelayerCelerIM": "2.0.0", "GasZipFacet": "2.0.2", - "StargateFacet": "2.2.0", + "RelayFacet": "1.0.0", "StargateFacetV2": "1.0.1", "ReceiverStargateV2": "1.0.0", "SymbiosisFacet": "1.0.0" } } }, - "mode": { + "immutablezkevm": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "GasZipPeriphery": "1.0.1", - "AcrossFacet": "2.0.0", - "AcrossFacetPacked": "1.0.0", - "AcrossFacetV3": "1.0.0", - "AcrossFacetPackedV3": "1.0.0", - "ReceiverAcrossV3": "1.0.0", - "AmarokFacet": "3.0.0", - "GasZipFacet": "2.0.2", - "SymbiosisFacet": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0" } } }, - "mantle": { + "ink": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "SquidFacet": "1.0.0", - "StargateFacet": "2.2.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "AcrossFacetV3": "1.1.0", + "AcrossFacetPackedV3": "1.2.0", + "ReceiverAcrossV3": "1.1.0", + "GasZipFacet": "2.0.2", + "RelayFacet": "1.0.0", "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", - "SymbiosisFacet": "1.0.0" + "ReceiverStargateV2": "1.1.0" } } }, - "celo": { + "kaia": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", - "AllBridgeFacet": "2.0.0", - "SquidFacet": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "CBridgeFacet": "1.0.0", + "CBridgeFacetPacked": "1.0.3", + "RelayerCelerIM": "2.0.0", + "CelerIMFacetMutable": "2.0.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.0.0" } } }, - "blast": { + "linea": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", - "AcrossFacet": "2.0.0", - "AcrossFacetPacked": "1.0.0", - "AcrossFacetV3": "1.0.0", - "AcrossFacetPackedV3": "1.0.0", "ReceiverAcrossV3": "1.0.0", + "AmarokFacet": "3.0.0", "CBridgeFacet": "1.0.0", "CBridgeFacetPacked": "1.0.3", "GasZipFacet": "2.0.2", - "SquidFacet": "1.0.0", + "HopFacet": "2.0.0", + "HopFacetPacked": "1.0.6", + "HopFacetOptimized": "2.0.0", + "RelayFacet": "1.0.0", + "StargateFacet": "2.2.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.0.0", "SymbiosisFacet": "1.0.0" } } }, - "rootstock": { + "lisk": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.1.0", - "SymbiosisFacet": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "GasZipPeriphery": "1.0.1", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", + "GasZipFacet": "2.0.2" } } }, - "sei": { + "mantle": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "SquidFacet": "1.0.0", + "StargateFacet": "2.2.0", "StargateFacetV2": "1.0.1", "ReceiverStargateV2": "1.0.0", "SymbiosisFacet": "1.0.0" } } }, - "taiko": { + "metis": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", + "AmarokFacet": "3.0.0", "GasZipFacet": "2.0.2", + "StargateFacet": "2.2.0", "StargateFacetV2": "1.0.1", "ReceiverStargateV2": "1.0.0", "SymbiosisFacet": "1.0.0" } } }, - "gravity": { + "mode": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", - "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", - "RelayerCelerIM": "2.0.0", + "AcrossFacet": "2.0.0", + "AcrossFacetPacked": "1.0.0", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", + "AmarokFacet": "3.0.0", "GasZipFacet": "2.0.2", - "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0", + "RelayFacet": "1.0.0", "SymbiosisFacet": "1.0.0" } } }, - "immutablezkevm": { + "moonbeam": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "CBridgeFacet": "1.0.0", "SquidFacet": "1.0.0" } } }, - "bsc-testnet": { + "moonriver": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "CBridgeFacet": "1.0.0", "RelayerCelerIM": "2.0.0", "CelerIMFacetMutable": "2.0.0" } } }, - "sepolia": { + "optimism": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "AcrossFacet": "2.0.0", + "AcrossFacetPacked": "1.0.0", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", + "AllBridgeFacet": "2.0.0", + "AmarokFacet": "3.0.0", + "AmarokFacetPacked": "1.0.0", + "CBridgeFacet": "1.0.0", + "CBridgeFacetPacked": "1.0.3", + "CelerCircleBridgeFacet": "1.0.1", + "RelayerCelerIM": "2.0.0", + "CelerIMFacetMutable": "2.0.0", + "GasZipFacet": "2.0.2", + "HopFacet": "2.0.0", + "HopFacetPacked": "1.0.6", + "HopFacetOptimized": "2.0.0", + "RelayFacet": "1.0.0", + "StargateFacet": "2.2.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "mumbai": { + "opbnb": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0" } } }, - "lineatest": { + "polygon": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "AcrossFacet": "2.0.0", + "AcrossFacetPacked": "1.0.0", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", + "AllBridgeFacet": "2.0.0", + "AmarokFacet": "3.0.0", + "AmarokFacetPacked": "1.0.0", + "CBridgeFacet": "1.0.0", + "CBridgeFacetPacked": "1.0.3", + "CelerCircleBridgeFacet": "1.0.1", "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0" + "CelerIMFacetMutable": "2.0.0", + "GasZipFacet": "2.0.2", + "HopFacet": "2.0.0", + "HopFacetPacked": "1.0.6", + "HopFacetOptimized": "2.0.0", + "MayanFacet": "1.0.0", + "RelayFacet": "1.0.0", + "SquidFacet": "1.0.0", + "StargateFacet": "2.2.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "zksync-testnet": { + "polygonzkevm": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "CBridgeFacet": "1.0.0", + "RelayerCelerIM": "2.0.0", + "CelerIMFacetMutable": "2.0.0", + "HopFacet": "2.0.0", + "HopFacetPacked": "1.0.6", + "RelayFacet": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "kaia": { + "rootstock": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "CBridgeFacet": "1.0.0", - "CBridgeFacetPacked": "1.0.3", - "RelayerCelerIM": "2.0.0", - "CelerIMFacetMutable": "2.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.0.0" + "ReceiverStargateV2": "1.1.0", + "SymbiosisFacet": "1.0.0" } } }, - "xlayer": { + "scroll": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", + "AcrossFacet": "2.0.0", + "AcrossFacetPacked": "1.0.0", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", "CBridgeFacet": "1.0.0", "CBridgeFacetPacked": "1.0.3", - "GasZipFacet": "2.0.2" + "GasZipFacet": "2.0.2", + "RelayFacet": "1.0.0", + "StargateFacet": "2.2.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "beratest": { + "sei": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", - "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "LiFiDEXAggregator": "1.0.0" - } - } - }, - "cronos": { - "production": { - "LiFiDiamond": { - "DiamondCutFacet": "1.0.0", - "DiamondLoupeFacet": "1.0.0", "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", "PeripheryRegistryFacet": "1.0.0", - "GenericSwapFacet": "1.0.0", - "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "SquidFacet": "1.0.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "worldchain": { + "soneium": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", "GasZipPeriphery": "1.0.1", "AcrossFacetV3": "1.0.0", "AcrossFacetPackedV3": "1.0.0", "ReceiverAcrossV3": "1.0.0", - "GasZipFacet": "2.0.2" + "GasZipFacet": "2.0.2", + "RelayFacet": "1.0.0", + "StargateFacetV2": "1.0.1", + "ReceiverStargateV2": "1.0.0" } } }, - "lisk": { + "sonic": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", - "AcrossFacetV3": "1.0.0", - "AcrossFacetPackedV3": "1.0.0", - "ReceiverAcrossV3": "1.0.0", - "GasZipFacet": "2.0.2" + "GasZipFacet": "2.0.2", + "SymbiosisFacet": "1.0.0" } } }, - "abstract": { + "taiko": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.2", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "GasZipPeriphery": "1.0.1", "GasZipFacet": "2.0.2", "StargateFacetV2": "1.0.1", - "ReceiverStargateV2": "1.1.0" + "ReceiverStargateV2": "1.0.0", + "SymbiosisFacet": "1.0.0" } } }, - "fraxtal": { + "unichain": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "SquidFacet": "1.0.0", - "SymbiosisFacet": "1.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", + "RelayFacet": "1.0.0" } } }, - "apechain": { + "worldchain": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.0.0", - "Permit2Proxy": "1.0.2", + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", - "GasZipFacet": "2.0.2" + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", + "GasZipFacet": "2.0.2", + "RelayFacet": "1.0.0" } } }, - "sonic": { + "xlayer": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.2.0", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", "ERC20Proxy": "1.1.0", "Executor": "2.1.0", "FeeCollector": "1.0.1", "Receiver": "2.1.0", - "LiFuelFeeCollector": "1.0.2", "TokenWrapper": "1.1.0", "LiFiDEXAggregator": "1.6.0", "GasZipPeriphery": "1.0.1", + "CBridgeFacet": "1.0.0", + "CBridgeFacetPacked": "1.0.3", "GasZipFacet": "2.0.2" } } }, - "sonic": { + "zksync": { "production": { "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.2.0", + "DexManagerFacet": "1.0.1", "DiamondCutFacet": "1.0.0", "DiamondLoupeFacet": "1.0.0", - "OwnershipFacet": "1.0.0", - "DexManagerFacet": "1.0.1", - "AccessManagerFacet": "1.0.0", - "WithdrawFacet": "1.0.0", - "PeripheryRegistryFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", "GenericSwapFacet": "1.0.0", "GenericSwapFacetV3": "1.0.1", - "LIFuelFacet": "1.0.1", - "CalldataVerificationFacet": "1.1.2", - "StandardizedCallFacet": "1.1.0", - "EmergencyPauseFacet": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "WithdrawFacet": "1.0.0", "LiFiDiamond": "1.0.0", - "ERC20Proxy": "1.0.0", - "Executor": "2.0.0", - "FeeCollector": "1.0.0", - "Receiver": "2.0.2", - "LiFuelFeeCollector": "1.0.1", - "TokenWrapper": "1.0.0", - "LiFiDEXAggregator": "1.5.0", - "GasZipPeriphery": "1.0.0", - "GasZipFacet": "2.0.0" + "ERC20Proxy": "1.1.0", + "Executor": "2.1.0", + "FeeCollector": "1.0.1", + "Receiver": "2.1.0", + "TokenWrapper": "1.1.0", + "LiFiDEXAggregator": "1.6.0", + "Permit2Proxy": "1.0.2", + "GasZipPeriphery": "1.0.1", + "AcrossFacet": "2.0.0", + "AcrossFacetPacked": "1.0.0", + "AcrossFacetV3": "1.0.0", + "AcrossFacetPackedV3": "1.0.0", + "ReceiverAcrossV3": "1.0.0", + "CBridgeFacet": "1.0.0", + "CBridgeFacetPacked": "1.0.3", + "CelerIMFacetMutable": "2.0.0", + "GasZipFacet": "2.0.2", + "RelayFacet": "1.0.0", + "SymbiosisFacet": "1.0.0" } } } diff --git a/script/deploy/deployAllContracts.sh b/script/deploy/deployAllContracts.sh index c81f40113..65afad918 100755 --- a/script/deploy/deployAllContracts.sh +++ b/script/deploy/deployAllContracts.sh @@ -9,6 +9,7 @@ deployAllContracts() { source script/deploy/deployPeripheryContracts.sh source script/deploy/deployCoreFacets.sh source script/tasks/diamondUpdateFacet.sh + source script/tasks/updateERC20Proxy.sh source script/tasks/diamondSyncDEXs.sh source script/tasks/diamondSyncSigs.sh source script/deploy/deployFacetAndAddToDiamond.sh @@ -83,7 +84,10 @@ deployAllContracts() { local FACETS_PATH="$CONTRACT_DIRECTORY""Facets/" # prepare regExp to exclude core facets - local EXCLUDED_FACETS_REGEXP="^($(echo "$CORE_FACETS" | tr ',' '|'))$" + CORE_FACETS_OUTPUT=$(getCoreFacetsArray) + checkFailure $? "retrieve core facets array from global.json" + + local EXCLUDED_FACETS_REGEXP="^($(echo "$CORE_FACETS_OUTPUT" | xargs | tr ' ' '|'))$" # loop through facet contract names for FACET_NAME in $(getContractNamesInFolder "$FACETS_PATH"); do @@ -119,6 +123,10 @@ deployAllContracts() { echo "" diamondSyncSigs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME" + # register Executor as authorized caller in ERC20Proxy + echo "" + updateERC20Proxy "$NETWORK" "$ENVIRONMENT" + echo "" echo "[info] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< deployAllContracts completed" } diff --git a/script/deploy/deployCoreFacets.sh b/script/deploy/deployCoreFacets.sh index e6f8a4dcb..d4017985a 100755 --- a/script/deploy/deployCoreFacets.sh +++ b/script/deploy/deployCoreFacets.sh @@ -1,7 +1,7 @@ #!/bin/bash # deploys all "core facet" contracts to the given network/environment -# core facets are contracts that are listed under CORE_FACETS in config.sh +# core facets are contracts that are listed under coreFacets in global.json deployCoreFacets() { echo "" echo "" @@ -31,7 +31,8 @@ deployCoreFacets() { echo "" # get list of all core facet contracts - IFS=',' read -ra FACETS_ARRAY <<< "$CORE_FACETS" + FACETS_ARRAY=($(getCoreFacetsArray)) + checkFailure $? "retrieve core facets array from global.json" # loop through all contracts for CONTRACT in "${FACETS_ARRAY[@]}"; do diff --git a/script/deploy/deployPeripheryContracts.sh b/script/deploy/deployPeripheryContracts.sh index b7fe25b93..af180639c 100755 --- a/script/deploy/deployPeripheryContracts.sh +++ b/script/deploy/deployPeripheryContracts.sh @@ -29,6 +29,7 @@ deployPeripheryContracts() { echoDebug "NETWORK=$NETWORK" echoDebug "ENVIRONMENT=$ENVIRONMENT" echoDebug "FILE_SUFFIX=$FILE_SUFFIX" + echoDebug "DIAMOND_CONTRACT_NAME=$DIAMOND_CONTRACT_NAME" # get names of all periphery contracts (that are not excluded in config) PERIPHERY_CONTRACTS=$(getIncludedPeripheryContractsArray) diff --git a/script/deploy/facets/DeployArbitrumBridgeFacet.s.sol b/script/deploy/facets/DeployArbitrumBridgeFacet.s.sol index b08c9f6d7..753081d6c 100644 --- a/script/deploy/facets/DeployArbitrumBridgeFacet.s.sol +++ b/script/deploy/facets/DeployArbitrumBridgeFacet.s.sol @@ -28,6 +28,7 @@ contract DeployScript is DeployScriptBase { path, string.concat(".", network, ".gatewayRouter") ); + address inbox = _getConfigContractAddress( path, string.concat(".", network, ".inbox") diff --git a/script/deploy/facets/DeployCelerCircleBridgeFacet.s.sol b/script/deploy/facets/DeployCelerCircleBridgeFacet.s.sol index 5b1220929..e73cca6d0 100644 --- a/script/deploy/facets/DeployCelerCircleBridgeFacet.s.sol +++ b/script/deploy/facets/DeployCelerCircleBridgeFacet.s.sol @@ -28,6 +28,7 @@ contract DeployScript is DeployScriptBase { path, string.concat(".", network, ".circleBridgeProxy") ); + address usdc = _getConfigContractAddress( path, string.concat(".", network, ".usdc") diff --git a/script/deploy/facets/DeployGenericSwapFacetV3.s.sol b/script/deploy/facets/DeployGenericSwapFacetV3.s.sol index 2a29689ee..0cedded08 100644 --- a/script/deploy/facets/DeployGenericSwapFacetV3.s.sol +++ b/script/deploy/facets/DeployGenericSwapFacetV3.s.sol @@ -24,10 +24,10 @@ contract DeployScript is DeployScriptBase { function getConstructorArgs() internal override returns (bytes memory) { // get path of global config file string memory path = string.concat(root, "/config/networks.json"); + string memory json = vm.readFile(path); // extract network's native address - address nativeAddress = _getConfigContractAddress( - path, + address nativeAddress = json.readAddress( string.concat(".", network, ".nativeAddress") ); diff --git a/script/deploy/facets/DeployReceiver.s.sol b/script/deploy/facets/DeployReceiver.s.sol index 533c3c53f..7e7f3a4c5 100644 --- a/script/deploy/facets/DeployReceiver.s.sol +++ b/script/deploy/facets/DeployReceiver.s.sol @@ -34,20 +34,20 @@ contract DeployScript is DeployScriptBase { ".refundWallet" ); - // obtain address of Stargate router in current network from config file + // obtain address of Stargate router in current network from config file (may be address(0), if stargate is not available on this chain) string memory path = string.concat(root, "/config/stargate.json"); - address stargateRouter = _getConfigContractAddress( path, - string.concat(".composers.", network) + string.concat(".composers.", network), + true ); - // obtain address of Amarok router in current network from config file + // obtain address of Amarok router in current network from config file (may be address(0), if amarok is not available on this chain) path = string.concat(root, "/config/amarok.json"); - address amarokRouter = _getConfigContractAddress( path, - string.concat(".", network, ".connextHandler") + string.concat(".", network, ".connextHandler"), + true ); path = string.concat( diff --git a/script/deploy/facets/DeployRelayFacet.s.sol b/script/deploy/facets/DeployRelayFacet.s.sol index 3fc8fd2a1..d0fb1933b 100644 --- a/script/deploy/facets/DeployRelayFacet.s.sol +++ b/script/deploy/facets/DeployRelayFacet.s.sol @@ -21,13 +21,15 @@ contract DeployScript is DeployScriptBase { function getConstructorArgs() internal override returns (bytes memory) { string memory path = string.concat(root, "/config/relay.json"); + string memory json = vm.readFile(path); address relayReceiver = _getConfigContractAddress( path, string.concat(".", network, ".relayReceiver") ); - address relaySolver = _getConfigContractAddress( - path, + + // the relaySolver address is the same address on all mainnets (and it's not a contract) + address relaySolver = json.readAddress( string.concat(".", network, ".relaySolver") ); diff --git a/script/deploy/facets/UpdateCoreFacets.s.sol b/script/deploy/facets/UpdateCoreFacets.s.sol index e56741c4b..0a92c7178 100644 --- a/script/deploy/facets/UpdateCoreFacets.s.sol +++ b/script/deploy/facets/UpdateCoreFacets.s.sol @@ -3,15 +3,14 @@ pragma solidity ^0.8.17; import { UpdateScriptBase, console } from "./utils/UpdateScriptBase.sol"; import { stdJson } from "forge-std/StdJson.sol"; -import { DiamondCutFacet, IDiamondCut } from "lifi/Facets/DiamondCutFacet.sol"; -import { DiamondLoupeFacet, IDiamondLoupe } from "lifi/Facets/DiamondLoupeFacet.sol"; import { OwnershipFacet } from "lifi/Facets/OwnershipFacet.sol"; import { WithdrawFacet } from "lifi/Facets/WithdrawFacet.sol"; import { DexManagerFacet } from "lifi/Facets/DexManagerFacet.sol"; import { AccessManagerFacet } from "lifi/Facets/AccessManagerFacet.sol"; import { PeripheryRegistryFacet } from "lifi/Facets/PeripheryRegistryFacet.sol"; -import { StandardizedCallFacet } from "lifi/Facets/StandardizedCallFacet.sol"; +import { EmergencyPauseFacet } from "lifi/Facets/EmergencyPauseFacet.sol"; import { CalldataVerificationFacet } from "lifi/Facets/CalldataVerificationFacet.sol"; +import { DiamondCutFacet } from "lifi/Facets/DiamondCutFacet.sol"; contract DeployScript is UpdateScriptBase { using stdJson for string; @@ -35,10 +34,6 @@ contract DeployScript is UpdateScriptBase { path, ".PeripheryRegistryFacet" ); - address liFuelAddress = _getConfigContractAddress( - path, - ".LIFuelFacet" - ); address genSwapAddress = _getConfigContractAddress( path, ".GenericSwapFacet" @@ -47,14 +42,14 @@ contract DeployScript is UpdateScriptBase { path, ".GenericSwapFacetV3" ); - address standCallAddress = _getConfigContractAddress( - path, - ".StandardizedCallFacet" - ); address calldVerifAddress = _getConfigContractAddress( path, ".CalldataVerificationFacet" ); + address emergencyPauseAddress = _getConfigContractAddress( + path, + ".EmergencyPauseFacet" + ); bytes4[] memory exclude; @@ -122,14 +117,6 @@ contract DeployScript is UpdateScriptBase { buildInitialCut(selectors, peripheryRgs); } - // LIFuelFacet - selectors = getSelectors("LIFuelFacet", exclude); - if (loupeExists) { - buildDiamondCut(selectors, liFuelAddress); - } else { - buildInitialCut(selectors, liFuelAddress); - } - // GenericSwapFacet selectors = getSelectors("GenericSwapFacet", exclude); if (loupeExists) { @@ -146,14 +133,6 @@ contract DeployScript is UpdateScriptBase { buildInitialCut(selectors, genSwapV3Address); } - // StandardizedCallFacet - selectors = getSelectors("StandardizedCallFacet", exclude); - if (loupeExists) { - buildDiamondCut(selectors, standCallAddress); - } else { - buildInitialCut(selectors, standCallAddress); - } - // CalldataVerificationFacet selectors = getSelectors("CalldataVerificationFacet", exclude); if (loupeExists) { @@ -162,6 +141,16 @@ contract DeployScript is UpdateScriptBase { buildInitialCut(selectors, calldVerifAddress); } + // EmergencyPauseFacet + selectors = getSelectors("EmergencyPauseFacet", exclude); + if (loupeExists) { + buildDiamondCut(selectors, emergencyPauseAddress); + } else { + buildInitialCut(selectors, emergencyPauseAddress); + } + + console.log("facet cuts successfully generated"); + // if noBroadcast is activated, we only prepare calldata for sending it to multisig SAFE if (noBroadcast) { if (cut.length > 0) { diff --git a/script/deploy/facets/utils/DeployScriptBase.sol b/script/deploy/facets/utils/DeployScriptBase.sol index 9ab1733bf..afe38ec25 100644 --- a/script/deploy/facets/utils/DeployScriptBase.sol +++ b/script/deploy/facets/utils/DeployScriptBase.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.17; -import { ScriptBase } from "./ScriptBase.sol"; +import { ScriptBase, console } from "./ScriptBase.sol"; import { CREATE3Factory } from "create3-factory/CREATE3Factory.sol"; contract DeployScriptBase is ScriptBase { @@ -39,9 +39,20 @@ contract DeployScriptBase is ScriptBase { vm.startBroadcast(deployerPrivateKey); if (isDeployed()) { + console.log("Contract is already deployed"); return payable(predicted); } + // reproduce and log calldata that is sent to CREATE3 + bytes memory create3Calldata = abi.encodeWithSelector( + CREATE3Factory.deploy.selector, + salt, + bytes.concat(creationCode, constructorArgs) + ); + console.log("Create3Calldata: "); + console.logBytes(create3Calldata); + console.log(" "); + deployed = payable( factory.deploy(salt, bytes.concat(creationCode, constructorArgs)) ); diff --git a/script/deploy/facets/utils/ScriptBase.sol b/script/deploy/facets/utils/ScriptBase.sol index 506a3aa8b..2d5e0125d 100644 --- a/script/deploy/facets/utils/ScriptBase.sol +++ b/script/deploy/facets/utils/ScriptBase.sol @@ -25,10 +25,19 @@ contract ScriptBase is Script, DSTest { fileSuffix = vm.envString("FILE_SUFFIX"); } - // reads an address from a config file and makes sure that the address contains code + // reads an address from a config file and makes sure that the address contains code, it will not check for contract and still return the address function _getConfigContractAddress( string memory path, string memory key + ) internal returns (address contractAddress) { + return _getConfigContractAddress(path, key, false); + } + + // reads an address from a config file and makes sure that the address contains code + function _getConfigContractAddress( + string memory path, + string memory key, + bool allowZeroAddress // if zeroAddress is found, it will not check for contract and still return the address ) internal returns (address contractAddress) { // load json file string memory json = vm.readFile(path); @@ -36,6 +45,20 @@ contract ScriptBase is Script, DSTest { // read address contractAddress = json.readAddress(key); + // only allow address(0) values if flag is set accordingly, otherwise revert + if (contractAddress == address(0)) + if (allowZeroAddress) return contractAddress; + else + revert( + string.concat( + "Found address(0) for key ", + key, + " in file ", + path, + " which is not allowed here" + ) + ); + // check if address contains code if (!LibAsset.isContract(contractAddress)) revert( diff --git a/script/deploy/facets/utils/UpdateScriptBase.sol b/script/deploy/facets/utils/UpdateScriptBase.sol index 5353ce50d..ffd3cc25f 100644 --- a/script/deploy/facets/utils/UpdateScriptBase.sol +++ b/script/deploy/facets/utils/UpdateScriptBase.sol @@ -62,15 +62,20 @@ contract UpdateScriptBase is ScriptBase { buildDiamondCut(getSelectors(name, excludes), facet); + // prepare full diamondCut calldata and log for debugging purposes + if (cut.length > 0) { + cutData = abi.encodeWithSelector( + DiamondCutFacet.diamondCut.selector, + cut, + callData.length > 0 ? facet : address(0), + callData + ); + + console.log("DiamondCutCalldata: "); + console.logBytes(cutData); + } + if (noBroadcast) { - if (cut.length > 0) { - cutData = abi.encodeWithSelector( - DiamondCutFacet.diamondCut.selector, - cut, - callData.length > 0 ? facet : address(0), - callData - ); - } return (facets, cutData); } diff --git a/script/deploy/healthCheck.ts b/script/deploy/healthCheck.ts index 7e1a1f061..583b1c01f 100644 --- a/script/deploy/healthCheck.ts +++ b/script/deploy/healthCheck.ts @@ -2,16 +2,15 @@ import { consola } from 'consola' import { $, spinner } from 'zx' import { defineCommand, runMain } from 'citty' -import * as chains from 'viem/chains' import * as path from 'path' import * as fs from 'fs' import { Address, - Chain, Hex, PublicClient, createPublicClient, getAddress, + formatEther, getContract, http, parseAbi, @@ -20,33 +19,19 @@ import { Network, networks, getViemChainForNetworkName, - type NetworksObject, } from '../utils/viemScriptHelpers' +import { coreFacets, pauserWallet } from '../../config/global.json' const SAFE_THRESHOLD = 3 const louperCmd = 'louper-cli' -const coreFacets = [ - 'DiamondCutFacet', - 'DiamondLoupeFacet', - 'OwnershipFacet', - 'WithdrawFacet', - 'DexManagerFacet', - 'PeripheryRegistryFacet', - 'AccessManagerFacet', - 'PeripheryRegistryFacet', - 'GenericSwapFacet', - 'GenericSwapFacetV3', - 'CalldataVerificationFacet', - 'StandardizedCallFacet', -] - const corePeriphery = [ 'ERC20Proxy', 'Executor', - 'Receiver', 'FeeCollector', + 'LiFiDEXAggregator', + 'Receiver', 'TokenWrapper', ] @@ -96,7 +81,7 @@ const main = defineCommand({ !coreFacets.includes(k) && !corePeriphery.includes(k) && k !== 'LiFiDiamond' && - k.endsWith('Facet') + k.includes('Facet') ) }) const dexs = (await import(`../../config/dexs.json`))[ @@ -277,25 +262,25 @@ const main = defineCommand({ }) const approvedDexs = await dexManager.read.approvedDexs() - // Loop through dexs excluding the address for FeeCollector, LiFuelFeeCollector and TokenWrapper + // Loop through DEXs excluding the address for FeeCollector, LiFiDEXAggregator and TokenWrapper let numMissing = 0 for (const dex of dexs.filter( (d) => !corePeriphery.includes(getAddress(d)) )) { if (!approvedDexs.includes(getAddress(dex))) { - logError(`Dex ${dex} not approved in Diamond`) + logError(`DEX ${dex} not approved in Diamond`) numMissing++ } } - // Check that FeeCollector, LiFuelFeeCollector and TokenWrapper are included in approvedDexs - const feeCollectors = corePeriphery.filter( + // Check that FeeCollector, LiFiDEXAggregator and TokenWrapper are included in approvedDexs + const mustBeWhitelisted = corePeriphery.filter( (p) => p === 'FeeCollector' || - p === 'LiFuelFeeCollector' || + p === 'LiFiDEXAggregator' || p === 'TokenWrapper' ) - for (const f of feeCollectors) { + for (const f of mustBeWhitelisted) { if (!approvedDexs.includes(getAddress(deployedContracts[f]))) { logError(`Periphery contract ${f} not approved as a DEX`) numMissing++ @@ -434,10 +419,24 @@ const main = defineCommand({ if (!exists) { logError(`Missing ETH_NODE_URI config for ${network} in ${filePath}`) - } + } else + consola.success( + `Found ETH_NODE_URI_${networkUpper} in diamondEmergencyPause.yml` + ) } catch (error: any) { logError(`Error checking workflow file: ${error.message}`) } + console.log('') + + const pauserBalance = formatEther( + await publicClient.getBalance({ + address: pauserWallet, + }) + ) + + if (!pauserBalance || pauserBalance === '0') + logError(`PauserWallet does not have any native balance`) + else consola.success(`PauserWallet is funded: ${pauserBalance}`) // ╭─────────────────────────────────────────────────────────╮ // │ Check access permissions │ diff --git a/script/deploy/resources/contractSpecificReminders.sh b/script/deploy/resources/contractSpecificReminders.sh index 90bac1c30..03f9ad0c3 100644 --- a/script/deploy/resources/contractSpecificReminders.sh +++ b/script/deploy/resources/contractSpecificReminders.sh @@ -6,6 +6,6 @@ # EXAMPLE: # CelerIMFacet="RelayerCelerIM needs to be deployed prior to deploying this facet (CelerIMFacet)" FeeCollector="Please do not forget to add the new contract address to whitelisted DEXs before using it" -LiFuelFeeCollector="Please do not forget to add the new contract address to whitelisted DEXs before using it" -TokenWrapper="Please do not forget to add the new contract address to whitelisted DEXs before using it" +GasZipPeriphery="Please do not forget to add the new contract address to whitelisted DEXs before using it" LiFiDEXAggregator="Please do not forget to add the new contract address to whitelisted DEXs before using it" +TokenWrapper="Please do not forget to add the new contract address to whitelisted DEXs before using it" diff --git a/script/deploy/zksync/DeployGenericSwapFacetV3.zksync.s.sol b/script/deploy/zksync/DeployGenericSwapFacetV3.zksync.s.sol index 2a29689ee..0cedded08 100644 --- a/script/deploy/zksync/DeployGenericSwapFacetV3.zksync.s.sol +++ b/script/deploy/zksync/DeployGenericSwapFacetV3.zksync.s.sol @@ -24,10 +24,10 @@ contract DeployScript is DeployScriptBase { function getConstructorArgs() internal override returns (bytes memory) { // get path of global config file string memory path = string.concat(root, "/config/networks.json"); + string memory json = vm.readFile(path); // extract network's native address - address nativeAddress = _getConfigContractAddress( - path, + address nativeAddress = json.readAddress( string.concat(".", network, ".nativeAddress") ); diff --git a/script/deploy/zksync/DeployReceiver.zksync.s.sol b/script/deploy/zksync/DeployReceiver.zksync.s.sol index 533c3c53f..05841c624 100644 --- a/script/deploy/zksync/DeployReceiver.zksync.s.sol +++ b/script/deploy/zksync/DeployReceiver.zksync.s.sol @@ -39,7 +39,8 @@ contract DeployScript is DeployScriptBase { address stargateRouter = _getConfigContractAddress( path, - string.concat(".composers.", network) + string.concat(".composers.", network), + true ); // obtain address of Amarok router in current network from config file @@ -47,7 +48,8 @@ contract DeployScript is DeployScriptBase { address amarokRouter = _getConfigContractAddress( path, - string.concat(".", network, ".connextHandler") + string.concat(".", network, ".connextHandler"), + true ); path = string.concat( diff --git a/script/deploy/zksync/DeployRelayFacet.zksync.s.sol b/script/deploy/zksync/DeployRelayFacet.zksync.s.sol index 3fc8fd2a1..d0fb1933b 100644 --- a/script/deploy/zksync/DeployRelayFacet.zksync.s.sol +++ b/script/deploy/zksync/DeployRelayFacet.zksync.s.sol @@ -21,13 +21,15 @@ contract DeployScript is DeployScriptBase { function getConstructorArgs() internal override returns (bytes memory) { string memory path = string.concat(root, "/config/relay.json"); + string memory json = vm.readFile(path); address relayReceiver = _getConfigContractAddress( path, string.concat(".", network, ".relayReceiver") ); - address relaySolver = _getConfigContractAddress( - path, + + // the relaySolver address is the same address on all mainnets (and it's not a contract) + address relaySolver = json.readAddress( string.concat(".", network, ".relaySolver") ); diff --git a/script/helperFunctions.sh b/script/helperFunctions.sh index 7cdb8753c..7d37c59b2 100755 --- a/script/helperFunctions.sh +++ b/script/helperFunctions.sh @@ -918,11 +918,11 @@ function checkRequiredVariablesInDotEnv() { return 1 fi else - # Etherscan V2: Ensure a valid API key is present in the .env file + # Individual API Key local BLOCKEXPLORER_API_KEY="${!KEY_VAR}" if [[ -z "$BLOCKEXPLORER_API_KEY" ]]; then - error "Network $NETWORK uses EtherscanV2 but the required API key ($KEY_VAR) is missing in the .env file." + error "Network $NETWORK uses a custom API key ($KEY_VAR) which is missing in your .env file." return 1 fi fi @@ -1977,6 +1977,40 @@ function getAllNetworksArray() { # return ARRAY printf '%s\n' "${ARRAY[@]}" } + +# function to retrieve coreFacets from global.json +function getCoreFacetsArray() { + # ensure GLOBAL_FILE_PATH is set and not empty + if [[ -z "$GLOBAL_FILE_PATH" ]]; then + error "GLOBAL_FILE_PATH is not set or empty." >&2 + return 1 + fi + + local ARRAY=() + + # ensure the global file exists + if [[ ! -f "$GLOBAL_FILE_PATH" ]]; then + error "Global configuration file not found at $GLOBAL_FILE_PATH ." >&2 + return 1 + fi + + # read coreFacets array from JSON using jq + ARRAY=($(jq -r '.coreFacets[]' "$GLOBAL_FILE_PATH")) + if [[ $? -ne 0 ]]; then + error "Failed to parse coreFacets array from $GLOBAL_FILE_PATH." >&2 + return 1 + fi + + # check if the array is empty + if [[ ${#ARRAY[@]} -eq 0 ]]; then + error "The coreFacets array is empty in $GLOBAL_FILE_PATH." >&2 + return 1 + fi + + printf '%s\n' "${ARRAY[@]}" +} + + function getIncludedNetworksArray() { # prepare required variables local FILE="$NETWORKS_FILE_PATH" @@ -2057,8 +2091,9 @@ function getIncludedAndSortedFacetContractsArray() { # get all facet contracts FACET_CONTRACTS=($(getIncludedFacetContractsArray "$EXCLUDE_CONFIG")) - # convert CORE_FACETS into an array - CORE_FACETS_ARRAY=($(echo "$CORE_FACETS" | tr ',' ' ')) + # Get core facets from global.json + CORE_FACETS_ARRAY=($(getCoreFacetsArray)) + checkFailure $? "retrieve core facets array from global.json" # initialize empty arrays for core and non-core facet contracts CORE_FACET_CONTRACTS=() @@ -2352,14 +2387,7 @@ function getContractAddressFromSalt() { local DEPLOYER_ADDRESS=$(getDeployerAddress "$NETWORK" "$ENVIRONMENT") # get actual deploy salt (as we do in DeployScriptBase: keccak256(abi.encodePacked(saltPrefix, contractName));) - # prepare web3 code to be executed - jsCode="const Web3 = require('web3'); - const web3 = new Web3(); - const result = web3.utils.soliditySha3({t: 'string', v: '$SALT'},{t: 'string', v: '$CONTRACT_NAME'}) - console.log(result);" - - # execute code using web3 - ACTUAL_SALT=$(node -e "$jsCode") + ACTUAL_SALT=$(cast keccak "0x$(echo -n "$SALT$CONTRACT_NAME" | xxd -p -c 256)") # call create3 factory to obtain contract address RESULT=$(cast call "$CREATE3_FACTORY_ADDRESS" "getDeployed(address,bytes32) returns (address)" "$DEPLOYER_ADDRESS" "$ACTUAL_SALT" --rpc-url "${!RPC_URL}") @@ -2375,15 +2403,8 @@ function getDeployerAddress() { PRIV_KEY="$(getPrivateKey "$NETWORK" "$ENVIRONMENT")" - # prepare web3 code to be executed - jsCode="const Web3 = require('web3'); - const web3 = new Web3(); - const deployerAddress = (web3.eth.accounts.privateKeyToAccount('$PRIV_KEY')).address - const checksumAddress = web3.utils.toChecksumAddress(deployerAddress); - console.log(checksumAddress);" - - # execute code using web3 - DEPLOYER_ADDRESS=$(node -e "$jsCode") + # get deployer address from private key + DEPLOYER_ADDRESS=$(cast wallet address "$PRIV_KEY") # return deployer address echo "$DEPLOYER_ADDRESS" @@ -2417,8 +2438,10 @@ function doesDiamondHaveCoreFacetsRegistered() { # get RPC URL for given network RPC_URL=$(getRPCUrl "$NETWORK") - # get list of all core facet contracts from config - IFS=',' read -ra FACETS_NAMES <<<"$CORE_FACETS" + # get list of all core facet contracts from global.json + FACETS_NAMES=($(getCoreFacetsArray)) + checkFailure $? "retrieve core facets array from global.json" + # get a list of all facets that the diamond knows local KNOWN_FACET_ADDRESSES=$(cast call "$DIAMOND_ADDRESS" "facets() returns ((address,bytes4[])[])" --rpc-url "$RPC_URL") 2>/dev/null @@ -2592,28 +2615,19 @@ function doesAddressContainBytecode() { fi # get correct node URL for given NETWORK - NODE_URL_KEY="ETH_NODE_URI_$(tr '[:lower:]' '[:upper:]' <<<$NETWORK)" - NODE_URL=${!NODE_URL_KEY} + RPC_URL=$(getRPCUrl "$NETWORK") # check if NODE_URL is available - if [ -z "$NODE_URL" ]; then + if [ -z "$RPC_URL" ]; then error ": no node url found for NETWORK $NETWORK. Please update your .env FILE and make sure it has a value for the following key: $NODE_URL_KEY" return 1 fi # make sure address is in correct checksum format - jsCode="const Web3 = require('web3'); - const web3 = new Web3(); - const address = '$ADDRESS'; - const checksumAddress = web3.utils.toChecksumAddress(address); - console.log(checksumAddress);" - CHECKSUM_ADDRESS=$(node -e "$jsCode") - - # get CONTRACT code from ADDRESS using web3 - jsCode="const Web3 = require('web3'); - const web3 = new Web3('$NODE_URL'); - web3.eth.getCode('$CHECKSUM_ADDRESS', (error, RESULT) => { console.log(RESULT); });" - contract_code=$(node -e "$jsCode") + CHECKSUM_ADDRESS=$(cast to-check-sum-address "$ADDRESS") + + # get CONTRACT code from ADDRESS using + contract_code=$(cast code "$ADDRESS" --rpc-url "$RPC_URL") # return ƒalse if ADDRESS does not contain CONTRACT code, otherwise true if [[ "$contract_code" == "0x" || "$contract_code" == "" ]]; then diff --git a/script/tasks/diamondUpdateFacet.sh b/script/tasks/diamondUpdateFacet.sh index 8eabde132..31b1ae0e1 100755 --- a/script/tasks/diamondUpdateFacet.sh +++ b/script/tasks/diamondUpdateFacet.sh @@ -121,10 +121,18 @@ diamondUpdateFacet() { CLEAN_RETURN_DATA=$(echo $RAW_RETURN_DATA | sed 's/^.*{\"logs/{\"logs/') FACET_CUT=$(echo $CLEAN_RETURN_DATA | jq -r '.returns.cutData.value') - if [ "$FACET_CUT" != "0x" ]; then - echoDebug "Proposing facet cut for $SCRIPT..." - DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") - npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$FACET_CUT" --network "$NETWORK" --rpcUrl "$(getRPCUrl $NETWORK)" --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + if [ "$FACET_CUT" == "0x" ] || [ -z "$FACET_CUT" ]; then + error "Unable to extract facet cut data from RPC response at logs.returns.cutData.value" + else + # set DEPLOY_NEW_NETWORK_MODE to true when deploying a new network so that transactions are not proposed to SAFE (since deployer is still the diamond contract owner during deployment) + if [ "$DEPLOY_NEW_NETWORK_MODE" == "true" ]; then + echo "DEPLOY_NEW_NETWORK_MODE is activated - executing facet cut for $SCRIPT on network $NETWORK..." + RAW_RETURN_DATA=$(NETWORK=$NETWORK FILE_SUFFIX=$FILE_SUFFIX USE_DEF_DIAMOND=$USE_MUTABLE_DIAMOND NO_BROADCAST=false PRIVATE_KEY=$(getPrivateKey "$NETWORK" "$ENVIRONMENT") forge script "$SCRIPT_PATH" -f $NETWORK -vvvvv --json --broadcast --skip-simulation --legacy) + else + echo "Proposing facet cut for $SCRIPT on network $NETWORK..." + DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") + npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$FACET_CUT" --network "$NETWORK" --rpcUrl "$(getRPCUrl $NETWORK)" --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + fi fi else # STAGING: just deploy normally without further checks @@ -136,14 +144,22 @@ diamondUpdateFacet() { # PROD: suggest diamondCut transaction to SAFE UPDATE_SCRIPT=$(echo "$DEPLOY_SCRIPT_DIRECTORY"Update"$SCRIPT".s.sol) PRIVATE_KEY=$(getPrivateKey $NETWORK $ENVIRONMENT) - echoDebug "Calculating facet cuts for $script..." + echoDebug "Calculating facet cuts for $SCRIPT..." RAW_RETURN_DATA=$(NO_BROADCAST=true NETWORK=$NETWORK FILE_SUFFIX=$FILE_SUFFIX USE_DEF_DIAMOND=$USE_MUTABLE_DIAMOND PRIVATE_KEY=$PRIVATE_KEY forge script "$UPDATE_SCRIPT" -f $NETWORK -vvvvv --json --skip-simulation --legacy) CLEAN_RETURN_DATA=$(echo $RAW_RETURN_DATA | sed 's/^.*{\"logs/{\"logs/') FACET_CUT=$(echo $CLEAN_RETURN_DATA | jq -r '.returns.cutData.value') - if [ "$FACET_CUT" != "0x" ]; then - echo "Proposing facet cut for $script on network $NETWROK..." - DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") - npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$FACET_CUT" --network "$NETWORK" --rpcUrl $(getRPCUrl $NETWORK) --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + if [ "$FACET_CUT" == "0x" ] || [ -z "$FACET_CUT" ]; then + error "Unable to extract facet cut data from RPC response at logs.returns.cutData.value" + else + # set DEPLOY_NEW_NETWORK_MODE to true when deploying a new network so that transactions are not proposed to SAFE (since deployer is still the diamond contract owner during deployment) + if [ "$DEPLOY_NEW_NETWORK_MODE" == "true" ]; then + echo "DEPLOY_NEW_NETWORK_MODE is activated - executing facet cut for $script on network $NETWORK..." + RAW_RETURN_DATA=$(NETWORK=$NETWORK FILE_SUFFIX=$FILE_SUFFIX USE_DEF_DIAMOND=$USE_MUTABLE_DIAMOND NO_BROADCAST=false PRIVATE_KEY=$(getPrivateKey "$NETWORK" "$ENVIRONMENT") forge script "$SCRIPT_PATH" -f $NETWORK -vvvvv --json --broadcast --skip-simulation --legacy) + else + echo "Proposing facet cut for $SCRIPT on network $NETWORK..." + DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") + npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$FACET_CUT" --network "$NETWORK" --rpcUrl "$(getRPCUrl "$NETWORK")" --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + fi fi else # STAGING: just deploy normally without further checks @@ -151,7 +167,7 @@ diamondUpdateFacet() { fi fi RETURN_CODE=$? - # echoDebug "RAW_RETURN_DATA: $RAW_RETURN_DATA" + echoDebug "RAW_RETURN_DATA: $RAW_RETURN_DATA" # check the return code the last call if [ "$RETURN_CODE" -eq 0 ]; then @@ -159,7 +175,7 @@ diamondUpdateFacet() { if [[ "$ENVIRONMENT" != "production" ]]; then # extract the "logs" property and its contents from return data CLEAN_RETURN_DATA=$(echo $RAW_RETURN_DATA | sed 's/^.*{\"logs/{\"logs/') - echoDebug "CLEAN_RETURN_DATA: $CLEAN_RETURN_DATA" + # echoDebug "CLEAN_RETURN_DATA: $CLEAN_RETURN_DATA" # extract the "returns" property and its contents from logs RETURN_DATA=$(echo $CLEAN_RETURN_DATA | jq -r '.returns' 2>/dev/null) diff --git a/script/tasks/diamondUpdatePeriphery.sh b/script/tasks/diamondUpdatePeriphery.sh index fba7bce69..96e7e4aa2 100755 --- a/script/tasks/diamondUpdatePeriphery.sh +++ b/script/tasks/diamondUpdatePeriphery.sh @@ -186,14 +186,19 @@ register() { doNotContinueUnlessGasIsBelowThreshold "$NETWORK" if [[ "$ENVIRONMENT" == "production" ]]; then - # propose registerPeripheryContract transaction to multisig safe - local CALLDATA=$(cast calldata "registerPeripheryContract(string,address)" "$CONTRACT_NAME" "$ADDR") - - DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") + # set DEPLOY_NEW_NETWORK_MODE to true when deploying a new network so that transactions are not proposed to SAFE (since deployer is still the diamond contract owner during deployment) + if [ "$DEPLOY_NEW_NETWORK_MODE" == "true" ]; then + echo "DEPLOY_NEW_NETWORK_MODE is activated - registering "$CONTRACT_NAME" as periphery on diamond "$DIAMOND_ADDRESS" in network $NETWORK now..." + cast send "$DIAMOND" 'registerPeripheryContract(string,address)' "$CONTRACT_NAME" "$ADDR" --private-key "$(getPrivateKey "$NETWORK" "$ENVIRONMENT")" --rpc-url "$RPC_URL" --legacy + else + # propose registerPeripheryContract transaction to multisig safe + local CALLDATA=$(cast calldata "registerPeripheryContract(string,address)" "$CONTRACT_NAME" "$ADDR") - echo "Now proposing registerPeripheryContract("$CONTRACT_NAME","$ADDR") to diamond "$DIAMOND_ADDRESS" with calldata $CALLDATA" - npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$CALLDATA" --network "$NETWORK" --rpcUrl "$RPC_URL" --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") + echo "Now proposing registerPeripheryContract("$CONTRACT_NAME","$ADDR") to diamond "$DIAMOND_ADDRESS" with calldata $CALLDATA" + npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$CALLDATA" --network "$NETWORK" --rpcUrl "$RPC_URL" --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + fi else # just register the diamond (no multisig required) cast send "$DIAMOND" 'registerPeripheryContract(string,address)' "$CONTRACT_NAME" "$ADDR" --private-key "$(getPrivateKey "$NETWORK" "$ENVIRONMENT")" --rpc-url "$RPC_URL" --legacy @@ -203,16 +208,22 @@ register() { else # do not print output to console if [[ "$ENVIRONMENT" == "production" ]]; then - # propose registerPeripheryContract transaction to multisig safe - local CALLDATA=$(cast calldata "registerPeripheryContract(string,address)" "$CONTRACT_NAME" "$ADDR") - echoDebug "Calldata: $CALLDATA" + # set DEPLOY_NEW_NETWORK_MODE to true when deploying a new network so that transactions are not proposed to SAFE (since deployer is still the diamond contract owner during deployment) + if [ "$DEPLOY_NEW_NETWORK_MODE" == "true" ]; then + echo "DEPLOY_NEW_NETWORK_MODE is activated - registering "$CONTRACT_NAME" as periphery on diamond "$DIAMOND_ADDRESS" in network $NETWORK now..." + cast send "$DIAMOND" 'registerPeripheryContract(string,address)' "$CONTRACT_NAME" "$ADDR" --private-key "$(getPrivateKey "$NETWORK" "$ENVIRONMENT")" --rpc-url "$RPC_URL" --legacy + else + # propose registerPeripheryContract transaction to multisig safe + local CALLDATA=$(cast calldata "registerPeripheryContract(string,address)" "$CONTRACT_NAME" "$ADDR") + echoDebug "Calldata: $CALLDATA" - DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") - echoDebug "DIAMOND_ADDRESS: $DIAMOND_ADDRESS" - echoDebug "NETWORK: $NETWORK" + DIAMOND_ADDRESS=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "$DIAMOND_CONTRACT_NAME") + echoDebug "DIAMOND_ADDRESS: $DIAMOND_ADDRESS" + echoDebug "NETWORK: $NETWORK" - echo "Now proposing registerPeripheryContract("$CONTRACT_NAME","$ADDR") to diamond "$DIAMOND_ADDRESS" with calldata $CALLDATA" - npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$CALLDATA" --network "$NETWORK" --rpcUrl "$RPC_URL" --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + echo "Now proposing registerPeripheryContract("$CONTRACT_NAME","$ADDR") to diamond "$DIAMOND_ADDRESS" with calldata $CALLDATA" + npx tsx script/deploy/safe/propose-to-safe.ts --to "$DIAMOND_ADDRESS" --calldata "$CALLDATA" --network "$NETWORK" --rpcUrl "$RPC_URL" --privateKey "$SAFE_SIGNER_PRIVATE_KEY" + fi else # just register the diamond (no multisig required) cast send "$DIAMOND" 'registerPeripheryContract(string,address)' "$CONTRACT_NAME" "$ADDR" --private-key "$(getPrivateKey "$NETWORK" "$ENVIRONMENT")" --rpc-url "$RPC_URL" --legacy >/dev/null 2>&1 diff --git a/script/tasks/updateERC20Proxy.sh b/script/tasks/updateERC20Proxy.sh index 1de593f13..56c1ceccc 100755 --- a/script/tasks/updateERC20Proxy.sh +++ b/script/tasks/updateERC20Proxy.sh @@ -7,23 +7,28 @@ updateERC20Proxy() { source .env + source script/helperFunctions.sh - if [[ -z "$PRODUCTION" ]]; then - FILE_SUFFIX="staging." - fi - NETWORK=$(cat ./networks | gum filter --placeholder "Network...") - echo $RPC - ERC20PROXY=$(jq -r '.ERC20Proxy' "./deployments/$NETWORK.${FILE_SUFFIX}json") - EXECUTOR=$(jq -r '.Executor' "./deployments/$NETWORK.${FILE_SUFFIX}json") + local NETWORK=$1 + local ENVIRONMENT=$2 - echo "Setting $EXECUTOR as authorized caller for $ERC20PROXY on $NETWORK..." + local RPC_URL=$(getRPCUrl "$NETWORK") + + # get relevant contract addresses from deploy log file + ERC20PROXY=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "ERC20Proxy" ) + EXECUTOR=$(getContractAddressFromDeploymentLogs "$NETWORK" "$ENVIRONMENT" "Executor" ) - NETWORK_UPPER=$(tr '[:lower:]' '[:upper:]' <<< $NETWORK) - RPC="ETH_NODE_URI_$NETWORK_UPPER" + if [[ -z "$ERC20PROXY" || -z "$EXECUTOR" ]]; then + error "Missing address (ERC20Proxy=$ERC20PROXY, Executor=$EXECUTOR)" + exit 1 + fi + echo "" + echo "Setting $EXECUTOR as authorized caller for $ERC20PROXY on $NETWORK..." - cast send $ERC20PROXY "setAuthorizedCaller(address, bool)" $EXECUTOR true --private-key $PRIVATE_KEY --rpc-url "${!RPC}" --legacy + cast send $ERC20PROXY "setAuthorizedCaller(address, bool)" $EXECUTOR true --private-key $PRIVATE_KEY_PRODUCTION --rpc-url "$RPC_URL" --legacy + echo "" } diff --git a/templates/facetDeployScript.template.hbs b/templates/facetDeployScript.template.hbs index c2a23fc3b..1d583ccfd 100644 --- a/templates/facetDeployScript.template.hbs +++ b/templates/facetDeployScript.template.hbs @@ -25,7 +25,7 @@ contract DeployScript is DeployScriptBase { string memory json = vm.readFile(path); // If you need to read an address from your config file or from a network deploy log that is supposed to be a contract, use the - // following helper function which makes sure that the address contains code: + // following helper function which makes sure that the address contains code (and has a optional flag for allowing address(0)): // // address example = _getConfigContractAddress(json,string.concat(".", network, ".example")); // diff --git a/test/solidity/Facets/AccessManagerFacet.t.sol b/test/solidity/Facets/AccessManagerFacet.t.sol index e74ced14b..6229864a5 100644 --- a/test/solidity/Facets/AccessManagerFacet.t.sol +++ b/test/solidity/Facets/AccessManagerFacet.t.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.17; import { AccessManagerFacet } from "lifi/Facets/AccessManagerFacet.sol"; -import { UnAuthorized } from "lifi/Errors/GenericErrors.sol"; +import { UnAuthorized, CannotAuthoriseSelf, OnlyContractOwner } from "lifi/Errors/GenericErrors.sol"; import { TestBase, LibAccess, console, LiFiDiamond } from "../utils/TestBase.sol"; contract RestrictedContract { @@ -22,12 +22,16 @@ contract AccessManagerFacetTest is TestBase { accessMgr = new AccessManagerFacet(); restricted = new RestrictedContract(); - bytes4[] memory functionSelectors = new bytes4[](1); - functionSelectors[0] = accessMgr.setCanExecute.selector; - addFacet(diamond, address(accessMgr), functionSelectors); + bytes4[] memory allowedFunctionSelectors = new bytes4[](2); + allowedFunctionSelectors[0] = accessMgr.setCanExecute.selector; + allowedFunctionSelectors[1] = accessMgr + .addressCanExecuteMethod + .selector; + addFacet(diamond, address(accessMgr), allowedFunctionSelectors); - functionSelectors[0] = restricted.restrictedMethod.selector; - addFacet(diamond, address(restricted), functionSelectors); + bytes4[] memory restrictedFunctionSelectors = new bytes4[](1); + restrictedFunctionSelectors[0] = restricted.restrictedMethod.selector; + addFacet(diamond, address(restricted), restrictedFunctionSelectors); accessMgr = AccessManagerFacet(address(diamond)); restricted = RestrictedContract(address(diamond)); @@ -36,23 +40,33 @@ contract AccessManagerFacetTest is TestBase { setFacetAddressInTestBase(address(accessMgr), "AccessManagerFacet"); } - function testAccessIsRestricted() public { + function test_AccessIsRestrictedFromNotOwner() public { + vm.startPrank(USER_SENDER); + vm.expectRevert(UnAuthorized.selector); - vm.prank(address(0xb33f)); + restricted.restrictedMethod(); + vm.stopPrank(); } - function testCanGrantAccess() public { + function test_CanGrantAccessByOwner() public { + vm.startPrank(USER_DIAMOND_OWNER); + accessMgr.setCanExecute( RestrictedContract.restrictedMethod.selector, address(0xb33f), true ); + + vm.stopPrank(); + vm.prank(address(0xb33f)); restricted.restrictedMethod(); } - function testCanRemoveAccess() public { + function test_CanRemoveAccessByOwner() public { + vm.startPrank(USER_DIAMOND_OWNER); + accessMgr.setCanExecute( RestrictedContract.restrictedMethod.selector, address(0xb33f), @@ -63,8 +77,135 @@ contract AccessManagerFacetTest is TestBase { address(0xb33f), false ); + + vm.stopPrank(); + vm.expectRevert(UnAuthorized.selector); + vm.prank(address(0xb33f)); restricted.restrictedMethod(); } + + function testRevert_CannotSetMethodAccessForAccessManager() public { + vm.startPrank(USER_DIAMOND_OWNER); + + vm.expectRevert(CannotAuthoriseSelf.selector); + + accessMgr.setCanExecute( + AccessManagerFacet.setCanExecute.selector, + address(accessMgr), + true + ); + + vm.stopPrank(); + } + + function testRevert_FailsIfNonOwnerTriesToGrantAccess() public { + vm.startPrank(USER_SENDER); + + vm.expectRevert(OnlyContractOwner.selector); + + accessMgr.setCanExecute( + AccessManagerFacet.setCanExecute.selector, + address(0xb33f), + true + ); + + vm.stopPrank(); + } + + function test_DefaultAccessIsFalse() public { + bool canExecute = accessMgr.addressCanExecuteMethod( + RestrictedContract.restrictedMethod.selector, + address(0xb33f) + ); + + assertEq(canExecute, false, "Default access should be false"); + } + + function test_CanCheckGrantedAccess() public { + vm.startPrank(USER_DIAMOND_OWNER); + + accessMgr.setCanExecute( + RestrictedContract.restrictedMethod.selector, + address(0xb33f), + true + ); + + vm.stopPrank(); + + bool canExecute = accessMgr.addressCanExecuteMethod( + RestrictedContract.restrictedMethod.selector, + address(0xb33f) + ); + + assertEq(canExecute, true, "Access should be granted"); + } + + function test_CanCheckRevokedAccess() public { + vm.startPrank(USER_DIAMOND_OWNER); + + accessMgr.setCanExecute( + RestrictedContract.restrictedMethod.selector, + address(0xb33f), + true + ); + + accessMgr.setCanExecute( + RestrictedContract.restrictedMethod.selector, + address(0xb33f), + false + ); + + vm.stopPrank(); + + bool canExecute = accessMgr.addressCanExecuteMethod( + RestrictedContract.restrictedMethod.selector, + address(0xb33f) + ); + + assertEq(canExecute, false, "Access should be revoked"); + } + + function test_DifferentMethodSelectorReturnsFalse() public { + vm.startPrank(USER_DIAMOND_OWNER); + + accessMgr.setCanExecute( + RestrictedContract.restrictedMethod.selector, + address(0xb33f), + true + ); + + vm.stopPrank(); + + bool canExecute = accessMgr.addressCanExecuteMethod( + bytes4(keccak256("anotherMethod()")), + address(0xb33f) + ); + + assertEq( + canExecute, + false, + "Different method selector should return false" + ); + } + + function test_DifferentExecutorReturnsFalse() public { + vm.startPrank(USER_DIAMOND_OWNER); + + accessMgr.setCanExecute( + RestrictedContract.restrictedMethod.selector, + address(0xb33f), + true + ); + + vm.stopPrank(); + + bool canExecute = accessMgr.addressCanExecuteMethod( + RestrictedContract.restrictedMethod.selector, + address(0xcafe) + ); + + assertEq(canExecute, false, "Different executor should return false"); + } } diff --git a/test/solidity/Facets/AcrossFacet.t.sol b/test/solidity/Facets/AcrossFacet.t.sol index 196a9a8a8..661ede3bb 100644 --- a/test/solidity/Facets/AcrossFacet.t.sol +++ b/test/solidity/Facets/AcrossFacet.t.sol @@ -108,19 +108,22 @@ contract AcrossFacetTest is TestBaseFacet { } } - function testFailsToBridgeERC20TokensDueToQuoteTimeout() public { - console.logBytes4(IAcrossSpokePool.deposit.selector); - vm.startPrank(WETH_HOLDER); - ERC20 weth = ERC20(ADDRESS_WRAPPED_NATIVE); - weth.approve(address(acrossFacet), 10_000 * 10 ** weth.decimals()); + function testRevert_FailsIfCalledWithOutdatedQuote() public { + vm.startPrank(USER_SENDER); + + usdc.approve(address(acrossFacet), bridgeData.minAmount); AcrossFacet.AcrossData memory data = AcrossFacet.AcrossData( 0, // Relayer fee - uint32(block.timestamp + 20 minutes), + uint32(block.timestamp - 100 days), "", type(uint256).max ); + + vm.expectRevert("invalid quote time"); + acrossFacet.startBridgeTokensViaAcross(bridgeData, data); + vm.stopPrank(); } } diff --git a/test/solidity/Facets/AcrossFacetPacked.t.sol b/test/solidity/Facets/AcrossFacetPacked.t.sol index 1b76b5696..33ba822ae 100644 --- a/test/solidity/Facets/AcrossFacetPacked.t.sol +++ b/test/solidity/Facets/AcrossFacetPacked.t.sol @@ -8,6 +8,7 @@ import { IAcrossSpokePool } from "lifi/Interfaces/IAcrossSpokePool.sol"; import { LibAsset, IERC20 } from "lifi/Libraries/LibAsset.sol"; import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import { TestBase } from "../utils/TestBase.sol"; +import { MockFailingContract } from "../utils/MockFailingContract.sol"; import { ERC20 } from "solmate/tokens/ERC20.sol"; import { LiFiDiamond } from "../utils/DiamondTest.sol"; import { console2 } from "forge-std/console2.sol"; @@ -616,4 +617,22 @@ contract AcrossFacetPackedTest is TestBase { ); vm.stopPrank(); } + + function testRevert_FailIfCallToExternalContractFails() public { + vm.startPrank(USER_DIAMOND_OWNER); + + MockFailingContract failingContract = new MockFailingContract(); + + vm.expectRevert(AcrossFacetPacked.WithdrawFailed.selector); + + acrossStandAlone.executeCallAndWithdraw( + address(failingContract), + WITHDRAW_REWARDS_CALLDATA, + ADDRESS_USDT, + address(this), + amountUSDT + ); + + vm.startPrank(USER_DIAMOND_OWNER); + } } diff --git a/test/solidity/Facets/AcrossFacetV3.t.sol b/test/solidity/Facets/AcrossFacetV3.t.sol index 6928bd18a..922756726 100644 --- a/test/solidity/Facets/AcrossFacetV3.t.sol +++ b/test/solidity/Facets/AcrossFacetV3.t.sol @@ -1,11 +1,12 @@ // SPDX-License-Identifier: Unlicense pragma solidity ^0.8.17; -import { LibAllowList, TestBaseFacet, console, ERC20 } from "../utils/TestBaseFacet.sol"; +import { LibAllowList, TestBaseFacet, console } from "../utils/TestBaseFacet.sol"; import { AcrossFacetV3 } from "lifi/Facets/AcrossFacetV3.sol"; import { IAcrossSpokePool } from "lifi/Interfaces/IAcrossSpokePool.sol"; import { LibUtil } from "lifi/Libraries/LibUtil.sol"; import { LibSwap } from "lifi/Libraries/LibSwap.sol"; +import { InformationMismatch } from "lifi/Errors/GenericErrors.sol"; // Stub AcrossFacetV3 Contract contract TestAcrossFacetV3 is AcrossFacetV3 { @@ -36,6 +37,8 @@ contract AcrossFacetV3Test is TestBaseFacet { AcrossFacetV3.AcrossV3Data internal validAcrossData; TestAcrossFacetV3 internal acrossFacetV3; + error InvalidQuoteTimestamp(); + function setUp() public { customBlockNumberForForking = 19960294; initTestBase(); @@ -249,11 +252,13 @@ contract AcrossFacetV3Test is TestBaseFacet { vm.stopPrank(); } - function testFailsToBridgeERC20TokensDueToQuoteTimeout() public { - vm.startPrank(WETH_HOLDER); - weth.approve(address(acrossFacetV3), 10_000 * 10 ** weth.decimals()); + function testRevert_FailsIfCalledWithOutdatedQuote() public { + vm.startPrank(USER_SENDER); + usdc.approve(address(acrossFacetV3), bridgeData.minAmount); + + validAcrossData.quoteTimestamp = uint32(block.timestamp - 100 days); - validAcrossData.quoteTimestamp = uint32(block.timestamp + 20 minutes); + vm.expectRevert(InvalidQuoteTimestamp.selector); acrossFacetV3.startBridgeTokensViaAcrossV3( bridgeData, @@ -271,4 +276,23 @@ contract AcrossFacetV3Test is TestBaseFacet { true ); } + + function testRevert_WillFailIfBridgeDataReceiverDoesNotMatchWithAcrossData() + public + { + vm.startPrank(USER_SENDER); + usdc.approve(address(acrossFacetV3), bridgeData.minAmount); + + validAcrossData.quoteTimestamp = uint32(block.timestamp - 100 days); + + bridgeData.receiver = address(0x123); // does not match with USER_RECEIVER + + vm.expectRevert(InformationMismatch.selector); + + acrossFacetV3.startBridgeTokensViaAcrossV3( + bridgeData, + validAcrossData + ); + vm.stopPrank(); + } } diff --git a/test/solidity/Facets/AmarokFacetPacked.t.sol b/test/solidity/Facets/AmarokFacetPacked.t.sol index 816154b8d..420227052 100644 --- a/test/solidity/Facets/AmarokFacetPacked.t.sol +++ b/test/solidity/Facets/AmarokFacetPacked.t.sol @@ -47,7 +47,7 @@ contract AmarokFacetPackedTest is TestBase { amarokFacetPacked = new AmarokFacetPacked(amarok, address(this)); amarokStandAlone = new AmarokFacetPacked(amarok, address(this)); - bytes4[] memory functionSelectors = new bytes4[](9); + bytes4[] memory functionSelectors = new bytes4[](10); functionSelectors[0] = amarokFacetPacked.setApprovalForBridge.selector; functionSelectors[1] = amarokFacetPacked .startBridgeTokensViaAmarokERC20PackedPayFeeWithAsset @@ -73,6 +73,7 @@ contract AmarokFacetPackedTest is TestBase { functionSelectors[8] = amarokFacetPacked .decode_startBridgeTokensViaAmarokERC20PackedPayFeeWithNative .selector; + functionSelectors[9] = amarokFacetPacked.getChainIdForDomain.selector; // add facet to diamond addFacet(diamond, address(amarokFacetPacked), functionSelectors); @@ -412,7 +413,69 @@ contract AmarokFacetPackedTest is TestBase { assertEq(amarokData.relayerFee == defaultRelayerFee, true); } - function test_revert_cannotUseRelayerFeeAboveUint128Max_ERC20() public { + struct DomainChainTestCase { + uint32 domainId; + uint32 expectedChainId; + string description; + } + + function test_CanGetChainIdForValidDomains() public { + DomainChainTestCase[] memory testCases = new DomainChainTestCase[](8); + testCases[0] = DomainChainTestCase({ + domainId: 6648936, + expectedChainId: 1, + description: "ETH domainId should return chainId 1" + }); + testCases[1] = DomainChainTestCase({ + domainId: 1886350457, + expectedChainId: 137, + description: "POL domainId should return chainId 137" + }); + testCases[2] = DomainChainTestCase({ + domainId: 6450786, + expectedChainId: 56, + description: "BSC domainId should return chainId 56" + }); + testCases[3] = DomainChainTestCase({ + domainId: 1869640809, + expectedChainId: 10, + description: "OPT domainId should return chainId 10" + }); + testCases[4] = DomainChainTestCase({ + domainId: 6778479, + expectedChainId: 100, + description: "GNO domainId should return chainId 100" + }); + testCases[5] = DomainChainTestCase({ + domainId: 1634886255, + expectedChainId: 42161, + description: "ARB domainId should return chainId 42161" + }); + testCases[6] = DomainChainTestCase({ + domainId: 1818848877, + expectedChainId: 59144, + description: "LIN domainId should return chainId 59144" + }); + testCases[7] = DomainChainTestCase({ + domainId: 9999999, + expectedChainId: 0, + description: "Unknown domainId should return 0" + }); + + for (uint256 i = 0; i < testCases.length; i++) { + uint32 result = amarokFacetPacked.getChainIdForDomain( + testCases[i].domainId + ); + + assertEq( + result, + testCases[i].expectedChainId, + testCases[i].description + ); + } + } + + function testRevert_cannotUseRelayerFeeAboveUint128Max_ERC20() public { uint256 invalidRelayerFee = uint256(type(uint128).max) + 1; vm.expectRevert("relayerFee value passed too big to fit in uint128"); diff --git a/test/solidity/Facets/CBridge.t.sol b/test/solidity/Facets/CBridge.t.sol index f03867f4a..991eefcf1 100644 --- a/test/solidity/Facets/CBridge.t.sol +++ b/test/solidity/Facets/CBridge.t.sol @@ -1,9 +1,10 @@ // SPDX-License-Identifier: Unlicense pragma solidity ^0.8.17; -import { LibSwap, LibAllowList, TestBaseFacet, console, InvalidAmount } from "../utils/TestBaseFacet.sol"; +import { LibSwap, LibAllowList, TestBaseFacet, console, InvalidAmount, ERC20 } from "../utils/TestBaseFacet.sol"; import { CBridgeFacet } from "lifi/Facets/CBridgeFacet.sol"; import { ICBridge } from "lifi/Interfaces/ICBridge.sol"; +import { ContractCallNotAllowed, ExternalCallFailed, UnAuthorized } from "lifi/Errors/GenericErrors.sol"; // Stub CBridgeFacet Contract contract TestCBridgeFacet is CBridgeFacet { @@ -27,6 +28,12 @@ contract CBridgeFacetTest is TestBaseFacet { 0x5427FEFA711Eff984124bFBB1AB6fbf5E3DA1820; TestCBridgeFacet internal cBridge; + event CBridgeRefund( + address indexed _assetAddress, + address indexed _to, + uint256 amount + ); + function initiateBridgeTxWithFacet(bool isNative) internal override { // a) prepare the facet-specific data CBridgeFacet.CBridgeData memory data = CBridgeFacet.CBridgeData( @@ -71,13 +78,14 @@ contract CBridgeFacetTest is TestBaseFacet { function setUp() public { initTestBase(); cBridge = new TestCBridgeFacet(ICBridge(CBRIDGE_ROUTER)); - bytes4[] memory functionSelectors = new bytes4[](4); + bytes4[] memory functionSelectors = new bytes4[](5); functionSelectors[0] = cBridge.startBridgeTokensViaCBridge.selector; functionSelectors[1] = cBridge .swapAndStartBridgeTokensViaCBridge .selector; functionSelectors[2] = cBridge.addDex.selector; functionSelectors[3] = cBridge.setFunctionApprovalBySignature.selector; + functionSelectors[4] = cBridge.triggerRefund.selector; addFacet(diamond, address(cBridge), functionSelectors); @@ -195,6 +203,154 @@ contract CBridgeFacetTest is TestBaseFacet { vm.stopPrank(); } + function test_SucceedsWhenOwnerTriggersRefundWithExplicitReceiver() + public + assertBalanceChange(ADDRESS_USDT, USER_RECEIVER, 100_000) + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = CBRIDGE_ROUTER; + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100_000; + + deal(ADDRESS_USDT, address(cBridge), amount); + uint256 cBridgeBalanceBefore = ERC20(ADDRESS_USDT).balanceOf( + address(cBridge) + ); + + vm.mockCall(callTo, callData, abi.encode(true)); + + vm.expectEmit(true, true, true, true, address(cBridge)); + emit CBridgeRefund(assetAddress, to, amount); + + cBridge.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + uint256 cBridgeBalanceAfter = ERC20(ADDRESS_USDT).balanceOf( + address(cBridge) + ); + + assertEq(cBridgeBalanceBefore - cBridgeBalanceAfter, amount); + + vm.stopPrank(); + } + + function test_SucceedsWhenOwnerTriggersRefundWithoutExplicitReceiver() + public + assertBalanceChange(ADDRESS_USDT, USER_DIAMOND_OWNER, 100_000) + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = CBRIDGE_ROUTER; + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = address(0); + uint256 amount = 100_000; + + deal(ADDRESS_USDT, address(cBridge), amount); + uint256 cBridgeBalanceBefore = ERC20(ADDRESS_USDT).balanceOf( + address(cBridge) + ); + + vm.mockCall(callTo, callData, abi.encode(true)); + + vm.expectEmit(true, true, true, true, address(cBridge)); + emit CBridgeRefund(assetAddress, USER_DIAMOND_OWNER, amount); + + cBridge.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + uint256 cBridgeBalanceAfter = ERC20(ADDRESS_USDT).balanceOf( + address(cBridge) + ); + + assertEq(cBridgeBalanceBefore - cBridgeBalanceAfter, amount); + + vm.stopPrank(); + } + + function testRevert_FailsWhenTriggerRefundIsCalledByNonOwner() public { + vm.startPrank(USER_SENDER); + + address callTo = CBRIDGE_ROUTER; + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100 * 10 ** usdt.decimals(); + + vm.expectRevert(UnAuthorized.selector); + + cBridge.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + vm.stopPrank(); + } + + function testRevert_FailsWhenTriggerRefundTryingToCallDiffrentContractThanCBridgeRouter() + public + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = address(0xdeadbeef); + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100 * 10 ** usdt.decimals(); + + vm.expectRevert(ContractCallNotAllowed.selector); + + cBridge.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + vm.stopPrank(); + } + + function testRevert_FailsWhenTriggerRefundCallToCBridgeRouterFails() + public + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = CBRIDGE_ROUTER; // must match the expected `CBRIDGE_ROUTER` address + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100 * 10 ** usdt.decimals(); + + vm.expectRevert(ExternalCallFailed.selector); + + cBridge.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + vm.stopPrank(); + } + function testBase_CanBridgeTokens_fuzzed(uint256 amount) public override { vm.assume(amount > 100 && amount < 100_000); super.testBase_CanBridgeTokens_fuzzed(amount); diff --git a/test/solidity/Facets/CBridgeFacetPacked.t.sol b/test/solidity/Facets/CBridgeFacetPacked.t.sol index b705f655f..033143210 100644 --- a/test/solidity/Facets/CBridgeFacetPacked.t.sol +++ b/test/solidity/Facets/CBridgeFacetPacked.t.sol @@ -7,6 +7,7 @@ import { ERC20 } from "solmate/tokens/ERC20.sol"; import { CBridgeFacetPacked } from "lifi/Facets/CBridgeFacetPacked.sol"; import { ILiFi } from "lifi/Interfaces/ILiFi.sol"; import { LibAllowList, TestBase, console, LiFiDiamond } from "../utils/TestBase.sol"; +import { ContractCallNotAllowed, ExternalCallFailed, UnAuthorized } from "lifi/Errors/GenericErrors.sol"; contract MockLiquidityBridge is TestBase { function mockWithdraw(uint256 _amount) external { @@ -46,6 +47,12 @@ contract CBridgeFacetPackedTest is TestBase { uint256 amountUSDC; bytes packedUSDC; + event CBridgeRefund( + address indexed _assetAddress, + address indexed _to, + uint256 amount + ); + function setUp() public { customBlockNumberForForking = 58467500; customRpcUrlForForking = "ETH_NODE_URI_ARBITRUM"; @@ -490,4 +497,152 @@ contract CBridgeFacetPackedTest is TestBase { "Refund amount should be correct" ); } + + function test_TriggerRefundSucceedsWhenCalledByOwnerWithExplicitReceiver() + public + assertBalanceChange(ADDRESS_USDT, USER_RECEIVER, 100_000) + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = CBRIDGE_ROUTER; + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100_000; + + deal(ADDRESS_USDT, address(standAlone), amount); + uint256 cBridgeBalanceBefore = ERC20(ADDRESS_USDT).balanceOf( + address(standAlone) + ); + + vm.mockCall(callTo, callData, abi.encode(true)); + + vm.expectEmit(true, true, true, true, address(standAlone)); + emit CBridgeRefund(assetAddress, to, amount); + + standAlone.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + uint256 cBridgeBalanceAfter = ERC20(ADDRESS_USDT).balanceOf( + address(standAlone) + ); + + assertEq(cBridgeBalanceBefore - cBridgeBalanceAfter, amount); + + vm.stopPrank(); + } + + function test_TriggerRefundSucceedsWhenCalledByOwnerWithoutExplicitReceiver() + public + assertBalanceChange(ADDRESS_USDT, USER_DIAMOND_OWNER, 100_000) + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = CBRIDGE_ROUTER; + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = address(0); + uint256 amount = 100_000; + + deal(ADDRESS_USDT, address(standAlone), amount); + uint256 cBridgeBalanceBefore = ERC20(ADDRESS_USDT).balanceOf( + address(standAlone) + ); + + vm.mockCall(callTo, callData, abi.encode(true)); + + vm.expectEmit(true, true, true, true, address(standAlone)); + emit CBridgeRefund(assetAddress, USER_DIAMOND_OWNER, amount); + + standAlone.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + uint256 cBridgeBalanceAfter = ERC20(ADDRESS_USDT).balanceOf( + address(standAlone) + ); + + assertEq(cBridgeBalanceBefore - cBridgeBalanceAfter, amount); + + vm.stopPrank(); + } + + function testRevert_TriggerRefundFailsWhenCalledByNonOwner() public { + vm.startPrank(USER_SENDER); + + address callTo = CBRIDGE_ROUTER; + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100 * 10 ** usdt.decimals(); + + vm.expectRevert(UnAuthorized.selector); + + standAlone.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + vm.stopPrank(); + } + + function testRevert_TriggerRefundFailsWhenTryingToCallDiffrentContractThanCBridgeRouter() + public + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = address(0xdeadbeef); + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100 * 10 ** usdt.decimals(); + + vm.expectRevert(ContractCallNotAllowed.selector); + + standAlone.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + vm.stopPrank(); + } + + function testRevert_TriggerRefundFailsWhenCallToCBridgeRouterFails() + public + { + vm.startPrank(USER_DIAMOND_OWNER); + + address callTo = CBRIDGE_ROUTER; // must match the expected `CBRIDGE_ROUTER` address + bytes memory callData = abi.encodeWithSignature("someFunction()"); + address assetAddress = ADDRESS_USDT; + address to = USER_RECEIVER; + uint256 amount = 100 * 10 ** usdt.decimals(); + + vm.expectRevert(ExternalCallFailed.selector); + + standAlone.triggerRefund( + payable(callTo), + callData, + assetAddress, + to, + amount + ); + + vm.stopPrank(); + } } diff --git a/test/solidity/Facets/CBridgeRefund.t.sol b/test/solidity/Facets/CBridgeRefund.t.sol index da69d7723..7e296e1c4 100644 --- a/test/solidity/Facets/CBridgeRefund.t.sol +++ b/test/solidity/Facets/CBridgeRefund.t.sol @@ -7,6 +7,7 @@ import { DiamondTest, LiFiDiamond } from "../utils/DiamondTest.sol"; import { Vm } from "forge-std/Vm.sol"; import { ERC20 } from "solmate/tokens/ERC20.sol"; import { WithdrawFacet } from "lifi/Facets/WithdrawFacet.sol"; +import { UnAuthorized, NotAContract } from "lifi/Errors/GenericErrors.sol"; // Test CBridge refund by forking polygon at 25085298 // Actual refund was processed at 25085299(Feb-18-2022 03:24:09 PM +UTC) @@ -27,6 +28,8 @@ contract CBridgeRefundTestPolygon is DSTest, DiamondTest { 0x3db00D1334B5faDd2A897D8A702cDCbb6F159D87; uint256 internal constant REFUND_AMOUNT = 92734538876076486098; + error WithdrawFailed(); + bytes internal CALLDATA; LiFiDiamond internal diamond; @@ -126,7 +129,11 @@ contract CBridgeRefundTestPolygon is DSTest, DiamondTest { /// @notice Fails to execute extra call and withdraw from non-owner. /// @dev It calls executeCallAndWithdraw from address that is not OWNER_ADDRESS. - function testFailExecuteCallAndWithdrawFromNonOwner() public { + function testRevert_NonOwnerCannotWithdrawFunds() public { + vm.startPrank(LIFI_ADDRESS); + + vm.expectRevert(UnAuthorized.selector); + withdrawFacet.executeCallAndWithdraw( payable(CBRIDGE_ADDRESS), CALLDATA, @@ -138,9 +145,13 @@ contract CBridgeRefundTestPolygon is DSTest, DiamondTest { /// @notice Fails to execute extra call and withdraw when callTo is invalid. /// @dev It tries to execute extra call at REFUND_ADDRESS instead of CBRIDGE_ADDRESS. - function testFailExecuteCallAndWithdraw() public { + function testRevert_FailsWhenCalledWithInvalidCallToAddress() public { + vm.startPrank(OWNER_ADDRESS); + + vm.expectRevert(NotAContract.selector); + withdrawFacet.executeCallAndWithdraw( - payable(REFUND_ADDRESS), + payable(address(0x123)), //invalid callTo address CALLDATA, REFUND_ASSET, REFUND_ADDRESS, @@ -151,7 +162,7 @@ contract CBridgeRefundTestPolygon is DSTest, DiamondTest { /// @notice Fails to execute extra call and withdraw when refund is already processed. /// @dev It tries to withdraw multiple times. /// First withdraw should be success but second withdraw should be failed. - function testFailExecuteCallAndWithdrawMultiple() public { + function testRevert_RevertsIfRefundWasAlreadyProcessed() public { ERC20 asset = ERC20(REFUND_ASSET); uint256 assetBalance = asset.balanceOf(REFUND_ADDRESS); @@ -168,6 +179,8 @@ contract CBridgeRefundTestPolygon is DSTest, DiamondTest { asset.balanceOf(REFUND_ADDRESS) == assetBalance + REFUND_AMOUNT ); + vm.expectRevert(WithdrawFailed.selector); + withdrawFacet.executeCallAndWithdraw( payable(CBRIDGE_ADDRESS), CALLDATA, diff --git a/test/solidity/Facets/DeBridgeDlnFacet.t.sol b/test/solidity/Facets/DeBridgeDlnFacet.t.sol index f8e4c9510..2f4fc7c02 100644 --- a/test/solidity/Facets/DeBridgeDlnFacet.t.sol +++ b/test/solidity/Facets/DeBridgeDlnFacet.t.sol @@ -5,6 +5,7 @@ import { LibAllowList, TestBaseFacet, console, ERC20, LibSwap } from "../utils/T import { DeBridgeDlnFacet } from "lifi/Facets/DeBridgeDlnFacet.sol"; import { IDlnSource } from "lifi/Interfaces/IDlnSource.sol"; import { stdJson } from "forge-std/StdJson.sol"; +import { NotInitialized, OnlyContractOwner } from "src/Errors/GenericErrors.sol"; // Stub DeBridgeDlnFacet Contract contract TestDeBridgeDlnFacet is DeBridgeDlnFacet { @@ -30,13 +31,17 @@ contract DeBridgeDlnFacetTest is TestBaseFacet { // Errors error EmptyNonEVMAddress(); + error UnknownDeBridgeChain(); + + // Events + event DeBridgeChainIdSet(uint256 indexed chainId, uint256 deBridgeChainId); function setUp() public { customBlockNumberForForking = 19279222; initTestBase(); deBridgeDlnFacet = new TestDeBridgeDlnFacet(DLN_SOURCE); - bytes4[] memory functionSelectors = new bytes4[](5); + bytes4[] memory functionSelectors = new bytes4[](7); functionSelectors[0] = deBridgeDlnFacet .startBridgeTokensViaDeBridgeDln .selector; @@ -47,7 +52,9 @@ contract DeBridgeDlnFacetTest is TestBaseFacet { functionSelectors[3] = deBridgeDlnFacet .setFunctionApprovalBySignature .selector; - functionSelectors[4] = DeBridgeDlnFacet.initDeBridgeDln.selector; + functionSelectors[4] = deBridgeDlnFacet.setDeBridgeChainId.selector; + functionSelectors[5] = deBridgeDlnFacet.getDeBridgeChainId.selector; + functionSelectors[6] = DeBridgeDlnFacet.initDeBridgeDln.selector; addFacet(diamond, address(deBridgeDlnFacet), functionSelectors); deBridgeDlnFacet = TestDeBridgeDlnFacet(address(diamond)); @@ -338,4 +345,116 @@ contract DeBridgeDlnFacetTest is TestBaseFacet { vm.expectRevert(EmptyNonEVMAddress.selector); initiateSwapAndBridgeTxWithFacet(true); } + + function test_CanSetDeBridgeChainIdFromOwner() public { + vm.startPrank(USER_DIAMOND_OWNER); + + uint256 chainId = 137; // example chain ID + uint256 deBridgeChainId = 1234; // mapped chain ID + + vm.expectEmit(true, true, true, true); + + emit DeBridgeChainIdSet(chainId, deBridgeChainId); + + deBridgeDlnFacet.setDeBridgeChainId(chainId, deBridgeChainId); + + assertEq( + deBridgeDlnFacet.getDeBridgeChainId(chainId), + deBridgeChainId + ); + + vm.stopPrank(); + } + + function testRevert_FailToSetDeBridgeChainIdFromNotOwner() public { + vm.startPrank(USER_SENDER); + + uint256 chainId = 137; + uint256 deBridgeChainId = 1234; + + vm.expectRevert(OnlyContractOwner.selector); + + deBridgeDlnFacet.setDeBridgeChainId(chainId, deBridgeChainId); + + vm.stopPrank(); + } + + function testRevert_FailsToSetDeBridgeChainIdIfNotInitialized() public { + vm.startPrank(address(0)); // address zero because facet is not set in the diamond so current contract owner is address zero + + TestDeBridgeDlnFacet uninitializedFacet = new TestDeBridgeDlnFacet( + DLN_SOURCE + ); + + vm.expectRevert(NotInitialized.selector); + + uninitializedFacet.setDeBridgeChainId(137, 1001); + + vm.stopPrank(); + } + + function test_CanGetDeBridgeChainId() public { + vm.startPrank(USER_DIAMOND_OWNER); + + uint256 chainId = 137; + uint256 deBridgeChainId = 1234; + + deBridgeDlnFacet.setDeBridgeChainId(chainId, deBridgeChainId); + + vm.stopPrank(); + + uint256 returnedChainId = deBridgeDlnFacet.getDeBridgeChainId(chainId); + + assertEq(returnedChainId, deBridgeChainId); + } + + function testRevert_FailsIfAttemptingToGetUnknownDeBridgeChainId() public { + vm.startPrank(USER_DIAMOND_OWNER); + + uint256 unknownChainId = 999999; + + vm.expectRevert(UnknownDeBridgeChain.selector); + + deBridgeDlnFacet.getDeBridgeChainId(unknownChainId); + + vm.stopPrank(); + } + + function testRevert_FailsIfAttemptingToStartBridgingWithEmptyReceiverAddress() + public + { + vm.startPrank(USER_SENDER); + + validDeBridgeDlnData.receiver = ""; // empty receiver + + vm.expectRevert(EmptyNonEVMAddress.selector); + + deBridgeDlnFacet.startBridgeTokensViaDeBridgeDln{ value: FIXED_FEE }( + bridgeData, + validDeBridgeDlnData + ); + + vm.stopPrank(); + } + + function test_CanGetStorage() public { + bytes32 namespace = keccak256("com.lifi.facets.debridgedln"); + + uint256 chainIdKey = 1; + uint256 expectedValue = 42; + + // compute the correct storage slot for `deBridgeChainId[chainIdKey]` + bytes32 storageSlot = keccak256(abi.encode(chainIdKey, namespace)); + + // store the test value in the computed slot + vm.store( + address(deBridgeDlnFacet), + storageSlot, + bytes32(expectedValue) + ); + + uint256 storedValue = deBridgeDlnFacet.getDeBridgeChainId(chainIdKey); + + assertEq(storedValue, expectedValue); + } } diff --git a/test/solidity/Facets/DexManagerFacet.t.sol b/test/solidity/Facets/DexManagerFacet.t.sol index 0ae6e6f18..e927c5201 100644 --- a/test/solidity/Facets/DexManagerFacet.t.sol +++ b/test/solidity/Facets/DexManagerFacet.t.sol @@ -6,15 +6,19 @@ import { console } from "../utils/Console.sol"; import { DiamondTest, LiFiDiamond } from "../utils/DiamondTest.sol"; import { Vm } from "forge-std/Vm.sol"; import { DexManagerFacet } from "lifi/Facets/DexManagerFacet.sol"; +import { AccessManagerFacet } from "lifi/Facets/AccessManagerFacet.sol"; +import { InvalidContract, OnlyContractOwner, CannotAuthoriseSelf, UnAuthorized, OnlyContractOwner } from "lifi/Errors/GenericErrors.sol"; contract Foo {} contract DexManagerFacetTest is DSTest, DiamondTest { address internal constant USER_PAUSER = address(0xdeadbeef); address internal constant USER_DIAMOND_OWNER = address(0x123456); + address internal constant NOT_DIAMOND_OWNER = address(0xabc123456); LiFiDiamond internal diamond; DexManagerFacet internal dexMgr; + AccessManagerFacet internal accessMgr; Foo internal c1; Foo internal c2; Foo internal c3; @@ -26,7 +30,7 @@ contract DexManagerFacetTest is DSTest, DiamondTest { c2 = new Foo(); c3 = new Foo(); - bytes4[] memory functionSelectors = new bytes4[](8); + bytes4[] memory functionSelectors = new bytes4[](9); functionSelectors[0] = DexManagerFacet.addDex.selector; functionSelectors[1] = DexManagerFacet.removeDex.selector; functionSelectors[2] = DexManagerFacet.batchAddDex.selector; @@ -42,24 +46,43 @@ contract DexManagerFacetTest is DSTest, DiamondTest { addFacet(diamond, address(dexMgr), functionSelectors); + // add AccessManagerFacet to be able to whitelist addresses for execution of protected functions + accessMgr = new AccessManagerFacet(); + + functionSelectors = new bytes4[](2); + functionSelectors[0] = accessMgr.setCanExecute.selector; + functionSelectors[1] = accessMgr.addressCanExecuteMethod.selector; + addFacet(diamond, address(accessMgr), functionSelectors); + + accessMgr = AccessManagerFacet(address(diamond)); dexMgr = DexManagerFacet(address(diamond)); - vm.startPrank(USER_DIAMOND_OWNER); } - function testCanAddDEX() public { + function test_SucceedsIfOwnerAddsDex() public { + vm.startPrank(USER_DIAMOND_OWNER); + dexMgr.addDex(address(c1)); address[] memory approved = dexMgr.approvedDexs(); assertEq(approved[0], address(c1)); + + vm.stopPrank(); } - function testCanRemoveDEX() public { + function test_SucceedsIfOwnerRemovesDex() public { + vm.startPrank(USER_DIAMOND_OWNER); + dexMgr.addDex(address(c1)); dexMgr.removeDex(address(c1)); + + vm.stopPrank(); + address[] memory approved = dexMgr.approvedDexs(); assertEq(approved.length, 0); } - function testCanBatchAddDEXs() public { + function test_SucceedsIfOwnerBatchAddsDexes() public { + vm.startPrank(USER_DIAMOND_OWNER); + address[] memory dexs = new address[](3); dexs[0] = address(c1); dexs[1] = address(c2); @@ -70,9 +93,13 @@ contract DexManagerFacetTest is DSTest, DiamondTest { assertEq(approved[1], dexs[1]); assertEq(approved[2], dexs[2]); assertEq(approved.length, 3); + + vm.stopPrank(); } - function testCanBatchRemoveDEXs() public { + function test_SucceedsIfOwnerBatchRemovesDexes() public { + vm.startPrank(USER_DIAMOND_OWNER); + address[] memory dexs = new address[](3); dexs[0] = address(c1); dexs[1] = address(c2); @@ -87,15 +114,23 @@ contract DexManagerFacetTest is DSTest, DiamondTest { address[] memory approved = dexMgr.approvedDexs(); assertEq(approved.length, 1); assertEq(approved[0], dexs[2]); + + vm.stopPrank(); } - function testCanApproveFunctionSignature() public { + function test_SucceedsIfOwnerApprovesFunctionSignature() public { + vm.startPrank(USER_DIAMOND_OWNER); + bytes4 signature = hex"faceface"; dexMgr.setFunctionApprovalBySignature(signature, true); assertTrue(dexMgr.isFunctionApproved(signature)); + + vm.stopPrank(); } - function testCanApproveBatchFunctionSignature() public { + function test_SucceedsIfOwnerBatchApprovesFunctionSignatures() public { + vm.startPrank(USER_DIAMOND_OWNER); + bytes4[] memory signatures = new bytes4[](5); signatures[0] = bytes4(hex"faceface"); signatures[1] = bytes4(hex"deadbeef"); @@ -109,29 +144,241 @@ contract DexManagerFacetTest is DSTest, DiamondTest { ++i; } } + + vm.stopPrank(); } - function testFailAddZeroAddress() public { + function testRevert_FailsIfAddingDexWithZeroAddress() public { + vm.startPrank(USER_DIAMOND_OWNER); + + vm.expectRevert(InvalidContract.selector); + dexMgr.addDex(address(0)); + + vm.stopPrank(); } - function testFailAddNonContract() public { + function testRevert_FailsIfAddingDexThatIsNotAContract() public { + vm.startPrank(USER_DIAMOND_OWNER); + + vm.expectRevert(InvalidContract.selector); + dexMgr.addDex(address(1337)); + + vm.stopPrank(); } - function testFailBatchAddZeroAddress() public { + function testRevert_FailsIfBatchAddingDexsWithZeroAddress() public { + vm.startPrank(USER_DIAMOND_OWNER); + address[] memory dexs = new address[](3); dexs[0] = address(c1); dexs[1] = address(c2); dexs[2] = address(0); + + vm.expectRevert(InvalidContract.selector); + dexMgr.batchAddDex(dexs); + + vm.stopPrank(); } - function testFailBatchAddNonContract() public { + function testRevert_FailsIfBatchAddingDexsThatAreNotAContracts() public { + vm.startPrank(USER_DIAMOND_OWNER); + address[] memory dexs = new address[](3); dexs[0] = address(c1); dexs[1] = address(c2); dexs[2] = address(1337); + + vm.expectRevert(InvalidContract.selector); + dexMgr.batchAddDex(dexs); + + vm.stopPrank(); + } + + function testRevert_FailsIfNonOwnerTriesToAddDex() public { + vm.startPrank(NOT_DIAMOND_OWNER); // prank a non-owner to attempt adding a DEX + + vm.expectRevert(UnAuthorized.selector); + + dexMgr.addDex(address(c1)); + + vm.stopPrank(); + } + + function testRevert_FailsIfNonOwnerTriesToBatchAddDex() public { + vm.startPrank(NOT_DIAMOND_OWNER); + address[] memory dexs = new address[](2); + dexs[0] = address(c1); + dexs[1] = address(c2); + + vm.expectRevert(UnAuthorized.selector); + + dexMgr.batchAddDex(dexs); + + vm.stopPrank(); + } + + function testRevert_FailsIfAddingDexThatIsDexManager() public { + vm.startPrank(USER_DIAMOND_OWNER); + + address[] memory dexs = new address[](2); + dexs[0] = address(c1); + dexs[1] = address(dexMgr); // contract itself + + vm.expectRevert(CannotAuthoriseSelf.selector); + + dexMgr.batchAddDex(dexs); + + vm.stopPrank(); + } + + function testRevert_FailsIfNonOwnerTriesToRemoveDex() public { + vm.prank(USER_DIAMOND_OWNER); + + dexMgr.addDex(address(c1)); + + vm.stopPrank(); + + vm.expectRevert(UnAuthorized.selector); + + vm.prank(NOT_DIAMOND_OWNER); + dexMgr.removeDex(address(c1)); + } + + function testRevert_FailsIfNonOwnerTriesToBatchRemoveDex() public { + address[] memory dexs = new address[](2); + dexs[0] = address(c1); + dexs[1] = address(c2); + + vm.prank(USER_DIAMOND_OWNER); + dexMgr.batchAddDex(dexs); + + vm.expectRevert(UnAuthorized.selector); + + vm.prank(NOT_DIAMOND_OWNER); + dexMgr.batchRemoveDex(dexs); + } + + function testRevert_FailsIfNonOwnerTriesToSetFunctionApprovalBySignature() + public + { + bytes4 signature = hex"faceface"; + + vm.expectRevert(UnAuthorized.selector); + + vm.prank(NOT_DIAMOND_OWNER); + dexMgr.setFunctionApprovalBySignature(signature, true); + } + + function testRevert_FailsIfNonOwnerTriesToBatchSetFunctionApprovalBySignature() + public + { + bytes4[] memory signatures = new bytes4[](3); + signatures[0] = bytes4(hex"faceface"); + signatures[1] = bytes4(hex"deadbeef"); + signatures[2] = bytes4(hex"beefbeef"); + + vm.expectRevert(UnAuthorized.selector); + + vm.prank(NOT_DIAMOND_OWNER); + dexMgr.batchSetFunctionApprovalBySignature(signatures, true); + } + + function test_SucceedsIfOwnerSetsFunctionApprovalBySignature() public { + vm.startPrank(USER_DIAMOND_OWNER); + + bytes4 signature = hex"faceface"; + + dexMgr.setFunctionApprovalBySignature(signature, true); + assertTrue(dexMgr.isFunctionApproved(signature)); + + dexMgr.setFunctionApprovalBySignature(signature, false); + assertFalse(dexMgr.isFunctionApproved(signature)); + + vm.stopPrank(); + } + + function test_SucceedsIfOwnerBatchSetsFunctionApprovalBySignature() + public + { + vm.startPrank(USER_DIAMOND_OWNER); + + bytes4[] memory signatures = new bytes4[](3); + signatures[0] = bytes4(hex"faceface"); + signatures[1] = bytes4(hex"deadbeef"); + signatures[2] = bytes4(hex"beefbeef"); + + dexMgr.batchSetFunctionApprovalBySignature(signatures, true); + for (uint256 i = 0; i < 3; i++) { + assertTrue(dexMgr.isFunctionApproved(signatures[i])); + } + + dexMgr.batchSetFunctionApprovalBySignature(signatures, false); + for (uint256 i = 0; i < 3; i++) { + assertFalse(dexMgr.isFunctionApproved(signatures[i])); + } + + vm.stopPrank(); + } + + function test_AllowsWhitelistedAddressToAddContract() public { + vm.stopPrank(); + vm.startPrank(USER_PAUSER); + vm.expectRevert(UnAuthorized.selector); + + dexMgr.addDex(address(c1)); + + // allow USER_PAUSER address to execute addDex() function + vm.startPrank(USER_DIAMOND_OWNER); + + accessMgr.setCanExecute( + DexManagerFacet.addDex.selector, + USER_PAUSER, + true + ); + + // try to call addDex() + vm.startPrank(USER_PAUSER); + + dexMgr.addDex(address(c1)); + + address[] memory approved = dexMgr.approvedDexs(); + + assertEq(approved[0], address(c1)); + } + + function test_AllowsWhitelistedAddressToBatchAddContract() public { + address[] memory dexs = new address[](2); + dexs[0] = address(c1); + dexs[1] = address(c2); + + vm.stopPrank(); + vm.startPrank(USER_PAUSER); + + vm.expectRevert(UnAuthorized.selector); + + dexMgr.batchAddDex(dexs); + + // allow USER_PAUSER address to execute batchAddDex() function + vm.startPrank(USER_DIAMOND_OWNER); + + accessMgr.setCanExecute( + DexManagerFacet.batchAddDex.selector, + USER_PAUSER, + true + ); + + // try to call addDex() + vm.startPrank(USER_PAUSER); + + dexMgr.batchAddDex(dexs); + + address[] memory approved = dexMgr.approvedDexs(); + + assertEq(approved[0], address(c1)); + assertEq(approved[1], address(c2)); } } diff --git a/test/solidity/Facets/GasZipFacet.t.sol b/test/solidity/Facets/GasZipFacet.t.sol index 5973e6787..1a574c1fe 100644 --- a/test/solidity/Facets/GasZipFacet.t.sol +++ b/test/solidity/Facets/GasZipFacet.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import { GasZipFacet } from "lifi/Facets/GasZipFacet.sol"; import { IGasZip } from "lifi/Interfaces/IGasZip.sol"; import { ILiFi, LibSwap, LibAllowList, TestBaseFacet, console, ERC20 } from "../utils/TestBaseFacet.sol"; diff --git a/test/solidity/Facets/OwnershipFacet.t.sol b/test/solidity/Facets/OwnershipFacet.t.sol index 388d0b29d..6a5c90736 100644 --- a/test/solidity/Facets/OwnershipFacet.t.sol +++ b/test/solidity/Facets/OwnershipFacet.t.sol @@ -3,46 +3,134 @@ pragma solidity ^0.8.17; import { OwnershipFacet } from "lifi/Facets/OwnershipFacet.sol"; import { LibAllowList, LibSwap, TestBase, console, LiFiDiamond } from "../utils/TestBase.sol"; +import { OnlyContractOwner } from "lifi/Errors/GenericErrors.sol"; contract OwnershipFacetTest is TestBase { OwnershipFacet internal ownershipFacet; + error NoNullOwner(); + error NewOwnerMustNotBeSelf(); + error NoPendingOwnershipTransfer(); + error NotPendingOwner(); + + event OwnershipTransferRequested( + address indexed _from, + address indexed _to + ); + + event OwnershipTransferred( + address indexed previousOwner, + address indexed newOwner + ); + function setUp() public { initTestBase(); ownershipFacet = OwnershipFacet(address(diamond)); } - function testOwnerCanTransferOwnership() public { + function test_OwnerCanTransferOwnership() public { + vm.startPrank(USER_DIAMOND_OWNER); + address newOwner = address(0x1234567890123456789012345678901234567890); + + vm.expectEmit(true, true, true, true, address(ownershipFacet)); + emit OwnershipTransferRequested(address(this), newOwner); + ownershipFacet.transferOwnership(newOwner); + assert(ownershipFacet.owner() != newOwner); + + vm.stopPrank(); vm.startPrank(newOwner); + + vm.expectEmit(true, true, true, true, address(ownershipFacet)); + emit OwnershipTransferred(address(USER_DIAMOND_OWNER), newOwner); + ownershipFacet.confirmOwnershipTransfer(); + assert(ownershipFacet.owner() == newOwner); + vm.stopPrank(); } - function testFailNonOwnerCanTransferOwnership() public { + function testRevert_CannotCancelNonPendingOwnershipTransfer() public { + assert(ownershipFacet.owner() == USER_DIAMOND_OWNER); + vm.startPrank(USER_DIAMOND_OWNER); + + vm.expectRevert(NoPendingOwnershipTransfer.selector); + + ownershipFacet.cancelOwnershipTransfer(); + + assert(ownershipFacet.owner() == USER_DIAMOND_OWNER); + + vm.stopPrank(); + } + + function test_OwnerCanCancelOwnershipTransfer() public { + address newOwner = address(0x1234567890123456789012345678901234567890); + + ownershipFacet.transferOwnership(newOwner); + + assert(ownershipFacet.owner() != newOwner); + + ownershipFacet.cancelOwnershipTransfer(); + + assert(ownershipFacet.owner() != newOwner); + } + + function testRevert_NonOwnerCannotCancelOwnershipTransfer() public { + address newOwner = address(0x1234567890123456789012345678901234567890); + + ownershipFacet.transferOwnership(newOwner); + + assert(ownershipFacet.owner() != newOwner); + + vm.startPrank(newOwner); + + vm.expectRevert(OnlyContractOwner.selector); + + ownershipFacet.cancelOwnershipTransfer(); + + assert(ownershipFacet.owner() != newOwner); + + vm.stopPrank(); + } + + function testRevert_NonOwnerCannotTransferOwnership() public { address newOwner = address(0x1234567890123456789012345678901234567890); assert(ownershipFacet.owner() != newOwner); vm.prank(newOwner); + + vm.expectRevert(OnlyContractOwner.selector); + ownershipFacet.transferOwnership(newOwner); } - function testFailOnwershipTransferToNullAddr() public { - address newOwner = address(0x0); + function testRevert_CannotTransferOnwershipToNullAddr() public { + address newOwner = address(0); + + vm.expectRevert(NoNullOwner.selector); + ownershipFacet.transferOwnership(newOwner); } - function testFailOwnerCanConfirmPendingOwnershipTransfer() public { + function testRevert_PendingOwnershipTransferCannotBeConfirmedByNonNewOwner() + public + { address newOwner = address(0x1234567890123456789012345678901234567890); ownershipFacet.transferOwnership(newOwner); + + vm.expectRevert(NotPendingOwner.selector); + ownershipFacet.confirmOwnershipTransfer(); } - function testFailOwnershipTransferToSelf() public { + function testRevert_CannotTransferOwnershipToSelf() public { address newOwner = address(this); + + vm.expectRevert(NewOwnerMustNotBeSelf.selector); + ownershipFacet.transferOwnership(newOwner); } } diff --git a/test/solidity/Facets/RelayFacet.t.sol b/test/solidity/Facets/RelayFacet.t.sol index 0ac283bfe..6da0edd98 100644 --- a/test/solidity/Facets/RelayFacet.t.sol +++ b/test/solidity/Facets/RelayFacet.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import { LibAllowList, TestBaseFacet, console, ERC20, LibAsset, LibSwap } from "../utils/TestBaseFacet.sol"; import { RelayFacet } from "lifi/Facets/RelayFacet.sol"; @@ -654,14 +654,9 @@ contract RelayFacetTest is TestBaseFacet { vm.stopPrank(); } - function testFail_RevertIsBubbledWhenBridgingTokensFails() + function testRevert_RevertIsBubbledUpWhenBridgingERC20TokensFails() public virtual - assertBalanceChange( - ADDRESS_USDC, - USER_SENDER, - -int256(defaultUSDCAmount) - ) assertBalanceChange(ADDRESS_USDC, USER_RECEIVER, 0) assertBalanceChange(ADDRESS_DAI, USER_SENDER, 0) assertBalanceChange(ADDRESS_DAI, USER_RECEIVER, 0) @@ -681,19 +676,16 @@ contract RelayFacetTest is TestBaseFacet { "I always revert" ); - vm.expectRevert("I always revert"); + vm.expectRevert(); + initiateBridgeTxWithFacet(false); + vm.stopPrank(); } - function testFail_RevertIsBubbledWhenBridgingNativeTokensFails() + function testRevert_RevertIsBubbledUpWhenBridgingNativeTokensFails() public virtual - assertBalanceChange( - address(0), - USER_SENDER, - -int256((defaultNativeAmount + addToMessageValue)) - ) assertBalanceChange(address(0), USER_RECEIVER, 0) assertBalanceChange(ADDRESS_USDC, USER_SENDER, 0) assertBalanceChange(ADDRESS_DAI, USER_SENDER, 0) @@ -706,8 +698,10 @@ contract RelayFacetTest is TestBaseFacet { _makeRevertable(RELAY_RECEIVER); - vm.expectRevert("I always revert"); + vm.expectRevert(); + initiateBridgeTxWithFacet(true); + vm.stopPrank(); } diff --git a/test/solidity/Helpers/TransferrableOwnership.t.sol b/test/solidity/Helpers/TransferrableOwnership.t.sol index 6d1f445f5..e5a16983a 100644 --- a/test/solidity/Helpers/TransferrableOwnership.t.sol +++ b/test/solidity/Helpers/TransferrableOwnership.t.sol @@ -4,11 +4,17 @@ pragma solidity ^0.8.17; import { DSTest } from "ds-test/test.sol"; import { Vm } from "forge-std/Vm.sol"; import { TransferrableOwnership } from "lifi/Helpers/TransferrableOwnership.sol"; +import { OnlyContractOwner, UnAuthorized } from "lifi/Errors/GenericErrors.sol"; contract TransferrableOwnershipTest is DSTest { TransferrableOwnership internal ownable; Vm internal immutable vm = Vm(HEVM_ADDRESS); + error NoNullOwner(); + error NewOwnerMustNotBeSelf(); + error NoPendingOwnershipTransfer(); + error NotPendingOwner(); + function setUp() public { ownable = new TransferrableOwnership(address(this)); } @@ -23,26 +29,43 @@ contract TransferrableOwnershipTest is DSTest { vm.stopPrank(); } - function testFailNonOwnerCanTransferOwnership() public { + function testRevert_NonOwnerCannotTransferOwnership() public { address newOwner = address(0x1234567890123456789012345678901234567890); + assert(ownable.owner() != newOwner); + vm.prank(newOwner); + + vm.expectRevert(UnAuthorized.selector); + ownable.transferOwnership(newOwner); } - function testFailOnwershipTransferToNullAddr() public { - address newOwner = address(0x0); + function testRevert_CannotTransferOnwershipToNullAddr() public { + address newOwner = address(0); + + vm.expectRevert(NoNullOwner.selector); + ownable.transferOwnership(newOwner); } - function testFailOwnerCanConfirmPendingOwnershipTransfer() public { + function testRevert_PendingOwnershipTransferCannotBeConfirmedByNonNewOwner() + public + { address newOwner = address(0x1234567890123456789012345678901234567890); + ownable.transferOwnership(newOwner); + + vm.expectRevert(NotPendingOwner.selector); + ownable.confirmOwnershipTransfer(); } - function testFailOwnershipTransferToSelf() public { + function testRevert_CannotTransferOwnershipToSelf() public { address newOwner = address(this); + + vm.expectRevert(NewOwnerMustNotBeSelf.selector); + ownable.transferOwnership(newOwner); } } diff --git a/test/solidity/Helpers/WithdrawablePeriphery.t.sol b/test/solidity/Helpers/WithdrawablePeriphery.t.sol index bba1a0f12..cf46c8779 100644 --- a/test/solidity/Helpers/WithdrawablePeriphery.t.sol +++ b/test/solidity/Helpers/WithdrawablePeriphery.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT /// @custom:version 1.0.0 -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import { WithdrawablePeriphery } from "lifi/Helpers/WithdrawablePeriphery.sol"; diff --git a/test/solidity/Periphery/Executor.t.sol b/test/solidity/Periphery/Executor.t.sol index a1c8652c6..704664c7b 100644 --- a/test/solidity/Periphery/Executor.t.sol +++ b/test/solidity/Periphery/Executor.t.sol @@ -6,11 +6,11 @@ import { console } from "../utils/Console.sol"; import { Vm } from "forge-std/Vm.sol"; import { Executor } from "lifi/Periphery/Executor.sol"; import { ERC20Proxy } from "lifi/Periphery/ERC20Proxy.sol"; -import { ILiFi } from "lifi/Interfaces/ILiFi.sol"; import { TestAMM } from "../utils/TestAMM.sol"; import { TestToken as ERC20 } from "../utils/TestToken.sol"; import { LibSwap } from "lifi/Libraries/LibSwap.sol"; import { UniswapV2Router02 } from "../utils/Interfaces.sol"; +import { UnAuthorized } from "lifi/Errors/GenericErrors.sol"; // Stub Vault Contract contract Vault { @@ -548,7 +548,7 @@ contract ExecutorTest is DSTest { assertEq(tokenD.balanceOf(address(vault)), 100 ether); } - function testFailWhenCallingERC20ProxyDirectly() public { + function testRevert_DoesNotAllowToCallERC20ProxyDirectly() public { ERC20 tokenA = new ERC20("Token A", "TOKA", 18); ERC20 tokenB = new ERC20("Token B", "TOKB", 18); @@ -556,8 +556,8 @@ contract ExecutorTest is DSTest { // Get some Token B swapData[0] = LibSwap.SwapData( - address(amm), - address(amm), + address(erc20Proxy), + address(erc20Proxy), address(tokenA), address(tokenB), 0.2 ether, @@ -573,6 +573,8 @@ contract ExecutorTest is DSTest { tokenA.mint(address(this), 1 ether); tokenA.approve(address(erc20Proxy), 1 ether); + vm.expectRevert(UnAuthorized.selector); + executor.swapAndExecute( "", swapData, diff --git a/test/solidity/Periphery/FeeCollector.t.sol b/test/solidity/Periphery/FeeCollector.t.sol index f30085145..99bb26314 100644 --- a/test/solidity/Periphery/FeeCollector.t.sol +++ b/test/solidity/Periphery/FeeCollector.t.sol @@ -6,6 +6,7 @@ import { console } from "../utils/Console.sol"; import { Vm } from "forge-std/Vm.sol"; import { FeeCollector } from "lifi/Periphery/FeeCollector.sol"; import { TestToken as ERC20 } from "../utils/TestToken.sol"; +import { UnAuthorized } from "lifi/Errors/GenericErrors.sol"; contract FeeCollectorTest is DSTest { Vm internal immutable vm = Vm(HEVM_ADDRESS); @@ -184,11 +185,14 @@ contract FeeCollectorTest is DSTest { assert(feeToken.balanceOf(address(feeCollector)) == 1 ether); } - function testFailWhenNonOwnerAttemptsToWithdrawLifiFees() public { + function testRevert_NonOwnerCannotWithdrawLifiFees() public { // Arrange uint256 integratorFee = 1 ether; uint256 lifiFee = 0.015 ether; + feeToken.approve(address(feeCollector), integratorFee + lifiFee); + + // make sure feeCollector has collected fees feeCollector.collectTokenFees( address(feeToken), integratorFee, @@ -198,20 +202,27 @@ contract FeeCollectorTest is DSTest { // Act vm.prank(address(0xb33f)); + + vm.expectRevert(UnAuthorized.selector); + feeCollector.withdrawLifiFees(address(feeToken)); } - function testFailWhenNonOwnerAttemptsToBatchWithdrawLifiFees() public { + function testRevert_NonOwnerCannotBatchWithdrawLifiFees() public { // Arranges.newOwner uint256 integratorFee = 1 ether; uint256 lifiFee = 0.015 ether; + feeToken.approve(address(feeCollector), integratorFee + lifiFee); + + // make sure feeCollector has collected fees feeCollector.collectTokenFees( address(feeToken), integratorFee, lifiFee, address(0xb33f) ); + feeCollector.collectNativeFees{ value: integratorFee + lifiFee }( integratorFee, lifiFee, @@ -222,7 +233,11 @@ contract FeeCollectorTest is DSTest { address[] memory tokens = new address[](2); tokens[0] = address(feeToken); tokens[1] = address(0); + vm.prank(address(0xb33f)); + + vm.expectRevert(UnAuthorized.selector); + feeCollector.batchWithdrawLifiFees(tokens); } @@ -236,26 +251,15 @@ contract FeeCollectorTest is DSTest { vm.stopPrank(); } - function testFailNonOwnerCanTransferOwnership() public { + function testRevert_NonOwnerCannotTransferOwnership() public { address newOwner = address(0x1234567890123456789012345678901234567890); + assert(feeCollector.owner() != newOwner); - vm.prank(newOwner); - feeCollector.transferOwnership(newOwner); - } - function testFailOnwershipTransferToNullAddr() public { - address newOwner = address(0x0); - feeCollector.transferOwnership(newOwner); - } + vm.prank(newOwner); - function testFailOwnerCanConfirmPendingOwnershipTransfer() public { - address newOwner = address(0x1234567890123456789012345678901234567890); - feeCollector.transferOwnership(newOwner); - feeCollector.confirmOwnershipTransfer(); - } + vm.expectRevert(UnAuthorized.selector); - function testFailOwnershipTransferToSelf() public { - address newOwner = address(this); feeCollector.transferOwnership(newOwner); } } diff --git a/test/solidity/Periphery/GasZipPeriphery.t.sol b/test/solidity/Periphery/GasZipPeriphery.t.sol index 2de0cfb02..58ca076fc 100644 --- a/test/solidity/Periphery/GasZipPeriphery.t.sol +++ b/test/solidity/Periphery/GasZipPeriphery.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import { GasZipPeriphery } from "lifi/Periphery/GasZipPeriphery.sol"; import { LibSwap } from "lifi/Libraries/LibSwap.sol"; diff --git a/test/solidity/Periphery/Permit2Proxy.t.sol b/test/solidity/Periphery/Permit2Proxy.t.sol index 6f7fdb9ed..8ef1caf78 100644 --- a/test/solidity/Periphery/Permit2Proxy.t.sol +++ b/test/solidity/Periphery/Permit2Proxy.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import { TestBase, ILiFi, console, ERC20 } from "../utils/TestBase.sol"; import { Permit2Proxy } from "lifi/Periphery/Permit2Proxy.sol"; diff --git a/test/solidity/utils/MockFailingContract.sol b/test/solidity/utils/MockFailingContract.sol new file mode 100644 index 000000000..0d2adf896 --- /dev/null +++ b/test/solidity/utils/MockFailingContract.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +contract MockFailingContract { + fallback() external payable { + revert("Always fails"); + } +} diff --git a/yarn.lock b/yarn.lock index 502830063..689d6ff68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,7 +12,7 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== -"@adraffy/ens-normalize@^1.10.1": +"@adraffy/ens-normalize@^1.10.1", "@adraffy/ens-normalize@^1.8.8": version "1.11.0" resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33" integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg== @@ -242,15 +242,7 @@ bufio "^1.0.7" chai "^4.3.4" -"@ethereumjs/common@2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" - integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.1" - -"@ethereumjs/common@2.6.5", "@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.1", "@ethereumjs/common@^2.6.4": +"@ethereumjs/common@^2.6.1": version "2.6.5" resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== @@ -263,13 +255,10 @@ resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== -"@ethereumjs/tx@3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" - integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== - dependencies: - "@ethereumjs/common" "^2.5.0" - ethereumjs-util "^7.1.2" +"@ethereumjs/rlp@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-5.0.2.tgz#c89bd82f2f3bec248ab2d517ae25f5bbc4aac842" + integrity sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA== "@ethereumjs/tx@3.5.0": version "3.5.0" @@ -279,14 +268,6 @@ "@ethereumjs/common" "^2.6.1" ethereumjs-util "^7.1.4" -"@ethereumjs/tx@3.5.2", "@ethereumjs/tx@^3.3.2": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" - integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== - dependencies: - "@ethereumjs/common" "^2.6.4" - ethereumjs-util "^7.1.5" - "@ethereumjs/util@^8.1.0": version "8.1.0" resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" @@ -296,7 +277,7 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -1206,16 +1187,6 @@ "@noble/hashes" "~1.5.0" "@scure/base" "~1.1.8" -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - "@solana/buffer-layout@^4 || ^3", "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" @@ -1286,13 +1257,18 @@ rpc-websockets "^9.0.2" superstruct "^2.0.2" -"@solidity-parser/parser@^0.14.0", "@solidity-parser/parser@^0.14.1", "@solidity-parser/parser@^0.14.5": +"@solidity-parser/parser@^0.14.1", "@solidity-parser/parser@^0.14.5": version "0.14.5" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== dependencies: antlr4ts "^0.5.0-alpha.4" +"@solidity-parser/parser@^0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.19.0.tgz#37a8983b2725af9b14ff8c4a475fa0e98d773c3f" + integrity sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA== + "@swc/helpers@^0.5.11": version "0.5.11" resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.11.tgz#5bab8c660a6e23c13b2d23fcd1ee44a2db1b0cb7" @@ -1300,51 +1276,6 @@ dependencies: tslib "^2.4.0" -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@truffle/error@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.1.1.tgz#e52026ac8ca7180d83443dca73c03e07ace2a301" - integrity sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA== - -"@truffle/interface-adapter@^0.5.25": - version "0.5.25" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.25.tgz#8a62740a48de1a5fa6ecf354b5b7fc73179cce30" - integrity sha512-7EpA9Tyq9It2z7GaLPHljEdmCtVFAkYko6vxXbN+H5PdL6zjEOw66bzMbKisKkh3px5dUd1OlRwPljjs34dpAQ== - dependencies: - bn.js "^5.1.3" - ethers "^4.0.32" - web3 "1.7.4" - -"@truffle/provider@^0.2.24": - version "0.2.64" - resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.64.tgz#7dd55117307fd019dcf81d08db5dc2bc5728f51c" - integrity sha512-ZwPsofw4EsCq/2h0t73SPnnFezu4YQWBmK4FxFaOUX0F+o8NsZuHKyfJzuZwyZbiktYmefM3yD9rM0Dj4BhNbw== - dependencies: - "@truffle/error" "^0.1.1" - "@truffle/interface-adapter" "^0.5.25" - debug "^4.3.1" - web3 "1.7.4" - "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -1387,16 +1318,6 @@ dependencies: "@types/node" "*" -"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" - integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - "@types/connect@^3.4.33": version "3.4.38" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" @@ -1425,11 +1346,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - "@types/inquirer@^8.2.1": version "8.2.6" resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.2.6.tgz#abd41a5fb689c7f1acb12933d787d4262a02a0ab" @@ -1455,13 +1371,6 @@ dependencies: "@types/node" "*" -"@types/keyv@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - "@types/liftoff@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/liftoff/-/liftoff-4.0.0.tgz#d4a100d356529776ad47fee2a9ce8f1f1ffe3772" @@ -1552,13 +1461,6 @@ dependencies: "@types/node" "*" -"@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -1583,6 +1485,13 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== +"@types/ws@8.5.3": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" @@ -1796,6 +1705,11 @@ abbrev@^2.0.0: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== +abitype@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.7.1.tgz#16db20abe67de80f6183cf75f3de1ff86453b745" + integrity sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ== + abitype@0.9.8: version "0.9.8" resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.8.tgz#1f120b6b717459deafd213dfbf3a3dd1bf10ae8c" @@ -1818,7 +1732,7 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -abortcontroller-polyfill@^1.7.3, abortcontroller-polyfill@^1.7.5: +abortcontroller-polyfill@^1.7.5: version "1.7.5" resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== @@ -1837,14 +1751,6 @@ abstract-leveldown@~2.7.1: dependencies: xtend "~4.0.0" -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1865,11 +1771,6 @@ acorn@^8.4.1, acorn@^8.8.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== -address@^1.0.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" @@ -1909,7 +1810,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.6.1, ajv@^6.9.1: +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.6.1, ajv@^6.9.1: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1935,7 +1836,7 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== -ansi-colors@^4.1.1: +ansi-colors@^4.1.1, ansi-colors@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== @@ -2001,6 +1902,14 @@ antlr4ts@^0.5.0-alpha.4: resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -2033,11 +1942,6 @@ array-each@^1.0.1: resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" @@ -2084,28 +1988,6 @@ arrify@^2.0.0, arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -2126,11 +2008,6 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - async-retry@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" @@ -2150,11 +2027,6 @@ async@^2.0.1: dependencies: lodash "^4.17.14" -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - atomic-sleep@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" @@ -2165,16 +2037,6 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - axios@^0.21.1, axios@^0.21.2: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" @@ -2194,7 +2056,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2, base-x@^3.0.8: +base-x@^3.0.2: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -2206,13 +2068,6 @@ base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -2245,6 +2100,11 @@ bignumber.js@^9.0.1: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + bindings@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -2275,11 +2135,6 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -2290,34 +2145,16 @@ bn.js@5.0.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.0.0.tgz#5c3d398021b3ddb548c1296a16f857e908f35c70" integrity sha512-bVwDX8AF+72fIUNuARelKAlQUNtPOfG2fRxorbVvFk4zpHbqLrPdOGfVg5vrKwVzLLePqPBiATaOZNELQzmS0A== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.20.1, body-parser@^1.16.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - borsh@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" @@ -2349,12 +2186,24 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: +browser-stdout@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -2366,48 +2215,6 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -2439,11 +2246,6 @@ buffer-reverse@^1.0.1: resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60" integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg== -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== - buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -2466,7 +2268,7 @@ buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2486,11 +2288,6 @@ bufio@^1.0.7: resolved "https://registry.yarnpkg.com/bufio/-/bufio-1.2.0.tgz#b9ad1c06b0d9010363c387c39d2810a7086d143f" integrity sha512-UlFk8z/PwdhYQTXSQQagwGAdtRI83gib2n4uy4rQnenxUM2yQi8lBDzF230BNk+3wAoZDxYRoBwVVUPgHa9MCA== -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - cacache@^18.0.0: version "18.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.4.tgz#4601d7578dadb59c66044e157d02a3314682d6a5" @@ -2509,42 +2306,6 @@ cacache@^18.0.0: tar "^6.1.11" unique-filename "^3.0.0" -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-lookup@^6.0.4: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" - integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2585,6 +2346,11 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + capital-case@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" @@ -2594,11 +2360,6 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - chai@^4.3.4: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" @@ -2667,10 +2428,20 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== -chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" chownr@^2.0.0: version "2.0.0" @@ -2682,17 +2453,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2708,11 +2468,6 @@ citty@^0.1.6: dependencies: consola "^3.2.3" -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -2784,13 +2539,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -2825,13 +2573,6 @@ colorette@^2.0.19: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - command-line-args@^5.1.1: version "5.2.1" resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" @@ -2896,60 +2637,11 @@ constant-case@^3.0.4: tslib "^2.0.3" upper-case "^2.0.2" -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cookiejar@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@^2.8.1: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - cosmiconfig@^5.0.7: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -2960,19 +2652,11 @@ cosmiconfig@^5.0.7: js-yaml "^3.13.1" parse-json "^4.0.0" -crc-32@^1.2.0: +crc-32@^1.2.0, crc-32@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -2984,7 +2668,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -3008,13 +2692,6 @@ cross-env@^7.0.2: dependencies: cross-spawn "^7.0.1" -cross-fetch@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - cross-fetch@^3.1.5: version "3.1.8" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" @@ -3049,23 +2726,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - crypto-js@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" @@ -3084,25 +2744,11 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - death@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -3110,6 +2756,13 @@ debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -3124,6 +2777,18 @@ debug@^4.3.1: dependencies: ms "2.1.2" +debug@^4.3.5: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + decimal.js-light@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" @@ -3139,20 +2804,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - deep-eql@^4.1.2: version "4.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" @@ -3199,16 +2850,6 @@ defender-relay-client@^1.26.0: lodash "^4.17.19" node-fetch "^2.6.0" -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - deferred-leveldown@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" @@ -3243,55 +2884,27 @@ delay@^5.0.0: resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== -detect-port@^1.3.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" - integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== - dependencies: - address "^1.0.1" - debug "4" - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + +difflib@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e" + integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w== dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" + heap ">= 0.2.0" dir-glob@^3.0.1: version "3.0.1" @@ -3314,11 +2927,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -3337,11 +2945,6 @@ dotenv@^8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - duplexify@^4.0.0, duplexify@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" @@ -3357,14 +2960,6 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -3372,12 +2967,7 @@ ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: dependencies: safe-buffer "^5.0.1" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -3410,11 +3000,6 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -3422,7 +3007,7 @@ encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -3581,11 +3166,6 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -3857,40 +3437,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26: - version "0.1.29" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" - integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - eth-sig-util@^2.5.3: version "2.5.4" resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-2.5.4.tgz#577b01fe491b6bf59b0464be09633e20c1677bc5" @@ -4009,7 +3555,7 @@ ethereumjs-util@^6.0.0: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -4033,21 +3579,6 @@ ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereu tslib "2.4.0" ws "8.5.0" -ethers@^4.0.32: - version "4.0.49" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" - integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - dependencies: - aes-js "3.0.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - ethers@^5.1.0, ethers@^5.5.1, ethers@^5.7.0: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" @@ -4125,7 +3656,7 @@ events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== @@ -4160,43 +3691,6 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -express@^4.14.0: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - ext@^1.1.2: version "1.7.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" @@ -4204,7 +3698,7 @@ ext@^1.1.2: dependencies: type "^2.7.2" -extend@^3.0.2, extend@~3.0.2: +extend@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -4218,16 +3712,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - eyes@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" @@ -4336,18 +3820,12 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" + to-regex-range "^5.0.1" find-replace@^3.0.0: version "3.0.0" @@ -4414,6 +3892,11 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" @@ -4456,35 +3939,6 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data-encoder@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" - integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - fs-extra@^10.0.1: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -4494,15 +3948,6 @@ fs-extra@^10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -4521,13 +3966,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -4547,7 +3985,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.3: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -4615,20 +4053,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: has "^1.0.3" has-symbols "^1.0.3" -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -4649,13 +4073,6 @@ get-tsconfig@^4.7.5: dependencies: resolve-pkg-maps "^1.0.0" -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - ghost-testrpc@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" @@ -4664,7 +4081,7 @@ ghost-testrpc@^0.0.2: chalk "^2.4.2" node-emoji "^1.10.0" -glob-parent@^5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -4725,6 +4142,17 @@ glob@^7.0.0, glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -4761,14 +4189,6 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -global@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -4866,59 +4286,6 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -got@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" - integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== - dependencies: - "@sindresorhus/is" "^4.6.0" - "@szmarczak/http-timer" "^5.0.1" - "@types/cacheable-request" "^6.0.2" - "@types/responselike" "^1.0.0" - cacheable-lookup "^6.0.4" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - form-data-encoder "1.7.1" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^2.0.0" - -got@9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -got@^11.8.5: - version "11.8.6" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" - integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - graceful-fs@^4.1.11: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -4955,19 +4322,6 @@ handlebars@^4.0.1, handlebars@^4.4.3: optionalDependencies: uglify-js "^3.1.4" -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -5023,14 +4377,6 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -5039,6 +4385,11 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + header-case@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" @@ -5047,6 +4398,11 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" +"heap@>= 0.2.0": + version "0.2.7" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== + highland@^2.13.5: version "2.13.5" resolved "https://registry.yarnpkg.com/highland/-/highland-2.13.5.tgz#d55cd8ac3f67a00fad79918668d51493222cfcc2" @@ -5070,27 +4426,11 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - http-https@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" @@ -5104,31 +4444,6 @@ http-proxy-agent@^7.0.0: agent-base "^7.1.0" debug "^4.3.4" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -5162,7 +4477,7 @@ husky@^8.0.1: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5176,13 +4491,6 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -5242,7 +4550,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5319,11 +4627,6 @@ ip-address@^9.0.5: jsbn "1.1.0" sprintf-js "^1.1.3" -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -5352,6 +4655,13 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -5416,11 +4726,6 @@ is-fullwidth-code-point@^4.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - is-generator-function@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" @@ -5428,7 +4733,7 @@ is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -5482,6 +4787,11 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -5549,7 +4859,7 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.3: gopd "^1.0.1" has-tostringtag "^1.0.0" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== @@ -5646,6 +4956,11 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + isows@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" @@ -5656,11 +4971,6 @@ isows@1.0.6: resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7" integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw== -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - jackspeak@^3.1.2: version "3.4.3" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" @@ -5716,11 +5026,6 @@ js-sdsl@^4.1.4: resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== -js-sha3@0.5.7, js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -5756,11 +5061,6 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -5768,16 +5068,6 @@ json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -5788,17 +5078,12 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== @@ -5836,16 +5121,6 @@ jsonschema@^1.2.4: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - jwa@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" @@ -5872,20 +5147,6 @@ keccak@^3.0.0: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -keyv@^4.0.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== - dependencies: - json-buffer "3.0.1" - kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -6103,21 +5364,6 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - lru-cache@^10.0.1, lru-cache@^10.2.0: version "10.4.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" @@ -6184,11 +5430,6 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - memdown@^1.0.0: version "1.4.1" resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" @@ -6201,11 +5442,6 @@ memdown@^1.0.0: ltgt "~2.2.0" safe-buffer "~5.1.1" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -6241,11 +5477,6 @@ merkletreejs@^0.3.11: treeify "^1.1.0" web3-utils "^1.3.4" -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - micro-ftch@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" @@ -6259,31 +5490,6 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -6299,23 +5505,6 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== - dependencies: - dom-walk "^0.1.0" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -6333,6 +5522,13 @@ minimalistic-crypto-utils@^1.0.1: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1, minimatch@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.4: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" @@ -6384,14 +5580,6 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - minipass@^3.0.0: version "3.3.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" @@ -6409,13 +5597,6 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -6424,29 +5605,43 @@ minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== +mkdirp@0.5.x, mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - mkdirp "*" + minimist "^1.2.6" -mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== +mocha@^10.2.0: + version "10.8.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.8.2.tgz#8d8342d016ed411b12a429eb731b825f961afb96" + integrity sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg== dependencies: - minimist "^1.2.6" - -mock-fs@^4.1.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" - integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" moment@^2.29.4: version "2.29.4" @@ -6463,51 +5658,11 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: +ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -6518,11 +5673,6 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nano-json-stream-parser@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" - integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== - natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -6533,7 +5683,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@0.6.3, negotiator@^0.6.3: +negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -6573,7 +5723,7 @@ node-emoji@^1.10.0: dependencies: lodash "^4.17.21" -node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -6646,21 +5796,11 @@ nopt@^7.0.0: dependencies: abbrev "^2.0.0" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - notify-send@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/notify-send/-/notify-send-0.1.2.tgz#23c197bb1ea34805d6d9a77e61b40fd76e1bb80a" @@ -6681,16 +5821,6 @@ number-to-bn@1.7.0: bn.js "4.11.6" strip-hex-prefix "1.0.0" -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - object-hash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" @@ -6777,14 +5907,7 @@ on-exit-leak-free@^2.1.0: resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@1.x, once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -6892,21 +6015,6 @@ ox@0.6.7: abitype "^1.0.6" eventemitter3 "5.0.1" -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -6948,17 +6056,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-filepath@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -6968,11 +6065,6 @@ parse-filepath@^1.0.2: map-cache "^0.2.0" path-root "^0.1.1" -parse-headers@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" - integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -6986,11 +6078,6 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - pascal-case@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" @@ -7082,11 +6169,6 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -7097,7 +6179,7 @@ pathval@^1.1.1: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== -pbkdf2@^3.0.17, pbkdf2@^3.0.3: +pbkdf2@^3.0.17: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -7108,12 +6190,7 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -7217,11 +6294,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -7338,66 +6410,16 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - query-string@6.8.1: version "6.8.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.1.tgz#62c54a7ef37d01b538c8fd56f95740c81d438a26" @@ -7407,15 +6429,6 @@ query-string@6.8.1: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -7426,41 +6439,13 @@ quick-format-unescaped@^4.0.3: resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - readable-stream@^1.0.33: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -7513,6 +6498,13 @@ readable-stream@~1.0.15: isarray "0.0.1" string_decoder "~0.10.x" +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + real-require@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" @@ -7573,42 +6565,11 @@ regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -request@^2.79.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" @@ -7655,20 +6616,6 @@ resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== - dependencies: - lowercase-keys "^1.0.0" - -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -7818,7 +6765,7 @@ rxjs@^7.5.5: dependencies: tslib "^2.1.0" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -7842,7 +6789,7 @@ safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61" integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -7867,12 +6814,7 @@ sc-istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -7925,25 +6867,6 @@ semver@~5.4.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" @@ -7953,42 +6876,18 @@ sentence-case@^3.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" - integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: - body-parser "^1.16.0" - cors "^2.8.1" - express "^4.14.0" - request "^2.79.0" - xhr "^2.3.3" - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== + randombytes "^2.1.0" setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -8049,20 +6948,6 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.2" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" - integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -8177,29 +7062,30 @@ solidity-comments-extractor@^0.0.7: resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== -solidity-coverage@^0.7.20: - version "0.7.22" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.22.tgz#168f414be4c0f5303addcf3ab9714cf64f72c080" - integrity sha512-I6Zd5tsFY+gmj1FDIp6w7OrUePx6ZpMgKQZg7dWgPaQHePLi3Jk+iJ8lwZxsWEoNy2Lcv91rMxATWHqRaFdQpw== +solidity-coverage@^0.8.14: + version "0.8.14" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.8.14.tgz#db9bfcc10e3bc369fc074b35b267d665bcc6ae2e" + integrity sha512-ItAAObe5GaEOp20kXC2BZRnph+9P7Rtoqg2mQc2SXGEHgSDF2wWd1Wxz3ntzQWXkbCtIIGdJT918HG00cObwbA== dependencies: - "@solidity-parser/parser" "^0.14.0" - "@truffle/provider" "^0.2.24" + "@ethersproject/abi" "^5.0.9" + "@solidity-parser/parser" "^0.19.0" chalk "^2.4.2" death "^1.1.0" - detect-port "^1.3.0" + difflib "^0.2.4" fs-extra "^8.1.0" ghost-testrpc "^0.0.2" global-modules "^2.0.0" globby "^10.0.1" jsonschema "^1.2.4" - lodash "^4.17.15" + lodash "^4.17.21" + mocha "^10.2.0" node-emoji "^1.10.0" pify "^4.0.1" recursive-readdir "^2.2.2" sc-istanbul "^0.4.5" semver "^7.3.4" shelljs "^0.8.3" - web3-utils "^1.3.0" + web3-utils "^1.3.6" sonic-boom@^2.2.1: version "2.8.0" @@ -8254,21 +7140,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - ssri@^10.0.0: version "10.0.6" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" @@ -8276,11 +7147,6 @@ ssri@^10.0.0: dependencies: minipass "^7.0.3" -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - stdin-discarder@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" @@ -8300,11 +7166,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -8483,28 +7344,18 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -swarm-js@^0.1.40: - version "0.1.42" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" - integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^11.8.5" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - table-layout@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" @@ -8525,19 +7376,6 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -tar@^4.0.2: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - tar@^6.1.11, tar@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" @@ -8579,11 +7417,6 @@ thread-stream@^2.0.0: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== - tiny-invariant@^1.1.0: version "1.3.1" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" @@ -8613,11 +7446,6 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -8630,19 +7458,6 @@ toformat@^2.0.0: resolved "https://registry.yarnpkg.com/toformat/-/toformat-2.0.0.tgz#7a043fd2dfbe9021a4e36e508835ba32056739d8" integrity sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ== -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -8764,23 +7579,11 @@ tsx@^4.19.2: optionalDependencies: fsevents "~2.3.3" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - tweetnacl-util@^0.15.0: version "0.15.1" resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" @@ -8815,14 +7618,6 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - type@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" @@ -8881,11 +7676,6 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -8940,11 +7730,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - upper-case-first@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" @@ -8966,18 +7751,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== - utf-8-validate@^5.0.2: version "5.0.10" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" @@ -8995,7 +7768,7 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0, util@^0.12.5: +util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -9006,36 +7779,11 @@ util@^0.12.0, util@^0.12.5: is-typed-array "^1.1.3" which-typed-array "^1.1.2" -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -9046,25 +7794,6 @@ v8flags@^4.0.0: resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-4.0.0.tgz#dcacd1e0b20a7919cc48022b1bf2d95adb175e83" integrity sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg== -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - viem@^1.6.0: version "1.21.4" resolved "https://registry.yarnpkg.com/viem/-/viem-1.21.4.tgz#883760e9222540a5a7e0339809202b45fe6a842d" @@ -9100,33 +7829,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web3-bzz@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.4.tgz#dcc787970767d9004c73d11d0eeef774ce16b880" - integrity sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - -web3-bzz@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.4.tgz#9419e606e38a9777443d4ce40506ebd796e06075" - integrity sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - -web3-bzz@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.1.tgz#81397be5ce262d03d82b92e9d8acc11f8a609ea1" - integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - web3-core-helpers@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz#bd2b4140df2016d5dd3bb2b925fc29ad8678677c" @@ -9135,22 +7837,6 @@ web3-core-helpers@1.10.4: web3-eth-iban "1.10.4" web3-utils "1.10.4" -web3-core-helpers@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz#f8f808928560d3e64e0c8d7bdd163aa4766bcf40" - integrity sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg== - dependencies: - web3-eth-iban "1.7.4" - web3-utils "1.7.4" - -web3-core-helpers@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz#7904747b23fd0afa4f2c86ed98ea9418ccad7672" - integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== - dependencies: - web3-eth-iban "1.8.1" - web3-utils "1.8.1" - web3-core-method@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.4.tgz#566b52f006d3cbb13b21b72b8d2108999bf5d6bf" @@ -9162,28 +7848,6 @@ web3-core-method@1.10.4: web3-core-subscriptions "1.10.4" web3-utils "1.10.4" -web3-core-method@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.4.tgz#3873c6405e1a0a8a1efc1d7b28de8b7550b00c15" - integrity sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.7.4" - web3-core-promievent "1.7.4" - web3-core-subscriptions "1.7.4" - web3-utils "1.7.4" - -web3-core-method@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.1.tgz#0fc5a433a9fc784c447522f141c0a8e0163c7790" - integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-utils "1.8.1" - web3-core-promievent@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz#629b970b7934430b03c5033c79f3bb3893027e22" @@ -9191,20 +7855,6 @@ web3-core-promievent@1.10.4: dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz#80a75633fdfe21fbaae2f1e38950edb2f134868c" - integrity sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA== - dependencies: - eventemitter3 "4.0.4" - -web3-core-promievent@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz#f334c8b2ceac6c2228f06d2a515f6d103157f036" - integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== - dependencies: - eventemitter3 "4.0.4" - web3-core-requestmanager@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.4.tgz#eb1f147e6b9df84e3a37e602162f8925bdb4bb9a" @@ -9216,28 +7866,6 @@ web3-core-requestmanager@1.10.4: web3-providers-ipc "1.10.4" web3-providers-ws "1.10.4" -web3-core-requestmanager@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz#2dc8a526dab8183dca3fef54658621801b1d0469" - integrity sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA== - dependencies: - util "^0.12.0" - web3-core-helpers "1.7.4" - web3-providers-http "1.7.4" - web3-providers-ipc "1.7.4" - web3-providers-ws "1.7.4" - -web3-core-requestmanager@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz#272ffa55b7b568ecbc8e4a257ca080355c31c60e" - integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== - dependencies: - util "^0.12.0" - web3-core-helpers "1.8.1" - web3-providers-http "1.8.1" - web3-providers-ipc "1.8.1" - web3-providers-ws "1.8.1" - web3-core-subscriptions@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.4.tgz#2f4dcb404237e92802a563265d11a33934dc38e6" @@ -9246,23 +7874,7 @@ web3-core-subscriptions@1.10.4: eventemitter3 "4.0.4" web3-core-helpers "1.10.4" -web3-core-subscriptions@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz#cfbd3fa71081a8c8c6f1a64577a1a80c5bd9826f" - integrity sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.7.4" - -web3-core-subscriptions@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz#f5ae1380e92746eadfab6475b8a70ef5a1be6bbf" - integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - -web3-core@1.10.4, web3-core@^1.10.3: +web3-core@^1.10.3: version "1.10.4" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.4.tgz#639de68b8b9871d2dc8892e0dd4e380cb1361a98" integrity sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww== @@ -9275,189 +7887,81 @@ web3-core@1.10.4, web3-core@^1.10.3: web3-core-requestmanager "1.10.4" web3-utils "1.10.4" -web3-core@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.4.tgz#943fff99134baedafa7c65b4a0bbd424748429ff" - integrity sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-core-requestmanager "1.7.4" - web3-utils "1.7.4" - -web3-core@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.1.tgz#050b1c408d1f9b7ae539e90f7f7d1b7a7d10578b" - integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-requestmanager "1.8.1" - web3-utils "1.8.1" - -web3-eth-abi@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz#16c19d0bde0aaf8c1a56cb7743a83156d148d798" - integrity sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.10.4" - -web3-eth-abi@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz#3fee967bafd67f06b99ceaddc47ab0970f2a614a" - integrity sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.7.4" - -web3-eth-abi@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz#47455d6513217c4b0866fea6f97b1c4afa0b6535" - integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.1" +web3-core@^4.4.0, web3-core@^4.5.0, web3-core@^4.6.0, web3-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-4.7.1.tgz#bc56cd7959fe44ee77139d591211f69851140009" + integrity sha512-9KSeASCb/y6BG7rwhgtYC4CvYY66JfkmGNEYb7q1xgjt9BWfkf09MJPaRyoyT5trdOxYDHkT9tDlypvQWaU8UQ== + dependencies: + web3-errors "^1.3.1" + web3-eth-accounts "^4.3.1" + web3-eth-iban "^4.0.7" + web3-providers-http "^4.2.0" + web3-providers-ws "^4.0.8" + web3-types "^1.10.0" + web3-utils "^4.3.3" + web3-validator "^2.0.6" + optionalDependencies: + web3-providers-ipc "^4.0.7" -web3-eth-accounts@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz#df30e85a7cd70e475f8cf52361befba408829e34" - integrity sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg== +web3-errors@^1.1.3, web3-errors@^1.2.0, web3-errors@^1.3.0, web3-errors@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/web3-errors/-/web3-errors-1.3.1.tgz#163bc4d869f98614760b683d733c3ed1fb415d98" + integrity sha512-w3NMJujH+ZSW4ltIZZKtdbkbyQEvBzyp3JRn59Ckli0Nz4VMsVq8aF1bLWM7A2kuQ+yVEm3ySeNU+7mSRwx7RQ== dependencies: - "@ethereumjs/common" "2.6.5" - "@ethereumjs/tx" "3.5.2" - "@ethereumjs/util" "^8.1.0" - eth-lib "0.2.8" - scrypt-js "^3.0.1" - uuid "^9.0.0" - web3-core "1.10.4" - web3-core-helpers "1.10.4" - web3-core-method "1.10.4" - web3-utils "1.10.4" + web3-types "^1.10.0" -web3-eth-accounts@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz#7a24a4dfe947f7e9d1bae678529e591aa146167a" - integrity sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw== - dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-utils "1.7.4" - -web3-eth-accounts@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz#1ce7387721f118aeb0376291e4d8bbe2ac323406" - integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== - dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "^9.0.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - -web3-eth-contract@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz#22d39f04e11d9ff4e726e8025a56d78e843a2c3d" - integrity sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A== +web3-eth-abi@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-4.4.1.tgz#1dca9d80341b3cd7a1ae07dc98080c2073d62a29" + integrity sha512-60ecEkF6kQ9zAfbTY04Nc9q4eEYM0++BySpGi8wZ2PD1tw/c0SDvsKhV6IKURxLJhsDlb08dATc3iD6IbtWJmg== dependencies: - "@types/bn.js" "^5.1.1" - web3-core "1.10.4" - web3-core-helpers "1.10.4" - web3-core-method "1.10.4" - web3-core-promievent "1.10.4" - web3-core-subscriptions "1.10.4" - web3-eth-abi "1.10.4" - web3-utils "1.10.4" + abitype "0.7.1" + web3-errors "^1.3.1" + web3-types "^1.10.0" + web3-utils "^4.3.3" + web3-validator "^2.0.6" -web3-eth-contract@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz#e5761cfb43d453f57be4777b2e5e7e1082078ff7" - integrity sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-core-promievent "1.7.4" - web3-core-subscriptions "1.7.4" - web3-eth-abi "1.7.4" - web3-utils "1.7.4" - -web3-eth-contract@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz#bdf3e33bbcb79a1b6144dffd6a0deefd2e459272" - integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-utils "1.8.1" - -web3-eth-ens@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz#3d991adac52bc8e598f1f1b8528337fa6291004c" - integrity sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg== +web3-eth-accounts@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-4.3.1.tgz#6712ea915940d03d596015a87f9167171e8306a6" + integrity sha512-rTXf+H9OKze6lxi7WMMOF1/2cZvJb2AOnbNQxPhBDssKOllAMzLhg1FbZ4Mf3lWecWfN6luWgRhaeSqO1l+IBQ== dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.10.4" - web3-core-helpers "1.10.4" - web3-core-promievent "1.10.4" - web3-eth-abi "1.10.4" - web3-eth-contract "1.10.4" - web3-utils "1.10.4" - -web3-eth-ens@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz#346720305379c0a539e226141a9602f1da7bc0c8" - integrity sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-promievent "1.7.4" - web3-eth-abi "1.7.4" - web3-eth-contract "1.7.4" - web3-utils "1.7.4" - -web3-eth-ens@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz#e78a9651fea8282abe8565b001819e2d645e5929" - integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-contract "1.8.1" - web3-utils "1.8.1" + "@ethereumjs/rlp" "^4.0.1" + crc-32 "^1.2.2" + ethereum-cryptography "^2.0.0" + web3-errors "^1.3.1" + web3-types "^1.10.0" + web3-utils "^4.3.3" + web3-validator "^2.0.6" + +web3-eth-contract@^4.5.0, web3-eth-contract@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-4.7.2.tgz#a1851e566ceb4b0da3792ff4d8f7cb6fd91d3401" + integrity sha512-3ETqs2pMNPEAc7BVY/C3voOhTUeJdkf2aM3X1v+edbngJLHAxbvxKpOqrcO0cjXzC4uc2Q8Zpf8n8zT5r0eLnA== + dependencies: + "@ethereumjs/rlp" "^5.0.2" + web3-core "^4.7.1" + web3-errors "^1.3.1" + web3-eth "^4.11.1" + web3-eth-abi "^4.4.1" + web3-types "^1.10.0" + web3-utils "^4.3.3" + web3-validator "^2.0.6" + +web3-eth-ens@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-4.4.0.tgz#bc0d11d755cb15ed4b82e38747c5104622d9a4b9" + integrity sha512-DeyVIS060hNV9g8dnTx92syqvgbvPricE3MerCxe/DquNZT3tD8aVgFfq65GATtpCgDDJffO2bVeHp3XBemnSQ== + dependencies: + "@adraffy/ens-normalize" "^1.8.8" + web3-core "^4.5.0" + web3-errors "^1.2.0" + web3-eth "^4.8.0" + web3-eth-contract "^4.5.0" + web3-net "^4.1.0" + web3-types "^1.7.0" + web3-utils "^4.3.0" + web3-validator "^2.0.6" web3-eth-iban@1.10.4: version "1.10.4" @@ -9467,138 +7971,54 @@ web3-eth-iban@1.10.4: bn.js "^5.2.1" web3-utils "1.10.4" -web3-eth-iban@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz#711fb2547fdf0f988060027331b2b6c430505753" - integrity sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w== - dependencies: - bn.js "^5.2.1" - web3-utils "1.7.4" - -web3-eth-iban@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz#c6484e5d68ca644aa78431301e7acd5df24598d1" - integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== - dependencies: - bn.js "^5.2.1" - web3-utils "1.8.1" - -web3-eth-personal@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz#e2ee920f47e84848288e03442659cdbb2c4deea2" - integrity sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.10.4" - web3-core-helpers "1.10.4" - web3-core-method "1.10.4" - web3-net "1.10.4" - web3-utils "1.10.4" - -web3-eth-personal@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz#22c399794cb828a75703df8bb4b3c1331b471546" - integrity sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-net "1.7.4" - web3-utils "1.7.4" - -web3-eth-personal@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz#00b5ff1898b62044d25ed5fddd8486168d4827cf" - integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== +web3-eth-iban@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-4.0.7.tgz#ee504f845d7b6315f0be78fcf070ccd5d38e4aaf" + integrity sha512-8weKLa9KuKRzibC87vNLdkinpUE30gn0IGY027F8doeJdcPUfsa4IlBgNC4k4HLBembBB2CTU0Kr/HAOqMeYVQ== dependencies: - "@types/node" "^12.12.6" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" + web3-errors "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" + web3-validator "^2.0.3" -web3-eth@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.4.tgz#3a908c635cb5d935bd30473e452f3bd7f2ee66a5" - integrity sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA== - dependencies: - web3-core "1.10.4" - web3-core-helpers "1.10.4" - web3-core-method "1.10.4" - web3-core-subscriptions "1.10.4" - web3-eth-abi "1.10.4" - web3-eth-accounts "1.10.4" - web3-eth-contract "1.10.4" - web3-eth-ens "1.10.4" - web3-eth-iban "1.10.4" - web3-eth-personal "1.10.4" - web3-net "1.10.4" - web3-utils "1.10.4" - -web3-eth@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.4.tgz#a7c1d3ccdbba4de4a82df7e3c4db716e4a944bf2" - integrity sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug== - dependencies: - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-core-subscriptions "1.7.4" - web3-eth-abi "1.7.4" - web3-eth-accounts "1.7.4" - web3-eth-contract "1.7.4" - web3-eth-ens "1.7.4" - web3-eth-iban "1.7.4" - web3-eth-personal "1.7.4" - web3-net "1.7.4" - web3-utils "1.7.4" - -web3-eth@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.1.tgz#395f6cd56edaac5dbb23e8cec9886c3fd32c430e" - integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== - dependencies: - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-accounts "1.8.1" - web3-eth-contract "1.8.1" - web3-eth-ens "1.8.1" - web3-eth-iban "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-net@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.4.tgz#20e12c60e4477d4298979d8d5d66b9abf8e66a09" - integrity sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow== +web3-eth-personal@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-4.1.0.tgz#f5b506a4570bf1241d1db2de12cb413ea0bb4486" + integrity sha512-RFN83uMuvA5cu1zIwwJh9A/bAj0OBxmGN3tgx19OD/9ygeUZbifOL06jgFzN0t+1ekHqm3DXYQM8UfHpXi7yDQ== dependencies: - web3-core "1.10.4" - web3-core-method "1.10.4" - web3-utils "1.10.4" + web3-core "^4.6.0" + web3-eth "^4.9.0" + web3-rpc-methods "^1.3.0" + web3-types "^1.8.0" + web3-utils "^4.3.1" + web3-validator "^2.0.6" -web3-net@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.4.tgz#3153dfd3423262dd6fbec7aae5467202c4cad431" - integrity sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg== +web3-eth@^4.11.1, web3-eth@^4.8.0, web3-eth@^4.9.0: + version "4.11.1" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-4.11.1.tgz#f558ab1482d4196de0f0a7da5985de42d06664ea" + integrity sha512-q9zOkzHnbLv44mwgLjLXuyqszHuUgZWsQayD2i/rus2uk0G7hMn11bE2Q3hOVnJS4ws4VCtUznlMxwKQ+38V2w== dependencies: - web3-core "1.7.4" - web3-core-method "1.7.4" - web3-utils "1.7.4" - -web3-net@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.1.tgz#2bed4d4b93166724129ec33d0e5dea98880285f4" - integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== + setimmediate "^1.0.5" + web3-core "^4.7.1" + web3-errors "^1.3.1" + web3-eth-abi "^4.4.1" + web3-eth-accounts "^4.3.1" + web3-net "^4.1.0" + web3-providers-ws "^4.0.8" + web3-rpc-methods "^1.3.0" + web3-types "^1.10.0" + web3-utils "^4.3.3" + web3-validator "^2.0.6" + +web3-net@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-4.1.0.tgz#db7bde675e58b153339e4f149f29ec0410d6bab2" + integrity sha512-WWmfvHVIXWEoBDWdgKNYKN8rAy6SgluZ0abyRyXOL3ESr7ym7pKWbfP4fjApIHlYTh8tNqkrdPfM4Dyi6CA0SA== dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" + web3-core "^4.4.0" + web3-rpc-methods "^1.3.0" + web3-types "^1.6.0" + web3-utils "^4.3.0" web3-providers-http@1.10.4: version "1.10.4" @@ -9610,23 +8030,15 @@ web3-providers-http@1.10.4: es6-promise "^4.2.8" web3-core-helpers "1.10.4" -web3-providers-http@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.4.tgz#8209cdcb115db5ccae1f550d1c4e3005e7538d02" - integrity sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA== - dependencies: - web3-core-helpers "1.7.4" - xhr2-cookies "1.1.0" - -web3-providers-http@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.1.tgz#8aa89c11a9272f11ddb74b871273c92225faa28d" - integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== +web3-providers-http@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-4.2.0.tgz#0f4bf424681a068d49994aa7fabc69bed45ac50b" + integrity sha512-IPMnDtHB7dVwaB7/mMxAZzyq7d5ezfO1+Vw0bNfAeIi7gaDlJiggp85SdyAfOgov8AMUA/dyiY72kQ0KmjXKvQ== dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.8.1" + cross-fetch "^4.0.0" + web3-errors "^1.3.0" + web3-types "^1.7.0" + web3-utils "^4.3.1" web3-providers-ipc@1.10.4: version "1.10.4" @@ -9636,21 +8048,14 @@ web3-providers-ipc@1.10.4: oboe "2.1.5" web3-core-helpers "1.10.4" -web3-providers-ipc@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz#02e85e99e48f432c9d34cee7d786c3685ec9fcfa" - integrity sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.7.4" - -web3-providers-ipc@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz#6128a3a3a824d06bf0efcfe86325401f8691a5ca" - integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== +web3-providers-ipc@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-4.0.7.tgz#9ec4c8565053af005a5170ba80cddeb40ff3e3d3" + integrity sha512-YbNqY4zUvIaK2MHr1lQFE53/8t/ejHtJchrWn9zVbFMGXlTsOAbNoIoZWROrg1v+hCBvT2c9z8xt7e/+uz5p1g== dependencies: - oboe "2.1.5" - web3-core-helpers "1.8.1" + web3-errors "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" web3-providers-ws@1.10.4: version "1.10.4" @@ -9661,55 +8066,45 @@ web3-providers-ws@1.10.4: web3-core-helpers "1.10.4" websocket "^1.0.32" -web3-providers-ws@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz#6e60bcefb456f569a3e766e386d7807a96f90595" - integrity sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.7.4" - websocket "^1.0.32" - -web3-providers-ws@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz#5e5370e07eb8c615ed298ebc8602b283c7b7d649" - integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - websocket "^1.0.32" - -web3-shh@1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.4.tgz#9852d6f3d05678e31e49235a60fea10ca7a9e21d" - integrity sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw== - dependencies: - web3-core "1.10.4" - web3-core-method "1.10.4" - web3-core-subscriptions "1.10.4" - web3-net "1.10.4" - -web3-shh@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.4.tgz#bee91cce2737c529fd347274010b548b6ea060f1" - integrity sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A== +web3-providers-ws@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-4.0.8.tgz#6de7b262f7ec6df1a2dff466ba91d7ebdac2c45e" + integrity sha512-goJdgata7v4pyzHRsg9fSegUG4gVnHZSHODhNnn6J93ykHkBI1nz4fjlGpcQLUMi4jAMz6SHl9Ibzs2jj9xqPw== dependencies: - web3-core "1.7.4" - web3-core-method "1.7.4" - web3-core-subscriptions "1.7.4" - web3-net "1.7.4" + "@types/ws" "8.5.3" + isomorphic-ws "^5.0.0" + web3-errors "^1.2.0" + web3-types "^1.7.0" + web3-utils "^4.3.1" + ws "^8.17.1" -web3-shh@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.1.tgz#028a95cf9d3a36020380938b9a127610efbb9be7" - integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-net "1.8.1" +web3-rpc-methods@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-rpc-methods/-/web3-rpc-methods-1.3.0.tgz#d5ee299a69389d63822d354ddee2c6a121a6f670" + integrity sha512-/CHmzGN+IYgdBOme7PdqzF+FNeMleefzqs0LVOduncSaqsppeOEoskLXb2anSpzmQAP3xZJPaTrkQPWSJMORig== + dependencies: + web3-core "^4.4.0" + web3-types "^1.6.0" + web3-validator "^2.0.6" + +web3-rpc-providers@^1.0.0-rc.4: + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/web3-rpc-providers/-/web3-rpc-providers-1.0.0-rc.4.tgz#93cec88175eb2f7972e12be30af4c2f296b1923f" + integrity sha512-PXosCqHW0EADrYzgmueNHP3Y5jcSmSwH+Dkqvn7EYD0T2jcsdDAIHqk6szBiwIdhumM7gv9Raprsu/s/f7h1fw== + dependencies: + web3-errors "^1.3.1" + web3-providers-http "^4.2.0" + web3-providers-ws "^4.0.8" + web3-types "^1.10.0" + web3-utils "^4.3.3" + web3-validator "^2.0.6" + +web3-types@^1.10.0, web3-types@^1.3.0, web3-types@^1.6.0, web3-types@^1.7.0, web3-types@^1.8.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-types/-/web3-types-1.10.0.tgz#41b0b4d2dd75e919d5b6f37bf139e29f445db04e" + integrity sha512-0IXoaAFtFc8Yin7cCdQfB9ZmjafrbP6BO0f0KT/khMhXKUpoJ6yShrVhiNpyRBo8QQjuOagsWzwSK2H49I7sbw== -web3-utils@1.10.4, web3-utils@^1.10.3, web3-utils@^1.3.4: +web3-utils@1.10.4, web3-utils@^1.10.3, web3-utils@^1.3.4, web3-utils@^1.3.6: version "1.10.4" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.4.tgz#0daee7d6841641655d8b3726baf33b08eda1cbec" integrity sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A== @@ -9723,70 +8118,50 @@ web3-utils@1.10.4, web3-utils@^1.10.3, web3-utils@^1.3.4: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.4.tgz#eb6fa3706b058602747228234453811bbee017f5" - integrity sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA== - dependencies: - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - -web3-utils@1.8.1, web3-utils@^1.3.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.1.tgz#f2f7ca7eb65e6feb9f3d61056d0de6bbd57125ff" - integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== - dependencies: - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - -web3@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.4.tgz#00c9aef8e13ade92fd773d845fff250535828e93" - integrity sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A== +web3-utils@^4.0.7, web3-utils@^4.3.0, web3-utils@^4.3.1, web3-utils@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-4.3.3.tgz#e380a1c03a050d3704f94bd08c1c9f50a1487205" + integrity sha512-kZUeCwaQm+RNc2Bf1V3BYbF29lQQKz28L0y+FA4G0lS8IxtJVGi5SeDTUkpwqqkdHHC7JcapPDnyyzJ1lfWlOw== dependencies: - web3-bzz "1.7.4" - web3-core "1.7.4" - web3-eth "1.7.4" - web3-eth-personal "1.7.4" - web3-net "1.7.4" - web3-shh "1.7.4" - web3-utils "1.7.4" - -web3@^1.10.3: - version "1.10.4" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.4.tgz#5d5e59b976eaf758b060fe1a296da5fe87bdc79c" - integrity sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA== - dependencies: - web3-bzz "1.10.4" - web3-core "1.10.4" - web3-eth "1.10.4" - web3-eth-personal "1.10.4" - web3-net "1.10.4" - web3-shh "1.10.4" - web3-utils "1.10.4" + ethereum-cryptography "^2.0.0" + eventemitter3 "^5.0.1" + web3-errors "^1.3.1" + web3-types "^1.10.0" + web3-validator "^2.0.6" -web3@^1.3.5, web3@^1.5.2: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a" - integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== +web3-validator@^2.0.3, web3-validator@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/web3-validator/-/web3-validator-2.0.6.tgz#a0cdaa39e1d1708ece5fae155b034e29d6a19248" + integrity sha512-qn9id0/l1bWmvH4XfnG/JtGKKwut2Vokl6YXP5Kfg424npysmtRLe9DgiNBM9Op7QL/aSiaA0TVXibuIuWcizg== dependencies: - web3-bzz "1.8.1" - web3-core "1.8.1" - web3-eth "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-shh "1.8.1" - web3-utils "1.8.1" + ethereum-cryptography "^2.0.0" + util "^0.12.5" + web3-errors "^1.2.0" + web3-types "^1.6.0" + zod "^3.21.4" + +web3@4.16.0, web3@^1.10.3, web3@^1.3.5, web3@^1.5.2: + version "4.16.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-4.16.0.tgz#1da10d8405bf27a76de6cbbce3de9fa93f7c0449" + integrity sha512-SgoMSBo6EsJ5GFCGar2E/pR2lcR/xmUSuQ61iK6yDqzxmm42aPPxSqZfJz2z/UCR6pk03u77pU8TGV6lgMDdIQ== + dependencies: + web3-core "^4.7.1" + web3-errors "^1.3.1" + web3-eth "^4.11.1" + web3-eth-abi "^4.4.1" + web3-eth-accounts "^4.3.1" + web3-eth-contract "^4.7.2" + web3-eth-ens "^4.4.0" + web3-eth-iban "^4.0.7" + web3-eth-personal "^4.1.0" + web3-net "^4.1.0" + web3-providers-http "^4.2.0" + web3-providers-ws "^4.0.8" + web3-rpc-methods "^1.3.0" + web3-rpc-providers "^1.0.0-rc.4" + web3-types "^1.10.0" + web3-utils "^4.3.3" + web3-validator "^2.0.6" webidl-conversions@^3.0.0: version "3.0.1" @@ -9880,6 +8255,11 @@ wordwrapjs@^4.0.0: reduce-flatten "^2.0.0" typical "^5.2.0" +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -9929,7 +8309,7 @@ ws@8.13.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== -ws@8.18.0: +ws@8.18.0, ws@^8.17.1: version "8.18.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== @@ -9939,15 +8319,6 @@ ws@8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -ws@^3.0.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - ws@^7.4.5: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" @@ -9963,48 +8334,6 @@ ws@^8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.0.1, xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.3.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== - xtend@^4.0.0, xtend@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -10027,11 +8356,6 @@ yaeti@^0.0.6: resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== -yallist@^3.0.0, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -10047,11 +8371,21 @@ yaml@^2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-unparser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" @@ -10080,6 +8414,11 @@ zksync-web3@^0.14.3: resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.14.3.tgz#64ac2a16d597464c3fc4ae07447a8007631c57c9" integrity sha512-hT72th4AnqyLW1d5Jlv8N2B/qhEnl2NePK2A3org7tAa24niem/UAaHMkEvmWI3SF9waYUPtqAtjpf+yvQ9zvQ== +zod@^3.21.4: + version "3.24.1" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.1.tgz#27445c912738c8ad1e9de1bea0359fa44d9d35ee" + integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A== + zx@^8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/zx/-/zx-8.2.2.tgz#ec77551d53ea9979213d6cce963516d20d305e54"