Skip to content

Refactor e2e tests#212

Merged
ezdac merged 7 commits intocelo8from
ezdac/issue-177-e2e-test
Sep 24, 2024
Merged

Refactor e2e tests#212
ezdac merged 7 commits intocelo8from
ezdac/issue-177-e2e-test

Conversation

@ezdac
Copy link
Copy Markdown

@ezdac ezdac commented Sep 10, 2024

This is based on #202 - don't merge before that.

Adapts the e2e tests for the fee-currency changes in #202 and refactors the bash-based test-suite to a more modular design.

@ezdac ezdac force-pushed the ezdac/issue-177-e2e-test branch from b35cbe1 to 0723419 Compare September 11, 2024 09:57
@ezdac ezdac marked this pull request as ready for review September 11, 2024 12:51
@ezdac ezdac force-pushed the ezdac/issue-177-e2e-test branch 2 times, most recently from cd4c33a to cb9fe72 Compare September 17, 2024 07:46
@ezdac ezdac force-pushed the ezdac/issue-177-e2e-test branch from cb9fe72 to 7f0bc60 Compare September 19, 2024 13:41
@ezdac ezdac requested a review from karlb September 19, 2024 13:44
Copy link
Copy Markdown

@karlb karlb left a comment

Choose a reason for hiding this comment

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

This is getting into "too much functionality for bash" territory...

@ezdac ezdac force-pushed the ezdac/issue-177-e2e-test branch from a07f072 to eb19209 Compare September 24, 2024 08:14
@ezdac ezdac requested a review from karlb September 24, 2024 08:14
@ezdac ezdac force-pushed the ezdac/issue-177-e2e-test branch from eb19209 to 107e1f3 Compare September 24, 2024 10:33
Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.
The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.
@ezdac ezdac force-pushed the ezdac/issue-177-e2e-test branch from 107e1f3 to a6aa79e Compare September 24, 2024 13:20
@ezdac ezdac merged commit 1290c4a into celo8 Sep 24, 2024
@ezdac ezdac deleted the ezdac/issue-177-e2e-test branch September 24, 2024 14:18
karlb pushed a commit that referenced this pull request Oct 11, 2024
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy pushed a commit that referenced this pull request Oct 15, 2024
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
karlb pushed a commit that referenced this pull request Dec 13, 2024
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
karlb pushed a commit that referenced this pull request Dec 16, 2024
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
karlb pushed a commit that referenced this pull request Dec 17, 2024
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
karlb added a commit that referenced this pull request Jan 27, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
karlb pushed a commit that referenced this pull request Jan 27, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy pushed a commit that referenced this pull request Apr 21, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy pushed a commit that referenced this pull request Apr 21, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy pushed a commit that referenced this pull request Apr 21, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy pushed a commit that referenced this pull request Apr 21, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy pushed a commit that referenced this pull request Apr 21, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy pushed a commit that referenced this pull request Apr 23, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx
piersy added a commit that referenced this pull request Apr 24, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx

* Add gas price difference test

