Skip to content
This repository has been archived by the owner on Dec 9, 2023. It is now read-only.

RGB: Fungible assets update: burn, replacement, renomination #19

Merged
merged 12 commits into from
Oct 10, 2020

Conversation

dr-orlovsky
Copy link
Member

@dr-orlovsky dr-orlovsky commented Jul 12, 2020

Proposal to LNP-BP/LNPBPs#38

Burn & reissue procedure named "replacement" and organized as a linear sequence within a linear sequence of epochs. Each epoch can replace maximum 100% of its original issue/supply (created at genesis or with a secondary issue ancestor).

Each issue (primary in genesis and secondary with issue state transition type) defines up to a single epoch seal.

When the seal is closed, a Epoch state transition must be created, which

  1. MUST has no metadata;
  2. MAY define a single next epoch seal (otherwise it will mean that no further replacement epochs are allowed), and
  3. MUST define a single replacement seal.

Replacement seals are closed with Replacement state transition type, which

  1. MAY optionally provide some binary proof data (with empty data validated as valid and the rest of data are validated as invalid until some possible future standard update);
  2. specifies an amount to be reissued/replaced;
  3. MUST define up to a single replacement seal.

Replacement state has a special validation procedure, which fails if the sum of all replacements within the epoch exceeds the original issued amount.

Upd: Use replacement workflow for asset recovery: LNP-BP/LNPBPs#50

@dr-orlovsky dr-orlovsky added the enhancement Improvement to existing functionality or refactoring label Jul 12, 2020
@dr-orlovsky dr-orlovsky added this to the v0.1.0 Beta 3 milestone Jul 12, 2020
@dr-orlovsky dr-orlovsky modified the milestones: v0.1.0 Beta 3, v0.2.0 Sep 13, 2020
metadata: type_map! {
FieldType::IssuedSupply => Occurences::Once,
FieldType::PruneProof => Occurences::NoneOrUpTo(None)
Copy link
Member Author

@dr-orlovsky dr-orlovsky Sep 14, 2020

Choose a reason for hiding this comment

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

PruneProof -> HistoryProof

metadata: type_map! {
FieldType::IssuedSupply => Occurences::Once,
Copy link
Member Author

Choose a reason for hiding this comment

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

Add fields:
BurnedUTXOs: UTXO
ProofFormat: enum()

@dr-orlovsky dr-orlovsky added *security* Security-related issues feature New functionality and removed enhancement Improvement to existing functionality or refactoring labels Oct 10, 2020
@dr-orlovsky dr-orlovsky changed the title RGB: Fungible assets reissue/replacement schema RGB: Fungible assets update: burn, replacement, renomination Oct 10, 2020
@dr-orlovsky dr-orlovsky merged commit b756d0a into master Oct 10, 2020
@dr-orlovsky dr-orlovsky deleted the feat/epochs branch January 27, 2021 13:33
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature New functionality *security* Security-related issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove dust limit according to the previous discussions Burn & reissue procedures
1 participant