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

Add evm tests for ctx state after chain upgrade #277

Merged
merged 3 commits into from
Feb 10, 2023
Merged

Conversation

sharma66mahesh
Copy link
Collaborator

Make sure the contract data structure has not changed since the network upgrade.

  • Create a smart contract with different data structures.
  • Deploy the contract. (just one time)
  • Call contract data and compare.

@@ -16,3 +16,7 @@ export const BLOCK_TIMESTAMP = 6; // 6 seconds per block
export const BLOCK_HASH_COUNT = 256;
export const EXISTENTIAL_DEPOSIT = 10_000_000_000_000_000; // The minimum amount required to keep an account open
export const BLOCK_GAS_LIMIT = 60000000;

export const SNOW_RPC_ENDPOINT = "https://snow-rpc.icenetwork.io:9933";
Copy link
Contributor

Choose a reason for hiding this comment

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

may be this should be configurable so that we can run these tests against other snow urls?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The RPC url, chain id and contract address can be moved to the .env file, to make these configurable.

These values however, are not used on the github actions since they need to be run manually with npm test-ctx-state on every mainnet network upgrade.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's add two networks Arctic and Snow.
And possibility to run test on different networks

For example:

npm run test-ctx-state arctic
npm run test-ctx-state snow

or

npm run test-ctx-state --chain arctic
npm run test-ctx-state --chain snow

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I think there would also be requirement to add command for local net, then staging too.

So how about setting the npm command as just
npm run test-ctx-state
and based on the node ws endpoint, chainID and contract address set on the env file, it will make checks on the respective env?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Source text
I think we will move these tests in to another Git Action task.(e2e tests) Because In my opinion It doesn't make any sense to run them in current flow. Because we should run this tests only after network upgrade and not for every commit.
In this case we need to configure network in the process of running.

What do you think?


describe("Tests for checking existing contracts storage", () => {
step("Ensure the contract state is intact", async function (done) {
this.timeout(10_000);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why do we use sleep here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is to ensure that if this particular test takes more than 10sec to execute, it will timeout and fail

ts-tests/contracts/NetworkUpgrade.sol Show resolved Hide resolved
@andrii-kl andrii-kl merged commit be38cdb into main Feb 10, 2023
@andrii-kl andrii-kl deleted the evm-ctx-state branch February 10, 2023 13:07
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.

3 participants