Conversation
Getting rid of the tyranny of the `Account` entrypoint, and the terrible sentinel value of `AztecAddress.ZERO` in the `from` parameter. Now, when a tx is specified as being sent `from: NO_FROM`, the wallet completely bypasses the account contract. It doesn't even use the `MulticallEntrypoint` contract, it'll just execute a single call using `DefaultEntrypoint`. Since we can do wrapping at the app level, this means ANYTHING goes. Want to wrap 10 calls on a special sauce multicall? Go ahead. App-sponsored FPC with custom logic that must be the first on the chain? Knock yourself out! Even better news: this is thoroughly tested in our codebase thanks to account contract self-deployments. They're a great example of "I don't want to use an account contract as entrypoint" flow. As an extra side effect, this completely deshrines the `MulticallEntrypoint` protocol contract from the wallet (we only have the convenience now of it being already registered in every single wallet)
…#21402) ## Summary The `feat!: no_from` PR (#21716) changed how `AztecAddress.ZERO` is handled in the embedded wallet's simulate path. `BotFactory.setupAccountWithPrivateKey` was passing `AztecAddress.ZERO` as the `from` address in the `simulate` call, which now causes the wallet to attempt looking up account data for the zero address — resulting in `"Account 0x000...000 does not exist on this wallet"`. Fixed by using `NO_FROM` (already imported and used in the adjacent `send` call) which is the correct API for opting out of account contract mediation during simulation. ## Failing tests fixed - `e2e_bot › bridge resume › reuses prior bridge claims` - `e2e_bot › bridge resume › does not reuse prior bridge claims if recipient address changes` - `e2e_bot › setup via bridging funds cross-chain › creates bot after inbox drift` ## Test plan - All 10 e2e_bot tests pass locally (previously 3 were failing) ClaudeBox log: https://claudebox.work/s/11a8e25f0aefa248?run=1
Collaborator
Author
|
🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass. |
#20826 completely tanks performance in the browser. PXE does a lot of hashing and the `SharedArrayBuffer` comms overhead is way too much. This PR reverts to the old behavior only in the browser.
Broadens the check to ensure the sync version is used accross the browser, service workers, web workers and extension contexts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BEGIN_COMMIT_OVERRIDE
refactor: revert remove assert_bounded_vec_trimmed (#21758)
feat!: no_from (#21716)
fix(bot): use NO_FROM instead of AztecAddress.ZERO in deploy simulate (#21402)
feat!: make isContractInitialized a tri-state enum (#21754)
feat: sync poseidon in the browser (#21833)
fix(aztec-up): add sensible defaults to installer y/n prompts (#21824)
feat: sync poseidon browser (#21851)
END_COMMIT_OVERRIDE