Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 28, 2025

Summary

Adds CI enforcement for the Compose Solidity style guide: only block comments (/* */ and /** */) are allowed. SPDX identifiers, URLs, inline comments after code, and // inside block comments are exempted.

Changes Made

  • .github/workflows/enforce-solidity-comments.yml — GitHub Actions workflow triggered on push/PR to run the style check
  • .github/scripts/check-solidity-comments.sh — Bash script that:
    • Scans only git-tracked .sol files
    • Allows SPDX-License-Identifier: in any comment form
    • Allows lines containing http:// or https:// (URLs)
    • Allows inline comments after code (e.g., uint96 feeNumerator = 500; // 5%)
    • Allows both /* */ and /** */ block comment styles
    • Allows // inside block comments (e.g., section header style /*//...//*/)
    • Flags only // comments at the start of lines outside of block comments
    • Reports violations with file:line references

Example violation output:

src/Example.sol:42: contains "//" at start of line (single-line comments are disallowed in Solidity per style guide).

Checklist

Before submitting this PR, please ensure:

  • Code follows the Solidity feature ban - No inheritance, constructors, modifiers, public/private variables, external library functions, using for directives, or selfdestruct

  • Code follows Design Principles - Readable, uses diamond storage, favors composition over inheritance

  • Code matches the codebase style - Consistent formatting, documentation, and patterns (e.g. ERC20Facet.sol)

  • Code is formatted with forge fmt

  • Existing tests pass - Run tests to be sure existing tests pass.

  • New tests are optional - If you don't provide tests for new functionality or changes then please create a new issue so this can be assigned to someone.

  • All tests pass - Run forge test and ensure everything works

  • Documentation updated - If applicable, update relevant documentation

Make sure to follow the contributing guidelines.

Additional Notes

  • Script uses git ls-files so only tracked files are checked; ignores deleted/binary files
  • Workflow includes explicit permissions: contents: read per security best practices
  • Existing codebase has violations that will be flagged; this PR establishes enforcement, not remediation
  • Inline comments after code are allowed to support common patterns like uint96 feeNumerator = 500; // 5%
  • Both /* */ and /** */ block comment styles are allowed
  • Section header style comments with // inside block comments are allowed (e.g., /*//...//*/)
Original prompt

Add a GitHub Actions workflow and a check script that enforce the Compose style guide for Solidity files: only documentation block comments starting with /** ... */ are allowed, with an explicit exception to allow SPDX license identifiers anywhere and URLs (http:// or https://). The check should only scan tracked .sol files.

Files to add (exact contents below). Create a branch named enforce/sol-comment-style, commit the files there, and open a pull request against the repository default branch. Make the script executable in the commit.

Files to add:

.github/workflows/enforce-solidity-comments.yml

name: Enforce Solidity comment style
on:
  push:
    branches:
      - '**'
  pull_request:
    types: [opened, synchronize, reopened, edited]

jobs:
  check-sol-comments:
    name: Check Solidity comment style
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Make check script executable
        run: chmod +x .github/scripts/check-solidity-comments.sh

      - name: Run Solidity comment-style check
        env:
          # Only Solidity files
          CHECK_GLOBS: "*.sol"
        run: .github/scripts/check-solidity-comments.sh

.github/scripts/check-solidity-comments.sh

#!/usr/bin/env bash
set -euo pipefail

# Script: check-solidity-comments.sh
# Only checks tracked .sol files for forbidden comment styles.
# Allowed exceptions:
#  - Any occurrence of SPDX-License-Identifier: (regardless of comment delimiters)
#  - URLs containing http:// or https:// (to avoid flagging links)
# Disallowed:
#  - Any single-line '//' comments (including '///'), except SPDX or URLs
#  - Block comments '/*' that are not documentation comments starting with '/**'

IFS=',' read -r -a GLOBS <<< "${CHECK_GLOBS:-*.sol}"

echo "Checking Solidity comment style in files matching: ${GLOBS[*]}"

# Gather tracked files matching globs
files=()
while IFS= read -r -d '' f; do
  files+=("$f")
done < <(git ls-files -z -- "${GLOBS[@]}" 2>/dev/null || true)

if [ "${#files[@]}" -eq 0 ]; then
  echo "No Solidity files matched globs; nothing to check."
  exit 0
fi

has_error=0

for f in "${files[@]}"; do
  # Skip deleted files
  if [ ! -f "$f" ]; then
    continue
  fi

  # Skip binary files (shouldn't be any .sol, but be defensive)
  if file --brief --mime "$f" | grep -q 'charset=binary'; then
    continue
  fi

  # AWK script:
  # - Allow any line that contains SPDX-License-Identifier: (in any comment form)
  # - Allow lines that contain http:// or https:// (common links)
  # - Flag lines with '//' (single-line comments) otherwise
  # - Flag occurrences of '/*' that are not '/**'
  awk_script='\
  BEGIN { bad=0 }\
  {\
    line = $0\
    # If the line contains SPDX-License-Identifier: allow it (regardless of comment delimiters)\
    if (line ~ /SPDX-License-Identifier:/) { next }\
    # Allow URLs containing http:// or https:// to avoid flagging links\
    if ($0 ~ /https?:\/\//) { next }\
    # Detect single-line comments: // (this also catches ///)\
    if ($0 ~ /\/\//) {\
      print FILENAME ":" NR ": contains \"//\" (single-line comments are disallowed in Solidity per style guide)."\
      bad=1\
    }\
    # Detect block comment starts '/*' that are not '/**'\
    if ($0 ~ /\/\*/ && $0 !~ /\/\*\*/) {\
      print FILENAME ":" NR ": contains \"/*\" (non-documentation block comments are disallowed)."\
      bad=1\
    }\
  }\
  END { if (bad) exit 1 }'

  if ! awk "$awk_script" "$f"; then
    has_error=1
  fi
