Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 13.58.221.124
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/book24.ng/vendor/bavix/laravel-wallet/docs/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/book24.ng/vendor/bavix/laravel-wallet/docs//exchange.md
### Exchange

Everyone’s tasks are different and with the help of this functionality
you can add exchange rates to your wallets.

The wallet currency is set via meta. Example:

```php
$user->createWallet([
    'name' => 'My USD Wallet',
    'meta' => ['currency' => 'USD'],
]);
```

> Management via config file is deprecated. 
> Create wallets with parameter in meta.currency.
> In the 7.x release, the ability to specify the currency through wallet.php will be removed.

Currencies are configured in the general configuration file `config/wallet.php`.

```php
    'currencies' => [
        'xbtc' => 'BTC',
        'dollar' => 'USD',
        'ruble' => 'RUB',
    ],
```

The key in the configuration is the `slug` of your wallet.
Value, this is the currency of your wallet.

Service for working with currencies you need to write yourself or
use [library](https://github.com/bavix/laravel-wallet-swap).

#### Service for working with currency

We will write a simple service. 
We will take the data from the array, and not from the database.

```php
use Bavix\Wallet\Interfaces\Wallet;
use Bavix\Wallet\Services\WalletService;
use Illuminate\Support\Arr;

class MyRateService extends \Bavix\Wallet\Simple\Rate
{

    // list of exchange rates (take from the database)
    protected $rates = [
        'USD' => [
            'RUB' => 67.61,
        ],
        'RUB' => [
            'USD' => 0.0147907114,
        ],
    ];

    protected function rate(Wallet $wallet)
    {
        $from = app(WalletService::class)->getWallet($this->withCurrency);
        $to = app(WalletService::class)->getWallet($wallet);

        return Arr::get(
            Arr::get($this->rates, $from->currency, []),
            $to->currency,
            1
        );
    }

    public function convertTo(Wallet $wallet)
    {
        return parent::convertTo($wallet) * $this->rate($wallet);
    }

}

```

#### Service Registration

The service you wrote must be registered, this is done in the file `config/wallet.php`.

```php
return [
    // ...
    'package' => [
        'rateable' => MyRateService::class,
        // ...
    ],
    // ...
];
```

#### Exchange process

Create two wallets.

```php
$usd = $user->createWallet([
    'name' => 'My Dollars',
    'slug' => 'dollar',
]);

$rub = $user->createWallet([
    'name' => 'My Rub',
    'slug' => 'ruble',
]);
```

We replenish the ruble wallet with 100 rubles.

```php
$rub->deposit(10000);
```

We will exchange rubles into dollars.

```php
$transfer = $rub->exchange($usd, 10000);
$rub->balance; // int(0)
$usd->balance; // int(147), это $1.47
```

Unfortunately, the world is not perfect. You will not get back your 100 rubles.

```php
$transfer = $usd->exchange($rub, $usd->balance);
$usd->balance; int(0)
$rub->balance; int(9938)
```

Due to conversion and mathematical rounding, you lost 62 kopecks.
You have 99 rubles 38 kopecks left.

---
It worked! 


Youez - 2016 - github.com/yon3zu
LinuXploit