PHP code example of laraditz / wallet

1. Go to this page and download the library: Download laraditz/wallet library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

laraditz / wallet example snippets


use Laraditz\Wallet\Traits\HasWallets;

class User extends Authenticatable
{
    use HasWallets;
    ...
}

// Simply use below code to create a default wallet types
app('wallet')->createWalletType([
    'name' => 'Default',   
    'currency_code' => 'POINTS',
    'currency_symbol' => 'PTS',
]);

use Laraditz\Wallet\Enums\ActiveStatus;
use Laraditz\Wallet\Enums\Placement;

app('wallet')->createWalletType([
    'name' => 'New Wallet', // will produce new-wallet slug
    'description' => 'This is my new wallet',
    'currency_code' => 'POINTS',
    'currency_symbol' => 'PTS',
    'default_scale' => 0, // example, EUR and USD have 2 decimal places, while JPY has 0
    'decimal_separator' => '.', // default is using dot (.)
    'thousand_separator' => ',', // default is using comma (,)
    'code_placement' => Placement::Right, // default placement is left
    'symbol_placement' => Placement::Left, // default placement is left
    'status' => ActiveStatus::Active, // default status is active
    'start_at' => now(), // you can also set when the wallet can start be use
    'end_at' => now()->addDays(3), // or when it ends
]);

$userOne = User::find(1);
$walletOne = $userOne->getWallet(); // get default wallet for userOne

// deposit
$deposit = $walletOne->deposit("100"); // deposit amount of 100 into default wallet with processing status
$deposit->markAsCompleted(); // change the status from processing to completed

$walletOne->depositNow("100"); // Use depositNow() so that the transaction completed immediately

// withdraw
$withdraw = $walletOne->withdraw("100"); // withdraw amount of 100 into default wallet with processing status
$withdraw->markAsCompleted(); // change the status from processing to completed

$walletOne->withdrawNow("100"); // Use withdrawNow() so that the transaction completed immediately

$userTwo = User::find(2);
$walletTwo = $userTwo->getWallet(); // get default wallet for userTwo

// transfer amount from userOne to userTwo
$transfer = $walletOne->transfer($walletTwo, "100");
$transfer->markAsCompleted(); // change the status from processing to completed

$walletOne->transferNow($walletTwo, "100"); // Use transferNow() so that the transaction completed immediately

// get user transactions
$allTransactions = $userOne->transactions;

$userThree = User::find(3);
$userThree->createWallet(
    slug: 'new-wallet', // specify the wallet slug
    values: [
        'address' => '0xf6A32f757196ac753A354F145F408bF88BEacf77',
        'description' => 'This is my crypto wallet', 
    ]
);

// specify the slug name to get the new wallet
$walletThree = $userThree->getWallet('new-wallet');

// to update description or/and metadata to the wallet
$walletThree->update([
    'description' => 'This is a new description', 
    'metadata' => [
        'user' => 'Farhan'
    ]
]);
bash
php artisan migrate