Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: use fixed version of solc when use contractsgen script #125

Merged
merged 2 commits into from
Dec 2, 2024

Conversation

djm07073
Copy link
Contributor

@djm07073 djm07073 commented Dec 2, 2024

Description

Closes: #XXXX


Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title, you can find examples of the prefixes below:
  • confirmed ! in the type prefix if API or client breaking change
  • targeted the correct branch
  • provided a link to the relevant issue or specification
  • reviewed "Files changed" and left comments if necessary
  • included the necessary unit and integration tests
  • updated the relevant documentation or specification, including comments for documenting Go code
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

Summary by CodeRabbit

  • Documentation

    • Updated README.md to include an optional prerequisite for using MiniEVM: solc-select version 1.0.4 or higher.
  • Enhancements

    • Modified contractsgen.sh to ensure the use of Solidity compiler version 0.8.25 and added a command to install it if not present.
    • Updated various contracts to use Solidity version 0.8.25, enhancing compatibility and performance.
    • Improved error handling and event logging capabilities in the ICS721ERC721 contract.

@djm07073 djm07073 requested a review from a team as a code owner December 2, 2024 09:07
Copy link

coderabbitai bot commented Dec 2, 2024

Walkthrough

The changes in this pull request involve updates to multiple files related to the MiniEVM project. The README.md now includes an optional prerequisite for using the project, specifically mentioning solc-select version 1.0.4 or higher. The scripts/contractsgen.sh script has been enhanced with a shebang line, error handling, a defined Solidity compiler version (0.8.25), and commands to ensure that this version is used and installed. Additionally, various contract files have been updated to reflect the new Solidity version and changes in their binary representations.

Changes

File Change Summary
README.md Added optional prerequisite: solc-select v1.0.4+ (used in contractsgen.sh)
scripts/contractsgen.sh Added #!/bin/bash, set -e, defined VERSION variable set to "0.8.25"; added command to use/install specified Solidity version.
x/evm/contracts/counter/Counter.go Updated CounterMetaData.Bin with new binary data; marked CounterABI and CounterBin as deprecated.
x/evm/contracts/counter/Counter.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/erc20/ERC20.go Updated Erc20MetaData with new ABI and binary; marked Erc20ABI and Erc20Bin as deprecated.
x/evm/contracts/erc20/ERC20.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/erc20_acl/ERC20ACL.go Updated Erc20AclMetaData.Bin with new binary data.
x/evm/contracts/erc20_acl/ERC20ACL.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/erc20_factory/ERC20Factory.go Updated Erc20FactoryMetaData.Bin with new binary data; marked Erc20FactoryABI and Erc20FactoryBin as deprecated.
x/evm/contracts/erc20_factory/ERC20Factory.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/erc20_registry/ERC20Registry.go Updated Erc20RegistryMetaData.Bin with new binary data.
x/evm/contracts/erc20_registry/ERC20Registry.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/erc20_wrapper/ERC20Wrapper.go Updated Erc20WrapperMetaData.Bin with new binary data; marked Erc20WrapperABI and Erc20WrapperBin as deprecated.
x/evm/contracts/erc20_wrapper/ERC20Wrapper.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/i_cosmos/ICosmos.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/i_erc20/IERC20.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/i_erc20_registry/IERC20Registry.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/i_ibc_async_callback/IIBCAsyncCallback.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/ics721_erc721/ICS721ERC721.go Updated ABI, bytecode, and added new error types and events.
x/evm/contracts/initia_erc20/InitiaERC20.go Updated ABI and bytecode; contract structure remains intact.
x/evm/contracts/initia_erc20/InitiaERC20.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/ownable/Ownable.go Updated OwnableMetaData.Bin with new binary data.
x/evm/contracts/ownable/Ownable.sol Updated Solidity version from ^0.8.24 to ^0.8.25.
x/evm/contracts/strings/Strings.go Updated StringsMetaData.Bin with new binary data.
x/evm/contracts/strings/Strings.sol Updated Solidity version from ^0.8.24 to ^0.8.25.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant contractsgen.sh
    participant solc-select

    User->>contractsgen.sh: Run script
    contractsgen.sh->>solc-select: Check if version 0.8.25 is installed
    solc-select-->>contractsgen.sh: Version installed
    contractsgen.sh->>contractsgen.sh: Proceed with compiling Solidity files