Run e2e tests on alfajores (#258)

Modifies our e2e tests to be able to run on alfajores if the
environment variable `NETWORK` is set to 'alfajores'.
Also adds a CI step to run them against alfajores.

Note that the `test_fee_currency...` tests are skipped
because they require the ability to deploy new fee currencies,
which we probably don't want to be doing on a live network
as it could cause issues for people, and we also don't want to
expose the credentials to do so.

Set correct fee currency directory in e2e test

Skip failing tests (#268)

Fix failing e2e tests in test_viem_tx (#293)

* Fix failing e2e tests in test_viem_tx

* Add timeout for some failing tests

* Add comments about new sleep in e2e test

* Add sleep in test_token_duality

* Revert adding sleep in e2e tests

* Fix price coefficient of tx which can't be replaced in test_viem_tx e2e test

Use fee currency in min tip check e2e fixup

Fix just high enough test

Skip test_fee_currency_fails_on_credit.sh
piersy added a commit that referenced this pull request Apr 24, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx

* Add gas price difference test

Run e2e tests on alfajores (#258)

Modifies our e2e tests to be able to run on alfajores if the
environment variable `NETWORK` is set to 'alfajores'.
Also adds a CI step to run them against alfajores.

Note that the `test_fee_currency...` tests are skipped
because they require the ability to deploy new fee currencies,
which we probably don't want to be doing on a live network
as it could cause issues for people, and we also don't want to
expose the credentials to do so.

Set correct fee currency directory in e2e test

Skip failing tests (#268)

Fix failing e2e tests in test_viem_tx (#293)

* Fix failing e2e tests in test_viem_tx

* Add timeout for some failing tests

* Add comments about new sleep in e2e test

* Add sleep in test_token_duality

* Revert adding sleep in e2e tests

* Fix price coefficient of tx which can't be replaced in test_viem_tx e2e test

Use fee currency in min tip check e2e fixup

Fix just high enough test

Skip test_fee_currency_fails_on_credit.sh
piersy added a commit that referenced this pull request Apr 29, 2025
* Revert "Temporarily skip fee-currency e2e tests"

This reverts commit 25314bc.

* Refactor e2e tests

Since some e2e tests now produce invalidated transactions that remain
in the txpool until replaced, the `send_tx.mjs` script required some
changes to replace the sent CIP64 transaction. It will get replaced
after 2 blocks of producing no receipt.
Those changes also required the geth-node to run in periodic
--dev mode instead of the on-demand "produce-block-per-transaction"
mode, which
will unfortunately make the tests run longer than before.

The bash scripts and tests itself have also been refactored
to make code segments more reusable with the help of functions.

* Fix js waitBlocks

* Fix e2e oracle reuse causing exchangeRate error

The geth-devmode predeployed "oracle3" is reused throughout the e2e
tests for all dynamically deployed fee-currencies.
However the tested fee-currencies are never removed from the
FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

* Remove accidentally checked in comment

* Reintroduce geth insta-mine in e2e tests

* Add replacement transaction related arguments to send_tx

* Add gas price difference test

Run e2e tests on alfajores (#258)

Modifies our e2e tests to be able to run on alfajores if the
environment variable `NETWORK` is set to 'alfajores'.
Also adds a CI step to run them against alfajores.

Note that the `test_fee_currency...` tests are skipped
because they require the ability to deploy new fee currencies,
which we probably don't want to be doing on a live network
as it could cause issues for people, and we also don't want to
expose the credentials to do so.

Set correct fee currency directory in e2e test

Skip failing tests (#268)

Fix failing e2e tests in test_viem_tx (#293)

* Fix failing e2e tests in test_viem_tx

* Add timeout for some failing tests

* Add comments about new sleep in e2e test

* Add sleep in test_token_duality

* Revert adding sleep in e2e tests

* Fix price coefficient of tx which can't be replaced in test_viem_tx e2e test

Use fee currency in min tip check e2e fixup

Fix just high enough test

Skip test_fee_currency_fails_on_credit.sh
piersy added a commit that referenced this pull request Apr 29, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
ezdac pushed a commit that referenced this pull request Apr 30, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 1, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 1, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 1, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 2, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 6, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 6, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 8, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 12, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 22, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
piersy added a commit that referenced this pull request May 22, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 20, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 21, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 26, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 28, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 30, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 30, 2025
Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 31, 2025
…ores (#212,#258,#268,#293)

Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
Kourin1996 pushed a commit that referenced this pull request Jul 31, 2025
…ores (#212,#258,#268,#293)

Refactors debug fee currency deployment ensuring fee currency cleanup. The
geth-devmode predeployed "oracle3" is reused throughout the e2e tests
for all dynamically deployed fee-currencies. However the tested
fee-currencies are never removed from the FeeCurrencyDirectory.

This causes the node to try to query exchange-rates for the leftover
fee-currencies. This fails, because the oracle associated with the old
fee-currency has a different token address assigned and thus causes a
revert. This issue is not critical and only causes emission of a log
message and some unneccessary evm calls,
but it is better practice to clean up the fee-currency from the
directory anyways.

Also adds a test of transactions that exceed the max intrinsic gas for a fee
currency, this checks that the transaction fails and the fee currency is
blocked.

Allows tests to be run on Alfajores. This entailed increasing gas limits
for a number of transactions that interact with fee currencies, since
the fee currencies on alfajores are different to our debug ones and also
tests needed to be updated to not rely on hardcoded fee currency rates.

Also adds tests for fee currency use with the gas price RPC API

Skips test_fee_currency_fails_on_credit.sh as it seems to be broken.
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