tutus-chain/pkg/core
Tutus Development a18363ce0b Add Annos lifespan contract and Eligere voting age integration
Implement the Annos (Latin for "years") contract for tracking citizen
lifespan and age-based entitlements:

Annos Contract (pkg/core/native/annos.go):
- LifespanRecord tracks birth/death timestamps per Vita holder
- Age calculation from birthTimestamp (provided during registration)
- Life stages: Child (0-17), Youth (18-25), Adult (26-64), Elder (65+)
- Entitlement checks: isVotingAge, isAdult, isRetirementAge, isAlive
- recordDeath method (committee only) for mortality tracking
- Cross-contract methods for internal use by other contracts

State Types (pkg/core/state/annos.go):
- LifeStage, LifespanStatus enums
- LifespanRecord, AnnosConfig structs with serialization

Vita Integration:
- Updated register() to accept birthTimestamp parameter
- birthTimestamp is the actual birth date, NOT the mint date
- Calls Annos.RegisterBirthInternal() after minting Vita
- Enables existing adults to register with their real birth date

Eligere Integration:
- Added Annos IAnnos field to Eligere struct
- Added voting age check in vote() method
- Voters must be 18+ (configurable via AnnosConfig.VotingAge)
- New ErrUnderVotingAge error for underage voters

Contract Wiring:
- Added eligere.Annos = annos in NewDefaultContracts()
- Contract ID: -26 (next after Collocatio)

Tests (pkg/core/native/native_test/annos_test.go):
- 17 comprehensive tests covering all Annos functionality
- Age-based tests for Child, Youth, Adult life stages
- Note: Elder test skipped (uint64 can't represent pre-1970 dates)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 00:55:29 +00:00
..
block Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
chaindump Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
dao Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
fee Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
interop Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
mempool Add free GAS for Vita holders with cross-chain fee splitting 2025-12-20 04:27:55 +00:00
mempoolevent Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
mpt Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
native Add Annos lifespan contract and Eligere voting age integration 2025-12-21 00:55:29 +00:00
state Add Annos lifespan contract and Eligere voting age integration 2025-12-21 00:55:29 +00:00
stateroot Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
statesync Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
storage Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
test_data Initial Tutus chain fork from NeoGo 2025-12-19 14:23:04 +00:00
transaction Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
basic_chain_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
bench_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
blockchain.go Rename NEO to Annos and GAS to Lub native contracts 2025-12-20 11:34:42 +00:00
blockchain_core_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
blockchain_neotest_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
custom_native_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
doc.go Initial Tutus chain fork from NeoGo 2025-12-19 14:23:04 +00:00
headerhashes.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
helper_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
interops.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
native_designate_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
prometheus.go Initial Tutus chain fork from NeoGo 2025-12-19 14:23:04 +00:00
util.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00
util_test.go Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +00:00