I spent a couple hours last night writing up a BSIP on coin-age, how we go about calculating it and how the dividend system works factor in, some brief thoughts:
- Should dividends be paid on holding assets for part of a sharedrop period (10 days of 30 days) without holding the asset at the exact moment of sharedrop?
- If not: We could query the holders of said asset at the moment of dividend issuance (existing functionality), then calculate the coin-age for each lump of assets (individual transactions) by performing the calculation 'current_time - inbound_transaction_time'.
- This would require additional functionality to retrieve the list of 'inbound_transaction_time' or simply the transaction id (so as to then retrieve the inbound transaction time with existing functionality) for each transaction that makes up an user's immediate asset holdings.
- If so: we would need to evaluate the historical holders of an asset, which may involve looking back overall transaction history (filtering for chosen asset) then evaluating the coin-age accumulated; this would be computationally expensive as this may involve a serious quantity of transactions to process in the future (potentially also open to abuse if I was to spam an asset between two accounts to increase time to compute coin-age).
- If not: We could query the holders of said asset at the moment of dividend issuance (existing functionality), then calculate the coin-age for each lump of assets (individual transactions) by performing the calculation 'current_time - inbound_transaction_time'.