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-5453 #6141

Merged
merged 1 commit into from
Dec 15, 2022
Merged
Changes from all commits
Commits
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
10 changes: 8 additions & 2 deletions EIPS/eip-5453.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ interface IERC5453EndorsementDataTypeB {
}
```

See [`IERC5453.sol`](../assets/eip-5453/IERC5453.sol).

### Behavior specification

As specified in [EIP-5750 General Extensibility for Method Behaviors](./eip-5750.md), any compliant method that has an `bytes extraData` as its
Expand Down Expand Up @@ -175,8 +177,6 @@ could balance a wider range of use cases. E.g. the same use cases of EIP-2612 an
2. We chose to include both `validSince` and `validBy` to allow maximum flexibility in expiration. This can be also be supported by EVM natively at if adopted [EIP-5081](./eip-5081.md) but EIP-5081 will not be adopted anytime soon, we choose to add these two numbers in our protocol to allow
smart contract level support.



## Backwards Compatibility

The design assumes a `bytes calldata extraData` to maximize the flexibility of future extensions. This assumption is compatible with [EIP-721](eip-721.md), [EIP-1155](eip-1155.md) and many other ERC-track EIPs. Those that aren't, such as [EIP-20](./eip-20.md), can also be updated to support it, such as using a wrapper contract or proxy upgrade.
Expand Down Expand Up @@ -258,6 +258,8 @@ abstract contract AERC5453Endorsible is EIP712,

```

See [`AERC5453.sol`](../assets/eip-5453/AERC5453.sol)

### Reference Implementation of `EndorsableERC721`

Here is a reference implementation of `EndorsableERC721` that achieves similar behavior of [EIP-4494](./eip-4494.md).
Expand Down Expand Up @@ -287,6 +289,8 @@ contract EndorsableERC721 is ERC721, AERC5453Endorsible {
}
```

See [`EndorsableERC721.sol`](../assets/eip-5453/EndorsableERC721.sol)

### Reference Implementation of `ThresholdMultiSigForwarder`

Here is a reference implementation of ThresholdMultiSigForwarder that achieves similar behavior of multi-sig threshold approval
Expand Down Expand Up @@ -324,6 +328,8 @@ contract ThresholdMultiSigForwarder is AERC5453Endorsible {

```

See [`ThresholdMultiSigForwarder.sol`](../assets/eip-5453/ThresholdMultiSigForwarder.sol)

## Security Considerations

### Replay Attacks
Expand Down