public IEnumerator Run( Client client, GameSession session, string moneyNamespaceName, int slot, GetWalletEvent onGetWallet, DepositEvent onDeposit, WithdrawEvent onWithdraw, ErrorEvent onError ) { if (_watching) { throw new InvalidOperationException("already started"); } _watching = true; _client = client; _session = session; _moneyNamespaceName = moneyNamespaceName; _slot = slot; _onGetWallet = onGetWallet; _onDeposit = onDeposit; _onWithdraw = onWithdraw; _onError = onError; _onDeposit.AddListener(DepositAction); _onWithdraw.AddListener(WithdrawAction); yield return(Refresh()); }