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

Create a new semi-fungible token standard request #4635

Closed
wants to merge 1 commit into from

Conversation

muren102
Copy link

@muren102 muren102 commented Jan 6, 2022

When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md

We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met:

  • The PR edits only existing draft PRs.
  • The build passes.
  • Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
  • If matching on email address, the email address is the one publicly listed on your GitHub profile.

EIPS/eip-draft_sft.md Outdated Show resolved Hide resolved
@MicahZoltu
Copy link
Contributor

The bot won't ping the appropriate people until you mark the PR as ready for review.

@muren102 muren102 marked this pull request as ready for review January 7, 2022 06:25
@muren102
Copy link
Author

muren102 commented Jan 7, 2022

The bot won't ping the appropriate people until you mark the PR as ready for review.

Hi Micah
Thanks for your reminder.
I've set the PR as ready for review.
Anyone else should I invite for the review? thanks

@param _data Additional data with no specified format
@return `bytes4(keccak256("onERCSFTBatchReceived(address,address,uint256[],uint256[],bytes)"))`
*/
function onERCSFTBatchReceived(address _operator, address _from, uint256[] calldata _types, uint256[] calldata _values, bytes calldata _data) external returns(bytes4);

Choose a reason for hiding this comment

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

replace with number

Copy link
Author

Choose a reason for hiding this comment

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

I've added the number 0x198fb191 in "This function MUST return bytes4(keccak256("onERCSFTReceived(address,address,uint256,uint256,bytes)")) (i.e. 0x198fb191) if it accepts the transfer." and 0xa3a64bf1 in "This function MUST return bytes4(keccak256("onERCSFTBatchReceived(address,address,uint256[],uint256[],bytes)")) (i.e. 0xa3a64bf1) if it accepts the transfer(s)." I will also add the number in the return

Copy link

@linvictor88 linvictor88 left a comment

Choose a reason for hiding this comment

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

change SFT to corresponding number as well as in coding implemenation

@MicahZoltu MicahZoltu closed this Jan 7, 2022
@MicahZoltu MicahZoltu reopened this Jan 7, 2022
@eth-bot
Copy link
Collaborator

eth-bot commented Jan 7, 2022

Hi! I'm a bot, and I wanted to automerge your PR, but couldn't because of the following issue(s):


(fail) eip-4635.md

classification
newEIPFile
  • File with name EIPS/eip-4635.md is new and new files must be reviewed
  • This PR requires review from one of [@lightclient, @axic]

Copy link
Member

@lightclient lightclient left a comment

Choose a reason for hiding this comment

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

Left a few comments - I think I generally am not understanding the concept of "semi-fungibility" and how this differs from EIP-1155. The prose is a bit difficult to understand, I recommend spending some time to revise your abstract and motivation sections. Thanks.

requires: 721
---

## Simple Summary
Copy link
Member

Choose a reason for hiding this comment

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

This field has been deprecated in favor of the description preamble field. Please update accordingly.

Copy link
Author

Choose a reason for hiding this comment

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

OK. thanks

A standard interface for contracts that manage semi-fungible token(s). A single deployed contract usually includes multiple types of fungible tokens and one single transformational non-fungible token.

## Abstract
This standard outlines a smart contract interface that can represent semi-fungible tokens (SFT). SFTs start out as types of fungible tokens and finally end as non-fungible tokens to provide value. ERC-1155 can manage combination of fungible tokens and non-fungible tokens, however, it's intractable for semi-fungible token representation. So this standard is specially for semi-fungible token use, in which fungible token types are managed like ERC-1155 and non-fungible tokens are totally managed by ERC-721.
Copy link
Member

Choose a reason for hiding this comment

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

It's not clear to me what the term "semi-fungible" means here?

Copy link
Author

Choose a reason for hiding this comment

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

SFTs are a relatively new group of tokens that can be both fungible and non-fungible during their lifecycle.
e.g. the art museum tickets, it is FT in the beginning. and when it is bought by someone, the ticket will be updated with specific ID and name and now it is NFT.

- [ERC-SFT Reference Implementation](https://github.com/linvictor88/ERC-SFT)

## Security Considerations
All EIPs must contain a section that discusses the security implications/considerations relevant to the proposed change. Include information that might be important for security discussions, surfaces risks and can be used throughout the life cycle of the proposal. E.g. include security-relevant design decisions, concerns, important discussions, implementation-specific guidance and pitfalls, an outline of threats and risks and how they are being addressed. EIP submissions missing the "Security Considerations" section will be rejected. An EIP cannot proceed to status "Final" without a Security Considerations discussion deemed sufficient by the reviewers.
Copy link
Member

Choose a reason for hiding this comment

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

Please remove this text and describe any security considerations regarding the EIP.

Copy link
Author

Choose a reason for hiding this comment

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

OK. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants