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

ERC: Discussion around Creditable NFT #4343

Closed
yfeng997 opened this issue Oct 3, 2021 · 0 comments
Closed

ERC: Discussion around Creditable NFT #4343

yfeng997 opened this issue Oct 3, 2021 · 0 comments
Labels

Comments

@yfeng997
Copy link

yfeng997 commented Oct 3, 2021

TL;DR

The proposal introduces an interface for new ERC 721 contracts to register reference to and inspiration from other works. This recognizes influential NFT collections and safeguards originality.

Motivation

Citation is a well-established mechanism for recognizing the originality of a piece of work and quantifying the impact of the creator. In academia, Google Scholar assigns citation index to researchers and publications to evaluate the popularity and impact. On Github, developers recognize others’ work by starring and forking useful repositories.
Both systems not only provide a time stamp to reserve and verify the creation of the work/idea but also rewards authors/developers based on their influence and marginal value committed to the community.

The same effort is applied to the digital assets world, albeit with much less efficiency and recognition. Two main issues brought to our attention: i) on social media, people can re-publish anyone’s digital work without crediting to the original authors; ii) even with “credit to” or “inspired by” statement tagged in the publication, it is hard to overall keep track of the credibility of the work or its original creators.

Therefore, we propose to adapt digital asset tracking like ERC-721 to register credibility among art works and creators. The goal of this proposed feature is to firstly, count the number of use/mention/credit to a specific artwork; secondly, record the total impact of the original creator and/or the current owner. In this way, the originality and ownership of digital assets can be protected to the maximum extent and artists/collectors can grow their recognition among the community.

Example

In the ideal scenario, we would like to allow querying for all collections that give credits to a certain work. However, storing this lengthy list costs a formidable amount of gas. Thus, we only keep track of the number of credits as a state variable, and leave specific referenced collections to event logs.

pragma solidity ^0.6.0;

/**
 * @dev Interface for creditable ERC-721
 */
interface IERC721Creditable {
    
    /**
     * @notice This event is emitted when another ERC-721 contract credits to this contract
     * 
     * @dev When a new contract is minted, the minter would call credit() function
     * and this event would be emitted. 
     * 
     * @param creditFrom Address of contract that gives credit to this contract 
     * @param creditTo Address of current contract 
  */
    event RegisteredCredit(address indexed creditFrom, address indexed creditTo);
    
    /**
     * @dev This function is called when an ERC-721 compatible contract is minted and wants to give credit/reference to this contract. Throws if creditFrom address is not ERC-721 compatible. 
     * Emits RegisteredCredit event. 
     * 
     * @param creditFrom Address of contract that gives credit to this contract 
     */
    function credit(address creditFrom) external view;
    
}

The function name ‘credit’ is open for suggestions. Some alternatives include ‘inspire’, ‘reference’, ‘cite’.

What do we think?

@github-actions github-actions bot added the stale label Apr 1, 2022
Woodpile37 added a commit to Woodpile37/EIPs that referenced this issue Nov 2, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade ethers from
6.7.1 to 6.8.0.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>

- The recommended version is **1 version** ahead of your current
version.
- The recommended version was released **22 days ago**, on 2023-10-11.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>ethers</b></summary>
    <ul>
      <li>
<b>6.8.0</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.8.0">2023-10-11</a></br><ul>
<li>Replicated former ENS normalize behaviour for empty strings and
update namehash testcases (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/125ff1189b9cefb8abfd7da9c104c75e382a50cc">125ff11</a>).</li>
<li>Initial shortMessage support for errors (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4241"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4241/hovercard">ethereum#4241</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d6a8c14d907cf8b90347444c0186b83a5db2e293">d6a8c14</a>).</li>
<li>Fixed resolving ENS addresses used as from parameters (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3961"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3961/hovercard">ethereum#3961</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/2616f4c30c82bd45449b73fa37ef269d60a07d80">2616f4c</a>).</li>
<li>Merge: <a class="commit-link" data-hovercard-type="commit"
data-hovercard-url="https://github.com/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f/hovercard"
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f"><tt>9a4b753</tt></a>
<a class="commit-link" data-hovercard-type="commit"
data-hovercard-url="https://github.com/ethers-io/ethers.js/commit/0c9c23b02dcd235887a6be87c0aaa64c733266cc/hovercard"
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0c9c23b02dcd235887a6be87c0aaa64c733266cc"><tt>0c9c23b</tt></a>
Merge branch 'v5.8-progress' (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/cd5f0fe03f2137fbc47e295f8db38a5151111e72">cd5f0fe</a>).</li>
<li>Allow more loose input format for RLP encoder (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4402"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4402/hovercard">ethereum#4402</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f">9a4b753</a>).</li>
<li>Update to latest noble crypto libraries (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3975"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3975/hovercard">ethereum#3975</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b27faa02ac8f90e2e54b188e8139c59d98c469e3">b27faa0</a>).</li>
<li>More robust configuration options for FetchRequest getUrl functions
(<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4353"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4353/hovercard">ethereum#4353</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9541f2f70cd7f5c6f3caf93f5a3d5e34eae5281a">9541f2f</a>).</li>
<li>Ignore blockTag when calling Etherscan if it is the default block
tag (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/dcea9b353619d85878ad2ba340ae17e5c285d558">dcea9b3</a>).</li>
</ul>
      </li>
      <li>
<b>6.7.1</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.7.1">2023-08-15</a></br><ul>
<li>Prevent destroyed providers from emitting network detection errors
(<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/7d4173049edc3b4ff2de1971c3ecca3b08588651">7d41730</a>).</li>
<li>Fix VSCode reported lint issues (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4153"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4153/hovercard">ethereum#4153</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4156"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4156/hovercard">ethereum#4156</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4158"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4158/hovercard">ethereum#4158</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4159"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4159/hovercard">ethereum#4159</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/4eb84da865a82a27c5113c38102b6b710096958e">4eb84da</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/203dfc33b9c8e72c9cdfe0a349ac763ef17a4484">203dfc3</a>).</li>
<li>Add gasPrice to Polygon feeData for type 0 and type 1 legacy
transactions (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4315"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4315/hovercard">ethereum#4315</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0df3ab93137039de1e1986bbfe9a5b32ceffa8a4">0df3ab9</a>).</li>
</ul>
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases">ethers
GitHub release notes</a>
  </details>
</details>


<details>
  <summary><b>Commit messages</b></summary>
  </br>
  <details>
    <summary>Package name: <b>ethers</b></summary>
    <ul>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/c847f16d5c4f667e732f09b5ac3d980be758c4cf">c847f16</a>
Fixed internal ens-normalize testcase for empty string.</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/125ff1189b9cefb8abfd7da9c104c75e382a50cc">125ff11</a>
Replicated former ENS normalize behaviour for empty strings and update
namehash testcases.</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/bc115a27334d5a64ca8e88624defb270fc6258ce">bc115a2</a>
docs: update docs building info</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/3644140861e55abd5f76cf379280ff5df4698402">3644140</a>
admin: updated dist files</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/aca848f7720300998ab995dfe9b43f1423a58983">aca848f</a>
admin: bump ens-normalize package</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d6a8c14d907cf8b90347444c0186b83a5db2e293">d6a8c14</a>
Initial shortMessage support for errors (ethereum#4241).</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/2616f4c30c82bd45449b73fa37ef269d60a07d80">2616f4c</a>
Fixed resolving ENS addresses used as from parameters (ethereum#3961).</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/cd5f0fe03f2137fbc47e295f8db38a5151111e72">cd5f0fe</a>
Merge branch &#x27;v5.8-progress&#x27;</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f">9a4b753</a>
Allow more loose input format for RLP encoder (ethereum#4402).</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/06db04082278a2d7d6fbde925976356c95281891">06db040</a>
admin: added drips authentication</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0c9c23b02dcd235887a6be87c0aaa64c733266cc">0c9c23b</a>
docs: added docs to getDefaultProvider; fixes search in Flatworm
(ethereum#4254).</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b27faa02ac8f90e2e54b188e8139c59d98c469e3">b27faa0</a>
Update to latest noble crypto libraries (ethereum#3975).</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9541f2f70cd7f5c6f3caf93f5a3d5e34eae5281a">9541f2f</a>
More robust configuration options for FetchRequest getUrl functions
(ethereum#4353).</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/c7f8abefa4458ce2555e472d260b0601ac257fa1">c7f8abe</a>
docs: fix typo in jsdocs</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/dcea9b353619d85878ad2ba340ae17e5c285d558">dcea9b3</a>
Ignore blockTag when calling Etherscan if it is the default block
tag.</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/bc6cfbf2cc3133b2aa5df7b7769d8593618001ea">bc6cfbf</a>
docs: added info on transaction order within a block and commify
migration info (ethereum#4343, ethereum#4352)</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/77fcc7fdab9a7123f67bbc8c4d1c013ee2f6edca">77fcc7f</a>
docs: added some cookbook recipes</li>
<li><a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/32915634bef5b81c6d9998f4e9ad812ffe721954">3291563</a>
admin: udpated dist files</li>
    </ul>

<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/compare/7d4173049edc3b4ff2de1971c3ecca3b08588651...c847f16d5c4f667e732f09b5ac3d980be758c4cf">Compare</a>
  </details>
</details>
<hr/>

**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*

For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJlYjU2ZjY0NC00ODQyLTQ0YTYtYjkyNi0zOWI2MzQyOGZkNzAiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImViNTZmNjQ0LTQ4NDItNDRhNi1iOTI2LTM5YjYzNDI4ZmQ3MCJ9fQ=="
width="0" height="0"/>

🧐 [View latest project
report](https://app.snyk.io/org/woodpile37/project/614feb31-d662-4c09-b58f-4168436b6b93?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/woodpile37/project/614feb31-d662-4c09-b58f-4168436b6b93/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/woodpile37/project/614feb31-d662-4c09-b58f-4168436b6b93/settings/integration?pkg&#x3D;ethers&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"eb56f644-4842-44a6-b926-39b63428fd70","prPublicId":"eb56f644-4842-44a6-b926-39b63428fd70","dependencies":[{"name":"ethers","from":"6.7.1","to":"6.8.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/woodpile37/project/614feb31-d662-4c09-b58f-4168436b6b93?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"614feb31-d662-4c09-b58f-4168436b6b93","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2023-10-11T06:18:14.788Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant