From d6fc8dd8f063db772501bc5de5bd2bc47e5c4c29 Mon Sep 17 00:00:00 2001 From: cf Date: Sat, 9 Sep 2023 08:48:34 -0400 Subject: [PATCH] Update EIP-7015: Eip 7015 Merged by EIP-Bot. --- EIPS/eip-7015.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/EIPS/eip-7015.md b/EIPS/eip-7015.md index 72dace6e8a3ac8..950154438fd0c7 100644 --- a/EIPS/eip-7015.md +++ b/EIPS/eip-7015.md @@ -46,6 +46,7 @@ Creator attribution is given through a signature verification that MUST be verif - `structHash`: hashed information for deploying the NFT contract (e.g. name, symbol, admins etc) - `domainName`: the domain name of the contract verifying the singature (for EIP-712 signature validation) - `version`: the version of the contract verifying the signature (for EIP-712 signature validation) +- `creator`: the creator's account - `signature`: the creator’s signature The event is defined as follows: @@ -55,13 +56,14 @@ event CreatorAttribution( bytes32 structHash, string domainName, string version, + address creator, bytes signature ); ``` Note that although the `chainId` parameters is necessary for [EIP-712](./eip-712.md) signatures, we omit the parameter from the event as it can be inferred through the transaction data. Similarly, the `verifyingContract` parameter for signature verification is omitted since it MUST be the same as the `emitter` field in the transaction. `emitter` MUST be the token. -A platform can verify the validity of the creator attribution by reconstructing the signature digest with the parameters emitted and recovering the signer from the `signature` parameter. The recovered signer MUST be the `creator` of the token. If `CreatorAttribution` event is present creator attribution MUST be given to the `creator` instead of the account that submitted the transaction. +A platform can verify the validity of the creator attribution by reconstructing the signature digest with the parameters emitted and recovering the signer from the `signature` parameter. The recovered signer MUST match the `creator` emitted in the event. If `CreatorAttribution` event is present creator and the signature is validated correctly, attribution MUST be given to the `creator` instead of the account that submitted the transaction. ### Reference Implementation @@ -81,6 +83,7 @@ abstract contract ERC7015 is EIP712 { bytes32 structHash, string domainName, string version, + address creator, bytes signature ); @@ -109,6 +112,7 @@ abstract contract ERC7015 is EIP712 { structHash, "ERC7015", "1", + creator, signature ); }