done

if [ "$has_error" -ne 0 ]; then
  echo
  echo "Solidity comment style check failed: only documentation block comments starting with /** ... */ are allowed." 
  echo "Allowed exceptions: SPDX identifier (SPDX-License-Identifier:) anywhere and URLs (http:// or https://)."
  echo "Please replace single-line // comments and non-/** block comments with /** ... */ documentation comments."
  exit 1
fi

echo "Solidity comment style check passed."
exit 0

Notes:

  • The check only targets tracked .sol files. It ignores binary files and deleted files.
  • The SPDX rule is intentionally permissive: any line containing "SPDX-License-Identifier:" is allowed, regardless of whether it's in //, /*, or /**.
  • The workflow runs on push and pull_request; you can restrict triggers later if desired.

Please create the PR with a branch named enforce/sol-comment-style, include these two files, mark the script executable in the commit, and open a pull request titled: "Enforce Solidity comment style (only /** */; allow SPDX)". Provide the PR URL in your response.

Thank you.

This pull request was created as a result of the following prompt from Copilot chat.

Add a GitHub Actions workflow and a check script that enforce the Compose style guide for Solidity files: only documentation block comments starting with /** ... */ are allowed, with an explicit exception to allow SPDX license identifiers anywhere and URLs (http:// or https://). The check should only scan tracked .sol files.

Files to add (exact contents below). Create a branch named enforce/sol-comment-style, commit the files there, and open a pull request against the repository default branch. Make the script executable in the commit.

Files to add:

.github/workflows/enforce-solidity-comments.yml

name: Enforce Solidity comment style
on:
  push:
    branches:
      - '**'
  pull_request:
    types: [opened, synchronize, reopened, edited]

jobs:
  check-sol-comments:
    name: Check Solidity comment style
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Make check script executable
        run: chmod +x .github/scripts/check-solidity-comments.sh

      - name: Run Solidity comment-style check
        env:
          # Only Solidity files
          CHECK_GLOBS: "*.sol"
        run: .github/scripts/check-solidity-comments.sh

.github/scripts/check-solidity-comments.sh

#!/usr/bin/env bash
set -euo pipefail

# Script: check-solidity-comments.sh
# Only checks tracked .sol files for forbidden comment styles.
# Allowed exceptions:
#  - Any occurrence of SPDX-License-Identifier: (regardless of comment delimiters)
#  - URLs containing http:// or https:// (to avoid flagging links)
# Disallowed:
#  - Any single-line '//' comments (including '///'), except SPDX or URLs
#  - Block comments '/*' that are not documentation comments starting with '/**'

IFS=',' read -r -a GLOBS <<< "${CHECK_GLOBS:-*.sol}"

echo "Checking Solidity comment style in files matching: ${GLOBS[*]}"

# Gather tracked files matching globs
files=()
while IFS= read -r -d '' f; do
  files+=("$f")
done < <(git ls-files -z -- "${GLOBS[@]}" 2>/dev/null || true)

if [ "${#files[@]}" -eq 0 ]; then
  echo "No Solidity files matched globs; nothing to check."
  exit 0
fi

has_error=0

for f in "${files[@]}"; do
  # Skip deleted files
  if [ ! -f "$f" ]; then
    continue
  fi

  # Skip binary files (shouldn't be any .sol, but be defensive)
  if file --brief --mime "$f" | grep -q 'charset=binary'; then
    continue
  fi

  # AWK script:
  # - Allow any line that contains SPDX-License-Identifier: (in any comment form)
  # - Allow lines that contain http:// or https:// (common links)
  # - Flag lines with '//' (single-line comments) otherwise
  # - Flag occurrences of '/*' that are not '/**'
  awk_script='\
  BEGIN { bad=0 }\
  {\
    line = $0\
    # If the line contains SPDX-License-Identifier: allow it (regardless of comment delimiters)\
    if (line ~ /SPDX-License-Identifier:/) { next }\
    # Allow URLs containing http:// or https:// to avoid flagging links\
    if ($0 ~ /https?:\/\//) { next }\
    # Detect single-line comments: // (this also catches ///)\
    if ($0 ~ /\/\//) {\
      print FILENAME ":" NR ": contains \"//\" (single-line comments are disallowed in Solidity per style guide)."\
      bad=1\
    }\
    # Detect block comment starts '/*' that are not '/**'\
    if ($0 ~ /\/\*/ && $0 !~ /\/\*\*/) {\
      print FILENAME ":" NR ": contains \"/*\" (non-documentation block comments are disallowed)."\
      bad=1\
    }\
  }\
  END { if (bad) exit 1 }'

  if ! awk "$awk_script" "$f"; then
    has_error=1
  fi
