public async Task <TxDetails> LoadTxDetails(string txid, NeblioAccount account)
    {
        var tinfo = await NeblioTransactionHelpers.GetTransactionInfo(txid);

        string sender = await NeblioTransactionHelpers.GetTransactionSender(txid, tinfo);

        bool fromAnotherAccount = true;
        bool fromSubAccount     = true;

        if (sender == account.Address)
        {
            sender             = "Main Account";
            fromAnotherAccount = false;
            fromSubAccount     = false;
        }
        else if (account.SubAccounts.TryGetValue(sender, out var sacc))
        {
            if (!string.IsNullOrEmpty(sacc.Name))
            {
                sender = sacc.Name;
            }
            else
            {
                sender = sacc.BookmarkFromAccount.Name;
            }
            fromAnotherAccount = false;
            fromSubAccount     = true;
        }

        string rec = await NeblioTransactionHelpers.GetTransactionReceiver(txid, tinfo);

        string receiver = string.Empty;
        var    recbkm   = account.IsInTheBookmarks(rec);

        if (rec == account.Address)
        {
            receiver = "Main Account";
        }
        else if (recbkm.Item1)
        {
            receiver = recbkm.Item2.Name;
        }

        if (string.IsNullOrEmpty(receiver))
        {
            receiver = NeblioTransactionHelpers.ShortenAddress(rec);
        }

        var time = TimeHelpers.UnixTimestampToDateTime((double)tinfo.Blocktime);

        return(new TxDetails()
        {
            FromAnotherAccount = fromAnotherAccount,
            FromSubAccount = fromSubAccount,
            Info = tinfo,
            Receiver = receiver,
            Sender = sender,
            Time = time,
        });
    }
Ejemplo n.º 2
0
        /// <summary>
        /// Find and parse origin data
        /// </summary>
        /// <param name="lastmetadata"></param>
        /// <returns></returns>
        public override async Task ParseOriginData(IDictionary <string, string> lastmetadata)
        {
            var nftData = await NFTHelpers.LoadNFTOriginData(Utxo, true);

            if (nftData != null)
            {
                ParseCommon(nftData.NFTMetadata);

                ParsePrice(lastmetadata);
                await ParseDogeftInfo(lastmetadata);

                ParseSoldInfo(lastmetadata);
                SourceTxId    = nftData.SourceTxId;
                NFTOriginTxId = nftData.NFTOriginTxId;

                ParseSpecific(nftData.NFTMetadata);

                Used = nftData.Used;
                AddUsedTags();

                MintAuthorAddress = await NeblioTransactionHelpers.GetTransactionSender(NFTOriginTxId);

                IsLoaded = true;
            }
        }
        public async Task GetPartner()
        {
            var rec = await NeblioTransactionHelpers.GetTransactionSender(Utxo, TxDetails);

            if (!string.IsNullOrEmpty(rec))
            {
                Partner = rec;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Get last data of this NFT
        /// </summary>
        /// <returns></returns>
        public async Task GetLastData()
        {
            var nftData = await NFTHelpers.LoadLastData(Utxo);

            if (nftData != null)
            {
                ParseCommon(nftData.NFTMetadata);

                ParsePrice(nftData.NFTMetadata);

                SourceTxId    = nftData.SourceTxId;
                NFTOriginTxId = nftData.NFTOriginTxId;

                ParseSpecific(nftData.NFTMetadata);
                MintAuthorAddress = await NeblioTransactionHelpers.GetTransactionSender(NFTOriginTxId);

                Used = nftData.Used;
                AddUsedTags();

                IsLoaded = true;
            }
        }