EOSIO.Contracts v1.8.3 Release Notes
System contract
Changes to REX (#412)
In previous releases of the system contract, the proceeds from CPU and NET loans, RAM trading fees, and name auction bids were immediately added to the REX pool which effectively distributed those proceeds pro rata to REX holders instantly. In this release, the proceeds are instead first collected into a staging pool within REX and then gradually distributed to REX holders linearly with time over a period of 30 days starting within 12 hours from the time at which the proceeds were collected into the REX staging pool.
REX tries to maintain a lower bound on the unlent balance to provide robustness in the rental price tracked by REX. To prevent a sell order from dropping the unlent percentage of the total tokens held by REX below a pre-determined fraction (thus violating the unlent balance lower bound), REX must delay the sell order by placing it in a sell queue to be processed at a later time when the sell order can be fulfilled without violating the lower bound. Any sell orders on the sell queue block further renting in order to satisfy the requirement that sell orders be fulfilled within 30 days of first entering the sell queue. Without an unlent balance lower bound, the REX rental price could become unstable under certain conditions and end up offering all available tokens to rent at too cheap of a price (click here to learn more about the mathematics behind the REX rental pricing algorithm). So while the unlent balance lower bound is necessary with the current REX rental pricing algorithm, there is some flexibility available in the particular choice of the pre-determined fraction value.
In prior releases, REX ensured that a sell order could not cause the amount of unlent tokens to become less than 20% of the amount of lent tokens (or equivalently that the unlent fraction of the total tokens held by REX could not go below one-sixth due to a sell order). This release lowers that threshold percentage from 20% to 10% which means that a larger fraction of tokens in REX can be lent out before further sell orders are forced into the sell queue.
Dependencies
This release depends on eosio.cdt v1.6.x and (optionally) on eosio v1.8.x. To compile the contracts in this release, first install eosio.cdt v1.6.3. To also compile the unit tests, first build and install eosio v1.8.6. The eosio.bios and eosio.system contracts in particular also require that the PREACTIVATE_FEATURE
consensus protocol upgrade has been activated on the EOSIO blockchain before they can be deployed.
Disclaimer: All repositories and other materials are provided subject to this IMPORTANT notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements. By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.