Skip to content

Add bulk operations support to CircleCare treasury#44

Open
AdekunleBamz wants to merge 3 commits intoThinkLikeAFounder:mainfrom
AdekunleBamz:main
Open

Add bulk operations support to CircleCare treasury#44
AdekunleBamz wants to merge 3 commits intoThinkLikeAFounder:mainfrom
AdekunleBamz:main

Conversation

@AdekunleBamz
Copy link
Copy Markdown

Description: This PR introduces comprehensive bulk operations functionality to CircleCare, enabling communities to efficiently manage expenses, settlements, and memberships in single transactions.

Changes Made

Contract Updates (contracts/contracts/circle-treasury.clar)

  • add-multiple-expenses: Bulk expense creation allowing up to 10 expenses per transaction
  • settle-multiple-debts: Bulk debt settlement allowing up to 10 settlements per transaction with restrict-assets? protection
  • add-multiple-members: Bulk member addition allowing up to 10 members per transaction
  • Added helper functions for processing individual operations within bulk calls
  • Uses Clarity's map function for efficient bulk processing while maintaining security

Test Suite Updates (contracts/tests/circle-treasury.test.ts)

  • Added comprehensive test suite with 15+ new test cases covering bulk operations
  • Bulk Expense Tests: Multiple expense creation, validation, authorization, empty lists
  • Bulk Settlement Tests: Multiple debt settlements, error handling, membership validation
  • Bulk Member Tests: Multiple member addition, limits, duplicates, authorization
  • Integration Tests: Complex workflows combining multiple bulk operations
  • Edge Cases: Paused circles, invalid inputs, mixed success/failure scenarios

New Features

For Community Creators

  • Bulk Member Addition: Invite multiple members to join care circles simultaneously
  • Efficient Onboarding: Streamlined member management for growing communities
  • Member Limit Validation: Respects existing MAX_MEMBERS constraints

For Community Members

  • Bulk Expense Tracking: Record multiple shared expenses in one transaction
  • Efficient Settlements: Settle multiple debts with different creditors simultaneously
  • Cost Savings: Reduced transaction fees for frequent expense sharing

For Care Circle Administrators

  • Bulk Operations: Combine expense addition, member management, and settlements
  • Workflow Efficiency: Handle complex community events (dinners, trips, projects) efficiently
  • Error Handling: Individual operation validation with clear error reporting

API Examples

;; Bulk add expenses from a community event
(add-multiple-expenses circle-id (list 
  {description: "Dinner", amount: u300000000, participants: [alice, bob, charlie]}
  {description: "Drinks", amount: u50000000, participants: [bob, charlie]}
  {description: "Dessert", amount: u25000000, participants: [alice, charlie]}
))
;; Returns: (list u1 u2 u3) - expense IDs

;; Bulk settle multiple debts
(settle-multiple-debts circle-id (list 
  {creditor: alice}  ;; Settle debt to Alice
  {creditor: bob}    ;; Settle debt to Bob
))
;; Returns: (list u1 u2) - settlement IDs

;; Bulk add new community members
(add-multiple-members circle-id (list 
  {member: david, nickname: "David"}
  {member: eve, nickname: "Eve"}
  {member: frank, nickname: "Frank"}
))
;; Returns: (list true true true) - success indicators

Technical Details

  • Batch Size Limits: 10 operations per transaction for gas efficiency
  • Security Maintained: All existing validations (authorization, membership, asset protection)
  • Clarity 4 Features: Leverages restrict-assets? for settlement protection, stacks-block-time for timestamps
  • Atomic Operations: Either all operations succeed or the transaction fails
  • Error Preservation: Individual operation errors are preserved in result lists
  • Backwards Compatible: Existing single-operation functions remain unchanged

Use Cases

  • Group Events: Dinner parties, trips, shared activities with multiple expenses
  • Monthly Settlements: End-of-month debt clearing across multiple relationships
  • Community Growth: Adding multiple new members during expansion phases
  • Administrative Efficiency: Managing complex expense-sharing scenarios
  • Event Planning: Coordinated expense tracking for community projects

This enhancement significantly improves the user experience for communities using CircleCare for expense sharing, making it more practical for real-world usage while maintaining all existing security and validation guarantees.

SmartFlow Developer and others added 3 commits December 28, 2025 01:27
- Implement add-multiple-expenses for bulk expense creation (up to 10 expenses per transaction)
- Implement settle-multiple-debts for bulk debt settlement (up to 10 settlements per transaction)
- Implement add-multiple-members for bulk member addition (up to 10 members per transaction)
- Added comprehensive test suite covering all bulk operations
- Tests include successful bulk operations, error handling, authorization checks, and edge cases
- Bulk operations maintain all existing security validations and use restrict-assets? protection
- Compatible with existing single-operation workflow while providing efficiency for care circles
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.

1 participant