UpdateRecord: {
    status: OfferStatus;
    updated: "offerStatus";
} | {
    currentAmount: Amount;
    updated: "balance";
} | {
    status: {
        error: string;
    };
    updated: "walletAction";
}

Record of an update to the state of this wallet.

Client is responsible for coalescing updates into a current state. See coalesceUpdates utility.

The reason for this burden on the client is that publishing the full history of offers with each change is untenable.

balance update supports forward-compatibility for more than one purse per brand. An additional key will be needed to disambiguate. For now the brand in the amount suffices.