private async Task <string> processOrder(Utxos utxo, ITransaction txinfo, IShopItem mainItem) { var amountOfTokens = (int)((mainItem.Price / (utxo.Value / neblio.FromSatToMainRatio)) * mainItem.Lot); if (amountOfTokens != 0) { try { var meta = new Dictionary <string, string>(); meta.Add("Token Order", "true"); meta.Add("PaymentTxId", utxo.Txid); var sutxs = await NeblioTransactionHelpers.FindUtxoForMintNFT(Address, TokenId, amountOfTokens - 1); if (sutxs.Count != 0) { var sendutxos = new List <string>(); foreach (var s in sutxs) { sendutxos.Add(s.Txid + ":" + s.Index); } var dto = new SendTokenTxData() { Amount = amountOfTokens, Id = TokenId, Metadata = meta, Password = string.Empty, // shop must be unlocked SenderAddress = Address, ReceiverAddress = txinfo.From[0], sendUtxo = sendutxos, NeblUtxo = utxo.Txid, UseRPCPrimarily = false }; var resp = await NeblioTransactionHelpers.SendNTP1TokenAPI(dto, isItMintNFT : true); return(resp); } } catch (Exception ex) { log.Error("Cannot send ordered tokens!", ex); } } return(string.Empty); }