aztec-wallet deploy --universal without -f is meant to support deploying a universal contract without naming a sender (with fees paid via sponsored FPC or similar). It fails today because the no-sender path uses DefaultEntrypoint, which only wraps a single call:
Error: Expected a single call, got 4
at DefaultEntrypoint.createTxExecutionRequest
A normal deploy has 4 calls (class registration + instance publish + initializer + fee payment), so the entrypoint rejects it.
Fix
In yarn-project/cli-wallet/src/utils/wallet.ts (the NO_FROM branch of simulateViaEntrypoint), swap new DefaultEntrypoint() for new DefaultMultiCallEntrypoint(). The latter already exists and routes through the MultiCallEntrypoint standard contract.
Repro
aztec-wallet deploy token_contract@Token --args ... --universal --payment method=fpc-sponsored,fpc=contracts:sponsoredFPC
Current workaround
Pass -f <account> alongside --universal. The contract still gets a universal (deployer=0x0) address; -f just names who pays.
aztec-wallet deploy --universalwithout-fis meant to support deploying a universal contract without naming a sender (with fees paid via sponsored FPC or similar). It fails today because the no-sender path usesDefaultEntrypoint, which only wraps a single call:A normal deploy has 4 calls (class registration + instance publish + initializer + fee payment), so the entrypoint rejects it.
Fix
In
yarn-project/cli-wallet/src/utils/wallet.ts(theNO_FROMbranch ofsimulateViaEntrypoint), swapnew DefaultEntrypoint()fornew DefaultMultiCallEntrypoint(). The latter already exists and routes through theMultiCallEntrypointstandard contract.Repro
Current workaround
Pass
-f <account>alongside--universal. The contract still gets a universal (deployer=0x0) address;-fjust names who pays.