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