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

AA-416: Create JSON-RPC API standard for RIP-7560 Native Account Abstraction #6

Closed
wants to merge 27 commits into from

Conversation

forshtat
Copy link

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:

  • The PR edits only existing draft PRs.
  • The build passes.
  • Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
  • If matching on email address, the email address is the one publicly listed on your GitHub profile.

@github-actions github-actions bot added the w-ci label Aug 13, 2024
@forshtat forshtat changed the title Create JSON-RPC API standard for RIP-7560 Native Account Abstraction AA-416: Create JSON-RPC API standard for RIP-7560 Native Account Abstraction Aug 13, 2024
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
forshtat and others added 3 commits August 15, 2024 12:00
@github-actions github-actions bot added w-ci and removed w-ci labels Aug 15, 2024
Copy link

@drortirosh drortirosh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wrong base, so it suggest modifications for many files.
I think it should be dropped, and instead, commit first against our internal document - and from there, push it to the public repo
(at a minimum: make sure you commit a single file.)

ERCS/erc-xxxx.md Outdated
@@ -0,0 +1,375 @@
---
eip: xxxx
title: JSON-RPC API for RIP-7560 Native Account Abstraction

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Native AA Transaction

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API exposed by NODE

ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated

## Motivation

Native Account Abstraction is expected to supersede the [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't motivation for AA here. that's in 7560.

ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated
| executionGasUsed | QUANTITY | The amount of gas actually used by the execution frame |
| postOpStatus | QUANTITY | 1 (success), 0 (failure), or `null` (did not run) status of the `postOp` frame |
| postOpGasUsed | QUANTITY | The amount of gas actually used by the paymaster `postOp` frame |
| validationLogs | ARRAY | Array of log objects, which this transaction'S VALIDATION FRAME generated. |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's interesting.
its a way to report back events but not through a separate "pseudo tx".
still, I think that on-chain, it is a separate tx (e.g the txhash reported in each event)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have discussed it and did not really reach consensus on how to present the validation phase through an RPC API. However, a separate transaction for a part of a transaction is a very breaking change and should be made very carefully.

ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
@forshtat forshtat marked this pull request as ready for review September 8, 2024 09:39
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated
| Name | Type | Description |
|----------------------------|----------------|--------------------------------------------------------------------------------|
| sender | DATA, 20 Bytes | Address of the sender of this transaction |
| paymaster | DATA, 20 Bytes | Address of the Paymaster if it is paying for the transaction, `null` otherwise |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

put all paymaster fields together: if paymaster exists, then all other paymaster fields MUST exist.
if paymaster is missing, then all others MUST NOT exist

ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
ERCS/erc-xxxx.md Outdated

### Add RIP-7560 support for `eth_getTransactionReceipt`

For an RIP-7560 transaction included in a block, return also the values specific to this transaction type
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move Receipt back to 7560

ERCS/erc-xxxx.md Outdated

### Add RIP-7560 support for all remaining transaction-level RPC APIs

This includes the following APIs: `eth_sendTransaction`, `eth_sendRawTransaction`, `eth_getTransactionByHash`,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This includes the following APIs: `eth_sendTransaction`, `eth_sendRawTransaction`, `eth_getTransactionByHash`,
This includes the following APIs: `eth_sendTransaction`, `eth_sendRawTransaction`, `eth_getTransactionByHash`, `eth_getTransactionReceipt`

@github-actions github-actions bot removed the w-ci label Sep 10, 2024
### Add RIP-7560 support for all remaining transaction-level RPC APIs

This includes the following APIs:
`eth_sendTransaction`,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove sendTransaction..
must use sendRawTransaction to send type-4 transaction
(account must do rlp encoding anyway, to sign)

@github-actions github-actions bot added the w-ci label Sep 10, 2024
ERCS/erc-xxxx.md Outdated
| paymaster | DATA, 20 Bytes | Address of the Paymaster contract (optional) |
| paymasterData | DATA | Data that is provided to the Paymaster contract (if `paymaster` is set) |
| executionData | DATA | Data that is provided to the Account contract for execution |
| nonce | QUANTITY | A 256 bit nonce. Use of `nonce > 2^64` is defined in RIP-7712 |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

separate nonceKey field

ERCS/erc-xxxx.md Outdated
Comment on lines 40 to 41
The following table represents a full list of fields of an RIP-7560 transaction:

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move to 7560 along with tx receipt

@github-actions github-actions bot removed the w-ci label Sep 10, 2024
ERCS/erc-xxxx.md Outdated

## Rationale

### Creating `eth_executeRip7560Transaction` instead of modifying `eth_call`
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Creating `eth_executeRip7560Transaction` instead of modifying `eth_call`
### Creating `eth_callRip7560Transaction` instead of modifying `eth_call`

ERCS/erc-xxxx.md Outdated Show resolved Hide resolved
@forshtat
Copy link
Author

Closed in favour of ethereum#625

@forshtat forshtat closed this Sep 10, 2024
Copy link

The commit 237cd9a (as a parent of 5d375e6) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot added the w-ci label Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants