WsDataAccount.php 1.4 KB
<?php

namespace trader\struct;

class WsDataAccount
{
    public array $assets;

    public function __construct(array $assets)
    {
        $this->assets = $assets;
    }

    public static function TransferOkxAccount(array $data): WsDataAccount
    {
        $assets = [];
        // var_dump($data);
        foreach ($data[0]['details'] as $item) {
            $asset = new Asset();
            $asset->coin = $item['ccy'];
            $asset->totalRight = (float)$item['eq'];
            $asset->avail = (float)$item['availEq'];
            $asset->frozen = (float)$item['frozenBal'];
            $asset->upl = (float)$item['upl'];
            $assets[$asset->coin] = $asset;
        }
        return new WsDataAccount($assets);
    }

    public function toArray(): array
    {
        $ret = [];
        foreach ($this->assets as $asset) {
            $ret[$asset->coin] = $asset->toArray();
        }
        return $ret;
    }
}

class Asset
{
    public string $coin;
    public float $totalRight; //总权益
    public float $avail; //可用
    public float $frozen; //冻结
    public float $upl; //未实现盈亏

    public function toArray(): array
    {
        return [
            'coin' => $this->coin,
            'totalRight' => $this->totalRight,
            'avail' => $this->avail,
            'frozen' => $this->frozen,
            'upl' => $this->upl,
        ];
    }
}