예제 #1
0
        public static TransactionViewModel Create(ITransaction ninjaTransaction, IReadOnlyDictionary <string, IAssetDefinition> assetDictionary, MixedTransactionType?offchainType = null)
        {
            if (ninjaTransaction == null)
            {
                return(null);
            }

            var bc       = ninjaTransaction.TransactionsByAssets.First(p => !p.IsColored);
            var colored  = ninjaTransaction.TransactionsByAssets.Where(p => p.IsColored).OrderBy(p => p.AssetId);
            var assetDic = AssetDictionary.Create(assetDictionary);

            var result = new TransactionViewModel
            {
                TransactionId = ninjaTransaction.TransactionId,
                IsCoinBase    = ninjaTransaction.IsCoinBase,
                IsColor       = ninjaTransaction.IsColor,
                Block         = BlockViewModel.Create(ninjaTransaction.Block),
                AssetsCount   = ninjaTransaction.TransactionsByAssets.Count(p => p.IsColored),
                IsConfirmed   = ninjaTransaction.Block != null,
                Bitcoin       = BitcoinAsset.Create(ninjaTransaction.Fees, ninjaTransaction.IsCoinBase, bc.TransactionIn.Union(colored.SelectMany(p => p.TransactionIn)), bc.TransactionsOut.Union(colored.SelectMany(p => p.TransactionsOut)), assetDic),
                ColoredAssets = colored.Select(p => ColoredAsset.Create(p, assetDic)),
                InputsCount   = ninjaTransaction.InputsCount,
                OutputsCount  = ninjaTransaction.OutputsCount,
                OffchainType  = offchainType
            };

            return(result);
        }
    private void restoreVerifiedTransactionsFromPlayerPrefs()
    {
        for (int assetIndex = 0; assetIndex < availableAssets.Length; assetIndex++)
        {
            if (PlayerPrefs.HasKey("Asset" + assetIndex))
            {
                if (debugLevel > 0)
                {
                    Debug.Log("BitcoinSDKSimpleGui: restore playerprefs asset " + assetIndex);
                }

                string       jsonString = PlayerPrefs.GetString("Asset" + assetIndex);
                BitcoinAsset btcAsset   = JsonUtility.FromJson <BitcoinAsset>(jsonString);

                availableAssets[assetIndex] = btcAsset;
                objectGroups[assetIndex].RawImage_Lock1.GetComponentInChildren <RawImage>().texture         = unlockTexture;
                objectGroups[assetIndex].InputField_Transaction1.GetComponentInChildren <InputField>().text = availableAssets[assetIndex].transactionHashStr;
            }
        }
    }