Skip to content

Conversation

@pclaesen
Copy link

@pclaesen pclaesen commented Sep 17, 2025

Change USDS token to MakerDao token (Sky):
StableUSD has been renamed to Stably USD Classic (USDSC) and is no longer supported by the issuer. For more information, please refer to https://stably.io/usdsc.
Add GHO
Add MetaMask USD (mUSD)

Summary by CodeRabbit

  • New Features

    • Added GHO token on Ethereum mainnet.
    • Added USDS tokens on Ethereum mainnet, Optimism, and Arbitrum.
    • Added MetaMask USD (mUSD) token on Ethereum mainnet.
  • Bug Fixes

    • Renamed mUSD to mStable USD on mainnet and updated its address/metadata.
  • Chores

    • Simplified pre-commit hook by delegating logic to a helper script.

pclaesen and others added 2 commits September 5, 2025 08:58
…amed to Stably USD Classic (USDSC) and is no longer supported by the issuer. For more information, please refer to https://stably.io/usdsc
@coderabbitai
Copy link

coderabbitai bot commented Sep 17, 2025

Walkthrough

Replaced Husky pre-commit inline commands with sourcing a helper script; updated tokens/token-list.json by adding GHO and USDS (multi-network) entries, adding mUSD-metamask-mainnet (MetaMask USD, 6 decimals), and modifying the existing mUSD-mainnet entry (renamed to mStable USD with new address/hash). No public API declarations changed.

Changes

Cohort / File(s) Summary of Changes
Pre-commit hook delegation
.husky/_/pre-commit
Replaced inline commands (npm run format, npm run check, git add -A, npm run validate) with a single source of a helper: . "$(dirname "$0")/h". File ends without a trailing newline.
Token additions & modifications
tokens/token-list.json
Added tokens: GHO-mainnet (ERC20, chainId 1), USDS-mainnet (ERC20, chainId 1), USDS-optimism (ERC20, chainId 10), USDS-arbitrum-one (ERC20, chainId 42161), and mUSD-metamask-mainnet (MetaMask USD, symbol mUSD, 6 decimals). Updated mUSD-mainnet: renamed to "mStable USD" and address/hash changed to 0xe2f2a5C287993345a840Db3B0845fbC70f5935a5.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Developer
  participant Git as Git
  participant Hook as Husky pre-commit
  participant H as Helper script "h"

  Dev->>Git: git commit
  Git->>Hook: invoke pre-commit
  Hook->>H: . "$(dirname "$0")/h"
  rect rgba(200,230,255,0.25)
    note right of H: delegated hook logic (format/check/validate)
    H->>H: run format, check, add, validate
  end
  H-->>Hook: exit status
  alt success
    Hook-->>Git: allow commit
  else failure
    Hook-->>Git: block commit
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Pay attention to tokens/token-list.json for correct addresses, decimals, chainIds, and duplicate/placement consistency.
  • Verify .husky/_/pre-commit sourcing path and ensure h helper exists and is executable.

Possibly related PRs

Suggested reviewers

  • rodrigopavezi
  • MantisClone
  • bassgeta

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Change token usds" refers to the USDS token modifications present in this changeset, which appears to be the primary focus based on the PR description stating "The PR changes the USDS token to the MakerDao token (Sky)". The title accurately identifies the main subject of the changeset. However, the title is incomplete as it omits significant secondary changes including the addition of GHO tokens and MetaMask USD (mUSD) tokens, which are explicitly mentioned as part of the PR objectives. Additionally, the phrasing "Change token usds" is somewhat vague regarding the specific nature of the modifications being made.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@MantisClone
Copy link
Member

Hello @pclaesen, thank you for submitting your first pull request to the request-token-list repository. We value your contribution and encourage you to review our contribution guidelines to ensure your submission meets our standards. Please note that every merged PR is automatically enrolled in our Best PR Initiative, offering a chance to win $500 each quarter. Our team is available via GitHub Discussions or Discord if you have any questions. Welcome aboard!