done

if [ "$has_error" -ne 0 ]; then
  echo
  echo "Solidity comment style check failed: only documentation block comments starting with /** ... */ are allowed." 
  echo "Allowed exceptions: SPDX identifier (SPDX-License-Identifier:) anywhere and URLs (http:// or https://)."
  echo "Please replace single-line // comments and non-/** block comments with /** ... */ documentation comments."
  exit 1
fi

echo "Solidity comment style check passed."
exit 0

Notes:

  • The check only targets tracked .sol files. It ignores binary files and deleted files.
  • The SPDX rule is intentionally permissive: any line containing "SPDX-License-Identifier:" is allowed, regardless of whether it's in //, /*, or /**.
  • The workflow runs on push and pull_request; you can restrict triggers later if desired.

Please create the PR with a branch named enforce/sol-comment-style, include these two files, mark the script executable in the commit, and open a pull request titled: "Enforce Solidity comment style (only /** */; allow SPDX)". Provide the PR URL in your response.

Thank you.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@netlify
Copy link

netlify bot commented Nov 28, 2025

Deploy Preview for compose-diamonds canceled.

Name Link
🔨 Latest commit 68989f0
🔍 Latest deploy log https://app.netlify.com/projects/compose-diamonds/deploys/692b86bc2aeb730008244f16

Copilot AI changed the title [WIP] Add GitHub Actions workflow to enforce Solidity comment style Enforce Solidity comment style (only /** */; allow SPDX) Nov 28, 2025
Copilot AI requested a review from mudgen November 28, 2025 18:31
@mudgen
Copy link
Contributor

