Ace Assets¶
Запускает механизм распределения доходов сети между специальным счетами Ace Asset.
Эта операция является системным смарт-контрактом.
Операция может быть запущена любым аккаунтом, но сеть примет только одну операцию раз в 24 часа.
Псевдокод¶
# list of pools that are distributed
pools = [trafficFeePool, premiumFeePool, contentAccessFeePool]
# find target accounts
targetAccounts = [ account in system.accounts if
account.homedomain = 'ace-asset.acestream.network'
and account.lastmodified <= now() - SystemSettings.ace_asset_min_lock_interval
]
# Distribute tokens from pools
totalAssetTokens = sum(account.assetTokens in targetAccounts)
for pool in pools:
# The share of Ace Stream Foundation
asfShare = pool.amount * SystemSettings.ace_asset_asf_share
addTokens(ASF_PUBLIC_ACCOUNT, asfShare)
# The rest is distributed among target accounts
for account in targetAccounts:
account.parent.tokens += (pool.amount - asfShare) * account.assetTokens / totalAssetTokens
# empty all pools
for pool in pools:
pool.empty()
Описание¶
- распределяются такие системные пулы:
ace_asset_adf_share
процентов содержимого пулов перечисляется на аккаунт под управлением Ace Stream Foundation- остальное содержимое пулов распределяется между специальными счетами Ace Asset, которые не изменялись как минимум
ace_asset_min_lock_interval
секунд - распределение выполняется пропорционально количеству AST на специальном счету
- токены, полученные в результате распределения, начисляются на счет владельца специального счета
- в ходе операции специальный счет не модифицируется, поэтому каждый такой счет будет принимать участие в следующей операции распределения через 24 часа (если владелец счета не модифицирует его)
- после распределения все участвующие пулы обнуляются