Description
Some invoices are issued jointly by multiple parties and should allow any of the designated co-creators to perform creator-privileged operations such as extending deadlines or cancelling. A co-creator list should supplement the primary creator.
Technical Context
Add co_creators: Vec<Address> to the Invoice struct in types.rs. Introduce a require_creator_or_cocreator(invoice_id, caller) helper in contracts/split/src/lib.rs that checks membership. Add add_co_creator and remove_co_creator methods restricted to the primary creator. Store the list under CoCreators(invoice_id) in storage::persistent.
Acceptance Criteria
Description
Some invoices are issued jointly by multiple parties and should allow any of the designated co-creators to perform creator-privileged operations such as extending deadlines or cancelling. A co-creator list should supplement the primary creator.
Technical Context
Add
co_creators: Vec<Address>to theInvoicestruct intypes.rs. Introduce arequire_creator_or_cocreator(invoice_id, caller)helper incontracts/split/src/lib.rsthat checks membership. Addadd_co_creatorandremove_co_creatormethods restricted to the primary creator. Store the list underCoCreators(invoice_id)instorage::persistent.Acceptance Criteria
extend_deadlineandcancel_invoiceCoCreatorAddedandCoCreatorRemovedevents are emitted fromevents.rs