...
Summarize changes to fio and fio.contracts
FIP-21
System contract.
fio.system.hpp –
add the global4 table which will hold int32 total_staking_incentives_granted initialized to 0.
fio.system.cpp --
add new action to update staking incentives granted (
updtotstkinc
), special note, auth check that its the fio.token contract calling it.
Token Contract
fio.token.cpp --
modify trnsloctoks to implement the incentives logic, incentive computations, minting and transfer of new tokens, update of total staking incentives granted.
for minting, call issue of fio to the grant holder account for the specified amount of incentive.
call
updtotstkinc
to update incentive rewards accounting in global state.
New contract actions
trnsloctoks
addgenlocked
updtotstkinc
Note changes to structs and ABIs
new global4 table in system.
new actions trnsloctoks in token contract.
addgenlocked
,updtotstkinc
in system contract
Detail any table updates or migrations
no table migrations are necessary.
Summary of risks, impacts and logistics analysis
performance testing of the trnsloctoks should be performed on dev box to ensure this new logic has time to run, if it succeeds on a dev box it should then be fine on other deployments.
functional testing will test this perf concern in all environments (dev local, dev net, test net)
SDK Requirements
Note functional updates needed for SDKs
Functional Test plan
please refer to the javascript tests, which contain all of the tests for the general locks and staking incentives.
https://github.com/fioprotocol/fio.test/pull/26
Performance Testing plan
send the max number of locking periods (50), do this for 5000 users, then create small incentivized grants for another 5000. once this load is in place perform the functional tests, verify they pass. Do this on the dev net.
Fork Testing plan
this is not a forking change. the chain code modifications associated with FIP-6 will be released at a later time.
Rollout/Release plan6
new actions
removed actions
MSIGs
Rollout/Release verification plan
verification of rollout.
verify the locktokens table is present.
verify the abi for the system and the token contract, verify all new actions are present.
verify using get_actions that the new actions are present.
ToDo:
address bug with domains.
follow up with pawel to discover if we are final for the requirements.