@MantisClone
Copy link
Member

Thank you for your submission! As you prepare for the review process, please ensure that your PR title, description, and any linked issues fully comply with our contribution guidelines. A clear explanation of your changes and their context will help expedite the review process. Every merged PR is automatically entered into our Best PR Initiative, offering a chance to win $500 every quarter. We appreciate your attention to detail and look forward to reviewing your contribution!

@pclaesen pclaesen marked this pull request as draft September 17, 2025 18:22
@pclaesen
Copy link
Author

All tests are passing, but there are 2 tokens with the same ID in the list:

{
      "id": "mUSD-mainnet",
      "name": "mUSD",
      "symbol": "mUSD",
      "decimals": 18,
      "address": "0xe2f2a5C287993345a840Db3B0845fbC70f5935a5",
      "network": "mainnet",
      "type": "ERC20",
      "hash": "0xe2f2a5C287993345a840Db3B0845fbC70f5935a5",
      "chainId": 1
    },

and

{
      "id": "mUSD-mainnet",
      "name": "MetaMask USD",
      "symbol": "mUSD",
      "decimals": 6,
      "address": "0xacA92E438df0B2401fF60dA7E4337B687a2435DA",
      "network": "mainnet",
      "type": "ERC20",
      "hash": "0xacA92E438df0B2401fF60dA7E4337B687a2435DA",
      "chainId": 1
    },

I don't think the tests should pass, especially not the should reject duplicate token IDs.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tokens/token-list.json (1)

3-8: Version and timestamp not updated

Tokens were added/modified; bump the list version (per token-list semver: add = minor, metadata tweak = patch) and refresh the ISO timestamp.

Example:

-  "timestamp": "2025-01-09T11:39:10.425Z",
+  "timestamp": "2025-09-17T00:00:00.000Z",
   "version": {
-    "major": 1,
-    "minor": 0,
-    "patch": 0
+    "major": 1,
+    "minor": 1,
+    "patch": 0
   },
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bf10c55 and 29e0c34.

📒 Files selected for processing (2)
  • .husky/_/pre-commit (1 hunks)
  • tokens/token-list.json (5 hunks)
🔇 Additional comments (4)
tokens/token-list.json (4)

4333-4343: GHO mainnet entry: looks correct; please double-check against issuer docs

Address/decimals/network match expectations for GHO; just confirm against the official registry before merge.


5633-5641: USDS (mainnet): confirm issuer and address to avoid symbol collisions

USDS ticker is ambiguous across ecosystems. Please confirm the issuer and contract at 0xdC035D...384F in the PR description and commit message.


7799-7808: USDS (Optimism): verify chain address and decimals

Validate the Optimism contract and decimals (18) with issuer docs or chain explorers.


7975-7984: USDS (Arbitrum One): verify chain address and decimals

Same as above; confirm correctness before publishing.

npm run check
git add -A
npm run validate
. "$(dirname "$0")/h"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

🧩 Analysis chain

Sourcing helper script: verify existence and execution flow

Ensure .husky/_/h exists, is committed, and sets strict flags (e.g., set -eu) so the hook fails fast. Also consider adding a trailing newline to this file.

Run:


🏁 Script executed:

#!/bin/bash
set -eu
# Verify helper presence and permissions
test -f .husky/_/h && echo "found .husky/_/h" || (echo "missing .husky/_/h" && exit 1)
# Show first lines for sanity (should include set -e or similar)
head -n 5 .husky/_/h || true

Length of output: 18


Add the missing husky helper (.husky/_/h) — pre-commit will fail

  • .husky//h is missing; .husky//pre-commit (line 2) sources it: '. "$(dirname "$0")/h"'.
  • Fix: add & commit .husky/_/h, ensure it begins with strict flags (e.g., set -eu), is readable, and ends with a trailing newline.
