public function sendTransaction(
        int $anonymity,
        array $transfers,
        int $fee,
        array $addresses = null,
        int $unlockTime = null,
        string $extra = null,
        string $paymentId = null,
        string $changeAddress = null
    ):JsonResponse {
        $params = [
            'anonymity' => $anonymity,
            'transfers' => $transfers,
            'fee'       => $fee,
        ];

        if (!is_null($addresses)) $params['addresses'] = $addresses;
        if (!is_null($unlockTime)) $params['unlockTime'] = $unlockTime;
        if (!is_null($extra)) $params['extra'] = $extra;
        if (!is_null($paymentId)) $params['paymentId'] = $paymentId;
        if (!is_null($changeAddress)) $params['changeAddress'] = $changeAddress;

        return $this->rpcPost('sendTransaction', $params);
    }