mudgen commented Nov 28, 2025

@copilot Can you change the pull request so that comments starting with "//" after code on the same line are ignored?
For example, this is okay:

uint96 feeNumerator = 500; // 5%

Copy link
Contributor Author

Copilot AI commented Nov 28, 2025

@copilot Can you change the pull request so that comments starting with "//" after code on the same line are ignored?
For example, this is okay:

...

Done in d8bd75a. The script now only flags // comments that start the line (with optional leading whitespace). Inline comments after code like uint96 feeNumerator = 500; // 5% are now allowed.

@mudgen
Copy link
Contributor

mudgen commented Nov 29, 2025

Can you change this pull request so that comments using "/* */" Is allowed?

@mudgen
Copy link
Contributor

mudgen commented Nov 29, 2025

@copilot Can you change this pull request so that comments using "/* */" Is allowed?

Copy link
Contributor Author

Copilot AI commented Nov 29, 2025

@copilot Can you change this pull request so that comments using "/* */" Is allowed?

Done in 72001ea. Both /* */ and /** */ block comments are now allowed. Only // comments at the start of a line are flagged as disallowed.

Copilot AI changed the title Enforce Solidity comment style (only /** */; allow SPDX) Enforce Solidity comment style (block comments only; allow SPDX) Nov 29, 2025
@mudgen
Copy link
Contributor

mudgen commented Nov 29, 2025

@copilot Make it so these style comments are allowed:

/*//////////////////////////////////////////////////////////////
                            STORAGE HELPERS
//////////////////////////////////////////////////////////////*/

Copy link
Contributor Author

Copilot AI commented Nov 29, 2025

@copilot Make it so these style comments are allowed:

/*//////////////////////////////////////////////////////////////

...

Done in 68989f0. The script now tracks block comment state, so // inside block comments (like section headers /*//...//*/) are allowed. Only standalone // comments at the start of lines outside block comments are flagged.

@mudgen mudgen marked this pull request as ready for review November 29, 2025 23:57
Copilot AI review requested due to automatic review settings November 29, 2025 23:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces automated enforcement of Solidity comment style guidelines through a GitHub Actions workflow and bash script. The implementation aims to ensure all Solidity files use block comment style exclusively, with exceptions for SPDX identifiers, URLs, and inline comments after code.

Key changes:

  • Added GitHub Actions workflow to run comment style checks on all pushes and PRs
  • Created bash script with AWK logic to scan Solidity files for forbidden // comments at line starts
  • Configured exceptions for SPDX identifiers, URLs, inline comments, and content inside block comments

Critical issue identified: The implementation contradicts the repository's coding guidelines. The script allows both /* */ and /** */ block comments, but .github/copilot-instructions.md lines 318-331 explicitly require only /** */ (documentation block comments). This fundamental misalignment needs to be corrected before the PR can achieve its stated goal of enforcing the Compose style guide.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 7 comments.

File Description
.github/workflows/enforce-solidity-comments.yml GitHub Actions workflow that runs the comment style check on push/PR events; includes permissions hardening with contents: read
.github/scripts/check-solidity-comments.sh Bash script using AWK to scan tracked .sol files and flag // comments at line starts, with logic to track block comment state and handle exceptions

@@ -0,0 +1,29 @@
name: Enforce Solidity comment style
Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR title states "block comments only; allow SPDX" but according to the repository coding guidelines in .github/copilot-instructions.md lines 318-331, the requirement is more specific: only /** */ (documentation block comments) are allowed, not general /* */ block comments.

The title should be more precise, for example: "Enforce Solidity comment style (/** */ only; allow SPDX)" to accurately reflect the intended coding standard.

Suggested change
name: Enforce Solidity comment style
name: Enforce Solidity comment style (/** */ only; allow SPDX)