🤖 Prompt for AI Agents
In .husky/_/pre-commit around line 2, the script sources .husky/_/h which is
missing; add and commit the .husky/_/h helper file containing the required
helper functions, make it executable/readable, start it with strict shell flags
(for example include set -eu near the top), ensure it ends with a trailing
newline, and verify the pre-commit script can source it without errors.

@pclaesen pclaesen marked this pull request as ready for review October 25, 2025 06:42
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 29e0c34 and 5ce5db3.

📒 Files selected for processing (1)
  • tokens/token-list.json (5 hunks)
🔇 Additional comments (6)
tokens/token-list.json (6)

5643-5652: Duplicate-id fix for mUSD verified and approved.

Dedupe checks pass with no duplicate IDs or network-address collisions. The "mUSD-metamask-mainnet" ID successfully disambiguates MetaMask USD from mStable's "mUSD-mainnet" entry.


6446-6455: Verification complete: mStable mUSD details confirmed.

The contract address 0xe2f2a5C287993345a840Db3B0845fbC70f5935a5 and 18 decimals match Etherscan and mStable documentation for Ethereum mainnet. All token entry values are accurate.


4333-4343: GHO (mainnet) entry verified as correct.

The mainnet contract address (0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f) and decimals (18) match the official Aave documentation. The entry is ready to merge.


7799-7808: I need to identify which USDS token this is to verify the details. Let me search for the specific contract address:

Let me search more specifically for USDS token projects on Optimism:

Based on my research, I can confirm this is the Sky/USDS token (the evolved form of MakerDAO's DAI). USDS is supported across multiple L2s via SkyLink on Ethereum, Base, Arbitrum, Optimism, Polygon, Avalanche, and Solana, and there is a Maker/Sky-controlled vault for DAI, USDS and sUSDS on Optimism.

However, my web searches did not return specific contract addresses for USDS on individual chains, so I cannot definitively confirm whether 0x4F13a96EC5C4Cf34e442b46Bbd98a0791F20edC3 is the official contract address for USDS on Optimism. The decimals value of 18 appears reasonable for this token.

Verify the USDS contract address and confirm current L2 deployment scope.

The entry appears structurally sound, but you should directly verify against official Sky documentation or Etherscan that the Optimism address is correct and whether the set of supported L2s (Arbitrum, Base, Polygon, etc.) should also be added to maintain parity across the token list.


5633-5641: Based on my verification, the review comment's concerns are technically valid but require clarification on PR scope. I cannot determine from codebase inspection alone whether this is a NEW change or reviewing existing state post-commit d4ccfd2.

Key findings:

  1. Sky/MakerDAO's USDS contract (0xdC035D45d973E3EC169d2276DDab16f1e407384F) with decimals 18 is verified as correct.

  2. USDSC is the canonical symbol for legacy Stably USD Classic.

  3. Critical gap: A prior commit (d4ccfd2, Sept 5) already changed USDS-mainnet to point to Sky, but:

    • Version remains 1.0.0 (not bumped for the breaking change)
    • No USDSC entry was created despite the commit message stating the legacy token "has been renamed"
  4. No USDSC or "Stably USD Classic" entry currently exists in the token list.

The review comment is valid: If this PR is adding/modifying USDS-mainnet, either bump the major version with migration notes OR add a new id for Sky's USDS while preserving backward compatibility. Additionally, the missing USDSC entry for legacy Stably should be addressed.

Please clarify: Is this PR making NEW changes to USDS-mainnet, or is it addressing the incomplete migration from a prior commit? Also confirm whether USDSC should be added in this PR.


3-8: Review comment addresses wrong token; actual change is to mUSD, not USDS.

The git diff shows only one change: the mUSD token id was repointed from "mUSD-mainnet" to "mUSD-metamask-mainnet". This is a breaking change to the token id. The review comment's guidance about version bumping logic does apply, but to mUSD (requiring a major bump for the breaking id change), not USDS. No USDS tokens were modified in this PR, so the premise of the review comment is incorrect.

Likely an incorrect or invalid review comment.

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