## Overview Define the `OwnershipRecord` struct and implement functions for managing fractional token ownership inside `contracts/contrib/`. ## Location All work must be inside `contracts/contrib/src/tokenization.rs`. ## Acceptance Criteria - [ ] `OwnershipRecord` struct: `owner: Address`, `balance: i128`, `locked_balance: i128`, `acquisition_timestamp: u64`, `voting_power: i128`, `unclaimed_dividends: i128` - [ ] `get_ownership_record(env, asset_id, owner) -> OwnershipRecord` — returns ownership record - [ ] `get_all_holders(env, asset_id) -> Vec<Address>` — returns all addresses with a balance > 0 - [ ] `ownership_percentage(env, asset_id, owner) -> i128` — returns percentage in basis points (10000 = 100%)
Overview
Define the
OwnershipRecordstruct and implement functions for managing fractional token ownership insidecontracts/contrib/.Location
All work must be inside
contracts/contrib/src/tokenization.rs.Acceptance Criteria
OwnershipRecordstruct:owner: Address,balance: i128,locked_balance: i128,acquisition_timestamp: u64,voting_power: i128,unclaimed_dividends: i128get_ownership_record(env, asset_id, owner) -> OwnershipRecord— returns ownership recordget_all_holders(env, asset_id) -> Vec<Address>— returns all addresses with a balance > 0ownership_percentage(env, asset_id, owner) -> i128— returns percentage in basis points (10000 = 100%)