Skip to content

Commit

Permalink
Update EIP-7015: Eip 7015
Browse files Browse the repository at this point in the history
Merged by EIP-Bot.
  • Loading branch information
cf authored Sep 9, 2023
1 parent 7959c82 commit d6fc8dd
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion EIPS/eip-7015.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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

Expand All @@ -81,6 +83,7 @@ abstract contract ERC7015 is EIP712 {
bytes32 structHash,
string domainName,
string version,
address creator,
bytes signature
);
Expand Down Expand Up @@ -109,6 +112,7 @@ abstract contract ERC7015 is EIP712 {
structHash,
"ERC7015",
"1",
creator,
signature
);
}
Expand Down

0 comments on commit d6fc8dd

Please sign in to comment.