public async Task <VerifyNFTTicketDtoResponse> GetVerifyNFTTicket(string utxo, string signature, string mintingAddress, string eventId) { try { signature = signature.Replace('-', '/'); signature = signature.Replace('_', '+'); var resp = await NFTTicketVerifier.LoadNFTTicketToVerify(new OwnershipVerificationCodeDto() { TxId = utxo, Signature = signature + "=" }, eventId, new List <string>() { mintingAddress }); //if (!MainDataContext.UsedAddressesWithTickets.TryGetValue(resp.Item2.OwnerAddress, out var add)) // MainDataContext.UsedAddressesWithTickets.TryAdd(resp.Item2.OwnerAddress, resp.Item2.TxId); var response = new VerifyNFTTicketDtoResponse(); response.IsMintedByAllowedAddress = resp.IsMintedByAllowedAddress; response.IsSignatureValid = resp.IsSignatureValid; response.IsUsedOnSameAddress = resp.IsUsedOnSameAddress; response.TxId = resp.TxId; response.MintAddress = resp.MintAddress; response.Name = resp.NFT.Name; response.Description = resp.NFT.Description; response.AuthorLink = resp.NFT.AuthorLink; response.EventDate = resp.NFT.EventDate; response.EventId = resp.NFT.EventId; response.Location = resp.NFT.Location; response.LocationCoordinates = resp.NFT.LocationCoordinates; response.MintAuthorAddress = resp.NFT.MintAuthorAddress; response.MusicInLink = resp.NFT.MusicInLink; response.OwnerAddress = resp.OwnerAddress; response.Seat = resp.NFT.Seat; response.TicketClass = resp.NFT.TicketClass; response.Used = resp.NFT.Used; response.VideoLink = resp.NFT.VideoLink; return(response); } catch (Exception ex) { throw new HttpResponseException((HttpStatusCode)501, $"Cannot Verify NFT Ticket {utxo}!" + ex.Message); } }
public async Task <VerifyNFTTicketDtoResponse> VerifyNFTTicket([FromBody] VerifyNFTTicketRequestDto data) { try { var resp = await NFTTicketVerifier.LoadNFTTicketToVerify(new VEDriversLite.NFT.OwnershipVerificationCodeDto() { TxId = data.utxo, Signature = data.signature }, data.eventId, data.allowedMintingAddresses); //if (!MainDataContext.UsedAddressesWithTickets.TryGetValue(resp.Item2.OwnerAddress, out var add)) // MainDataContext.UsedAddressesWithTickets.TryAdd(resp.Item2.OwnerAddress, resp.Item2.TxId); var response = new VerifyNFTTicketDtoResponse(); response.IsMintedByAllowedAddress = resp.IsMintedByAllowedAddress; response.IsSignatureValid = resp.IsSignatureValid; response.IsUsedOnSameAddress = resp.IsUsedOnSameAddress; response.TxId = resp.TxId; response.MintAddress = resp.MintAddress; response.Name = resp.NFT.Name; response.Description = resp.NFT.Description; response.AuthorLink = resp.NFT.AuthorLink; response.EventDate = resp.NFT.EventDate; response.EventId = resp.NFT.EventId; response.Location = resp.NFT.Location; response.LocationCoordinates = resp.NFT.LocationCoordinates; response.MintAuthorAddress = resp.NFT.MintAuthorAddress; response.MusicInLink = resp.NFT.MusicInLink; response.OwnerAddress = resp.OwnerAddress; response.Seat = resp.NFT.Seat; response.TicketClass = resp.NFT.TicketClass; response.Used = resp.NFT.Used; response.VideoLink = resp.NFT.VideoLink; return(response); } catch (Exception ex) { throw new HttpResponseException((HttpStatusCode)501, $"Cannot Verify NFT Ticket {data.utxo}!" + ex.Message); } }