so that it doesn't need a circular dependency on wallets just like nwc which receives its state from outside