Skip to content

Commit

Permalink
AA-382: Emit system-level events for RIP-7560 transactions (#1)
Browse files Browse the repository at this point in the history
* AA-382: Emit system-level events for RIP-7560 transactions

* Force

* Update

* Split the 'nonce' field into 'nonceKey' and 'nonceSequence'

* Re-introduce 'RIP7560AccountDeployed' event
  • Loading branch information
forshtat authored Sep 12, 2024
1 parent f47361b commit eae66dc
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 2 deletions.
59 changes: 59 additions & 0 deletions contracts/interfaces/IRip7560EntryPoint.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,63 @@ interface IRip7560EntryPoint {
function sigFailAccount(uint256 validAfter, uint256 validUntil) external;
function acceptPaymaster(uint256 validAfter, uint256 validUntil, bytes calldata context) external;
function sigFailPaymaster(uint256 validAfter, uint256 validUntil, bytes calldata context) external;


/**
* An event emitted after each successful request.
* @param sender - The account that generates this request.
* @param paymaster - If non-null, the paymaster that pays for this request.
* @param nonceKey - The nonce key value from the request.
* @param nonceSequence - The nonce sequence value from the request.
* @param executionStatus - True if the sender transaction succeeded, false if reverted.
*/
event RIP7560TransactionEvent(
address indexed sender,
address indexed paymaster,
uint256 nonceKey,
uint256 nonceSequence,
uint256 executionStatus
);

/**
* An event emitted after "sender" account has been deployed.
* @param sender - The account that has been deployed.
* @param paymaster - The paymaster used by this transaction.
* @param deployer - The deployer factory contract used to deploy this account.
*/
event RIP7560AccountDeployed(
address indexed sender,
address indexed paymaster,
address indexed deployer
);

/**
* An event emitted if the RIP-7560 transaction "executionData" reverted with non-zero length.
* @param sender - The sender of this request.
* @param nonceKey - The nonce key value from the request.
* @param nonceSequence - The nonce sequence value from the request.
* @param revertReason - The return bytes from the reverted "executionData" call.
*/
event RIP7560TransactionRevertReason(
address indexed sender,
uint256 nonceKey,
uint256 nonceSequence,
bytes revertReason
);

/**
* An event emitted if the RIP-7560 transaction Paymaster's "postOp" call reverted with non-zero length.
* @param sender - The sender of this request.
* @param paymaster - The paymaster that pays for this request.
* @param nonceKey - The nonce key value from the request.
* @param nonceSequence - The nonce sequence value from the request.
* @param revertReason - The return bytes from the reverted call to "postOp".
*/
event RIP7560TransactionPostOpRevertReason(
address indexed sender,
address indexed paymaster,
uint256 nonceKey,
uint256 nonceSequence,
bytes revertReason
);
}
2 changes: 1 addition & 1 deletion contracts/interfaces/IRip7560Transaction.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pragma solidity ^0.8.23;
struct RIP7560Transaction {
address sender;
uint256 nonceKey;
uint256 nonce;
uint256 nonceSequence;
uint256 validationGasLimit;
uint256 paymasterValidationGasLimit;
uint256 postOpGasLimit;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"scripts": {
"test-hardhat": "hardhat test",
"test-forge": "forge test",
"compile-hardhat": "npx hardhat compile",
"compile-hardhat": "npx hardhat compile --force",
"ci": "yarn test-hardhat && yarn test-forge"
},
"devDependencies": {
Expand Down

0 comments on commit eae66dc

Please sign in to comment.