You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`No public key registered for address`| Call `wallet.registerSender(...)`|
36
36
|`Direct invocation of ... functions is not supported`| Use `self.call()`, `self.view()`, or `self.enqueue()` to [call contract functions](framework-description/calling_contracts.md)|
37
37
|`Failed to solve brillig function`| Check function parameters and note validity |
38
+
|`Cross-contract utility call denied`| Configure an `authorizeUtilityCall`[execution hook](#cross-contract-utility-call-denied) on your PXE |
39
+
40
+
#### Cross-contract utility call denied
41
+
42
+
When a contract executes a utility function that calls into a different contract, PXE asks an **execution hook** whether the call should be allowed. If no hook is configured, or the hook denies the request, you will see:
To fix this, pass an `authorizeUtilityCall` hook when creating your PXE:
49
+
50
+
```typescript
51
+
import { PXE } from"@aztec/pxe/server";
52
+
53
+
const pxe =awaitPXE.create({
54
+
// ...other options
55
+
hooks: {
56
+
authorizeUtilityCall: async (request) => {
57
+
// Inspect request.caller, request.target, request.functionSelector, etc.
58
+
return { authorized: true };
59
+
},
60
+
},
61
+
});
62
+
```
63
+
64
+
The hook receives a `UtilityCallAuthorizationRequest` with the caller address, target address, function selector, function name, arguments, and caller context (`'private'` or `'utility'`). Return `{ authorized: true }` to allow or `{ authorized: false, reason: '...' }` to deny with a message.
Copy file name to clipboardExpand all lines: docs/docs-developers/docs/resources/migration_notes.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,26 @@ Aztec is in active development. Each version may introduce breaking changes that
9
9
10
10
## TBD
11
11
12
+
### [Aztec.nr] TXE `call_public_incognito` no longer takes a `from` parameter
13
+
14
+
`TestEnvironment::call_public_incognito` previously accepted a `from` address that was silently ignored (the function always uses a null `msg_sender`). The `from` parameter has been removed.
### [Aztec.js]`DeployMethod` address-affecting parameters move to construction time
13
33
14
34
Salt, deployer, and public keys are now passed when the `DeployMethod` is constructed, not on every call to `send` / `simulate` / `request` / `getInstance`. This locks the contract address once it is determined and prevents the silent salt-cache poisoning bug where the address could change between calls.
0 commit comments