tutus-chain/pkg/core
Tutus Development 99ba041a85 Add PersonToken native contract for soul-bound identity tokens
Implements PersonToken as a native contract following NeoGo patterns:

Core Token Lifecycle (Phase 1):
- register: Create new PersonToken with owner, personHash, isEntity, recoveryHash
- getToken/getTokenByID: Retrieve token by owner address or sequential ID
- exists/totalSupply: Check token existence and get total count
- suspend/reinstate: Committee-controlled token status management

Attribute Management (Phase 2):
- setAttribute/getAttribute: Manage identity attributes with attestation
- revokeAttribute/verifyAttribute: Attribute lifecycle management

Passwordless Authentication (Phase 3):
- createChallenge/fulfillChallenge/verifyAuth: Challenge-response auth flow

Key Recovery (Phase 4):
- initiateRecovery/approveRecovery/executeRecovery/cancelRecovery
- Multi-approval recovery with configurable delay

Cross-Contract Integration (Phase 5):
- validateCaller: Verify calling contract has valid PersonToken
- requireRole: Check caller has specific role assignment
- requireCoreRole: Check caller has core role (User/Verified/Committee/Attestor/Recovery)
- requirePermission: Check caller has resource/action/scope permission

Files added:
- pkg/core/native/person_token.go: Main contract implementation
- pkg/core/state/person_token.go: State structs with serialization
- pkg/core/native/native_test/person_token_test.go: Test coverage

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 19:04:38 +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 Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +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 PersonToken native contract for soul-bound identity tokens 2025-12-19 19:04:38 +00:00
state Add PersonToken native contract for soul-bound identity tokens 2025-12-19 19:04:38 +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 Update all imports from neo-go to tutus-chain 2025-12-19 14:28:17 +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