koinos / koinos-contracts-cpp

This suite of system contracts provides core functionality for the Koinos blockchain including consensus algorithms and tokenomics.
Other
3 stars 2 forks source link

[FEATURE]: Separate transfer operation to transfer mana-depleted KOIN #77

Closed theoreticalbts closed 1 year ago

theoreticalbts commented 2 years ago

Is there an existing issue for this?

New feature

Let's imagine each user's KOIN balance is divided into full-mana KOIN and depleted KOIN.

Currently only full-mana KOIN can be transferred; depleted KOIN cannot.

This should remain the default, to ensure the best possible user experience (i.e., able to transact immediately) when getting KOIN from exchanges or non-experts who just do a transfer with default settings.

However I envision it's quite possible to implement a separate operation (or perhaps flags on the existing transfer operation) like this:

message transfer_extended_arguments {
   bytes from;
   bytes to;
   // Number of full-mana KOIN to send
   uint64 value_full;
   // Number of depleted KOIN to send
   uint64 value_depleted;

   // If true, fail if there's insufficient full-mana KOIN
   // If false, use depleted KOIN instead to make up the deficiency if possible
   bool full_is_exact;

   // If true, fail if there's insufficient depleted KOIN
   // If false, use full-mana KOIN instead to make up the deficiency if possible
   bool depleted_is_exact;
}

Anything else?

The non-transferability of depleted KOIN may provide a systemically important economic incentive to hold KOIN.

This proposal may disrupt that incentive.

Therefore, further analysis of the economic implications may be needed before implementing this feature.

koinos-ci commented 1 year ago

This issue is stale because it has been open for 30 days with no activity.

koinos-ci commented 1 year ago

This issue was closed because it has been inactive for 14 days since being marked as stale.