public string SignTransaction(byte[] privateKey, string to, BigInteger amount, BigInteger nonce,
                                      BigInteger gasPrice,
                                      BigInteger gasLimit, string data, HexBigInteger epochNumber, HexBigInteger nextNonce, BigInteger?chainId)
        {
            var transaction = new Transaction(to, amount, nonce, gasPrice, gasLimit, data);

            transaction._epochHeight = epochNumber.ToHexByteArray();
            transaction._nonce       = nextNonce.ToHexByteArray();
            transaction.storageLimit = 2605;
            transaction.chainId      = chainId;
            return(SignTransaction(privateKey, transaction));
        }