Commit Graph

5 Commits

Author SHA1 Message Date
Tutus Development 1b4a61fcf7 Add security remediation infrastructure and fixes
Implement comprehensive security infrastructure from Security-Remediation-Plan.md:

New Infrastructure Files:
- circuit_breaker.go (ARCH-001): Circuit breaker pattern for contract failures
  with Closed/Open/Half-Open state machine and emergency shutdown
- invariants.go (ARCH-003): Formal verification with 14 critical invariants
  and TLA+ specifications for runtime verification
- canary_deployment.go (ARCH-004): Feature flags with percentage-based rollout
  and auto-rollback on error rate threshold
- audit_logger.go (ARCH-005): Comprehensive audit logging with multi-index
  querying across 8 categories (Auth, Access, Data, Governance, etc.)
- config_registry.go (LOW-003): Configuration governance infrastructure
- event_archival.go (LOW-001): Event log archival with Merkle commitments
- validation.go (LOW-002): Common input validation constants and utilities
- role_registry_domain.go (CRIT-002): Domain-specific committee roles
  (Legal, Health, Education, Economy, Identity, Governance)

Contract Security Fixes:
- contract.go: Add HasDomainCommitteeAuthority to IRoleRegistry interface
- lex.go: Remove duplicate ErrReasonTooLong declaration
- salus.go, eligere.go, palam.go, pons.go, scire.go, tribute.go:
  Line ending normalization and security validation integration
- collocatio.go: Security validation for investment operations

State Type Updates:
- state/pons.go, state/salus.go, state/tribute.go: Line ending fixes

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 09:06:14 +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 64c682cd68 Rename NEO to Annos and GAS to Lub native contracts
Rename the core governance and utility tokens to reflect Tutus
blockchain's identity-centric design:

- NEO -> Annos (Latin for "years" - governance token tied to Vita)
- GAS -> Lub (lubrication - utility/fee token)

File renames:
- native_neo.go -> native_annos.go
- native_gas.go -> native_lub.go
- native_neo_candidate.go -> native_annos_candidate.go

Struct/interface renames:
- NEO struct -> Annos, INEO -> IAnnos
- GAS struct -> Lub, IGAS -> ILub

Constants updated:
- nativenames: Neo="NeoToken" -> Annos="AnnosToken"
- nativenames: Gas="GasToken" -> Lub="LubToken"
- NEOTotalSupply -> AnnosTotalSupply
- GASFactor -> LubFactor

Regenerated nativehashes for new manifest names.

Updated all native contracts, blockchain.go, test files,
CLI wallet, and RPC client packages.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 11:34:42 +00:00
Tutus Development f03564d676 Add free GAS for Vita holders with cross-chain fee splitting
Rename PersonToken to Vita (soul-bound identity token) and implement
fee exemption system for citizens:

- Add Federation native contract for cross-chain Vita coordination
  - Visitor registry for Vita holders from other chains
  - Configurable visiting fee percentage (default 50%)
  - Inter-chain debt tracking for settlement between chains

- Modify GAS contract to burn fees from Treasury for Vita holders
  - Local Vita: 100% paid by local Treasury
  - Visiting Vita: Split between local Treasury and inter-chain debt
  - Deficit tracking when Treasury is underfunded

- Update mempool and blockchain to skip fee checks for Vita exempt users
  - Add IsVitaFeeExempt() to Feer interface
  - Modify verifyAndPoolTx() to allow zero-fee transactions

- Rename PersonToken -> Vita across codebase
  - Update state, native contract, and tests
  - Maintain same functionality with clearer naming

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 04:27:55 +00:00
Tutus Development de34f66286 Add RoleRegistry native contract for hierarchical RBAC
Implements RoleRegistry as a native contract for role-based access control
that integrates with PersonToken for democratic governance.

Key features:
- Built-in roles: COMMITTEE, REGISTRAR, ATTESTOR, OPERATOR
- Hierarchical roles with parent inheritance
- Permission system (resource/action/scope tuples)
- CheckCommittee() method for admin authorization
- TutusCommittee config for initial committee members

PersonToken integration:
- Added RoleRegistry field for cross-contract calls
- checkCommittee helper delegates to RoleRegistry with NEO fallback

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 01:35:26 +00:00