Most of this was relatively easy when we were custodial. Everyone had a balance and if you did things that cost money we could assume you paid with your balance. And if you received money, we could assume it went to your balance. But now:
sometimes you pay with CCs
sometimes you pay with reward sats
sometimes you pay with an invoice
sometimes you receive CCs
sometimes you receive reward sats
sometimes you receive via an invoice
sometimes when you pay with an invoice it fails minutes, hours, or days later than when you attempted payment
sometimes when you receive via an invoice the payment fails minutes, hours, or days later than the invoice was generated, or the invoice is never paid because (7) happened
something you want to do (1), (2), and (3) (and implicitly (6)) simultaneously (as stackers have requested repeatedly)
So now when you do something that costs or earns you money, we can't assume anything and have to maintain detailed knowledge about which of 1-9, or combinations of 1-9, it was ... which only gets more complicated as we add more complicated payment relationships.
That's what the refactor does. And it's awesome. And I'm incredibly excited about (eventually) completing it.
Most of this was relatively easy when we were custodial. Everyone had a balance and if you did things that cost money we could assume you paid with your balance. And if you received money, we could assume it went to your balance. But now:
So now when you do something that costs or earns you money, we can't assume anything and have to maintain detailed knowledge about which of 1-9, or combinations of 1-9, it was ... which only gets more complicated as we add more complicated payment relationships.
That's what the refactor does. And it's awesome. And I'm incredibly excited about (eventually) completing it.