All notable changes to the Sharpy smart contract are documented here.
initialize— set admin and treasury addressescreate_invoice— single invoice with split rules and escrow optionscreate_batch— create up to 10 invoices in one transactioncreate_recurring— recurring invoice that auto-generates next invoice on releasepay— pay toward an invoice with token transferpool_pay— pay multiple invoices in a single callrelease_escrow— release escrow-held invoice after delayrelease— manual release for fully funded invoicesrefund— refund all payers after deadline passescancel_invoice— creator cancels and refunds all paymentsget_invoice— read invoice stateget_audit_log— full audit trail per invoiceget_payer_total— total paid by a specific addressget_next_recurring— get the next invoice in a recurring chainpause/unpause— admin circuit breaker- Split rules:
Fixed,Percentage,Tiered(threshold, bps) - Events:
created,payment,released,refunded,pyr - CI: GitHub Actions — test + WASM build on every PR
- Deployed to Stellar testnet:
CAYTIFPD6RFWVHMK5SPPUUIWWAAANHKOJB6GOAJS5SR5MBKZMEY2UODZ
SplitRule::Tieredconverted from named fields to tuple variant for#[contracttype]compatibilitysymbol_short!length violations in event publishingAddress::random()replaced withAddress::generate()for soroban-sdk v22testutilsfeature isolated todev-dependenciesto allow wasm32 build