Skip to content

Conversation

@jaybuidl
Copy link
Member

@jaybuidl jaybuidl commented Apr 17, 2025

PR-Codex overview

This PR updates various dependencies and configurations across multiple files, including version upgrades and changes to the network configuration for the subgraph. It also refactors contract fetching logic and improves package management.

Detailed summary

  • Updated version in subgraph/package.json to 2.1.0.
  • Updated gluegun version to 5.2.0.
  • Updated @wagmi/cli version to 2.2.1.
  • Changed network in subgraph/subgraph.yaml from arbitrum-one to arbitrum-sepolia.
  • Updated contract address and start block in subgraph.yaml.
  • Refactored contract fetching logic in contracts/deploy/utils/getContracts.ts.
  • Updated ethers version to 6.13.6 in multiple files.
  • Updated @kleros/kleros-v2-contracts version to 0.9.2.
  • Updated hardhat version to 2.23.0 and hardhat-deploy to 1.0.2.
  • Various minor dependency updates and removals across multiple files.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Summary by CodeRabbit

  • Refactor
    • Improved contract retrieval logic for arbitrator-related deployments, simplifying network support and error handling.
    • Updated subgraph configuration to track the arbitrum-sepolia network with new contract address and starting block.
  • Chores
    • Upgraded multiple dependencies and development tools across contracts, subgraph, and web packages for improved compatibility and security.
    • Removed the external deployments configuration from the contract build setup.
    • Removed the unused "ethers" dependency from the web package.
  • Style
    • Updated package versions to reflect the latest releases.

@jaybuidl jaybuidl requested review from a team as code owners April 17, 2025 19:34
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Apr 17, 2025

Walkthrough

This update refactors the deployment utility functions for contract retrieval, centralizing arbitrator contract fetching and simplifying network support logic. The deployment script is updated to use the new utility. The Hardhat configuration removes the external deployments property. Several dependencies are upgraded across the contracts, subgraph, and web packages, with the web app removing the ethers dependency and updating related packages. The subgraph configuration is switched to index a different network and contract deployment, reflecting a move from Arbitrum One to Arbitrum Sepolia.

Changes

File(s) Change Summary
contracts/deploy/00-escrow.ts Updated import and usage to retrieve arbitrator contracts via getArbitratorContracts instead of getContracts. No other logic changed.
contracts/deploy/utils/getContracts.ts Refactored contract retrieval utilities: added getArbitratorContracts, centralized network mapping, delegated contract fetching to a shared function, simplified getContracts, and updated error handling.
contracts/hardhat.config.ts Removed the external property from the Hardhat configuration, eliminating the import of external deployment directories for various networks.
contracts/package.json Upgraded multiple dependencies and devDependencies to newer versions, including major libraries such as @types/chai, chai, ethers, hardhat, hardhat-deploy, @kleros/kleros-v2-contracts, and @openzeppelin/contracts. No other changes.
subgraph/package.json Updated package version from 2.0.8 to 2.1.0 and bumped gluegun dependency version. No other changes.
subgraph/subgraph.yaml Changed the indexed network from "arbitrum-one" to "arbitrum-sepolia", updated contract address, lowered starting block, and switched ABI path to match the new deployment environment. No changes to event handlers or entities.
web/package.json Upgraded "@wagmi/cli", "viem", and "wagmi" package versions. Removed the "ethers" dependency. No other changes.

Sequence Diagram(s)

sequenceDiagram
    participant DeployScript as Deployment Script
    participant Utils as getContracts.ts
    participant HRE as Hardhat Runtime Env
    participant Shared as getContractsEthers

    DeployScript->>Utils: getArbitratorContracts(hre)
    Utils->>HRE: Get current network name
    Utils->>Utils: Map network name to deployment name
    Utils->>Shared: _getArbitratorContracts(provider, deploymentName)
    Shared-->>Utils: Return { klerosCore, disputeTemplateRegistry }
    Utils-->>DeployScript: Return arbitrator contracts
Loading

Suggested labels

Package: Web

Suggested reviewers

  • kemuru

Poem

A rabbit hops with nimble feet,
Through code and configs, changes neat.
Networks swapped and versions rise,
Contract calls now centralized.
Packages fresh, dependencies light—
This warren’s code is running right!
🐇✨

Tip

