You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ERCS/erc-1581.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ category: ERC
10
10
created: 2018-11-13
11
11
---
12
12
## Abstract
13
-
BIP32 defines a way to generate hierarchical trees of keys which can be derived from a common master key. BIP32 and [BIP44](https://https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) defines the usage of these keys as wallets. In this EIP we describe the usage of such keys outside the scope of the blockchain defining a logical tree for key usage which can coexist (and thus share the same master) with existing BIP44 compatible wallets.
13
+
BIP32 defines a way to generate hierarchical trees of keys which can be derived from a common master key. BIP32 and [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) defines the usage of these keys as wallets. In this EIP we describe the usage of such keys outside the scope of the blockchain defining a logical tree for key usage which can coexist (and thus share the same master) with existing BIP44 compatible wallets.
14
14
15
15
## Motivation
16
16
Applications interacting with the blockchain often make use of additional, non-blockchain technologies to perform the task they are designed for. For privacy and security sensitive mechanisms, sets of keys are needed. Reusing keys used for wallets can prove to be insecure, while keeping completely independent keys make backup and migration of the full set of credentials more complex. Defining a separate (from BIP44 compliant wallets) derivation branch allows combining the security of independent keys with the convenience of having a single piece of information which needs to be backup or migrated.
Copy file name to clipboardExpand all lines: ERCS/erc-223.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -142,7 +142,7 @@ This standard sticks to the push transaction model where the transfer of assets
142
142
143
143
This standard introduces the ability to correct user errors by allowing to handle ANY transactions on the recipients side and reject incorrect or improper transfers. This tokens utilize ONE transferring method for both types of interactions with contracts and externally owned addresses which can simplify the user experience and allow to avoid possible user mistakes.
144
144
145
-
One downside of the commonly used [ERC-20](./eip-20.md) standard that ERC-223 is intended to solve is that [ERC-20](./eip-20.md) implements two methods of token transferring: (1) `transfer` function and (2) `approve + transferFrom` pattern. Transfer function of [ERC-20](./eip-20.md) standard does not notify the receiver and therefore if any tokens are sent to a contract with the `transfer` function then the receiver will not recognize this transfer and the tokens can become stuck in the receivers address without any possibility of recovering them. [ERC-20](./eip-20.md) standard places the burden of determining the transferring method on the user and if the incorrect method is chosen the user can lose the transferred tokens. ERC-223 automatically determines the transferring method, preventing the user from losing tokens due to chosing wrong method.
145
+
One downside of the commonly used [ERC-20](./eip-20.md) standard that ERC-223 is intended to solve is that [ERC-20](./eip-20.md) implements two methods of token transferring: (1) `transfer` function and (2) `approve + transferFrom` pattern. Transfer function of [ERC-20](./eip-20.md) standard does not notify the receiver and therefore if any tokens are sent to a contract with the `transfer` function then the receiver will not recognize this transfer and the tokens can become stuck in the receivers address without any possibility of recovering them. [ERC-20](./eip-20.md) standard places the burden of determining the transferring method on the user and if the incorrect method is chosen the user can lose the transferred tokens. ERC-223 automatically determines the transferring method, preventing the user from losing tokens due to choosing wrong method.
146
146
147
147
ERC-223 is intended to simplify the interaction with contracts that are intended to work with tokens. ERC-223 utilizes a "deposit" pattern, similar to that of plain Ether. An ERC-223 deposit to a contract is a simple call of the `transfer` function. This is one transaction as opposed to two step process of `approve + transferFrom` depositing.
Copy file name to clipboardExpand all lines: ERCS/erc-3009.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -521,7 +521,7 @@ library EIP712 {
521
521
}
522
522
```
523
523
524
-
A fully working implementation of EIP-3009 can be found in [this repository](https://github.com/CoinbaseStablecoin/eip-3009/blob/master/contracts/lib/EIP3009.sol). The repository also includes [an implementation of EIP-2612](https://github.com/CoinbaseStablecoin/eip-3009/blob/master/contracts/lib/EI32612.sol) that uses the EIP-712 library code presented above.
524
+
A fully working implementation of EIP-3009 can be found in [this repository](../assets/eip-3009/EIP3009.sol). The repository also includes [an implementation of EIP-2612](../assets/eip-3009/EIP2612.sol) that uses the EIP-712 library code presented above.
Copy file name to clipboardExpand all lines: ERCS/erc-4337.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -432,15 +432,19 @@ as it depends on non-permanent network properties such as operation and data gas
432
432
However, the requirement is for the estimated value to be sufficient to cover the following costs:
433
433
434
434
* Base bundle transaction cost. On Ethereum, `21000` gas divided by the number of `UserOperations`.
435
-
* The calldata gas cost related to the `UserOperation`.
435
+
* The calldata gas cost related to the `UserOperation` as defined in [EIP-2028](./eip-2028.md).
436
436
* Static `EntryPoint` contract code execution.
437
437
* Static memory cost when loading the fixed size fields of the `UserOperation` into EVM memory
438
438
* Memory cost (including expansion cost) due to context returned by paymaster `validatePaymasterUserOp` function, if relevant.
439
439
* External call to the `innerHandleOp()` function which is a major part of the `EntryPoint` implementation.
440
440
Note that this value is not static and depends on the `UserOperation`'s position in the bundle.
441
-
* EIP-7702 authorization cost, if any.
441
+
*[EIP-7702] authorization cost, if any.
442
+
*[EIP-7623](./eip-7623.md) calldata floor price increase is estimated as follows:
443
+
* Apply the new formula for `tx.gasUsed`, replacing the `execution_gas_used` value with an estimate for value made for this UserOperation.
444
+
* The estimate is calculated as a sum of all verification gas used during simulation (account creation, validation and paymaster validation) and 10% of the sum of execution and `postOp` gas limit.
442
445
443
446
The bundler MUST require a slack in `PreVerificationGas` value, to accommodate memory expansion costs in the future bundle, and the expected position of the `UserOperation` in it.
447
+
444
448
### Alternative Mempools
445
449
446
450
The simulation rules above are strict and prevent the ability of paymasters to grief the system.
@@ -487,8 +491,6 @@ for the `handleOps` validation in its entirety as for individual `UserOperations
487
491
Otherwise, attackers may be able to use the banned opcodes to detect running on-chain and trigger a `FailedOp` revert.
488
492
489
493
When a bundler includes a bundle in a block it must ensure that earlier transactions in the block don't make any `UserOperation` fail.
490
-
It SHOULD either use an "access lists" parameter as defined in [EIP-2930](./eip-2930) to prevent conflicts,
491
-
or place the bundle as the first transaction in the block.
492
494
493
495
494
496
### Error codes.
@@ -601,7 +603,7 @@ All `paymaster` contracts MUST check that all calls to the `validatePaymasterUse
601
603
602
604
### Aggregator contracts
603
605
604
-
All `paymaster` contracts MUST check that all calls to the `validateSignatures()` function originates from the `EntryPoint`.
606
+
All `aggregator` contracts MUST check that all calls to the `validateSignatures()` function originates from the `EntryPoint`.
@@ -38,7 +39,7 @@ Sign-In with Ethereum (SIWE) works as follows:
38
39
39
40
#### ABNF Message Format
40
41
41
-
A SIWE Message MUST conform with the following Augmented Backus–Naur Form (ABNF, RFC 5234) expression (note that `%s` denotes case sensitivity for a string term, as per RFC 7405).
42
+
A SIWE Message MUST conform with the following Augmented Backus–Naur Form (ABNF, [RFC 5234](https://www.rfc-editor.org/rfc/rfc5234)) expression (note that `%s` denotes case sensitivity for a string term, as per [RFC 7405](https://www.rfc-editor.org/rfc/rfc7405)).
42
43
43
44
```abnf
44
45
sign-in-with-ethereum =
@@ -116,9 +117,9 @@ This specification defines the following SIWE Message fields that can be parsed
116
117
-`version` REQUIRED. The current version of the SIWE Message, which MUST be `1` for this specification.
117
118
-`chain-id` REQUIRED. The [EIP-155](./eip-155.md) Chain ID to which the session is bound, and the network where Contract Accounts MUST be resolved.
118
119
-`nonce` REQUIRED. A random string typically chosen by the relying party and used to prevent replay attacks, at least 8 alphanumeric characters.
119
-
-`issued-at` REQUIRED. The time when the message was generated, typically the current time. Its value MUST be an ISO 8601 datetime string.
120
-
-`expiration-time` OPTIONAL. The time when the signed authentication message is no longer valid. Its value MUST be an ISO 8601 datetime string.
121
-
-`not-before` OPTIONAL. The time when the signed authentication message will become valid. Its value MUST be an ISO 8601 datetime string.
120
+
-`issued-at` REQUIRED. The time when the message was generated, typically the current time. Its value MUST be an [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339) datetime string.
121
+
-`expiration-time` OPTIONAL. The time when the signed authentication message is no longer valid. Its value MUST be an [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339) datetime string.
122
+
-`not-before` OPTIONAL. The time when the signed authentication message will become valid. Its value MUST be an [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339) datetime string.
122
123
-`request-id` OPTIONAL. A system-specific identifier that MAY be used to uniquely refer to the sign-in request.
123
124
-`resources` OPTIONAL. A list of information or references to information the user wishes to have resolved as part of authentication by the relying party. Every resource MUST be an RFC 3986 URI separated by `"\n- "` where `\n` is the byte `0x0a`.
Copy file name to clipboardExpand all lines: ERCS/erc-5516.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,7 @@ The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
36
36
37
37
**Smart contracts implementing this EIP MUST implement all of the functions in the `EIP-5516` interface.**
38
38
39
-
**Smart contracts implementing this EIP MUST implement the [EIP-165](./eip-165.md)`supportsInterface` function and and MUST return the constant value `true` if `0x8314f22b` is passed through the `interfaceID` argument. They also MUST implement the [EIP-1155](./eip-1155.md) Interface and MUST return the constant value `true` if `0xd9b67a26` is passed through the `interfaceID` argument. Furthermore, they MUST implement the [EIP-1155](./eip-1155.md) Metadata interface, and MUST return the constant value `true` if `0x0e89341c` is passed through the `interfaceID` argument.**
39
+
**Smart contracts implementing this EIP MUST implement the [EIP-165](./eip-165.md)`supportsInterface` function and MUST return the constant value `true` if `0x8314f22b` is passed through the `interfaceID` argument. They also MUST implement the [EIP-1155](./eip-1155.md) Interface and MUST return the constant value `true` if `0xd9b67a26` is passed through the `interfaceID` argument. Furthermore, they MUST implement the [EIP-1155](./eip-1155.md) Metadata interface, and MUST return the constant value `true` if `0x0e89341c` is passed through the `interfaceID` argument.**
0 commit comments