### Setting Up Local Test Environment Prerequisites (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/e2e/interchaintestv8/README.md This command sequence sets up the necessary environment for running local end-to-end tests. It copies the example environment file to `.env` and then installs the relayer and operator dependencies using `just` commands, which are prerequisites for the test suite. ```shell cp .env.example .env just install-relayer && just install-operator ``` -------------------------------- ### Installing SP1 Relayer Binary Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This `just` command installs the relayer binary, which is required for running specific end-to-end tests that involve packet flow. ```sh just install-relayer ``` -------------------------------- ### Installing SP1 Operator Binary Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This `just` command installs the `sp1-ics07-tendermint` operator binary, which is a prerequisite for running certain end-to-end tests. ```sh just install-operator ``` -------------------------------- ### Installing Contract Dependencies with Bun Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This command installs the Node.js package dependencies for the Solidity contracts using Bun, which is preferred over git submodules for managing contract dependencies in this repository. ```sh bun install ``` -------------------------------- ### Entering Nix Development Shell Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md For Nix users, this command enters a development shell that provides all the necessary project dependencies, streamlining the setup process. ```sh nix develop ``` -------------------------------- ### Linting All Code (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This command runs all linting checks to ensure the codebase adheres to the project's style guide. It should be executed before committing changes to maintain code quality. ```sh just lint-all ``` -------------------------------- ### Executing End-to-End Tests Locally (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/e2e/interchaintestv8/README.md These `just` commands demonstrate how to run specific end-to-end tests locally. The first command shows the general syntax for running a test by specifying the test suite function and test name. The subsequent examples provide concrete usage, such as running `TestDeploy_Groth16` from `TestWithIbcEurekaTestSuite` or using the `test-e2e-eureka` alias for a more direct execution. ```shell # Run the following where `$TEST_NAME` is one of the test names of the `$TEST_SUITE_FN`: just test-e2e $TEST_SUITE_FN/$TEST_NAME # For example, to run the `TestDeploy` test, you would run: just test-e2e TestWithIbcEurekaTestSuite/TestDeploy_Groth16 # Altneratively: just test-e2e-eureka TestDeploy_Groth16 ``` -------------------------------- ### Running Cosmos-to-Cosmos Relayer Tests (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This command executes specific end-to-end tests for the relayer focusing on Cosmos-to-Cosmos connections. It requires the relayer and operator to be installed. Replace $TEST_NAME with the name of the test to run. ```sh just test-e2e-cosmos-relayer $TEST_NAME ``` -------------------------------- ### Running the Relayer Binary Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/programs/relayer/README.md This command executes the relayer binary, specifying a configuration file. The `-c` flag indicates the path to the configuration file, which defines the relayer's operational parameters and chain connections. This allows users to customize the relayer's behavior based on their specific setup. ```sh relayer -c config.json ``` -------------------------------- ### Running SP1 ICS07 Tendermint Light Client Tests (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This command executes specific end-to-end tests for the SP1 ICS07 Tendermint light client. It requires the operator to be installed. Replace $TEST_NAME with the name of the test to run. ```sh just test-e2e-sp1-ics07 $TEST_NAME ``` -------------------------------- ### Running IBC Eureka Tests (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This command executes specific end-to-end tests for the IBC contracts via the relayer. It requires the operator and relayer to be installed. Replace $TEST_NAME with the name of the test to run. ```sh just test-e2e-eureka $TEST_NAME ``` -------------------------------- ### Running Multi-chain Transfer Tests (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This command executes specific end-to-end tests for multi-chain transfers involving Ethereum and multiple Cosmos chains. It requires the relayer and operator to be installed. Replace $TEST_NAME with the name of the test to run. ```sh just test-e2e-multichain $TEST_NAME ``` -------------------------------- ### Running Relayer Tests via IBC Contracts (Shell) Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This command executes specific end-to-end tests for the relayer using the IBC contracts. It requires the relayer and operator to be installed. Replace $TEST_NAME with the name of the test to run. ```sh just test-e2e-relayer $TEST_NAME ``` -------------------------------- ### Running All Foundry Unit Tests Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This `just` command executes all unit tests for the Solidity contracts, which are located in the `test/` directory and written using Foundry/Forge. ```sh just test-foundry ``` -------------------------------- ### Running Specific Foundry Unit Test Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md This `just` command runs a specific unit test for the Solidity contracts by providing the `testname` argument, allowing focused testing of individual functionalities. ```shell just test-foundry test_success_sendTransfer ``` -------------------------------- ### Pulling Foundry Docker Image for Apple Silicon Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/README.md On Apple Silicon Macs, this Docker command pulls the `linux/amd64` version of the Foundry image, which is necessary for compatibility when Rosetta emulation is enabled for Docker. ```sh docker pull --platform=linux/amd64 ghcr.io/foundry-rs/foundry:latest ``` -------------------------------- ### Configuring Foundry Path Remappings Source: https://github.com/cosmos/solidity-ibc-eureka/blob/main/remappings.txt This snippet illustrates how to configure path remappings in a Foundry project. These remappings allow Solidity contracts to import dependencies using shorter, aliased paths instead of full `node_modules` paths, improving readability and portability. This is typically stored in a `remappings.txt` file. ```Foundry Remappings forge-std/=node_modules/forge-std/src/ @openzeppelin-contracts/=node_modules/@openzeppelin/contracts/ @openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/ @sp1-contracts/=node_modules/sp1-contracts/contracts/src/ @uniswap/permit2/=node_modules/@uniswap/permit2/ ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.