Added a view function called releasablePerContract that returns the addresses and share status of previously generated PaymentSplitter contracts that a certain account had shares in.
Added an external function called releaseSelect which allows users to select claimable PaymentSplitter contracts using their address and release all their shares.
@alexander-camuto upon your review of the actual functionality, i will add testing as needed.
I've gotten to timing this a bit more concretely with 3 deployed payment splitters:
Current single call to PayoutFactory ~3 secs
Parallel calls to each PaymentSplitter view ~4 secs
Some caveats here:
To call the PaymentSplitter view function, you need to get the list of payment splitter addresses from the PayoutFactory. So there is an extra RPC call involved here which is probably the reason for the time difference.
On the interface side, making a parallel call to each payment splitter view is a bit more complex to implement. For 3 contracts, we have to make 9 calls to get (shares, releasable, and released).
Changes:
releasablePerContract
that returns the addresses and share status of previously generatedPaymentSplitter
contracts that a certain account had shares in.releaseSelect
which allows users to select claimablePaymentSplitter
contracts using their address and release all their shares.@alexander-camuto upon your review of the actual functionality, i will add testing as needed.