Files
arkhe-origin-chain/crates/origin-coin-tokenomics/src/lib.rs
T
b06560863c feat(workspace): Phase 0.4 — trait-first foundation v0.0.1
Charon sesión 1 (2026-05-19) — primer commit canonical.

Ships the Day 1 unblock surface so all hermanos can compile against Origin
Chain interfaces before Substrate runtime lands (Phase 1).

## origin-chain-types (CORE)
- ProvenanceLedger trait (CHN-7)
- OgcLedger trait (CHN-2)
- ChainBridge trait + BridgeDestination enum (CHN-5)
- GovernanceProposal trait + Vote + VoteStance (CHN-4)
- FeeCalculator trait + pure compute_fee() helper (CHN-8)
- Ogc newtype (18 decimals, 1B genesis hard cap)
- AccountId (Ed25519 32-byte) + Signature (Ed25519 64-byte via serde-big-array)
- AssetHash (BLAKE3 32-byte)
- HardwareTier mirror (Mathi canonical, per ADR-0057)
- AssetQualityTier (Standard | Hero) with gating + Hero surcharge
- ChainError canonical enum (cites Inmutables + CHN-* in messages)

## Stub crates (Phase 1+ scaffolding)
- origin-chain-consensus (Aura+GRANDPA PoA→NPoS, Phase 1)
- origin-coin-tokenomics (OGC + fee matrix + burns, Phase 1-2)
- origin-chain-provenance (asset attestation impl, Phase 2)
- origin-chain-bridges (Polkadot+Eth L2 export-first, Phase 7)
- origin-chain-governance (Foundation DAO, Phase 5)

## Tests: 41 passing (33 unit + 6 stub + 2 doctest)
- Fee math: 7 tests cover EmbeddedArm/Portable/Desktop/Ultra × Standard/Hero
  matrix from CHN-8, including anti-clasista Inmutable #16 enforcement
- Genesis supply: 1B OGC × 10^18 base units fits in u128 with 100x safety margin
- Type sizes: AccountId=32, Signature=64, AssetHash=32, ProposalId=32 canonical
- Serde roundtrips: AssetAttestation, BridgeDestination, VoteStance
- Cross-crate wiring: origin-coin-tokenomics consumes origin-chain-types::fees

## Coordination notes
- DC ORIGIN_CHAIN_FOUNDATION_V1 open in Palace KG (8 sub-decisions CHN-1..CHN-8)
  Proposer: Ergon (proxy — Charon hotfix shipped in Palace v0.9.0-α.5 same day)
  Co-authors: Larihana, Lyra, Mathi, Marihan, Phanes, Codex, Sussi, Palace
  Deadline: 2026-05-26
  1/9 signatures filed so far (Palace ✅ APPROVE 8/8)

Refs: CHN-1..CHN-8, Inmutables #16/#26/#37/#41, ADR-0057, CHARON_ROADMAP_V1

Co-Authored-By: Ergon (interim Pilar 4 author) <ergon@originmetaverse.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-19 22:08:49 -05:00

63 lines
1.9 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//! # origin-coin-tokenomics
//!
//! $OGC token implementation per **CHN-2** + multi-tier fee matrix per **CHN-8** +
//! multi-source burn enforcement per CHN-2/CHN-8. Stub crate in v0.0.1.
//!
//! ## Phase 1 milestones
//!
//! - 1.3 `pallet_balances` con OGC token (1B supply genesis)
//! - 1.7 Genesis config: allocation 40/25/15/15/5 per BM V2
//!
//! ## Phase 2 milestones
//!
//! - 2.4 `fee_for_transaction(tier, quality) -> Ogc` implementation
//! - 2.5 Fee matrix: EmbeddedArm 0.1×, Portable 0.3×, Desktop 1.0×, Ultra 0.7×
//! - 2.6 Hero surcharge: Desktop +0.5×, Ultra +0.3×
//!
//! ## Canonical burn matrix
//!
//! Per CHN-2 + CHN-8 + Pillar 6/7 docs:
//!
//! | Source | Burn rate |
//! |--------|-----------|
//! | Gas fees | 100% |
//! | Seeds Hosting payments | 20% |
//! | Marketplace 9% Treasury share | 50% (2% del 9%) |
//! | ONS registration | 50% |
//! | OIT Oracle | 30% |
//! | Escrow commissions | 20% |
//! | Resonance slashing | 25% |
//! | Ticket commissions | 30% |
//! | Reputation stake slashing | 50% |
//! | Ethos net revenue buy-back | 5% |
#![deny(missing_docs)]
/// Placeholder marker for the tokenomics module. Replaced by concrete pallet in Phase 1.3.
#[derive(Debug, Clone, Copy, Default)]
pub struct TokenomicsConfig;
#[cfg(test)]
mod tests {
use super::*;
use origin_chain_types::fees::compute_fee;
use origin_chain_types::{AssetQualityTier, HardwareTier, Ogc};
// Sanity test: the trait crate's compute_fee returns canonical values.
// This proves the workspace dependency wires up correctly.
#[test]
fn cross_crate_fee_calculation_canonical() {
let fee = compute_fee(
Ogc::from_whole(10),
HardwareTier::EmbeddedArm,
AssetQualityTier::Standard,
);
assert_eq!(fee.as_base_units(), Ogc::from_whole(1).as_base_units());
}
#[test]
fn stub_crate_compiles() {
let _cfg = TokenomicsConfig;
}
}