Copilot uses AI. Check for mistakes.
Comment on lines +22 to +24
- name: Make check script executable
run: chmod +x .github/scripts/check-solidity-comments.sh

Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The workflow makes the script executable with chmod +x before running it (line 23), but the script file should ideally be committed with executable permissions set in git. This makes the chmod step redundant and ensures the script is executable in all contexts (not just CI).

You can set the executable bit before committing with:

git update-index --chmod=+x .github/scripts/check-solidity-comments.sh

While the current approach works, it's more conventional to commit scripts with the correct permissions.

Suggested change
- name: Make check script executable
run: chmod +x .github/scripts/check-solidity-comments.sh

Copilot uses AI. Check for mistakes.
# - Any occurrence of SPDX-License-Identifier: (regardless of comment delimiters)
# - URLs containing http:// or https:// (to avoid flagging links)
# - Inline comments after code (e.g., `uint x = 1; // comment`)
# - Block comments '/* */' and '/** */' (both styles allowed)
Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The AWK script allows both /* */ and /** */ block comment styles (as stated in the header comment on line 10), but according to the repository coding guidelines in .github/copilot-instructions.md lines 318-331, only /** */ (documentation block comments) should be allowed. The guidelines explicitly state: "Use /** */ block comment style for all documentation and inline comments."

The current script doesn't enforce this distinction and would accept non-documentation block comments like /* foo */, which violates the coding standard.

Consider adding a check to flag /* that is not followed by * (i.e., flag /* but allow /**).

Copilot uses AI. Check for mistakes.
Comment on lines +55 to +66
# Track block comment state
# Check for block comment start (/* or /**)
if (line ~ /\/\*/) {
in_block = 1
}
# Check for block comment end
if (line ~ /\*\//) {
in_block = 0
next # This line ends a block comment, skip further checks
}
# If we are inside a block comment, skip all checks for this line
if (in_block) { next }
Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The block comment state tracking has a subtle bug: when a line contains both /* and */ (single-line block comment), the script correctly sets in_block = 1 at line 58, then sets in_block = 0 at line 62 and skips the line with next. However, this logic fails for edge cases:

  1. Multi-line comment ending: When processing the closing line of a multi-line block comment (e.g., */), the script sets in_block = 0 and then skips further checks with next. This means if someone writes */ // bad comment, the trailing // comment would not be flagged.

  2. Same-line start and end: For a line like /** foo */ // bad, the script would set in_block = 1 (line 58), then immediately set in_block = 0 and next (lines 62-63), never checking for the trailing // comment.

Consider restructuring the logic to check for violations on lines that end block comments, and handle same-line block comments more carefully.

