mirror of
https://repo.getmonero.org/AnonDev/xmrmemes.git
synced 2025-08-03 03:46:38 -04:00
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:
parent
dbfda5cf9e
commit
821fb9b1ed
30 changed files with 186 additions and 261 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue