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

Create CoinFabrik_On_Ink_Integration_Tests.md #1875

Merged
merged 7 commits into from
Aug 16, 2023
Merged

Create CoinFabrik_On_Ink_Integration_Tests.md #1875

merged 7 commits into from
Aug 16, 2023

Conversation

valeriacaracciolo
Copy link
Contributor

@valeriacaracciolo valeriacaracciolo commented Jul 31, 2023

Project Abstract

CoinFabrik On Ink Integration Tests:

During the development of our open source ink! static analyzer tool Scout, we came across several inconsistencies and missing functionalities in ink! integration tests.

Our objective is to conduct a comprehensive analysis to identify any other missing functionalities in integration tests, and to propose and develop new testing features based on our findings.

Our intention is to flatten the anvil of ink! integration testing. With a properly flattened anvil, quality tools can be built.

Grant level

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $30,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied and aptly renamed (project_name.md).
  • I have read the application guidelines.
  • Payment details have been provided (bank details via email or BTC, Ethereum (USDC/DAI) or Polkadot/Kusama (USDT) address in the application).
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
  • I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

@CLAassistant
Copy link

CLAassistant commented Jul 31, 2023

CLA assistant check
All committers have signed the CLA.

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

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

Thanks for the application. I'm also going to share it with @keeganquigley and the ink! Team. I have one concern regarding the current structure of the milestones: At this stage, you don't know the amount of work and effort you need to put into milestone 2. Therefore it might make sense to split it up into two grants. Apart from this, potentially the ink! team has some concrete ideas already.

@Noc2 Noc2 added the changes requested The team needs to clarify a few things first. label Aug 2, 2023
@Noc2 Noc2 requested a review from keeganquigley August 2, 2023 07:36
@keeganquigley keeganquigley self-assigned this Aug 2, 2023
@valeriacaracciolo
Copy link
Contributor Author

valeriacaracciolo commented Aug 2, 2023 via email

Copy link
Contributor

@keeganquigley keeganquigley left a comment

Choose a reason for hiding this comment

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

Thanks for the application @valeriacaracciolo I do tend to agree that it might be better to break up the grant since the timeline isn't known for the execution stage. That way an extension won't be needed. Either that or just extend it now to be on the safe side. I also think that $40k seems a bit expensive for writing only the tests.

  • How do you plan to maintain Scout once the grant is completed? Will you go after alternative sources of funding?
  • How do you plan to help make your tool become a standard for dev users?
  • Can you briefly explain more about the problems you faced in regard to the functions?

@valeriacaracciolo
Copy link
Contributor Author

Thank you @keeganquigley, here we answer your questions. Regards!

Question 1: How do you plan to maintain Scout once the grant is completed? Will you go after alternative sources of funding?

At this point we are searching for user’s feedback before applying for more funding. But we are certainly considering the DAO Treasury, as suggested by David.

Question 2: How do you plan to help make your tool become a standard for dev users?

We plan both to grow and maintain scout audit. For example, we have looked for funding from Aleph Zero, who are also users of ink!. There, our intent was twofold: funding the integral growth of the tool, but also and at the same time having increased contact with ink! developers and live projects. Generally speaking, we are putting our effort to have the tool known and used by ink! devs. We’d appreciate any help in getting the word out. We have already been answering issues opened by users, and will continue to do so--supporting the community as it grows. Hopefully we will not be alone in adding detectors, and improving scout audit. To that purpose, we will continue to work on documentation for contributions.

Question 3: Can you briefly explain more about the problems you faced in regard to the functions?

In the following table, we explain the issues found so far. Generally, a functionality that is available in E2E tests is lacking in integration tests. We provide links to the respective implementations or their absence in each case. Our goal here is to identify other issues like these and consider implementation solutions to bring missing functionalities and improvements to integration tests.

Issue Number Issue Name Description Feasibility References
1 Alice and Bob's addresses Alice and Bob's addresses should match across integration and E2E tests. Feasible Accounts on Integration Tests: Link
Accounts on E2E tests: Addresses are used from this library Link
Account addresses are different for both Alice and Bob.
2 Storage Limitations The storage in the integration environment should have the same limitations as in the blockchain environment (end-to-end). Feasible Set_contract_storage is implemented differently in integration tests vs E2E tests.
In integration tests, set_contract_storage is implemented this way: Link
In E2E tests, the implementation calls the ext::set_storage function, this function is implemented in a way that checks maximum value lengths: Link1 Link2
The checking of maximum value lengths through the ext::set_storage function is not implemented in integration tests.
3 Delegate call Ability to use delegate calls in integration tests. Complex, yet feasible. Not implemented in integration tests: Link
Notice in line 460: “off-chain environment does not support delegated contract invocation"
In E2E tests, it is implemented here: Link
4 Cross contract calls Ability to perform contract-to-contract calls during integration tests. To be evaluated. Not implemented in integration tests: Link
Notice in line 446: “off-chain environment does not support contract invocation"
In E2E tests, it is implemented here: Link
5 Gas usage Gas usage in the integration environment should have the same limitations as in the blockchain environment (end-to-end). To be evaluated. Not implemented in integration tests: Link
Notice in line 405: “off-chain environment does not yet support `gas_left"
In E2E tests, it is implemented here: Link

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

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

Thanks for the detailed reply here. Could you integrate the above already into the specification of the milestone tables? Apart from this, I recommend splitting up the grant or adding more concrete deliverables to milestone 2. At the moment, the outcome of milestone one could theoretically be "nothing found" and milestone 2 "nothing to develop," and technically, you still would have completed the milestone successfully.

@valeriacaracciolo
Copy link
Contributor Author

Thanks for the detailed reply here. Could you integrate the above already into the specification of the milestone tables? Apart from this, I recommend splitting up the grant or adding more concrete deliverables to milestone 2. At the moment, the outcome of milestone one could theoretically be "nothing found" and milestone 2 "nothing to develop," and technically, you still would have completed the milestone successfully.

Hi Noc2. We decided to split the grant and focus first on the analysis part. We also updated the proposal, including the table of discovered issues within the Development Status section. Please let us know if you recommend any additional changes to our proposal. Regards!

keeganquigley
keeganquigley previously approved these changes Aug 14, 2023
Copy link
Contributor

@keeganquigley keeganquigley left a comment

Choose a reason for hiding this comment

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

Thanks for breaking it up @valeriacaracciolo looks good, and based on your previous work, I'm happy to go forward with it at this stage.

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

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

Thanks for the update here. Could you also update the level of the grant at the beginning? And to mention it, if you reduce it to 10k (level 1), it only needs two approvals and would be basically already approved (Keegan and myself).

@valeriacaracciolo
Copy link
Contributor Author

valeriacaracciolo commented Aug 14, 2023 via email

@Noc2 Noc2 added ready for review The project is ready to be reviewed by the committee members. and removed changes requested The team needs to clarify a few things first. labels Aug 14, 2023
Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

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

Thanks for the update. I will share it with the rest of the team.

Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

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

Happy to proceed.

@semuelle semuelle merged commit 7c1017f into w3f:master Aug 16, 2023
8 checks passed
@github-actions
Copy link
Contributor

Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions.

Before you start, take a moment to read through our announcement guidelines for all communications related to the grant or make them known to the right person in your organisation. In particular, please don't announce the grant publicly before at least the first milestone of your project has been approved. At that point or shortly before, you can get in touch with us at [email protected] and we'll be happy to collaborate on an announcement about the work you’re doing.

Lastly, please remember to let us know in case you run into any delays or deviate from the deliverables in your application. You can either leave a comment here or directly request to amend your application via PR. We wish you luck with your project! 🚀

taqtiqa-mark pushed a commit to taqtiqa-mark/Grants-Program that referenced this pull request Jun 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review The project is ready to be reviewed by the committee members.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants