smart-contracts/backlog/tasks/task-12 - Port-Commitment-C...

52 lines
1.8 KiB
Markdown

---
id: TASK-12
title: 'Port Commitment Channels to Solidity (Labor, Subscription, Staking)'
status: To Do
assignee: []
created_date: '2026-04-03 21:42'
labels:
- solidity
- commitments
- issuance
dependencies:
- TASK-5
- TASK-7
references:
- /home/jeffe/Github/myco-bonding-curve/src/commitments/
- /home/jeffe/Github/payment-infra/contracts/commitment/
priority: medium
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Translate the three commitment issuance channels from Python to Solidity. These enable non-financial token minting paths for community economies.
1. Labor Issuance (src/commitments/labor.py):
- Attestation oracle verifies work → mint tokens at governed rate
- Rate-limited per attestor per time window
- Integrates with WeaveRegistry from payment-infra (commitment types: Dev Hours, Design, Facilitation)
- CommitmentToken.sol (ERC-1155) already exists in payment-infra
2. Subscription DCA (src/commitments/subscription.py):
- Recurring pledges with loyalty multipliers
- Time-weighted minting (longer subscription → better rate)
- Chainlink Automation for recurring execution
3. Staking Lockups (src/commitments/staking.py):
- Duration-weighted bonus minting: sqrt concave curve
- Lock collateral for N days → receive bonus tokens
- Integrates with LST staking yields from cross-chain module
All channels feed into the bonding curve reserve, increasing collateral backing for tranches.
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 Labor attestation mints tokens at governed rate
- [ ] #2 Subscription DCA executes recurring buys via Chainlink Automation
- [ ] #3 Staking lockup calculates duration bonus correctly
- [ ] #4 All channels increase bonding curve reserve
- [ ] #5 Rate limiting prevents spam minting
<!-- AC:END -->