public function create(TX $tx, $apiContext = null, $restCall = null)
    {
        // TODO: change signature. Add $params = array() after TX $tx
        //ArgumentGetParamsValidator::validate($params, 'params');
        //$allowedParams = array(
        //    'includeToSignTx' => 1,
        //);
        //$params = ArgumentGetParamsValidator::sanitize($params, $allowedParams);

        $payLoad = $tx->toJSON();

        $chainUrlPrefix = $this->getChainUrlPrefix($apiContext);

        $json = $this->executeCall(
            "$chainUrlPrefix/txs/new",
            "POST",
            $payLoad,
            null,
            $apiContext,
            $restCall
        );

        $txSkeleton = new TXSkeleton();
        $txSkeleton->fromJson($json);
        return $txSkeleton;
    }