public static byte[] BuildNewOrderMessage(string symbol, OrderType orderType, Side side, decimal price, decimal qty, TimeInForce tif, Wallet wallet)
        {
            string hrpFrom;

            byte[] addrDec;
            Bech32.Bech32Engine.Decode(wallet.Address, out hrpFrom, out addrDec);
            NewOrder no = new NewOrder
            {
                Sender      = ByteString.CopyFrom(addrDec),
                Id          = string.Format("{0}-{1}", BitConverter.ToString(addrDec).Replace("-", "").ToUpper(), wallet.Sequence + 1),
                Ordertype   = (long)orderType,
                Side        = (long)side,
                Price       = (long)Decimal.Round(price * 100000000),
                Quantity    = (long)Decimal.Round(qty * 100000000),
                Timeinforce = (long)tif,
                Symbol      = symbol
            };
            var aminoMessage = AminoBuilder.buildAminoMessage(no.ToByteArray(), AminoBuilder.AminoType.NewOrder);
            StdSignBytesConverter signatureBytesConverter = new StdSignBytesConverter(no, wallet);

            byte[] messageBytesForSign   = signatureBytesConverter.GetCanonicalBytesForSignature();
            var    signatureBytes        = wallet.Sign(messageBytesForSign);
            var    signatureBytesMessage = AminoBuilder.buildAminoSignature(signatureBytes, wallet);
            var    stdMsg = AminoBuilder.buildStandardTransaction(aminoMessage, signatureBytesMessage, "");

            return(stdMsg);
        }