⚡💬 Agentic Chat (Pro Plan, General Availability)
  • We're introducing multi-step agentic chat in review comments and issue comments, within and outside of PR's. This feature enhances review and issue discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments and add commits to existing pull requests.

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 39989af and bed59c3.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (7)
  • contracts/deploy/00-escrow.ts (2 hunks)
  • contracts/deploy/utils/getContracts.ts (1 hunks)
  • contracts/hardhat.config.ts (0 hunks)
  • contracts/package.json (2 hunks)
  • subgraph/package.json (2 hunks)
  • subgraph/subgraph.yaml (2 hunks)
  • web/package.json (2 hunks)
💤 Files with no reviewable changes (1)
  • contracts/hardhat.config.ts
🧰 Additional context used
🧬 Code Graph Analysis (1)
contracts/deploy/00-escrow.ts (1)
contracts/deploy/utils/getContracts.ts (1)
  • getArbitratorContracts (11-20)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Redirect rules - kleros-escrow-v2
  • GitHub Check: Header rules - kleros-escrow-v2
  • GitHub Check: Pages changed - kleros-escrow-v2
🔇 Additional comments (15)
subgraph/package.json (2)

3-3: Version update aligns with network change

The version increment from 2.0.8 to 2.1.0 appropriately follows semantic versioning principles, reflecting the significant network change from Arbitrum One to Arbitrum Sepolia in the subgraph.yaml file.


33-33: Dependencies kept updated

Updating gluegun to the latest minor version is a good practice for maintaining security and performance.

contracts/deploy/00-escrow.ts (2)

5-5: Improved contract import specificity

Changing from getContracts to getArbitratorContracts makes the code more explicit about what contracts are being retrieved, which improves code readability.


31-31: Refactored contract retrieval with improved error handling

The updated approach centralizes arbitrator contract fetching with proper network validation, making the deployment script more robust. The refactoring aligns with the overall improvements to contract fetching mentioned in the PR objectives.

web/package.json (2)

55-55: Updated @wagmi/cli dependency

Updating @wagmi/cli to a newer version is beneficial for staying current with improvements and bug fixes.


101-102:

✅ Verification successful

Updated web3 libraries and removed ethers

The removal of ethers alongside updates to viem and wagmi suggests a deliberate shift to standardize on viem/wagmi for blockchain interactions in the web app.


🏁 Script executed:

#!/bin/bash
# Check that there are no remaining imports or usages of ethers in the web code
echo "Checking for any remaining ethers imports or usages..."
rg -i "import.*ethers" src/ || echo "No ethers imports found in src/"
rg -i "from.*ethers" src/ || echo "No ethers imports found in src/"
rg -i "require.*ethers" src/ || echo "No ethers requires found in src/"

Length of output: 563


🏁 Script executed:

#!/bin/bash
echo "Searching for any remaining ethers references in the web directory..."
rg -i "import .*ethers" -n web/ || echo "No ethers import statements found in web/"
rg -i "from .*ethers" -n web/   || echo "No ethers import statements found in web/"
rg -i "require.*ethers" -n web/ || echo "No ethers require calls found in web/"
rg -i "ethers" -n web/          || echo "No other ethers references found in web/"

Length of output: 1098


✅ Confirmed removal of ethers – code changes approved

Verification shows no remaining imports or requires of the ethers library in the web/ directory. The only “ethers” references are to the Etherscan SVG icon and URL in web/src/components/PreviewCard/Header.tsx, which don’t pull in the ethers package. All blockchain interactions now correctly rely on viem and wagmi.

subgraph/subgraph.yaml (3)

7-7: Network updated to Arbitrum Sepolia

Changing from Arbitrum One to Arbitrum Sepolia aligns with the PR objectives to update network configurations. This shift to a testnet environment is appropriate for testing and development purposes.


9-11: Updated contract address and start block

The contract address and start block have been appropriately updated to match the new deployment on Arbitrum Sepolia. This ensures the subgraph properly indexes events from the beginning of the contract's deployment.


25-25: Updated ABI file path to match new deployment

The ABI file path has been correctly updated to point to the arbitrumSepoliaDevnet deployment, ensuring the subgraph uses the correct ABI for the new network.

contracts/package.json (1)

61-87:

❓ Verification inconclusive

Multiple dependency updates to newer versions