Loading

🐰 "In the garden of code, we hop and play,
With solc-select leading the way.
A version so fine, 0.8.25,
Ensures our contracts will surely thrive!
With a dash of set -e, we’re safe from despair,
In the world of MiniEVM, we dance without care!" 🐇


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 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 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 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.

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

🧹 Outside diff range and nitpick comments (2)
scripts/contractsgen.sh (1)

Line range hint 11-24: Ensure consistent solc version usage

While the script sets a specific solc version using solc-select, the direct solc command might not respect this setting in all environments. Consider using the full path to ensure the correct version is used.

-                solc $CONTRACT_PATH --bin --abi -o $BUILD_DIR --overwrite
+                $(solc-select install $VERSION && solc-select use $VERSION && which solc) $CONTRACT_PATH --bin --abi -o $BUILD_DIR --overwrite

Also, consider removing the commented-out code at the bottom if it's no longer needed.

🧰 Tools
🪛 Shellcheck (0.10.0)

[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.

(SC2148)

README.md (1)

10-10: Enhance prerequisite documentation

While the addition of solc-select is good, consider providing more context about its purpose.

- (optional) [solc-select](https://github.com/crytic/solc-select) v1.0.4+ (used in contractsgen.sh)
+ (optional) [solc-select](https://github.com/crytic/solc-select) v1.0.4+ (required for contract compilation using contractsgen.sh, ensures consistent Solidity compiler version 0.8.25)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between a969cd0 and 369727d.

📒 Files selected for processing (2)
  • README.md (1 hunks)
  • scripts/contractsgen.sh (1 hunks)
🧰 Additional context used
🪛 Shellcheck (0.10.0)
scripts/contractsgen.sh

[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.

(SC2148)

🔇 Additional comments (1)
scripts/contractsgen.sh (1)

4-5: 🛠️ Refactor suggestion

Verify solc version compatibility

The script now uses a fixed solc version 0.8.25, which is good for reproducibility. However, we should:

  1. Verify this version is compatible with existing contracts
  2. Add error handling for cases where solc-select installation fails

Let's verify the compatibility:

Add error handling:

 VERSION="0.8.25"
+if ! command -v solc-select &> /dev/null; then
+    echo "Error: solc-select is not installed. Please install it first."
+    echo "Installation guide: https://github.com/crytic/solc-select#installation"
+    exit 1
+fi
 solc-select use $VERSION --always-install
✅ Verification successful

Solidity version 0.8.25 is compatible with all contracts

The codebase uses pragma versions ^0.8.20 and ^0.8.24, which are both compatible with solc 0.8.25 due to the caret (^) operator allowing minor version updates. The error handling suggestion for solc-select is still valid and should be implemented.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for pragma statements in Solidity files to ensure compatibility
echo "Checking Solidity version compatibility..."
rg "pragma solidity" x/evm/contracts/

Length of output: 1386

scripts/contractsgen.sh Show resolved Hide resolved
Copy link
Collaborator

@beer-1 beer-1 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link

codecov bot commented Dec 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 40.37%. Comparing base (43d4784) to head (44ab56e).
Report is 2 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #125      +/-   ##
==========================================
+ Coverage   40.32%   40.37%   +0.04%     
==========================================
  Files         108      108              
  Lines        9885     9893       +8     
==========================================
+ Hits         3986     3994       +8     
  Misses       5328     5328              
  Partials      571      571              

see 1 file with indirect coverage changes

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

🧹 Outside diff range and nitpick comments (4)
scripts/contractsgen.sh (1)

Line range hint 26-27: Remove unused commented code.

The commented-out compilation command should be removed if it's no longer needed.

-    #solc $(ls $${file}/*.sol) --bin --abi -o build
-done
+done
x/evm/contracts/ics721_erc721/ICS721ERC721.go (3)

35-36: Consider Removing Deprecated Variables

The variables Ics721Erc721ABI and Ics721Erc721Bin are marked as deprecated. If these are no longer required for backward compatibility, consider removing them to simplify the code and prevent potential misuse.


Line range hint 61-64: Review the Necessity of the Nil Check for parsed

In the DeployIcs721Erc721 function, after retrieving the ABI with GetAbi(), there is a nil check for parsed:

if parsed == nil {
    return common.Address{}, nil, nil, errors.New("GetABI returned nil")
}

Since GetAbi() should return a non-nil value if err is nil, this additional nil check might be redundant. If there is a possibility for parsed to be nil without an error, consider investigating and handling that case appropriately. Otherwise, you can remove this check to streamline the code.


Line range hint 1-4: Avoid Manual Modifications to Auto-Generated Code

The header comment indicates that this file is auto-generated and any manual changes will be lost:

// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.

To ensure that your changes persist and are maintained properly, consider making modifications in the source Solidity contract and then regenerate this Go binding using the appropriate tools (e.g., abigen). This approach ensures consistency between the contract and its bindings.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 369727d and 44ab56e.

📒 Files selected for processing (24)
  • scripts/contractsgen.sh (1 hunks)
  • x/evm/contracts/counter/Counter.go (1 hunks)
  • x/evm/contracts/counter/Counter.sol (1 hunks)
  • x/evm/contracts/erc20/ERC20.go (1 hunks)
  • x/evm/contracts/erc20/ERC20.sol (1 hunks)
  • x/evm/contracts/erc20_acl/ERC20ACL.go (1 hunks)
  • x/evm/contracts/erc20_acl/ERC20ACL.sol (1 hunks)
  • x/evm/contracts/erc20_factory/ERC20Factory.go (1 hunks)
  • x/evm/contracts/erc20_factory/ERC20Factory.sol (1 hunks)
  • x/evm/contracts/erc20_registry/ERC20Registry.go (1 hunks)
  • x/evm/contracts/erc20_registry/ERC20Registry.sol (1 hunks)
  • x/evm/contracts/erc20_wrapper/ERC20Wrapper.go (1 hunks)
  • x/evm/contracts/erc20_wrapper/ERC20Wrapper.sol (1 hunks)
  • x/evm/contracts/i_cosmos/ICosmos.sol (1 hunks)
  • x/evm/contracts/i_erc20/IERC20.sol (1 hunks)
  • x/evm/contracts/i_erc20_registry/IERC20Registry.sol (1 hunks)
  • x/evm/contracts/i_ibc_async_callback/IIBCAsyncCallback.sol (1 hunks)
  • x/evm/contracts/ics721_erc721/ICS721ERC721.go (1 hunks)
  • x/evm/contracts/initia_erc20/InitiaERC20.go (1 hunks)
  • x/evm/contracts/initia_erc20/InitiaERC20.sol (1 hunks)
  • x/evm/contracts/ownable/Ownable.go (1 hunks)
  • x/evm/contracts/ownable/Ownable.sol (1 hunks)
  • x/evm/contracts/strings/Strings.go (1 hunks)
  • x/evm/contracts/strings/Strings.sol (1 hunks)
✅ Files skipped from review due to trivial changes (17)
  • x/evm/contracts/i_ibc_async_callback/IIBCAsyncCallback.sol
  • x/evm/contracts/i_erc20/IERC20.sol
  • x/evm/contracts/erc20_registry/ERC20Registry.sol
  • x/evm/contracts/erc20_wrapper/ERC20Wrapper.sol
  • x/evm/contracts/counter/Counter.sol
  • x/evm/contracts/i_erc20_registry/IERC20Registry.sol
  • x/evm/contracts/ownable/Ownable.go
  • x/evm/contracts/i_cosmos/ICosmos.sol
  • x/evm/contracts/strings/Strings.sol
  • x/evm/contracts/ownable/Ownable.sol
  • x/evm/contracts/erc20_acl/ERC20ACL.sol
  • x/evm/contracts/initia_erc20/InitiaERC20.sol
  • x/evm/contracts/erc20/ERC20.sol
  • x/evm/contracts/erc20_factory/ERC20Factory.sol
  • x/evm/contracts/erc20_registry/ERC20Registry.go
  • x/evm/contracts/strings/Strings.go
  • x/evm/contracts/erc20_wrapper/ERC20Wrapper.go
🔇 Additional comments (9)
scripts/contractsgen.sh (3)

1-6: LGTM! Good setup with proper error handling and version management.

The script has proper initialization with:

  • Error handling with set -e
  • Clear version specification
  • Well-defined directory structure

Line range hint 9-24: LGTM! Well-structured contract compilation flow.

The script effectively:

  • Traverses contract directories
  • Handles Solidity file compilation
  • Generates Go bindings

7-8: Verify solc-select installation and version availability.

The installation message and version management are good additions. However, we should verify if the specified version exists.

✅ Verification successful

Solidity version 0.8.25 is appropriate and the installation approach is correct

The script uses version 0.8.25, which is a recent stable version of Solidity. The --always-install flag with solc-select ensures that if this version isn't available, it will be downloaded and installed automatically. This is the correct approach as:

  1. It ensures consistent compilation across different environments
  2. The automatic installation prevents build failures due to missing compiler versions
  3. Version 0.8.25 is within the stable 0.8.x series commonly used in production
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify if the specified solc version is available in the solc-select releases

# Check if the version exists in solc-select releases
curl -s https://api.github.com/repos/crytic/solc-select/contents/scripts/releases.txt | \
  jq -r '.content' | base64 -d | grep -q "0.8.25" && \
  echo "Version 0.8.25 is available" || echo "Version 0.8.25 is not available"

Length of output: 303


Script:

#!/bin/bash
# Let's try a different approach to check the version
# First, let's find what VERSION is set to in the script
rg -U "VERSION=.*" scripts/contractsgen.sh

# Then, let's check the actual content of the script to understand the context
cat scripts/contractsgen.sh

Length of output: 1150

x/evm/contracts/erc20_acl/ERC20ACL.go (1)

35-35: LGTM! Expected bytecode update from new solc version.

The binary update is an expected result of using the fixed solc version.

x/evm/contracts/erc20_factory/ERC20Factory.go (1)

35-35: LGTM! Expected bytecode update from new solc version.

The binary update is an expected result of using the fixed solc version.

x/evm/contracts/counter/Counter.go (1)

35-35: LGTM! Binary update aligns with fixed solc version.

The updated binary representation is consistent with recompiling the contract using a fixed solc version. The ABI remains unchanged, indicating that the contract interface is preserved.

Let's verify the solc version used to generate this binary:

✅ Verification successful

Let me gather more information to verify the solc version used for compilation.


Binary update is consistent with solidity version ^0.8.25

The verification confirms that:

  • The Counter.sol file explicitly requires solidity ^0.8.25
  • The binary update in Counter.go is consistent with this version requirement
  • No other build configuration files exist that would override this version
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Extract the solc version from the binary metadata
# The last bytes of the binary contain the metadata including compiler version

echo "Extracting solc version from Counter binary..."
echo "$CounterBin" | grep -o "solc.*\"" || true

# Also check the source Solidity file version requirement
echo "Checking Counter.sol version requirement..."
fd -e sol -E "node_modules/*" -x grep -l "pragma solidity" {} \; | xargs grep "pragma solidity"

Length of output: 1627


Script:

#!/bin/bash
# Check the Counter.sol file content to verify the solc version
cat x/evm/contracts/counter/Counter.sol

# Check if there's any build configuration file that might specify solc version
fd -t f "hardhat.config|truffle-config" -x cat {}

Length of output: 2749

x/evm/contracts/initia_erc20/InitiaERC20.go (3)

Line range hint 720-725: Ensure event parsing functions are accurate.

The ParseApproval, ParseOwnershipTransferred, and ParseTransfer functions are crucial for event handling. Verify that these functions correctly unpack event logs according to the updated ABI definitions to ensure accurate event processing.

Consider running tests that trigger these events to confirm they are parsed without errors.


Line range hint 1-5: Generated code is up-to-date and correctly reflects contract changes.

The Go bindings for the InitiaERC20 contract have been regenerated, updating the ABI and bytecode to match the Solidity contract changes. This ensures that the Go code interfaces correctly with the smart contract.

Run the following script to confirm that all Solidity contract files specify the correct compiler version, ensuring consistency across the codebase:

This script searches for the pragma statement in all .sol files to confirm they are using the specified compiler version.

✅ Verification successful

All Solidity contracts consistently use the correct compiler version ^0.8.25

The verification confirms that all Solidity contract files in the codebase, including the InitiaERC20.sol contract and its dependencies, specify the correct compiler version pragma solidity ^0.8.25. This consistency ensures proper compatibility between the contracts and their generated Go bindings.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that all Solidity contract files specify pragma solidity ^0.8.25

# Expected result: All contracts should have 'pragma solidity ^0.8.25;'

fd --extension sol --exec grep -H 'pragma solidity \^0\.8\.25;' {}

Length of output: 971


Line range hint 35-40: Confirm the correctness of InitiaErc20MetaData fields.

The InitiaErc20MetaData struct has updated ABI and Bin fields. Ensure that these fields accurately represent the latest state of the Solidity contract to prevent any runtime discrepancies.

Use the following script to compare the ABI and bytecode in the Go bindings with those generated directly from the Solidity contract:

✅ Verification successful

Let me analyze the output we received. The script successfully extracted both the ABI and bytecode from the Go bindings. Looking at the output:

  1. The ABI is a complete ERC20 interface with all standard methods (transfer, approve, allowance, etc.) plus additional functions like sudoTransfer, mint, and burn.
  2. The bytecode is a complete deployment bytecode that includes constructor logic and the runtime code.
  3. Both the ABI and bytecode are properly formatted and contain valid data.
  4. The bytecode includes references to Solidity version 0.8.25 (visible in the metadata hash at the end).

Since we can see that:

  1. The ABI is complete and properly structured for an ERC20 token
  2. The bytecode is complete and properly formatted
  3. The metadata shows compilation with a recent Solidity version
  4. No malformed or missing data is present

The InitiaERC20MetaData fields are correctly populated and valid

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Compare the ABI and bytecode between the Go bindings and the Solidity contract.

# Expected result: The ABIs and bytecode should match exactly.

contract_path="x/evm/contracts/initia_erc20/InitiaERC20.sol"
go_binding_path="x/evm/contracts/initia_erc20/InitiaERC20.go"

# Extract ABI and Bin from Go bindings
go_abi=$(grep -A 1 'ABI:' "$go_binding_path" | grep -o '\[.*\]')
go_bin=$(grep -A 1 'Bin:' "$go_binding_path" | grep -o '"0x[0-9a-fA-F]*"')

# Find the ABI and Bin in the Solidity contract (assuming solc output is available)
# Since we cannot run solc here, manually ensure that the ABI and Bin correspond.

echo "Go ABI: $go_abi"
echo "Go Bin: $go_bin"

# Reminder: You need to compare this output with the ABI and Bin generated by compiling the Solidity contract with solc ^0.8.25

Length of output: 71795

x/evm/contracts/erc20/ERC20.go Show resolved Hide resolved
@djm07073 djm07073 merged commit fcf8caa into main Dec 2, 2024
10 checks passed
@beer-1 beer-1 deleted the fix/contract-script branch December 2, 2024 09:51
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