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); }