The package.json file has been updated with several important dependency version bumps:

  • Major version update for @types/chai (4.x to 5.x) and chai (4.x to 5.x) may require test code adjustments
  • hardhat-deploy updated from 0.14.0 to 1.0.2 (major version change)
  • @kleros/kleros-v2-contracts updated from 0.8.1 to 0.9.2, which supports the refactoring in getContracts.ts

🏁 Script executed:

#!/bin/bash
# Check for breaking changes in major version updates

echo "Checking hardhat-deploy changelog for breaking changes between 0.14.0 and 1.0.2"
curl -s "https://api.github.com/repos/wighawag/hardhat-deploy/releases" | jq -r '.[] | select(.tag_name == "v1.0.0" or .tag_name == "v1.0.1" or .tag_name == "v1.0.2") | .body' | grep -i "breaking"

echo -e "\nChecking chai changelog for breaking changes between v4 and v5"
curl -s "https://api.github.com/repos/chaijs/chai/releases" | jq -r '.[] | select(.tag_name == "v5.0.0") | .body' | grep -i "breaking"

Length of output: 657


Multiple major dependency bumps – please verify compatibility

  • File contracts/package.json (lines 61–87):
    • chai bumped from 4.x to 5.x – the v5.0.0 release notes include a “## BREAKING CHANGES” section. You’ll need to update any deprecated assertions or plugins in your tests.
    • hardhat-deploy bumped from 0.14.0 to 1.0.2 – no explicit “breaking” entries were found in the v1.0.2 release notes, but review your deployment scripts against the updated API and run a full deploy cycle to confirm nothing regressed.
    • @kleros/kleros-v2-contracts bumped from 0.8.1 to 0.9.2 – make sure your refactored getContracts.ts aligns with any changes in the contract ABIs or factory names; consult the kleros-v2-contracts v0.9.2 changelog for details.
contracts/deploy/utils/getContracts.ts (5)

2-2: Updated import from kleros-v2-contracts

The import now correctly uses the getContractsEthers function from the updated dependency, with a clear alias that indicates its purpose.


5-9: Clear network-to-deployment mapping

Introducing a mapping from network names to deployment names improves readability and maintainability. Using as const ensures type safety.


11-20: New centralized function for retrieving arbitrator contracts

The new getArbitratorContracts function centralizes the logic for retrieving arbitrator contracts, improving code organization and reusability.

The error handling includes a helpful message that lists all supported networks, making it easier to debug network-related issues.


22-25: Simplified contract retrieval logic

The getContracts function now uses the new getArbitratorContracts function, removing the need for chain ID-based switching and making the code more maintainable.


5-28:

✅ Verification successful

Verify that all required networks are supported

Make sure that the NETWORK_TO_DEPLOYMENT mapping includes all networks that will be used in your deployment workflows.


🏁 Script executed:

#!/bin/bash
# Check if all networks mentioned in package.json scripts are supported

echo "Networks defined in NETWORK_TO_DEPLOYMENT:"
echo "- arbitrumSepoliaDevnet"
echo "- arbitrumSepolia"
echo "- arbitrum"

echo -e "\nNetworks referenced in package.json scripts:"
cd contracts
grep -o "arbitrum[^ \"',]*" package.json | sort | uniq

echo -e "\nNetworks defined in hardhat.config.ts:"
grep -o "arbitrum[^ \"',]*" hardhat.config.ts 2>/dev/null || echo "Network definitions might be in a different format"

Length of output: 811


NETWORK_TO_DEPLOYMENT covers all configured networks
Your mapping includes arbitrum, arbitrumSepolia, and arbitrumSepoliaDevnet, which matches the network keys in both your Hardhat config and your deployment scripts. No additional entries are required here.

✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@jaybuidl jaybuidl requested review from kemuru and tractorss April 17, 2025 19:35
@netlify
Copy link

netlify bot commented Apr 17, 2025

Deploy Preview for kleros-escrow-v2 failed. Why did it fail? →

Name Link
🔨 Latest commit bed59c3
🔍 Latest deploy log https://app.netlify.com/sites/kleros-escrow-v2/deploys/680157e5e918cd0008e44326

Copy link
Contributor

@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

🧹 Nitpick comments (1)
contracts/deploy/utils/getContracts.ts (1)

5-9: Good use of constant mapping for network configuration

The NETWORK_TO_DEPLOYMENT constant effectively maps network names to deployment names, making the code more maintainable. This approach follows best practices by centralizing configuration in a type-safe mapping.

