Finish rough draft of website

Update the payment code so everything is working now

Improve DB structure

Improve design

Add API

Validate XMR Address upon registration

And Much More...

Still Need to work on:

- SEO
- Dropdown in menu (bug, not dropping down)
This commit is contained in:
dev 2021-08-06 13:06:07 -07:00
parent dbfda5cf9e
commit 821fb9b1ed
30 changed files with 186 additions and 261 deletions

View file

@ -14,15 +14,12 @@ use App\Models\Address;
use App\Models\Meme;
use MoneroIntegrations\MoneroPhp\walletRPC;
// Can put code below inside functions to debug the Monero library
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
// error_reporting(E_ALL);
class ProcessPayments implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $timeout = 3600;
/**
* Create a new job instance.
*
@ -47,23 +44,26 @@ class ProcessPayments implements ShouldQueue
public function get_transactions()
{
try {
$walletRPC = new walletRPC('127.0.0.1', config('app.xmr_network_port')); // Change to match your wallet (monero-wallet-rpc) IP address and port; 18083 is the customary port for mainnet, 28083 for testnet, 38083 for stagenet
$walletRPC = new walletRPC(config('app.xmr_daemon_ip'), config('app.xmr_network_port')); // Change to match your wallet (monero-wallet-rpc) IP address and port; 18083 is the customary port for mainnet, 28083 for testnet, 38083 for stagenet
$open_wallet = $walletRPC->open_wallet(config('app.xmr_wallet_name'), '');
$get_transfers = $walletRPC->get_transfers('all', true);
if (isset($get_transfers['in'])) {
foreach ($get_transfers['in'] as $transfer) {
$address = Address::where('address', $transfer['address'])->first();
$tip_exists = Tip::where('txid', $transfer['txid'])->first();
if ($address && !$tip_exists) {
$tip = new Tip();
$tip->address_id = $address->id;
$tip->amount = $transfer['amount'];
$tip->txid = $transfer['txid'];
$tip->is_deposit = 1;
$tip->save();
$meme = Meme::where('address_id', $address->id)->firstOrFail();
$meme->payment_pending = 1;
$meme->save();
$account_indexes = Meme::pluck('account_index')->toArray();
foreach ($account_indexes as $account_index) {
$get_transfers = $walletRPC->get_transfers('in', $account_index);
if (isset($get_transfers['in'])) {
foreach ($get_transfers['in'] as $transfer) {
$meme = Meme::where('address', $transfer['address'])->first();
$tip_exists = Tip::where('txid', $transfer['txid'])->first();
if ($meme && !$tip_exists) {
$tip = new Tip();
$tip->meme_id = $meme->id;
$tip->amount = $transfer['amount'];
$tip->txid = $transfer['txid'];
$tip->is_deposit = 1;
$tip->save();
$meme = Meme::where('address', $transfer['address'])->firstOrFail();
$meme->payment_pending = 1;
$meme->save();
}
}
}
}
@ -76,20 +76,23 @@ class ProcessPayments implements ShouldQueue
public function payout()
{
try {
$walletRPC = new walletRPC('127.0.0.1', config('app.xmr_network_port')); // Change to match your wallet (monero-wallet-rpc) IP address and port; 18083 is the customary port for mainnet, 28083 for testnet, 38083 for stagenet
$walletRPC = new walletRPC(config('app.xmr_daemon_ip'), config('app.xmr_network_port')); // Change to match your wallet (monero-wallet-rpc) IP address and port; 18083 is the customary port for mainnet, 28083 for testnet, 38083 for stagenet
$open_wallet = $walletRPC->open_wallet(config('app.xmr_wallet_name'), '');
$meme = Meme::where('payment_pending', 1)->firstOrFail();
if ($meme->user->address) {
$send_funds = $walletRPC->sweep_all($meme->user->address, $meme->address->address_index);
if ($send_funds['amount_list']) {
$tip = new Tip;
$tip->address_id = $meme->address_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();
$memes = Meme::where('payment_pending', 1)->get();
foreach ($memes as $meme) {
$balance = $walletRPC->get_balance($meme->account_index);
if ($balance['balance'] === $balance['unlocked_balance']) {
$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();
}
}
}
$walletRPC->close_wallet();