FuelLabs / fuels-rs

Fuel Network Rust SDK
https://fuellabs.github.io/fuels-rs
Apache License 2.0
44.04k stars 1.34k forks source link

Feature request: allow setup_test_provider to receive relayer configs #1513

Open DefiCake opened 1 month ago

DefiCake commented 1 month ago

Currently, setup_test_provider bootstraps a standalone fuel-core node. One part of the bootstrap process cannot be accessed: enabling the message passing from Ethereum to Fuel. If we at least enabled --relayer and --relayer-v2-listening-contracts, a lot of testing around messages would be simplified, as we could organically add messages to the fuel node, while we can only do this kind of testing by generating these messages in the genesis.

fuel-core run --help
...
--enable-relayer
          Enable the Relayer. By default, the Relayer is disabled, even when the binary is compiled with the "relayer" feature flag. Providing `--enable-relayer` will enable the relayer service

      --relayer <RELAYER>
          Uri address to ethereum client. It can be in format of `http://localhost:8545/` or `ws://localhost:8545/`. If not set relayer will not start

          [env: RELAYER=]

      --relayer-v2-listening-contracts <ETH_V2_LISTENING_CONTRACTS>
          Ethereum contract address. Create EthAddress into fuel_types

          [env: ETH_V2_LISTENING_CONTRACTS=]

      --relayer-da-deploy-height <DA_DEPLOY_HEIGHT>
          Number of da block that the contract is deployed at

          [env: DA_DEPLOY_HEIGHT=]
          [default: 0]

      --relayer-log-page-size <LOG_PAGE_SIZE>
          Number of pages or blocks containing logs that should be downloaded in a single call to the da layer

          [env: LOG_PAGE_SIZE=]
          [default: 10000]

      --relayer-min-duration-s <SYNC_MINIMUM_DURATION_SECS>
          The minimum number of seconds that the relayer polling loop will take before running again. If this is too low the DA layer risks being spammed

          [env: SYNC_MINIMUM_DURATION_SECS=]
          [default: 5]

      --relayer-eth-sync-call-freq-s <SYNCING_CALL_FREQUENCY_SECS>
          [env: SYNCING_CALL_FREQUENCY_SECS=]
          [default: 5]

      --relayer-eth-sync-log-freq-s <SYNCING_LOG_FREQUENCY_SECS>
          [env: SYNCING_LOG_FREQUENCY_SECS=]
          [default: 60]