Skip to content

feat(contract): add on-chain reputation scoring#354

Open
whiteghost0001 wants to merge 1 commit into
Stellar-split:mainfrom
whiteghost0001:feature/onchain-reputation
Open

feat(contract): add on-chain reputation scoring#354
whiteghost0001 wants to merge 1 commit into
Stellar-split:mainfrom
whiteghost0001:feature/onchain-reputation

Conversation

@whiteghost0001

Copy link
Copy Markdown

I have completed the implementation of Issue #349: On-chain reputation scoring for payers and creators.

Summary of Accomplishments
Reputation Engine & Data Structures:

Defined RepScore (paid_on_time, late_pays, invoices_released, invoices_refunded) in types.rs.
Mapped persistent storage key rep_key(address) -> (symbol_short!("rep"), address).
Added public view methods get_rep(env, address) -> RepScore and get_reputation(env, address) -> u64.
Invoice Reputation Gating & Auto-Updates:

Extended InvoiceOptions, InvoiceExt2, and Invoice with pub min_payer_rep: Option.
Added gating check in _pay() rejecting payers with insufficient reputation ("insufficient payer reputation").
Updated _pay() to record paid_on_time or late_pays.
Updated _release_full() to increment creator invoices_released.
Updated refund() to increment creator invoices_refunded.
Event Emissions:

Added events::rep_updated emitting event topic (symbol_short!("split"), symbol_short!("rep_upd"), address) with payload RepScore.
Quality & Verification:

cargo fmt: All files formatted.
cargo clippy --all-targets -- -D warnings: Passed with 0 errors, 0 warnings.
cargo test --workspace: 264 tests passed, 0 failed.
Git Workflow:

closes #349

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement on-chain reputation scoring for payers and creators

1 participant