Ace Deposit¶
The system smart contract that redistributes tokens accumulated in system inflationary pool among special accounts of Ace Deposit program.
An operation can be initiated by any account, but the network will only accept one transaction every 7 days.
Pseudocode¶
# find target accounts
targetAccounts = [ account in system.accounts if
account.homedomain = 'ace-deposit.acestream.network'
and account.lastmodified <= now() - SystemSettings.ace_deposit_min_lock_interval
]
# distribute inflation pool among target accounts
totalDepositTokens = sum(account.tokens in targetAccounts)
for account in targetAccounts:
account.tokens += inflationPool.amount * account.tokens / totalDepositTokens
account.lastmodified = now()
# empty inflation pool
inflationPool.empty()
Description¶
- the system pool
inflationPool
is being redistributed - the distribution is performed between special Ace Deposit accounts that have not been changed for at least
ace_deposit_min_lock_interval
seconds - the distribution is performed in proportion to the number of XABs locked in the special account
- distributed tokens are credited to the accounts that participates in the distribution
- during the operation, the special account is modified, so each such account will take part in the next distribution operation not earlier than after
ace_deposit_min_lock_interval
seconds - after the distribution
inflationPool
resets to zero