From 29194d6f7ebc5708204c4fc24b720abd3b70fc61 Mon Sep 17 00:00:00 2001 From: SondreB Date: Wed, 24 Jun 2020 01:13:16 +0200 Subject: [PATCH] Add favorite icon handling for the UI (#167) --- src/External/NBitcoin/NBitcoin.csproj | 4 +++ src/External/NBitcoin/Network.cs | 27 ++++++++++++++++++ src/External/NBitcoin/icon.png | Bin 0 -> 2188 bytes .../UI/Pages/_Host.cshtml | 12 ++++---- .../Blockcore.Networks.Bitcoin.csproj | 4 +++ .../Blockcore.Networks.Bitcoin/icon.png | Bin 0 -> 3037 bytes .../City/City/Blockcore.Networks.City.csproj | 6 +++- src/Networks/City/City/CitySetup.cs | 3 ++ src/Networks/City/City/ico.png | Bin 0 -> 3634 bytes .../Blockcore.Networks.Stratis.csproj | 4 +++ .../Blockcore.Networks.Stratis/icon.png | Bin 0 -> 3068 bytes .../Blockcore.Networks.Xds.csproj | 4 +++ .../Xds/Blockcore.Networks.Xds/icon.png | Bin 0 -> 2188 bytes src/Networks/x42/x42/icon.png | Bin 0 -> 2121 bytes src/Networks/x42/x42/x42.Networks.csproj | 4 +++ 15 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 src/External/NBitcoin/icon.png create mode 100644 src/Networks/Bitcoin/Blockcore.Networks.Bitcoin/icon.png create mode 100644 src/Networks/City/City/ico.png create mode 100644 src/Networks/Stratis/Blockcore.Networks.Stratis/icon.png create mode 100644 src/Networks/Xds/Blockcore.Networks.Xds/icon.png create mode 100644 src/Networks/x42/x42/icon.png diff --git a/src/External/NBitcoin/NBitcoin.csproj b/src/External/NBitcoin/NBitcoin.csproj index 8ff5e3a3c..991160123 100644 --- a/src/External/NBitcoin/NBitcoin.csproj +++ b/src/External/NBitcoin/NBitcoin.csproj @@ -51,4 +51,8 @@ + + + + diff --git a/src/External/NBitcoin/Network.cs b/src/External/NBitcoin/Network.cs index 404b5f2dd..1a1322497 100644 --- a/src/External/NBitcoin/Network.cs +++ b/src/External/NBitcoin/Network.cs @@ -62,6 +62,8 @@ public NetworksSelector(Func mainnet, Func testnet, Func @@ -789,5 +791,30 @@ public Transaction CreateTransaction(byte[] bytes) { return this.Consensus.ConsensusFactory.CreateTransaction(bytes); } + + public string FavoriteIcon() + { + if (!string.IsNullOrWhiteSpace(this.icon)) + { + return this.icon; + } + + System.Reflection.Assembly assembly = this.GetType().Assembly; + var iconResource = assembly.GetManifestResourceNames().FirstOrDefault(r => r.Contains("icon")); + + if (string.IsNullOrWhiteSpace(iconResource)) + { + assembly = typeof(NBitcoin.Network).Assembly; + iconResource = assembly.GetManifestResourceNames().FirstOrDefault(r => r.Contains("icon")); + } + + using (Stream stream = assembly.GetManifestResourceStream(iconResource)) + { + byte[] bytes = new BinaryReader(stream).ReadBytes((int)stream.Length); + this.icon = Convert.ToBase64String(bytes); + } + + return this.icon; + } } } \ No newline at end of file diff --git a/src/External/NBitcoin/icon.png b/src/External/NBitcoin/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3e822907e4f5a9e1dad3c73e422dde2d8492b6db GIT binary patch literal 2188 zcmbVOUx?g97|(TW&tCr^`clhj#~js)&1RBKa+}!n_HOs=E$z0~>uT4c(8*+S8*evB zlicp!p|B?kd$jn_2SE@i6tz&WQUt+1cn_80lcMND73KP%2o^0ATClcGcK5d1a%W2y zl9|kW^L@YXH@|OY=g0T%+R(STk71Y%*|E$7Z9()ryoSDm+1abKS?i6x9576LAbNUg z9}ZO*rWe@xLRiS{(Xd;NBhxiVyjJ$8HN)%}s(A=ckq{VU(sp$AuXA6rz&3UEpqzs_ zFHMT}*sM@WfCG#E0>%=tLbdhuSWaPFwcUfNjRmm!%;v` z$c=-v>l2{FA%`Ip!Jrx!6iHIxb|69#@=)dlkrNaRN}4bT+CP>?^G!>e$h^>wMZa{m z7>1t4^VMoKUQNVZf07qeRpp_`iy}uYxM0Q!QH^tgfh7+a5@6rUn!=y0f|-ID9mz!X}ddpw&?kNd7= zm*_+=v1(;L3K2ihS<83J0C`@?#wbdZuQ+DAxI0?|LKoat)QWKeRQZ2? zRKZk5lE73ig2_?k7@TS*BrYi!2^mWmCy~0u?{fTzP!pA<(s&Sx+T7zJawZ8q!+G|> zles_fw@`K`vuvH;Z!%){dDB{SS2BEbbhl*8->vZGT-PyA1=Ad&cSqFiTw3&_bL|m_ z^5oM??e`zvzQ!;;k7hH&`NCR!{no9am~w1&Vbu{X_8#-Go=Mi%HqNCi<_em99&Bz5 zjc~n-uU-vPj~)LicBy`IfA2Bv@V4Z_rpAkFzUwKEUpY1Bryf84^H%WVma*Q2zx%*% zQR}VN`^V=l^ne@d8+!4NI#{)_zIf=+yRp91>-Bo<>F-YhfAytjlKpW0gRP76bCrdQ z=yLsy*yZ}a^!YXQ=g|v(FSxm9H+8umyfkvQ(AT*3?aBVs1v&M~$XnXk{=*y3pJ{A= z?aJc5RB2cCn^T(_w~pI0Psm?bU}4?)-PuoTu}9V&IPEspe>Qi$|H-3ghJTvRUw+?+ yJ(arA^Yx`Oss4SZe-U=VEf*ic1E25jWB%EB;+-k>qeAq5Av?M^^U28JH~#~mg~`$Y literal 0 HcmV?d00001 diff --git a/src/Features/Blockcore.Features.NodeHost/UI/Pages/_Host.cshtml b/src/Features/Blockcore.Features.NodeHost/UI/Pages/_Host.cshtml index 4c54a0859..d4b038d8c 100644 --- a/src/Features/Blockcore.Features.NodeHost/UI/Pages/_Host.cshtml +++ b/src/Features/Blockcore.Features.NodeHost/UI/Pages/_Host.cshtml @@ -1,5 +1,6 @@ @page "/" @namespace Blockcore.Features.NodeHost.UI.Pages +@inject NBitcoin.Network Network @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *, BlazorModal @{ @@ -14,7 +15,8 @@ Dashboard - + + @@ -35,12 +37,12 @@ diff --git a/src/Networks/Bitcoin/Blockcore.Networks.Bitcoin/Blockcore.Networks.Bitcoin.csproj b/src/Networks/Bitcoin/Blockcore.Networks.Bitcoin/Blockcore.Networks.Bitcoin.csproj index e5e213950..9cef1b22e 100644 --- a/src/Networks/Bitcoin/Blockcore.Networks.Bitcoin/Blockcore.Networks.Bitcoin.csproj +++ b/src/Networks/Bitcoin/Blockcore.Networks.Bitcoin/Blockcore.Networks.Bitcoin.csproj @@ -9,6 +9,10 @@ true + + + + diff --git a/src/Networks/Bitcoin/Blockcore.Networks.Bitcoin/icon.png b/src/Networks/Bitcoin/Blockcore.Networks.Bitcoin/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..18a23301994c30e01ee2931ed69227360f65412d GIT binary patch literal 3037 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 literal 0 HcmV?d00001 diff --git a/src/Networks/City/City/Blockcore.Networks.City.csproj b/src/Networks/City/City/Blockcore.Networks.City.csproj index 5c3634def..3611f7d13 100644 --- a/src/Networks/City/City/Blockcore.Networks.City.csproj +++ b/src/Networks/City/City/Blockcore.Networks.City.csproj @@ -1,4 +1,4 @@ - + Blockcore @@ -13,6 +13,10 @@ latest + + + + diff --git a/src/Networks/City/City/CitySetup.cs b/src/Networks/City/City/CitySetup.cs index ec4e609f6..fd09720a4 100644 --- a/src/Networks/City/City/CitySetup.cs +++ b/src/Networks/City/City/CitySetup.cs @@ -1,5 +1,8 @@ using System; using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Runtime.Versioning; using City.Networks; using City.Networks.Setup; using NBitcoin; diff --git a/src/Networks/City/City/ico.png b/src/Networks/City/City/ico.png new file mode 100644 index 0000000000000000000000000000000000000000..058adb833a0584c5dab2e1781d7c6e6c6dac0af0 GIT binary patch literal 3634 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 literal 0 HcmV?d00001 diff --git a/src/Networks/Stratis/Blockcore.Networks.Stratis/Blockcore.Networks.Stratis.csproj b/src/Networks/Stratis/Blockcore.Networks.Stratis/Blockcore.Networks.Stratis.csproj index 89a7e14e9..fcb58f7f7 100644 --- a/src/Networks/Stratis/Blockcore.Networks.Stratis/Blockcore.Networks.Stratis.csproj +++ b/src/Networks/Stratis/Blockcore.Networks.Stratis/Blockcore.Networks.Stratis.csproj @@ -8,6 +8,10 @@ true + + + + diff --git a/src/Networks/Stratis/Blockcore.Networks.Stratis/icon.png b/src/Networks/Stratis/Blockcore.Networks.Stratis/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6515df088aed4286ef3778b535edbfce88ea669b GIT binary patch literal 3068 zcmcIm3se(V8qTih;h_f$iaf-IfQZ5*Gm{5N1YIO3AOVD+LBVxifk2W8Nq~T0wc-&( ztyMs*QY!))ACwejX|yUU*cIyorNTj$YAm`|5vcNT?dnc=t=qM(XV2N3GnqU0e)qfI z|Nq~;GX>F+%cj}7+R|vWX9T-H;le{FX5bLwWJ4vp8+XiQJb^*ep#;tU#X z$~n12s*{Q%gczx0A~=Z>OubS~p=q>$#d`e56@y}R zFp(?|&DIdH*^v?~I~5b)jKz!S0eT@tpd@q%U9VKAv_gF#V}w^owJqH&27LsgOATZM zSr(*A#nJR&QbW*rOc2085T^SJm=KS{;emd17=%F<$Ynt=0P%z%M+o`T$9@cIH4QEk z#)y`VtwlWrGLm&VwUEWi%*KkffHq5|L-c@3>p9LKBD9!B zuGYy(72U#!pk%r(kU=RO4MC}%pjBzd(nKYUrAO2(hzVLk8V8ES?}jRs6KJh2B!gOI zOz&HXwUR6~!HOZYWV!|;LNW-I&U1V*9GjS{PS+?#BE>Nlp&*nLOiKxaCYDkslR8qH zO#Vh36T=hHsD;5A0@0Bg2}vr(3l%-iLWe1Gy3Z=P3MVtQ^DTtHSh^*BmieQ$ z#Yv3fn8=V2LlF*&@;LyA<9vWECoT1qVlKNSRzg4QOMQEun{n1oI#PkIFI=ve=%IL4_MC*HSgk8rw** zMA}$OA*YYHQ;1-eO%cezEN&oh##p!fEopwgfJSLElL?CS9WEJ#X-Szb6VVVsNmNPx zs|#7bC0>hUyjwcTMc5p+KNo=c5C(8T${~~|WB?@NV*-EBpWqA7@zDP-(#O(@B_paN zf;wSYjQ>5D_p|$d*5R!i@O|q5zj+#rPWn|aEX%<<>M+)?%{Mak#vx1c=oqkVISwn?!!S{}tJsu$GxT!) zF6QRHW=0M>5Y6}Nn^ewEOi^fvnP#XopF~}l4UeQrv!-TrZK@aN`1R~!2(#pL1xe1R3PR{VX zm2RjP<+waVjqc88>!R*6jR&Ql^6ft|vTeI#lnkRNQGP^4+hu%lf{`H8k-P@8s?2oAlak@kI~wjKrb5BWdgh=7W>2 zm6+zd%(p9ktcVSXMi&NU#ousVVSUWH;N*geoK;zcEp2^b!*!%*+=9$D(~WuEuZL*ZQn+ z_kHTrJL882L3@B#Raju*LiL)C@P6z>+%*TcZv?#!J?7+|72Tl$#Y`6$-9Alz-JN5MX#kXmHQE~16kXXa)3pghE`MLY!Y|VA5HmLN;_5GZ ztWNCiSZoyS^Yv!OZ}*wE!1rdC#|B`at0DiG3v#H%T^}8v$~hD3w(Y!ct-81_Az(wpEg8sm+r+et?~V4jlGt zDOL|}B=c>Q2IC_?LPh87BZ;hS%de_Yz!yAvyG)MRQ$hOR5 zJ9(O&yH#l$TOGb@`tdID(WU2&h-u|L#OST8YVGZ_>sF`j&afYF>nt%|b6D?l-0;X8 zk~aIc^K#dI=7~SA=*TwMW1E#zUZ4DB_ST9rzo&;bxK;aq_Mzm(qQUTlqlt$PxWt+w z1onr1kH~-5NyCOSXSy>BE=hL=eIc$ncsfE|vIbgI# zRn1Fwlx`+6*421!sdw=I+v)`+$R=K3qP^j4Uaa^s4t1FM-Cd36P>*Y?^4(p}8ux<1 z3DqZUAJ=qA*^bx4_x-$xs2q;&SPe}&|0l;O3wy(6A9`$MbiIDpHo|e%T;8_Beff!C zdtCRjj#mYC73V5#Y8y3YkeZiH1w&i+)^w^|c^d|k&&b)b^?P1Ttrue + + + + diff --git a/src/Networks/Xds/Blockcore.Networks.Xds/icon.png b/src/Networks/Xds/Blockcore.Networks.Xds/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c92c623e0d0caa054c9504db137d502a615e9356 GIT binary patch literal 2188 zcmbVOUx*t;7|%7fXRm({eW~TN;~v$D-R$gUH!n%vNCu&bsq2W1i{5DODFrkKAL5#sLrKX{YJ9h50S84_~u|P_sOq{@HwqnQDEz*GcMY@XX z&h$M27`3@vC&r3c%H>W7KNzjBG}?r$Xzk}`Tp~;mpH6$2j8+)TfiN3aOM3(b)XP&^ zTHdJfWynBcnSdQfY{#Tk|HZBaB!dE?bK$P>Q065uFG?CzUxMrnTXs2W+SW|BU4ob7 zJcODO*I?ovQ>GUa1?YjsCe|$Kl@ZI(ra*|w=+Q-xTG%e=@0%MY5e#U}}} zcq>j!Q?cNnYM9IGGZasU`yZ}vm4Znz^KloRs6xZS35$=blFZ|zEb*!sS6DHa1S>{7 zAtyU%4th4LMpWwd8lp0pM?*A_f>gFTK`h>Ya*{VNMm(00tSWIO36U9Uz9}PZ%=Xy^ z&$O%PFgf1tm2A*dj)rhp5juxMDG-)VYuH|akB5rfUSBN|=5#fQv|{+w3aZE>!;_4- z2kK8)6*+Y(#OuQDA`h`shv5(HRM;ykJ z$1b%sd#+2gAQ&waN&Atq_Hiky{ z-o-a=1gWP^eG|P}zkR6pq;_maa$!s3m32S#l*gCO&UvY)PyMnT{IqSXcj2!-@O#+0 zYxVx|xywD^*2acjyjBNmHrE%A9(_OBmwKySk3Rq7Y2dBB`a-fF&VRIhael6{a0Okj zza70^|Cc?#rT#c^+3N+j_wQpa4}n)lE)@D2e}8|vKXqA2y*~1;cA@{+=1b=rJKtPd zJeVr&&3<=wOXJQdd*&JCD+?@axU?_(c`f?HhQsG*W8)WdH~XJGaenyc`TX?{jp%c! wTRq=iJ)i17c{z)a_pV|0L>f7kpKVy literal 0 HcmV?d00001 diff --git a/src/Networks/x42/x42/icon.png b/src/Networks/x42/x42/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9648490dcce1ef55eb5f234d65b9a641738ba6f GIT binary patch literal 2121 zcmbVNeN5D596k|HL>zukmzY`wQR(&Tu3RgJ;vIu?9wHwD<2EU6@2+xpy|o1n#EE7S zbzoHdh!~KGE=#sKH7;gOGgOoh=iDZLY{|x4MBJ1`oG#9&Y;WPXsKbxgr0v`HectEy z{65}aH)f=#Mva;}N~hCB+0v|;;0NzSgue|p#s4vdd=|7ufB#MkvGG+MmuKrSp=7u zRwfHsW$D>mSs_RB@cbkw(a!(^kD#)U-{bZwjNc6R^D4^a!vaI$6)%Cl!c z7D*N$N{=BNh7nK#t;Z>Yfx_Y;0wXXKGom_l;zrcsPQ2?7BKL@D*EtRL|zGX@!~g2Kt7PZcFEq%pDuQjuzg zfzkmNJiZ{UR|$j(1Pt}FJ`~qunoIpao(tl9MY6l!IM1PiTkr^8RRLH$i1oQ7RZ?8i zQ>cT>j~M`=wcCR>hScKm1WhPvN-=OF5Rf6!N_MGFKr;nJDv~)Nr5MPZp?TwDEV96= zlAJ9`?!iQ53`&LwTu(r8xuTbsN|f1;Y!IxhDwts{YY0Xm1euM~430CTX)Z=E7&ZX4 zOT6ePeFAF8#xTZ6Fh=Y#C@2}8RoUl)d5&>NvWEo@iyqb~pgyk?hJs;aERtK2fnlJI ze01Jsv1G`SLv(`$B{Ov)WJ|G7I86cZdc0q*-Okv&ipqL9!DcnXAUJwavamCr=qat461dXfux{M=Bt10kxn%T2klQA2Kz4f2zGA43#et#mn&q zI?A_STpvsAJ9oPB$X|y)T@M*>`vRd_OR7`+dPLR=1*CZdw5N2^WS|~SUmgb<`u8BLv@SK+8e9qv{e^3 zHGk1qUf)#x&wZFKsL^jzFU&MGk7`ZNc<|<_$yLkt9-H#kfqkpatbJ(i40%uAxHNzG z-rU;@4(Gpp(iIs!sY2hqYs})BYqeDoH*(w)^C$L3_3-uR{=UlN+RxsWl5Rb?Fn`^D D8N%Zg literal 0 HcmV?d00001 diff --git a/src/Networks/x42/x42/x42.Networks.csproj b/src/Networks/x42/x42/x42.Networks.csproj index a61a9410b..7a94590fe 100644 --- a/src/Networks/x42/x42/x42.Networks.csproj +++ b/src/Networks/x42/x42/x42.Networks.csproj @@ -13,6 +13,10 @@ latest + + + +