Commit Graph

5 Commits

Author SHA1 Message Date
Tutus Development a63b3dcb70 Migrate from GitHub to git.marketally.com
Update all module paths and import statements from github.com/tutus-one
to git.marketally.com/tutus-one for self-hosted Git server migration.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-27 09:54:31 -05:00
Tutus Development 42eb48aa65 Rebrand token symbols: TUTUS->TUT, update display names
Token symbol and display name changes:
- Governance symbol: TUTUS -> TUT (3 chars, King Tut reference)
- Governance display: TutusToken -> Tutus
- Utility display: LubToken -> Lub

Core changes:
- nativenames: TutusToken->Tutus, LubToken->Lub
- native_tutus.go: symbol = "TUT"
- Regenerated nativehashes with new contract hashes
- Updated interop packages with new hashes

Test updates:
- CLI tests: Updated token symbols (TUT, LUB)
- test_contract.yml: Updated permission hash
- examples go.mod: Added replace directives for local modules

Final token lineup:
- TUT: Governance/staking (3 chars)
- LUB: Utility/gas (3 chars)
- VTS: Currency (3 chars)
- VITA: Identity NFT (4 chars)
2025-12-21 13:03:49 -05:00
Tutus Development c07696a18c Rename interop packages neo→tutus and gas→lub
Complete the Tutus/Lub rename across the interop layer:

Package Renames:
- pkg/interop/native/neo → pkg/interop/native/tutus
- pkg/interop/native/gas → pkg/interop/native/lub

Hash Updates:
- Update Hash constants to match new TutusToken/LubToken hashes
- Update all hardcoded contract hashes in test manifests

Method Renames (native contract):
- getGasPerBlock → getLubPerBlock
- setGasPerBlock → setLubPerBlock
- unclaimedGas → unclaimedLub

Struct Field Renames:
- AccountState.LastGasPerVote → LastLubPerVote

Import Updates:
- All files importing interop/native/neo now use interop/native/tutus
- All files importing interop/native/gas now use interop/native/lub
- Package usage: neo.* → tutus.*, gas.* → lub.*

Test Updates:
- native_test/neo_test.go: Updated method names and embedded contract
- native_test/common_test.go: LubPerBlock naming
- compiler/native_test.go: Use cs.Tutus()/cs.Lub() methods
- All test manifests updated with new hashes

RPC Client Updates:
- rpcclient/neo/neo.go: setLubMethod constant and method calls

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 03:20:53 +00:00
Tutus Development a2bf6a95df Complete Annos to Tutus rename across codebase
Update all remaining references from Annos (old governance contract name)
to Tutus (blockchain governance contract) across the codebase:

Contract Updates:
- All native contracts: .Annos field → .Tutus field
- Interface references: IAnnos → ITutus
- Method calls: annos.* → tutus.*

Files Updated:
- blockchain.go: annos field → tutus field
- All native contracts (collocatio, designate, federation, lex,
  management, native_lub, notary, opus, oracle, palam, policy,
  pons, role_registry, salus, scire, sese, treasury, tribute, vts)
- native_tutus.go: Internal struct/method renames

Test Updates:
- Updated all test files to use new Tutus references
- Fixed expected manifest names: NeoToken → TutusToken, GasToken → LubToken
- Updated Vita register calls with birthTimestamp parameter
- Fixed expected error messages (GAS → Lub)

CLI/RPC Updates:
- cli/wallet: Updated native contract references
- rpcclient/neo: Updated for Tutus naming

This completes Phase 1 of the refactoring:
- Tutus = blockchain governance (validators, committee, staking)
- Annos = lifespan/years tracking (age, life stages, entitlements)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 00:56:43 +00:00
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