diff --git a/app/Jobs/ProcessPayments.php b/app/Jobs/ProcessPayments.php index bd5f102..3662a42 100644 --- a/app/Jobs/ProcessPayments.php +++ b/app/Jobs/ProcessPayments.php @@ -48,6 +48,25 @@ class ProcessPayments implements ShouldQueue $open_wallet = $walletRPC->open_wallet(config('app.xmr_wallet_name'), ''); $account_indexes = Meme::pluck('account_index')->toArray(); foreach ($account_indexes as $account_index) { + // Outbound tips + $get_transfers_out = $walletRPC->get_transfers('out', $account_index); + if (isset($get_transfers_out['out'])) { + foreach ($get_transfers_out['out'] as $transfer) { + $meme_out = Meme::where('address', $transfer['address'])->first(); + $tip_exists_out = Tip::where('txid', $transfer['txid'])->first(); + if ($meme_out && !$tip_exists_out) { + $tip_out = new Tip(); + $tip_out->meme_id = $meme_out->id; + $tip_out->amount = $transfer['amount']; + $tip_out->txid = $transfer['txid']; + $tip_out->is_deposit = 0; + $tip_out->save(); + $meme_out->payment_pending = 0; + $meme_out->save(); + } + } + } + // Inbound tips $get_transfers = $walletRPC->get_transfers('in', $account_index); if (isset($get_transfers['in'])) { foreach ($get_transfers['in'] as $transfer) { @@ -60,7 +79,6 @@ class ProcessPayments implements ShouldQueue $tip->txid = $transfer['txid']; $tip->is_deposit = 1; $tip->save(); - $meme = Meme::where('address', $transfer['address'])->firstOrFail(); $meme->payment_pending = 1; $meme->save(); } @@ -84,16 +102,6 @@ class ProcessPayments implements ShouldQueue if ($balance['unlocked_balance'] > 0 && $balance['balance'] === $balance['unlocked_balance']) { try { $send_funds = $walletRPC->sweep_all($meme->user->address, '', $meme->account_index); - if ($send_funds['amount_list']) { - $tip = new Tip; - $tip->meme_id = $meme->id; - $tip->amount = $send_funds['amount_list'][0]; - $tip->txid = $send_funds['tx_hash_list'][0]; - $tip->is_deposit = 0; - $tip->save(); - $meme->payment_pending = 0; - $meme->save(); - } } catch (\Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; }