-
Notifications
You must be signed in to change notification settings - Fork 0
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
AA-429: Create ERC-5792 "capabilities" ERC for Account Abstraction #12
base: master
Are you sure you want to change the base?
Conversation
```typescript | ||
type StaticPaymasterConfigurationCapabilityParams = Record< | ||
`0x${string}`, // Chain ID | ||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this paymaster is version-specific: e.g. the app has to know whether the account is 4337v6, v7 or 7560, and based on that knowledge, select the right paymaster address
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That means we need something like a aa_getAccountDetails
API, doesn't it?
Interface: | ||
|
||
```typescript | ||
type ValidityTimeRangeCapabilityParams = Record< |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand the time-range:
a wallet validation can return a time range, which is compared to "now".
what is the usage scenario of this property?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't wallets want to allow dapps to specify the validity range? Seems like artificially limiting a feature we worked hard to add.
``` | ||
|
||
For Smart Contract Accounts that support multidimensional nonce values, | ||
the wallet must specify these parameters during the actual on-chain execution of the batch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The wallet MAY specify a nonceKey
, (if it doesn't specify, then the default 0 is used)
nonceSequence is trickier: it requires an eth_getNonce
API
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We probably need such an API. However, it can be hacked by calling the Nonce Manager directly, but that also gets very version - specific.
|
||
Identifier: | ||
|
||
`setCodeForEOA` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i don't think we need this at all - this is exactly what the wallet should do, and not the application. There is no way the wallet can protect the app from a malicious contract.
a wallet defines an account (address).
when the app performs a "sendCall", the wallet should decide how to implement it. if the network supports 7702, it should submit it as a 7702 transaction. if that account already has a 7702 contract deployed (in a previous transaction), then just submit a batch call to use it.
Interface: | ||
|
||
```typescript | ||
type AAGasParamsOverrideCapabilityParams = Record< |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a kind of low-level field override. better separate it to a different ERC.
NonceKey and Paymaster are generic, and don't expose the app directly to version-specific API
(paymaster does require protocol-specific paymaster, but it is encapsulated away from the app)
But this one is very specific. Also, it can't be used without a supporting view APIs to query these values
Co-authored-by: Dror Tirosh <[email protected]>
The commit 51c9898 (as a parent of 61292e6) contains errors. |
When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met: