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

Update EIP-5792: Fine-tune the "capability" rhetoric of EIP-5792 (plus non-normative wordsmithing as a bonus) #8396

Merged
merged 22 commits into from
Apr 17, 2024
Merged
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
3a74178
general editorial
bumblefudge Apr 4, 2024
cbef48f
reorganize headers so that ## Contents TOC links to all 4 RPC methods
bumblefudge Apr 4, 2024
abb6dc0
reorganize feature discovery method and atomicBatch cap to both be mo…
bumblefudge Apr 4, 2024
1489333
add reference to supplemental capability expression
bumblefudge Apr 4, 2024
a37e0d6
add derek to authors list for previous commit
bumblefudge Apr 4, 2024
f9d78ef
mention special case of provider-cached caps
bumblefudge Apr 4, 2024
33a8083
add DRAFT privacy considerations as per dan finlays input on pr 8361
bumblefudge Apr 4, 2024
2b67282
make privacy considerations a subsection of sec cons to appease linter
bumblefudge Apr 4, 2024
0654f90
reformat a cross-link to appease the robot copyeditor
bumblefudge Apr 4, 2024
956c6de
motivation wordsmith, per comment from wilsoncusack
bumblefudge Apr 4, 2024
4e7cb46
wordsmith capability approach in intro to getCap method, per wilsoncu…
bumblefudge Apr 4, 2024
8d97a24
Merge branch 'master' into bumblefudge/wordsmithing-eip-5792
bumblefudge Apr 9, 2024
61a5d03
cleanup for new PR
bumblefudge Apr 9, 2024
830082a
cleanup for new PR
bumblefudge Apr 9, 2024
5242637
cleanup for new PR
bumblefudge Apr 9, 2024
1a2b1ee
markdown linter caught a bad header
bumblefudge Apr 9, 2024
f296be3
line breaks and one word change to motivation
bumblefudge Apr 9, 2024
8be19b9
explain chainId more explicitly in case sections are read out of order
bumblefudge Apr 9, 2024
7baf5fe
address lsr feedback x3
bumblefudge Apr 12, 2024
3c2d2b6
dapp-->app typos
bumblefudge Apr 12, 2024
c078795
rollbacks to consensus
bumblefudge Apr 13, 2024
eee7f4c
revert wallet_sendCalls.capabilities change
bumblefudge Apr 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions EIPS/eip-5792.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ We also define one capability expression for use with the fourth method, which f

Requests that a wallet submits a batch of calls. `from` and `chainId` are top-level properties rather than per-call properties because all calls should be sent from the same sender and on the same chain, identified by [EIP-155](./eip-155.md) integers expressed in hexidecimal notation. The items in the `calls` field are only those that are shared by all transaction types. Any other fields that a wallet may need to submit a transaction should be handled by the wallet.

The optional `capabilities` property enable an app to grant to a wallet its own relevant capabilities as objects. For example, this is where an app can specify a paymaster service URL from which an [ERC-4337](./eip-4337.md) wallet can request a `paymasterAndData` input for a given user operation.
The capabilities field is how an app can communicate with a wallet about its own capabilities, which a wallet may or may not support. For example, this is where an app can specify a paymaster service URL from which an [ERC-4337](./eip-4337.md) wallet can request a `paymasterAndData` input for a user operation if the wallet supports that kind of paymaster service.
bumblefudge marked this conversation as resolved.
Show resolved Hide resolved

The wallet:

Expand Down Expand Up @@ -256,9 +256,9 @@ type AtomicBatchCapability = {
};
```

The only valid JSON-RPC values for this capability are `true` or `false`; if a returned value for "supported" value is typed as a string or number, it SHOULD be treated as malformed.
The only valid JSON-RPC values for this capability's only member, `supported`, are `true` or `false`; if a returned value for `supported` is typed as a string or number, it SHOULD be considered malformed.

For each chain on which a wallet can submit multiple calls atomically, the wallet SHOULD include an `atomicBatch` capability with a `supported` field equal to `true`. For each chain where it cannot, it SHOULD return the same field as `false`. Unspecified support for a given, named chain SHOULD be interpreted as not exposing this information to the application, and as such, applications SHOULD NOT interpret an absent value as equivalent to `false`.
For each chain on which a wallet can submit multiple calls atomically, the wallet SHOULD include an `atomicBatch` capability with a `supported` field equal to `true` to authorize the caller to use this capability. For each chain where it cannot, it MAY return the same field as `false`, or MAY return no capability object at all. An application SHOULD NOT interpret any `atomicBatch` object as an authorization without a `supported` of `true`.
bumblefudge marked this conversation as resolved.
Show resolved Hide resolved

#### `wallet_getCapabilities` Example Return Value including `atomicBatch`

Expand Down Expand Up @@ -288,7 +288,7 @@ We also debated whether the methods should be called `wallet_sendTransaction`, `

The `wallet_sendCalls` method accepts an array of `calls`. However, this proposal does not require that these calls be executed as part of a single transaction. It enables EOA wallets to accept multiple calls as well over the same interface. That said, we expect that in some cases app developers might want to submit batched calls if and only if they will be executed atomically. This would reduce the number of error cases an app developer would need to handle, while still contributing to the unification over time of interfaces across wallets types.

We initially proposed that multiple calls be executed atomically, but after some debate we ultimately decided this was too opinionated. Instead, we are including a specification for an `atomicBatch` capability. This allows for EOA wallets to accept multiple calls and still gives developers the option to only submit batched calls if they are executed atomically.
We initially proposed that multiple calls must be executed atomically, but after some debate we ultimately decided this was too opinionated. Instead, we are including a specification for an `atomicBatch` capability. This allows for EOA wallets to accept multiple calls and still gives developers the option to only submit batched calls if they are executed atomically.

### Call Gas Limit

Expand Down
Loading