TransferAgentModule_V5
Last updated
This contract is an on-chain transfer agent for a tokenized money market fund (like FOBXX). It handles:
dividendShares = (balance × rate) / pricePositive rate → mint shares (yield)
Negative rate → burn shares (rare negative yield)
Processes pending buy/sell orders:
Purchases (AIP, cash) → mint shares: shares = (cashAmount × scaleFactor) / NAV
Liquidations → burn shares, return cash value
Transfers → move shares between accounts
Dividends + settlements in one call—typical daily batch.
Morning: Investors submit orders (stored in TransactionalModule)
4PM NAV published: $1.0002/share, daily rate = 0.00014 (5.1% APY)
Admin calls endOfDay:
For Alice (holds 10,000 shares, pending $5,000 purchase):
Dividend: 10000 × rate / price → ~1.4 shares minted
Settlement: $5000 / $1.0002 → ~4,999 shares minted
adjustBalance
Fix errors manually
recoverAccount
Transfer entire balance (lost keys)
recoverAsset
Partial recovery
settleCXTransactions
Cross-chain transfers
All functions require admin role and emit detailed events for audit trail.
Last updated
accounts: [0xAlice, 0xBob, 0xCarol]
txIds: [pending orders to skip if needed]
date: 1736380800 // today
rate: 140000000000000 // 0.014% scaled
price: 1000200000000000000 // $1.0002 scaled