However, consider adding a comment explaining the mapping's purpose and the meaning of each deployment name (devnet, testnet, mainnetNeo) for better documentation.

 const NETWORK_TO_DEPLOYMENT: Record<string, DeploymentName> = {
   arbitrumSepoliaDevnet: "devnet",
   arbitrumSepolia: "testnet",
   arbitrum: "mainnetNeo",
+  // Map network names to the appropriate deployment names in kleros-v2-contracts
 } as const;
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 39989af and bed59c3.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (7)
  • contracts/deploy/00-escrow.ts (2 hunks)
  • contracts/deploy/utils/getContracts.ts (1 hunks)
  • contracts/hardhat.config.ts (0 hunks)
  • contracts/package.json (2 hunks)
  • subgraph/package.json (2 hunks)
  • subgraph/subgraph.yaml (2 hunks)
  • web/package.json (2 hunks)
💤 Files with no reviewable changes (1)
  • contracts/hardhat.config.ts
🧰 Additional context used
🧬 Code Graph Analysis (1)
contracts/deploy/00-escrow.ts (1)
contracts/deploy/utils/getContracts.ts (1)
  • getArbitratorContracts (11-20)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Redirect rules - kleros-escrow-v2
  • GitHub Check: Header rules - kleros-escrow-v2
  • GitHub Check: Pages changed - kleros-escrow-v2
🔇 Additional comments (9)
subgraph/package.json (2)

3-3: Version bump aligns with the subgraph redeployment

The version increment from 2.0.8 to 2.1.0 appropriately reflects the significant changes being made to the subgraph configuration, particularly the network change to arbitrum-sepolia.


33-33: Dependency update looks good

The gluegun dependency update from ^5.1.2 to ^5.2.0 is a minor version bump that maintains compatibility while providing access to newer features or bug fixes.

web/package.json (1)

55-55: Development dependency update looks good

The @wagmi/cli update from ^2.1.15 to ^2.2.1 is appropriate and should maintain compatibility while providing access to newer features.

contracts/deploy/00-escrow.ts (1)

5-5: Improved contract fetching abstraction

The refactoring to use the more specific getArbitratorContracts function improves code organization and provides better error handling for unsupported networks. This change follows good software engineering principles by making the code more modular and maintainable.

Also applies to: 31-31

subgraph/subgraph.yaml (1)

7-7:

✅ Verification successful

Network configuration updated for arbitrum-sepolia

The subgraph configuration has been properly updated to track the arbitrum-sepolia network instead of arbitrum-one. The contract address, start block, and ABI path have all been updated consistently to match the new deployment environment.

Also applies to: 9-9, 11-11, 25-25


🏁 Script executed:

#!/bin/bash
# Verify that the contract address in the subgraph.yaml matches the deployment address

SUBGRAPH_ADDRESS=$(grep "address:" subgraph/subgraph.yaml | awk '{print $2}' | tr -d "'")
DEPLOYMENT_ADDRESS=$(grep -A 1 "address\":" contracts/deployments/arbitrumSepoliaDevnet/EscrowUniversal.json | grep -v "address" | tr -d '", ' | xargs)

echo "Subgraph address: $SUBGRAPH_ADDRESS"
echo "Deployment file address: $DEPLOYMENT_ADDRESS"

if [ "$SUBGRAPH_ADDRESS" = "$DEPLOYMENT_ADDRESS" ]; then
  echo "✅ Addresses match"
else
  echo "❌ Addresses don't match"
fi

Length of output: 796


🏁 Script executed:

#!/bin/bash
# Inspect the deployment JSON to locate the address field
sed -n '1,50p' contracts/deployments/arbitrumSepoliaDevnet/EscrowUniversal.json

Length of output: 1252


🏁 Script executed:

#!/bin/bash
# Display the first 80 lines of subgraph.yaml with line numbers for review
nl -ba subgraph/subgraph.yaml | sed -n '1,80p'

Length of output: 139


🏁 Script executed:

#!/bin/bash
# Display the first 80 lines of the subgraph manifest to verify address, startBlock, and ABI paths
sed -n '1,80p' subgraph/subgraph.yaml

Length of output: 1696