Suggested change
# Track block comment state
# Check for block comment start (/* or /**)
if (line ~ /\/\*/) {
in_block = 1
}
# Check for block comment end
if (line ~ /\*\//) {
in_block = 0
next # This line ends a block comment, skip further checks
}
# If we are inside a block comment, skip all checks for this line
if (in_block) { next }
# Track block comment state and handle lines with block comment start/end
# If currently inside a block comment, check for end
if (in_block) {
# Check if this line ends the block comment
if (line ~ /\*\//) {
in_block = 0
# Remove everything up to and including the block comment end
sub(/^.*\*\//, "", line)
# Continue processing the remainder of the line
} else {
# Still inside block comment, skip line
next
}
}
# Check for block comment start and end on the same line (single-line block comment)
if (line ~ /\/\*/ && line ~ /\*\//) {
# Remove block comment portion
# This handles cases like: /** foo */ // bad
# Remove everything from block comment start to end
sub(/\/\*.*\*\//, "", line)
# Continue processing the remainder of the line
} else if (line ~ /\/\*/) {
# Block comment starts here, set state and remove everything from start of block comment
in_block = 1
sub(/\/\*.*/, "", line)
# Continue processing the remainder of the line
}

Copilot uses AI. Check for mistakes.
Comment on lines +86 to +88
echo "Solidity comment style check failed: only block comments (/* */ or /** */) are allowed."
echo "Allowed exceptions: SPDX identifier (SPDX-License-Identifier:) anywhere, URLs (http:// or https://), and inline comments after code."
echo "Please replace single-line // comments at the start of lines with /* */ or /** */ block comments."
Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error messages at lines 86-88 incorrectly state that both /* */ and /** */ block comments are allowed. According to the repository coding guidelines in .github/copilot-instructions.md lines 318-331, only /** */ (documentation block comments) should be allowed, not plain /* */ comments.

The message should be updated to reflect that only /** */ style block comments are permitted, aligning with the documented coding standards.

Suggested change
echo "Solidity comment style check failed: only block comments (/* */ or /** */) are allowed."
echo "Allowed exceptions: SPDX identifier (SPDX-License-Identifier:) anywhere, URLs (http:// or https://), and inline comments after code."
echo "Please replace single-line // comments at the start of lines with /* */ or /** */ block comments."
echo "Solidity comment style check failed: only documentation block comments (/** */) are allowed."
echo "Allowed exceptions: SPDX identifier (SPDX-License-Identifier:) anywhere, URLs (http:// or https://), and inline comments after code."
echo "Please replace single-line // comments at the start of lines with /** */ documentation block comments."

Copilot uses AI. Check for mistakes.
# - Any occurrence of SPDX-License-Identifier: (regardless of comment delimiters)
# - URLs containing http:// or https:// (to avoid flagging links)
# - Inline comments after code (e.g., `uint x = 1; // comment`)
# - Block comments '/* */' and '/** */' (both styles allowed)
Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description states "Both /* */ and /** */ block comment styles are allowed" in the "Changes Made" section, but this contradicts the repository's coding guidelines defined in .github/copilot-instructions.md lines 318-331, which explicitly require: "Use /** */ block comment style for all documentation and inline comments."

The description should be corrected to reflect that only /** */ style comments are permitted, not both styles.

Suggested change
# - Block comments '/* */' and '/** */' (both styles allowed)
# - Block comments '/** */' (only this style allowed for documentation and inline comments; plain '/* */' is not permitted for documentation)

Copilot uses AI. Check for mistakes.
Comment on lines +6 to +8
pull_request:
types: [opened, synchronize, reopened, edited]

Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The workflow is configured to run on all pushes and pull requests (branches: - '**'), even when only documentation or non-Solidity files are changed. This could lead to unnecessary CI runs.

Consider adding a paths filter to only trigger when .sol files or the check script itself are modified, similar to how other workflows in this repository use paths-ignore for efficiency. For example:

on:
  push:
    branches:
      - '**'
    paths:
      - '**.sol'
      - '.github/scripts/check-solidity-comments.sh'
      - '.github/workflows/enforce-solidity-comments.yml'
  pull_request:
    types: [opened, synchronize, reopened, edited]
    paths:
      - '**.sol'
      - '.github/scripts/check-solidity-comments.sh'
      - '.github/workflows/enforce-solidity-comments.yml'
Suggested change
pull_request:
types: [opened, synchronize, reopened, edited]
paths:
- '**.sol'
- '.github/scripts/check-solidity-comments.sh'
- '.github/workflows/enforce-solidity-comments.yml'
pull_request:
types: [opened, synchronize, reopened, edited]
paths:
- '**.sol'
- '.github/scripts/check-solidity-comments.sh'
- '.github/workflows/enforce-solidity-comments.yml'

Copilot uses AI. Check for mistakes.
@mudgen mudgen closed this Nov 30, 2025
@mudgen mudgen reopened this Nov 30, 2025
@mudgen mudgen merged commit 2ca2e4c into main Nov 30, 2025
27 of 28 checks passed
@github-actions
Copy link

Coverage Report

Coverage

Metric Coverage Details
Lines 85% 1947/2288 lines
Functions 88% 371/422 functions
Branches 73% 275/377 branches

Last updated: Sun, 30 Nov 2025 02:06:07 GMT for commit 68989f0

@github-actions
Copy link

Gas Report

No gas usage changes detected between main and copilot/enforcesol-comment-style.

All functions maintain the same gas costs. ✅

Last updated: Sun, 30 Nov 2025 02:06:45 GMT for commit 68989f0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants