You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Define the cross-contract authorization pattern before wiring contracts together #74
usage-meter will call audit-registry, and payment-router will call usage-meter. Cross-contract calls in Soroban carry subtle authorization
semantics — require_auth inside a called contract validates against the
authorization tree of the whole transaction, and it is easy to build something
that appears to check permission while actually accepting the caller's
authority as the user's.
Getting this wrong is a privilege-escalation vulnerability that unit tests will
not catch, because mocked auth passes everything.
What to do
Document the intended authorization tree for each cross-contract flow: who
authorizes what, at which level.
Decide where require_auth_for_args is needed rather than plain require_auth.
Establish which contract is allowed to call which entrypoints, and enforce it
— a caller allowlist, not an implicit assumption.
Write tests that do not use mock_all_auths, asserting that an
unauthorized intermediate contract cannot act on a user's behalf.
Have the pattern reviewed by someone who did not design it.
Acceptance criteria
Authorization tree documented per cross-contract flow
Caller allowlists enforced in code
Tests without mock_all_auths covering escalation attempts
Pattern peer-reviewed and the review recorded
Notes
mock_all_auths is the single most dangerous convenience in Soroban testing —
it makes every auth test pass. Any test that is about authorization must not
use it.
Hi! I’m a full-stack developer with a strong blockchain background, and I’m confident I can resolve this issue quickly and effectively. I’ll deliver a clean, reliable solution with immediate attention to detail, ensuring it’s completed as soon as possible. Please assign it to me—I’m ready to get started right away.
For context: 200+ contributions shipped across the ecosystem, clean reviews, and I contributed to this project last wave with no dropped PRs or delays.
I’ll add comprehensive tests for DatasetRegistry, LicenseRouter, and RoyaltySplitter — covering happy paths, authorization, edge cases, expiry, revocation, and failures.
Aiming for >85% coverage and cargo test --all green before PR.
Activity
bobo-24 commentedon Aug 21, 2026
Hi! I’m a full-stack developer with a strong blockchain background, and I’m confident I can resolve this issue quickly and effectively. I’ll deliver a clean, reliable solution with immediate attention to detail, ensuring it’s completed as soon as possible. Please assign it to me—I’m ready to get started right away.
Alheriii commentedon Aug 24, 2026
Hi there 👋
I’d love to pick this one up.
For context: 200+ contributions shipped across the ecosystem, clean reviews, and I contributed to this project last wave with no dropped PRs or delays.
I’ll add comprehensive tests for DatasetRegistry, LicenseRouter, and RoyaltySplitter — covering happy paths, authorization, edge cases, expiry, revocation, and failures.
Aiming for >85% coverage and cargo test --all green before PR.
Can I be assigned? Thanks!
joelpeace48-cell commentedon Aug 24, 2026
@Alheriii you are assigned, ensure all ci pipeline are green
grantfox-oss commentedon Aug 24, 2026
🦊 GrantFox — @Alheriii has been assigned to this issue as part of the Third Campaign campaign!
Next steps:
Closes #74)Good luck! Track your progress on GrantFox.
grantfox-oss commentedon Aug 24, 2026
🎉 This issue has been marked as completed on GrantFox as part of the Third Campaign campaign!
@Alheriii's PR #83 was approved and merged by @joelpeace48-cell.
🏆 @Alheriii: You earned 35 FoxPoints for this contribution! Your current tier: Explorer (118 total points). Track your full progress on GrantFox.
👏 Great work, @Alheriii! Keep contributing to FinesseStudioLab.
feat(usage-meter): link usage records to verified attestations
feat(payment-router): partial settlement with pull-based claiming