Subgraph configuration updated to arbitrum‑sepolia and contract address verified

  • network field changed to arbitrum-sepolia.
  • source.address in subgraph/subgraph.yaml (0x5ef185810BCe41c03c9E5ca271B8C91F1024F953) matches the "address" in contracts/deployments/arbitrumSepoliaDevnet/EscrowUniversal.json.
  • startBlock: 123526741 and the ABI file path (../contracts/deployments/arbitrumSepoliaDevnet/EscrowUniversal.json) correctly point to the new deployment.

All updates are consistent. Approving these changes.

contracts/package.json (1)

61-61:

✅ Verification successful

Dependency updates: Check compatibility and CI success

Several dependencies have been updated to newer versions, including major version bumps for chai (^4.5.0 → ^5.2.0) and @types/chai (^4.3.20 → ^5.2.1), which might introduce breaking changes in the testing infrastructure. Also notable is the major version update of hardhat-deploy from ^0.14.0 to ^1.0.2. These updates align with the PR objectives of upgrading dependencies.

Make sure CI tests are passing successfully to confirm that these updates don't introduce compatibility issues in the existing codebase.

Also applies to: 63-66, 69-69, 72-73, 76-76, 86-87


🏁 Script executed:

#!/bin/bash
# Check for any breaking changes in chai v5 that might affect testing
echo "Checking for potential breaking changes in Chai v5..."
curl -s https://github.com/chaijs/chai/releases | grep -A 10 "v5.0.0" | grep -i "breaking"

# Check if there are any CI failures related to these dependency updates
echo "Looking for test files that might be affected by chai updates..."
find . -type f -name "*.test.ts" | xargs grep -l "chai" | head -5

Length of output: 410


🏁 Script executed:

#!/bin/bash
set -e

echo "=== Checking Chai CHANGELOG for v5.0.0 entries ==="
curl -s https://raw.githubusercontent.com/chaijs/chai/main/CHANGELOG.md \
  | sed -n '/## 5\.0\.0/,/## 5\.1\.0/p' \
  | head -n 20

echo
echo "=== Checking for “break” keywords in that section ==="
curl -s https://raw.githubusercontent.com/chaijs/chai/main/CHANGELOG.md \
  | sed -n '/## 5\.0\.0/,/## 5\.1\.0/p' \
  | grep -i break || echo "No “break” mentions found"

echo
echo "=== Checking hardhat-deploy CHANGELOG for v1.0.0 entries ==="
curl -s https://raw.githubusercontent.com/wighawag/hardhat-deploy/main/CHANGELOG.md \
  | sed -n '/## \[1\.0\.0\]/,/## \[1\.1\.0\]/p' \
  | head -n 20

echo
echo "=== Checking for “break” keywords in that section ==="
curl -s https://raw.githubusercontent.com/wighawag/hardhat-deploy/main/CHANGELOG.md \
  | sed -n '/## \[1\.0\.0\]/,/## \[1\.1\.0\]/p' \
  | grep -i break || echo "No “break” mentions found"

echo
echo "=== Searching codebase for Chai imports in tests ==="
rg -n "from ['\"]chai['\"]" --glob "*.{ts,js}" || echo "No direct imports from 'chai' found"

Length of output: 1439


Dependency updates verified – no breaking changes in Chai v5 or Hardhat‑deploy v1 detected

Chai v5.0.0 and Hardhat‑deploy v1.0.0 CHANGELOGs show no explicit breaking changes, and no direct import/require of chai was found in the test files. Please confirm that the CI test suite passes under these new versions. No further changes are required.

contracts/deploy/utils/getContracts.ts (3)

2-2: Improved import with renamed helper function

The refactoring centralizes contract retrieval logic by importing a helper function from the Kleros contracts package. Renaming the imported function to _getArbitratorContracts makes its purpose clearer and follows the convention of marking internal utilities with an underscore.


11-20: Well-implemented helper function with proper error handling

The new getArbitratorContracts function effectively:

  1. Retrieves the current network name
  2. Maps it to a deployment name
  3. Provides a clear error message for unsupported networks
  4. Delegates actual retrieval to the imported helper

This improves modularity and follows the single responsibility principle by isolating the network mapping logic.


23-24: Simplified contract retrieval with cleaner implementation

The updated getContracts function now uses the new helper function to retrieve arbitrator contracts, making the code more maintainable by removing duplicate logic and centralizing the contract retrieval process. This aligns well with the PR objective of refactoring contract fetching logic.

@jaybuidl jaybuidl merged commit 53b2e99 into dev Apr 18, 2025
3 of 7 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Apr 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants