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

remove the use of waitForBlock function from z:acceptance tests #10

Open
2 tasks
Jorge-Lopes opened this issue Sep 23, 2024 · 1 comment
Open
2 tasks
Assignees

Comments

@Jorge-Lopes
Copy link
Collaborator

Jorge-Lopes commented Sep 23, 2024

Effort Estimate: 4h (0.5 days)
Effort Required: 

Dependencies: To address this task, we propose to first start by extending the @agoric/synthetic-chain package to export a method like makeRetryUntilCondition or a similar function.
See this comment for more context.

Objective: Using waitForBlock() can lead to unexpected behavior, so we intend to refactor tests to utilize a new method for waiting on conditions instead.

Tasks

@Jorge-Lopes Jorge-Lopes changed the title remove the use of waitForBlock function from z:acceptance tests remove the use of waitForBlock function from z:acceptance tests Sep 23, 2024
@LuqiPan
Copy link

LuqiPan commented Sep 23, 2024

This issue is still awaiting clarification and more input

anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Sep 30, 2024
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Sep 30, 2024
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Oct 5, 2024
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Oct 5, 2024
@Jorge-Lopes Jorge-Lopes self-assigned this Oct 7, 2024
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Oct 8, 2024
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Oct 9, 2024
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Oct 16, 2024
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Oct 16, 2024
Refs: Agoric/BytePitchPartnerEng#10

fix: formatting fixes and change requests

fix(sync-tools): apply new linting rules and fix rebase conflicts

Refs: Agoric#10238
anilhelvaci added a commit to bytepitch/agoric-sdk that referenced this issue Oct 22, 2024
Refs: Agoric/BytePitchPartnerEng#10

fix: formatting fixes and change requests

fix(sync-tools): apply new linting rules and fix rebase conflicts

Refs: Agoric#10238
mergify bot added a commit to Agoric/agoric-sdk that referenced this issue Oct 22, 2024
refs: Agoric/BytePitchPartnerEng#10
refs: Agoric/agoric-3-proposals#181

## Description

Currently the way to make sure a transaction sent to agoric chain has been executed is to use a method from `@agoric/synthetic-chain` called `waitForBlock` which stops the execution flow of a given ava test until N number of blocks are produced. This is not as deterministic as we'd like it to be but so far it worked fine. However, it could still end up in a race condition in some extreme cases. In this PR we introduce a set of tools to sync operations carried out in a test. Currently this PR supports operations like;
 * Making sure a core-eval resulted successfully deploying a contract
 * Making sure a core-eval successfully sent zoe invitations to committee members for governance
 * Making sure an account is successfully funded with vbank assets like IST, BLD etc.
 * Making sure an offer resulted successfully

See Agoric/agoric-3-proposals#181 for further discussion.

### Security Considerations

This is merely a testing tool, so no security considerations.

### Scaling Considerations

This is merely a testing tool, so no scaling considerations.

### Documentation Considerations

If this ends up getting in to `@agoric/synthetic-chain` then we might need more extensive explanation of what we do. But for now, I don't think any documentation is needed.

### Testing Considerations

Have confirmed that this works fine with existing a3p tests locally but to keep the scope tighter I will update those tests one this PR lands. The coverage of the unit tests in `sync-tools.test.js` seems fine but I'm open to suggestions, of course.
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

No branches or pull requests

2 participants