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

Add ERC: Inscription In Smart Contract #173

Open
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

shalom-ins
Copy link

@shalom-ins shalom-ins commented Dec 26, 2023

ERC7583: A framework for inscription assets within EVM.

This EIP proposes a standardized method for enabling tokens to be traded both as fungible tokens and non-fungible tokens on the Ethereum, providing the necessary flexibility for tokens to function in both capacities. Furthermore, this standard incorporates a standard to embed inscription data within event data. This addition allows for the inclusion of immutable, extra information directly on the Ethereum.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Dec 26, 2023

File ERCS/erc-7583.md

Requires 1 more reviewers from @axic, @g11tech, @SamWilsn, @xinbenlv

@shalom-ins shalom-ins changed the title Add EIP: Inscription in smart contract ERC7549: Inscription in smart contract Dec 26, 2023
@github-actions github-actions bot added the w-ci label Dec 26, 2023
ERCS/erc-7549.md Outdated Show resolved Hide resolved
ERCS/erc-7549.md Outdated Show resolved Hide resolved
@github-actions github-actions bot added the t-erc label Dec 26, 2023
@eip-review-bot eip-review-bot changed the title ERC7549: Inscription in smart contract Add ERC: Inscription In Smart Contract Dec 26, 2023
@github-actions github-actions bot removed the w-ci label Dec 26, 2023
@shalom-ins shalom-ins changed the title Add ERC: Inscription In Smart Contract ERC7583: Inscription in smart contract Dec 26, 2023
@eip-review-bot eip-review-bot changed the title ERC7583: Inscription in smart contract Add ERC: Inscription In Smart Contract Dec 26, 2023
ERCS/erc-7583.md Outdated Show resolved Hide resolved
ERCS/erc-7583.md Outdated Show resolved Hide resolved
ERCS/erc-7583.md Outdated Show resolved Hide resolved
@JXRow
Copy link
Contributor

JXRow commented Jan 12, 2024

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

@shalom-ins
Copy link
Author

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

You can integrate it with the ERC721 protocol to enable transaction functionality. Since inscriptions are not solely used for transactions, this proposal does not set forth any transaction-related specifications.

@JXRow
Copy link
Contributor

JXRow commented Jan 13, 2024

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

You can integrate it with the ERC721 protocol to enable transaction functionality. Since inscriptions are not solely used for transactions, this proposal does not set forth any transaction-related specifications.

I kown that, so I suggest that the function inscribe(bytes calldata data) should be function inscribe(address to, bytes calldata data), inscription needs the param "address to"

@yelihui1314

This comment was marked as off-topic.

@shalom-ins
Copy link
Author

function inscribe(bytes calldata data) dosen't include transferTo, how to transfer to user?

You can integrate it with the ERC721 protocol to enable transaction functionality. Since inscriptions are not solely used for transactions, this proposal does not set forth any transaction-related specifications.

I kown that, so I suggest that the function inscribe(bytes calldata data) should be function inscribe(address to, bytes calldata data), inscription needs the param "address to"

I believe that inscription id cannot be omitted because having an id allows for very flexible operations on inscriptions using the EVM, including the owner of inscriptions.

@github-actions github-actions bot added the w-ci label Feb 18, 2024
Copy link

The commit 583169e (as a parent of 0491663) contains errors.
Please inspect the Run Summary for details.

Copy link

There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

---
eip: 7583
title: Inscription In Smart Contract
description: A framework for integrating inscription data within smart contract events.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be nice to define what "inscription data" is inside the description field. Would make it more visible to those unfamiliar (myself included.)

If you're short on characters (there's a limit of ~144), consider removing "framework" and "smart contract". The former doesn't add much information, and the latter is generally understood for ERCs.


## Abstract

This EIP proposes a standardized method for enabling tokens to be traded both as fungible tokens and non-fungible tokens on the Ethereum, providing the necessary flexibility for tokens to function in both capacities. Furthermore, this standard incorporates a standard to embed inscription data within event data. This addition allows for the inclusion of immutable, extra information directly on the Ethereum.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tried to cut out some fluff in your abstract:

Suggested change
This EIP proposes a standardized method for enabling tokens to be traded both as fungible tokens and non-fungible tokens on the Ethereum, providing the necessary flexibility for tokens to function in both capacities. Furthermore, this standard incorporates a standard to embed inscription data within event data. This addition allows for the inclusion of immutable, extra information directly on the Ethereum.
This EIP enables tokens to be traded both as fungible tokens and non-fungible tokens, providing the necessary flexibility for tokens to function in both capacities. Further, it embeds inscription data within event data. This addition allows for the inclusion of immutable extra information directly on chain.

Again, it'd be nice to explain what "inscription data" is somewhere early on.

type: Standards Track
category: ERC
created: 2023-12-26
---
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
---
requires: 20, 165
---


The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

**Every [ERC-7583](./eip-7583.md) compliant contract MUST implement the ERC-7583 and [ERC-165](./eip-165) interfaces.**
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When talking about interfaces, use backticks (`):

Suggested change
**Every [ERC-7583](./eip-7583.md) compliant contract MUST implement the ERC-7583 and [ERC-165](./eip-165) interfaces.**
**Every [ERC-7583](./eip-7583.md) compliant contract MUST implement the `IERC7583` and `ERC165` interfaces.**

*
* Note: the ERC-165 identifier for this interface is 0x4644c7dc.
*/
interface IERC7583 /* is IERC20, IERC165 */{
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is IERC20 mandatory or optional? You should make that clear in the text above this code fence.

Comment on lines +249 to +251
The BRC20 protocol is a standard within the Bitcoin ecosystem that introduces a new way of transacting Fungible Tokens (FTs), allowing these tokens to be traded in a manner similar to Non-Fungible Tokens (NFTs). Specifically, the BRC20 protocol enables a number of FTs to be bundled together and traded as a single entity, offering more flexibility and possibilities for fungible token transactions. Within the Bitcoin ecosystem, the BRC20 protocol is primarily executed through off-chain interpreters. This approach relies on external participants and infrastructure to recognize and process these special transactions.

In the Ethereum Virtual Machine (EVM), smart contracts provide powerful computational capabilities and a flexible programming model, making it feasible to implement the transaction modes described by the BRC20 protocol on Ethereum.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The BRC20 protocol is a standard within the Bitcoin ecosystem that introduces a new way of transacting Fungible Tokens (FTs), allowing these tokens to be traded in a manner similar to Non-Fungible Tokens (NFTs). Specifically, the BRC20 protocol enables a number of FTs to be bundled together and traded as a single entity, offering more flexibility and possibilities for fungible token transactions. Within the Bitcoin ecosystem, the BRC20 protocol is primarily executed through off-chain interpreters. This approach relies on external participants and infrastructure to recognize and process these special transactions.
In the Ethereum Virtual Machine (EVM), smart contracts provide powerful computational capabilities and a flexible programming model, making it feasible to implement the transaction modes described by the BRC20 protocol on Ethereum.

None of this text is explaining technical decisions made within this proposal. You might be able to move this to Motivation if you'd like to keep it.

The Rationale section should be used to explain choices made within the EIP itself, while the Motivation section justifies the EIP as a whole. My favourite analogy is:

Motivation: why do we need to build a shed?
Rationale: why did we decide to paint the shed red?

@@ -0,0 +1,457 @@
// SPDX-License-Identifier: MIT
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We prefer CC0-1.0 for assets if you can, but MIT is fine if not.

@github-actions github-actions bot removed the w-stale label May 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants