From 423db206c254ff7cbc8bc0e1c4ebe9405ce9e405 Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Mon, 26 Sep 2022 15:54:17 -0600 Subject: [PATCH 01/10] change build --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 17aaf08bb..f87c6587d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: Stack Wallet # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.4.49+64 +version: 1.4.50+65 environment: sdk: ">=2.17.0 <3.0.0" From d3767ed31e167bb1d67f0cbe196f28a266755934 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 27 Sep 2022 16:09:31 +0800 Subject: [PATCH 02/10] more wow fixes --- assets/images/wownero.png | Bin 0 -> 291093 bytes assets/svg/coin_icons/Wownero.svg | 5 + crypto_plugins/flutter_libmonero | 2 +- lib/main.dart | 8 +- .../restore_wallet_view.dart | 2 +- .../add_edit_node_view.dart | 1 + lib/services/coins/coin_service.dart | 9 + .../coins/wownero/wownero_wallet.dart | 1559 +++++++++++++++++ lib/utilities/address_utils.dart | 3 + lib/utilities/assets.dart | 6 + lib/utilities/block_explorers.dart | 2 + lib/utilities/cfcolors.dart | 3 + lib/utilities/constants.dart | 6 + lib/utilities/default_nodes.dart | 17 + lib/utilities/enums/coin_enum.dart | 12 + pubspec.yaml | 5 + 16 files changed, 1636 insertions(+), 4 deletions(-) create mode 100644 assets/images/wownero.png create mode 100644 assets/svg/coin_icons/Wownero.svg create mode 100644 lib/services/coins/wownero/wownero_wallet.dart diff --git a/assets/images/wownero.png b/assets/images/wownero.png new file mode 100644 index 0000000000000000000000000000000000000000..679e647eafd642a67b3ce8270aad2790f84aa657 GIT binary patch literal 291093 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

ijk%6@QQJc>dksN1`LLW3zLypQ9qv63!C!0=p z--aydWrm1%>6abjilU;QI<@ky4Ypg3B!zTmJn__2Dhed&Sl1db)<-X6y`L4+{pqMh z-F*DD;s(=mn&FL<6pL)2+u)k{|F(X4%)e~VIk#_&Cc9r=!BVG-KAgp527ip&C%8QP zU6dqVWGx<@hQkOxe=Ev-Sb}G?V(-_ZN$zjq5&1c+p9X0$-y6{H&gS80f8?@Q37~y6Sxi%Z%adS$4BT;Er#T=p*tJI=6lQ=+Ryo*R^_nP>Jvo-smF zxP-S3dMNGRPVUGPeC~GEY3!U(Ou>TQxvfH6O8}iY z>FXU)Cu0)UAW3)MzAjWmM8wk0u9{$Qtp>7!x$5fqjCA{`L9epnI#`X9R9ykN48St~ z7vK06h2#nl;O=+s!&duR(EvQIT;*KO*?#N*2yl!LiRAQs0iDU=;Sa8H@hh&7raA+= z0ZBsU=;wvlY0mGVB|~pm{;g83_Z3J;sWY#+uf|DmJeC@m+);bPc$C&$mJav?iz+(i zvvLI=s`e$ytw0L-Kd|ddo(8+qiERzPPaE~$P8yxXQbRUX$Dv84t(=-|M>}1=9JI8w zUZ1}ieq=9RS3s#wealzth}qySOGKjQ73OK7`k&SibDZzkM*t9evPlxH7Ep5<@#Q)W zHo`&VqlIgvNq~XyNW??zDq32Y{As=ay5wpC8YyOOg%~jXgFK<@jY|1uF-1V6^45BL z55qIKzoPe3Tzk(B+&bT=-l4A|l%1%s6d;{ohssRiyIW5+)grP%f@-0UJtqlSSYt%> z;x$c@JN-87A;q*J(UEfwV8|!0<^3VT0Hgo9HoR_N+oIwZ#tLf7gAQSD(T$wpqR6^6-KeMsw2l96>Qjk6JN}yP6(mZ z7jd}=S(e1_?P`>syG-wkbhFnp*ZUqBzZI zYWD6uZWb*M`ehb1A$Y4Gt<3b4`vFGCr8*kZf{Fgo*(sQIxQClxyAjNC$4)m=Ucxqw zWKbLWC%;CR2#BYu{;7$p&!boS`zZTJXrLpo)(4-5v}>WqA|PVp2iYD=<;$EoB+%=6 zk8|%S4=V54JKY}?0QWT!0cJBQn|(Wa9IR)ylRf<6kPN9GB+{+rMt^>Byrzxfo+#r- z1>l0J+Yo>6&YStpE7D#1?4U2LSGvrT)B+9CMb`W~cDFZX!}&w)vTrfG+#U9Gebx2^ z>>Cr`GL6lD@`*(eQMM8b_Jz0jY6g@SiBfBIY$fT*Uq`s7KOrC(O!rHVEM_RzV#*7J z@ts2=>J40{~ZVxTmTCKzkAL-*kt7>$5s7m;Q_O zhe5fXmF5?5G(coEA^Y1SZR0*7i%;DG6M^$MheMdoLy@n`^lZg*z3&}($U$7YZ%V2H z!f_nJx14i+T^{tYmHaci^CU-iQ37JfLQp&PEx!NZ@oJ0()X0#7x}KWtv%Ptn=9BBk z)cQT?gY~B0JuUL3beuYGjZA$Yf+hI@5lsL5F$KYY5dRyndqtEtd>()gXYfx=6zBHS z{(tW@x3oKMr243vK5!dvTjDI_U-pWso*uBk+z50&((#2pKK{E1z+uQ&C;Z`52`P-E zp|f3ME$&o#k5Kr&`#-n7@RZguAN6Ah&MR(k;kpQce94KvfUWkIc*D-63G3gUO;DfI zG;G3_vCqIe0i6{4C?B3(j6Hute}kKZ{Oy9lErmUQ;=3(?{Fee(^hvb4U6R0_rK~40 zp(aBfCN6OX9jqVN#>XXWOuu1jM@cWljtu#QGSAn0CYE}3P`-=7#i0WkPVctWWj7gi zRy@U8swi}-s;RCX_oCz)S{dIIPEPXnyuct=(VahpE%TS6i6o+VW@cXz>-kXK9E*jG z&Nu?ohcJM&I%AyV^_6w`0XSRVz;Sgg_tgkRwWy!O9L}_p#N+VAlu6?9m+YbYF%On^rT?bu2JZuCZ57 zybpkGB&20%WzTJkuDd*r1i%?1#tj__F^y`uZnY`Q4o^y5nF~Jmc|;xNe%?7UM~P9N zxkK`eY_A54^6zxx2(86sV55GR*GRYY+1W|SmYJc&r&^kOdmVZAzp(l;X1>$~Q(71- zDV@=;9P5%pntt35XIA%^ZqAjR|HD)i{8d6 zt!@cLB#fIB7o4x)mlA5ZB=-Qa!#<2`v^|9Fn}Mv^q_&>v^LD2F->+gk%X!T&g{xmg zWZta8RUiopPprmc%6s3!+DvfIN1y(YbKFc%`wXsENz?UuzX7DdK{x`YuuVJ51D2Ad z;vCsv%u8-_dz6N(WNbqyzHT{}3Z*~P6AJ^l-U(5csRbEDVwMawzb0^!%!=I=%qhXR zTqb<87&8TsSez4EmhB6o4V$QmnnC8ft;?r+H?txanJ-jaSg(1d3q|Q_QYSwuDfx8? zJ&qWXeO)6{JCTVEX(H0COZvYzfMWAspWv7tDXEM+Hf1ErR5^=uObRE6x0*I<%&)8@ z2}H>hizpI`lSVyc#w8|w^FG5` zPGVihLk#-3HB5$}JP@jn&y)jjln$>wU`vg&`YURK+B$Vwlouxnu&!Mei&`sagW7;*TreUTZfgC*Lk0(!YeVWP^b3j4<;Uqc>yb0AglgrIzw*RSMAj};nJIMA7=o^F6 z`-`|#-%{*e$C7h7zqG_mPvohQ2Z*x`AQj?78)00x6+K&pIFN5Fx$zR zsw!;`SB*a*KX3%~ASR2t4pl}=749p6Ji8P9$5od$xP_wZ{Dd0nS^4?qQ^7OJY^J+U z_7RBRK*Jxc-9LM7X0=kDXN)LLG5)l9R{OG-23dQf!Ff0ILb(f-2j_h+H{F{@l25D~ zxwbGJ5++YrsF`qk&rD*3;YHk`O8J;yBGc5?%Le*5%MhsS_#A)_y@2-P6vI zRN0`pAu9|oKVUl&Xy@9TQ=OikKG7%FN=WKggT1%EP&@l^g2R1jk8k!zHMbSUhF{tK zIaN`yw4Gg94!pXsxVUnHmxpHwL>L4lQAXexJ`MHw@#OkxIwmCT4z;1mVdHtzQC6Yf z19CX#{moF1E?C;uD*wMb%NoEYtfRB=YJH~E!}oy(!p%iNS}?3Q1r9V~71YF!0rpiv z;W&)DKd$uBxf;H838mK2b+R*yCw)m*aK1xxDH0~+w}iJ?4ABD4rZy1YQe@x?@HhCs z6B@keP@FqW;`NytAy2d5la_)&WFDtk^rX2IsVD6{pz}FEr3HC&9`8r#Bs&YT^Ol&E zmmXj}K!CE#F`;l`vlrynEAyKOoNoO8tpayz`@0Zvw|27Nc6;&5A_vJqxb?Figpd`9 zD_P(?$znIpIDQCfiZW%bqn0VXGkG}MzN&880MA)e_LZLP%!+M`AZb!au9G7Z$1a7w zT{roQ#}cqMQE_;U9o6z--Km#;tWkf?zN_(4h1*heYt>5dS?+j?2vu4iwe!Qlt{Ks? z>})jAOu`b)vNnD9d5ntQi&w{W&|tz9h8s&~%w#l&KByKdxA@S48YL`=)e659euHkg zp$ELTAkcdtCIA;8a>J2L+*h^lT%|ZD(Jk-*5tozx;ao7C!2zXOC|2Pt3X_5y0x#%eop4>g zf$wzQd*+eu*D%M*S`c7vka%n`@(*$0p)Wa3;fTS#wqN+Hu^aw5+r8YDjupdk+nxD* zzds>#a6V+;RpmeXiKBHmgtXCHWi(-VK}kDMu?_5G>v8WezJNx%W698wC#Y}F6ab@A zImT7{?p5VkSw??p4%pn!-rx!=s;NAs+Hd9ryaWu@78&jcrJBmO0e;lsY!0S(^~C!h zt2AlA=E+1T^{s~luVb~@r$T85)}uFL?FV7I=qE_JA$LNav7b}!O$OBePJ*1)v*OWy zEi*CSYi9u}aJ&mbSKkTW|VWKiu71)`75^GRJvbWXA9f zh|+!iY9=_+)7w6V>SD7KdSk7|_f$&V=jJ=-osq$dr*G5~9&bWb{#suLC~aPoMYar3 zqy-wZ+gInfj<)C*S^t*hahHxW z@;6nA{h;2aC6qiNA`S`k`KePU^!-0Pt|VgI;;EC2);FbqyT&pVpOaSim2Gz2gNeI3 zaA7z?ch7&3Zd_sy{aU@((AT#MMUWJppPem-k{kS^p?t zy1xY9Jh$oEigF4)x|*f8l*>?|5n6HC|Z9D2irbEl`0DxB6=3FmJ1a!L*NPeOR z$VvSO0veWqlS(^q>no$#=%@jU-W$Mb?F8Pl1fSNOuH!V%Pft%Z7vW=L&YU;3ZTj5Y zaHCI~=c$vIgz(MZAIJUXUNzzvrfFb2p~(yi_Mhl+eLl&T$k$OI*?MRH_Z0hUi63}( zd+F@{7=tk_b;lC0sWy_Z7KD3+gY%h;9+1pw77QoDHle574t4fK`LA7~>54cd- zXwUXh^#3RlsVr#k&I+Z{l$|PNhK*S6Ll2YNSR@I|(?T{Fo1JNnI&VaQmhXc``mSox zQ!>cy8VdV$bCm+kwm%j2C78diK8!`9prMTh|0%SJZ+7P`9(qUlMq`||4RDUl)s z1CSTUo+gTPRspGCAFfU|*{VR^?jne+G!rrFCR{XhBQ<@ zqX$sDQA3qSOkUur-P@a$EwZ^Y9ri&Ay1%VyDq-BLtL8O6^*_)~&_(9fR^JK_;%hSR z&fQ`g+~V7$DQt1HT7cDUwjOt;clDUqIC+K*i2DTOuviqD3$dDQQ}jmaVCN96kAHD# zVC~;6ZM~M*)fG_xXP4hhqirQq8M9GC`DEwBQyS*m$Gn zFr;HM7baCS+RqEJ|4lj&@}_xjcQ>%D2w7XZqUsr9GHTQV*M0@NkylMeqk3Ln(+OS0 zej5j`>q^KIF;TG`lF6acpk7X2Wzl3F|HTF)T=ys4)*F6f!QuDIRI=rFfGT6TQ{`Oo zsb$9vs3D~iyw~d)m}blYbM~+0;}SyBM1ATg=9Cl0s_Bf5rD$0}J9QXQZFcOj0l_m7eVqpt&U1z6dNWBuJ3fsm~Jm zECi1*9?zhdY49#RHwy;U!!cvqde>(YJ|J$d1w8gKYD0!dQue@(qoE1h9awyrvKn;{ zwvk56NE>Ww=l+*ix}|-AHR{3cuCDLXv2x!v0STYD0k3LzSLN})%B6ar@{slEikB0a zGQ~SJ%zrRMfLPi1<2=~kDRh4&4MhRF6_ z#b#S$L+?I$LZP4kvEO4*!eqd$n)O@k9_K+)Z@=?@oq{lD@O!2if`5v%ZpkjNcoRQ? z==`?rcVtZBe2QRYfSPccthF}v=B3GPujcXiGy3c_xpMb~7T@Qj2z?Pe*(PyNX&xZL z-8WoC%g7>r8>-kf+Jm@gEW#G+;Dz$S_wbC)TdJ=Y$C}*KdkDb`zsq#fVBLxb8^J22 z#U^VXlF%>fS1o#54AERK_2m*9Y$IdgW&O}0KgBb%Gr?GTQL0Xh*Upy>(*u|!DMFk1 zoH`^YeP%z%_M40FYTV3AlTTZ(I3om3{ho{bBuRP~L;st0UztF!(gQ6NGshAYG3oQ@ z=bl^cf-fynCoC-&=yimFof4B*`4Xsx*~EbC?N^7J2C(*01|d--CWYM0;NiAY|l`0veU z3>wjO!Q$#T*uF$=Vt2Rs zp3b+!CEzy{?VZ#1r68h`VcLQA*3iDiG(b_xvxAAYeF~L)(2M1$@^4A2Ytw|7GlMj{ z9p(q5KHfc^e)z2ilCAqbNEzFjrHr^$RZc}zz7 ze$Dk*tmBq-F4h#2{e^!MxNHy0Pg4V-FD^fSGOl(ubSv=08bivSyBTcO>&I)-3%-J9 zcn^jP*D6KcK?}Z4HKPu-4$CEb)kvFu|9uo<723l>tX^p%l|k84PwPJ2=!vW1Coq5= z=Tw)}qp$i+7aOof-U`Jk`GvihV-ZiHAGe?lc=y?Z-j=s@$lQ>$rCA_ctfg@*W&Q=+ z-|bk^tH zX}bWarqWL|7q%|S{W3x6WM2b6(2J_PKi(T2(^H8=exdFiXQqV}OFN)~A?5vWBrTX zFYi1|{5NBohOg$EW@cw4Ol4GVhaIj&!FC*M$)BY0?mt38sbK5D2q{$PQ>3S@)@OY& zm+mH-JNK2?`R8&7!tWwdS3)X5#>f1y=z1Vm!b{v)8)t;#?Ww2Jymi-h^|PD`QS#Z; z8Bm3>UMixw)ZfylONtgr(ELfk1f~S%=hdQw-;L%*p!ma&Fdc_74lmZcqo!(r=|WlW zYQwi5dIa<=Qtr492YjG4ctmCk&_>z=Y_@c(S9G>{IKEH9Efq?) zoF7Wi91Q7T=kgT{zP_6?!nZXhY_YjUx9>LDCjo2u$j zz!FGTw%^(G38h?=A*e6<3pJUr_j_%j6XzekbWtJ5ow=^j-)!0D!~Zo01DJQuY1i|6#eKxfy#1^GnsfxZ1OdSP;2I~d)t;95>QsaJ^Ev^sk=1NiauL~ z3ebiQc79enkYDS(*GFKCs_M9*&%P8)iB%%Wz$)3IE*q%vBe?c0#Ba!1^BBb&+}EA` zY-k&8WTT5$Ha4^04O>1q1M&J4;M|E9TN9v7Pj|Ammipz=#q#YZ)AdWy>MyC5wzh}M?&Mz3oXgOW6Mk-y&3yz zWB+FZGLDP%%ZRDivQD%&C5&82_j&6)b66fl66LnmZ5Y>a6FE4NCT4Un_Fsc=n^MD{ zx?X-nBM26QTRVx8At7($i8Mnev7!h!)xeC+UWb5k4A%>qeldXOhyzOasaGPLW(c3K zdG_=DxdeyktKehPVh;YKvmK}Ah8O(6JgYdJGOaNzO%}M^RT(5jxD+WQk?kLON3g1` z??TMxYy1w42o*~YSK`%N^_*4nSaqA|)TYn1O&0J}G|c?{S^s~(qsgpwPXb^HS)p@l zM4vs9NF?eagKLY!Z_WI(OoN?+sdV-1K74VnFO%13u=PMhvK)4{FfYu|wG+Z)mj8W1`9@9G zwh>(spe03M>(xWyn`#s;{aP9zMI3w%vXsn*ch#4)qUFRYm&5D+1Xrrbp8u(6)qRrB znrm!U)8gaX@OxvlAts~(Z&~ZIl@oBIPT55(`kNM6!NtrV`b#^(4xBq=+vcR=3-#)U zh0Q4u7*mIC0Dpbn)p#;4bQdgA#B7b75WkRTnnBvxuGlSoL>S-qKb~rYBt0#&4G%V^ z1vc;otxB(IJ(8?l9*+J3R1^g`oTh7R-K=BJVD8e5PqF-LX={b)V&@}q-TTnieNpyW z8BD}0GJqkO0R@Ep>#g~XRcQ>cBFPsAx?r$1F|z{&ozV$B$2T*_b$S`!t(`r3!4xx2 zd?Z3yavlECkY}R#B%90T4+x)J!;Xmv2`pO|6In;MqmX*V$aUT{JiY;_u>l}<&F~>2 zjWhcafB1F@M}`#9=(Z~fNvuTcd>hwxcX(g&;^oZ;U+Vq+ed*`4wF|71Mm1Z)k8%Eh zS12iZ$4)`^%en3M47$`LA=(V;O7c8fgF$$C4>nK>?P!hia(7Uljechb-0qd@k+4 z7m)oZw>>AVCiY4xZWoIje6%R{a?*|U=q)agmm+mJKwoIn zRauphLh-Es;otk|xZkW9+a2&y>-JP3-O>ZS@p+87Bt79D`3YuRymf!ld6X?)|%AcgH=QS5Gih zkP01ge{`VbO_HJk#FBO&1)y|A^X+ju{u!MG$o2JVUe`i3Ho!o%6n{~j`g0Y#&ITQ> z#(MzfQ7@e>KL_~n2h{NHxJb&h7}K-*kd1o4zZ&7UfO!XoY$y_Z;CgpSr;>~5f^dCg z`#;94S;El>>7{3iIvPW%=+&c(AFe{8AFn)Ky?UiBlxIff3Z%OeAV&dss$~D-Zq>My zQtaO4nynP`47w~(-KfwPB5csqBHSY|3s9`jE%ZYeHqrgeykS!HzoY^C`as@&RRo_; z5>gkkY7I1d5~3pd`UUq}C8S8v6UAX$fwKlST5xeP8By1zLti;)kw1JSCBL;iQ%?c$J>yW_paS=|Aw)18Em z=is9h3$Nx5pkElcL9*s5&9e>t`IfyN^k|3yGmoVAcC&d$X~1@pxLyya%4D{g#fNBH zRgF&b^+;goiOP``R5tfFRltWuI8Iv1q>U->`Rn&4ckHhdY4EmLAP!vTKFnpa=o_mw zS9&gIof3Obv0f<7)P7Nr_bae045UZXaE+dDb8*q;Xiw=Er}M@=k4`C?;`>NDli&Zw z0XBoviJ$6r>NMZ8w+U?QkzPp1)Ug8)y}b-%{Q|)*5dJp;ReyfioRckDo@YeHUfZ3` zf+uqM;eSK`l4jZFJE3EWHXhappq`Fv9T~c)qRfDsi{t}iwt9W@q5Kx8W$!_U1DA9x zs@F$my_e{>DCoFE*tcbuGkoB|U{Wt9(`@2Ij}*=2#m_w4_guBTxA3Pt`_ZJT<#NY1 zRcN|t zR}qz6WKKlP%*6m}L7RW^>bB@g|GqR(dNnLD29&5S}gOD6d|tp6rwK_m|dJF{lGb+a!=*Y~;7 z;qZduFhHsKsbA{=Zwb~YalJwm58)qg+%4uRnG9GN{=GXapwA0kZ5EhDr6CCW>9VPc z^eB!lpN(6F+C5RYe?(OF@K`B7;`5Z(&KnQAyZbO2wIObYRR^{^_yz`XO<(Jz+-r^~A2Rg|kriE%pA*JC)*W#*jOQeJAeH1 z3v#vDt&8^%@WmT-gx5NQ@YcpUJI9lP!YvanBAx2oC8UDC)^BX;Q&Cr(C;zGM7aa2McL7r79R5 zWL0PPw-+8sO3M0okHt6k`>YR6n zA2f}gfXzM**zCLQR;~w>m}Bz^EI&s{DxMwaGK`Rdwc!oo+hBTSnM=z55O7{sKqkFO zU5>V*H3Nd4rhA&JF8N#kDZHT)!06Daa1e4Mu2E_v>Uhk5u=_Or?Vv284m>5%U3?h@%7LO@z{fT3f6p}Bi}@4a9A zroZEvv-e(mt>^hab4`3Lx37`kz*^_2#nnM+rGtz;7M94N?X&OB;i&^Lh@^676T#i3YKv|uhF^xA_9sz1W4+q;OjBO)3riUM=nuN|1yOL=Q_ z;=@4EA;1{$vnfH^&|VD043KLmDT>`1Tm3bq#EieH@Mv|K?qq3n?F(!-ui_V@p8&YQwRUUc-~ILk%t<3c!y=OY}wy z;S9{F=>LUp%3G0386A}_A}h)3zuKQU*^h!=wazw7aNSI(@I43Y4d@{=T{h{{$rsJM z{lBoDrq%A=(aSdsOW%KX7aQA=>j9d`b0BGM<_WGAJ=tj|c3*7H+v}==(Pl~06D!AB z)liYt^vLXmPdj!%;PPly-lS^~<_9&$IklRI6!38VF)R%xdT?LOB$cRg9MZs;^B%)N z%Pr^eS-K&Q7F*huXdD2Sy2L|BB7Z+b7+p6Z5C}R_vgx1->Bxz$FT|3C z>mdN*ys9LCz@fF4q zpMwC09k3;G?-R#fv`LxKxU=*Wl`|+i-#drz);p5@;PdmdfX~RQew9rChBLwvw zQ6=Sb_ZE(>p8;D@?TTrn+yUnxR&HGfE_t+^rw|Qi?5xrCJRyrcWUgLem`q~X0aoMw zm*8Hehwt`j{8xq?j+>Ql!%{Q!IEb>cGT^7ABUQgce-6^LXfmFAj67+KF5hZA{qt1@ zJTZnu+5o8X&3@H|NaI|aMovw)fnE2PR90n*=#RI{S2|cn+xgVl@1rnOI<5_~(hkW% z{h#7~7>K@bo1q_gKtMFbdPb2SpL^_UUz@`i58>Uv$ljp%0rSI-;Le&_tl_zjj;41X-P3H~DrPCNQ{QnbBBTzG_-1 zi2C;9WSrO-?hJn*SFRDDP1*dO8mvVtiQV@|$=8kAyUaW4b>iS-7DCV1Hkd)nCIHH5 zczL^A9`TLwZKMdWJLC;2`AWt_`^R|hD|wj>)EX_P!~j)R@=5CyZ56x7=al?ufWg>&tG)m#auj(ZY2g> za^hUv1N4LgKmr8O`>Mp9^WD&pTgO6-u3i+9;wyJJ;}nIYVY%ari^SRQYd&W4y|KZ4 z2OJprz}n=$W)c<_@z3)v?*jN@8$taTZLTpEIy#w*M(<2Z4V?s`P^yrS!{#o=nI|tEz0ZmJ*{&2rqPfEX+Zo1C+SYy*HV!lFu5%_s0$fCEpDU?Q~ zQ5Z?W><$H1l$n7o`N1osIT|>=vfIxrLeHD9+jIumXR>-c2byMVgQIB;eL=^YzgRE zEV>~tIlO5D)oGsHJ#ndR@ayL(RX*xC$GlvB2L`NF6Qk`!fJ*U6q8>Dk;;}&oGoUlG z2B{H8^$-PQx5)vH=M|t(Cc;AmsDDiB_~BW_2!V?(ruyv?RL|?kI*KKkUzf;D`9}OF ziv^R?wxblxa}8{)BhrtacwmVc2!O=f0PBXL)AJkNT(N+6;QQ&QOU3zXAMLB(%&dsu z&1%yB4uqN^=1)Ea9vq4so}Hav6LUgQC(o{1)77#4585?|t(_*v-@0HOz67hYZV|}9 z>}itJ=v&uRPhon%cQ8J2?@^HVj_}BSDy1`MT}pO#dT#4+7_su(KT{=H}<)p{@8!Kmiiv(eEYa%{QS9bgFp_&BGht5-5C!EE}thkfblsw@prS>tTs!7dw$S&?CCH3 z7GC;`6|B7LB_cf>SVys{zX45lXKj1M*PpGXvI_ckCV3%miGNtaQI9=Ntnd)LaT1vc zUvV~o4nUza`tv(k$D&6Gn+|RdnOnYWP4wy)57)%6UFkKOmHetPG|9Zi^f+lxCjM2! z>~Z3SU9whIVQUa0!8(6Bp&>||m9Bjhv^D*6BN~QL+TOvcGJ4oOhs!rjn=kWL9^&x^de zW;bV4UMJ7%!lfY@bXNQI;n!KB<_%nyZ0{0=8twi@oHl-0pD5Rtb+S0%O|bgTyO$89 z4_fv8bJtT_a%qr$ytUbcSu%ZtAlWQz4kj>b6Aq15EWtG2puXF6Y2fL-o#<|0fPFM) zWQg00*m!^2#h%Y%z1-(o42sYC-#|C$uVG{Nra>oqh&4E+i2ldz_$j{yf6Qde{(TQr z9|>_Z>m49k+1nNVH1|jd`LpT>X^lbNBriH5RA3|gxg1&Pj-3CYPbYKXOu!WQ#r920 zL8=L!_mWp}X-P>}Rp0%upwZzUs`9Z?sgXy1PSWe~;Zy(4Os8n)tAK%eC@g6E@Ky0# zjn+0c_K6?Qp9|Ql1XxWX^SO`2jR3Fy$@8!;RuGNJwVO%tka2x}0+0OEe_SC+O$MOW!MhE!FCMJt z!KqU*-B;LOrHiMF+{0`CZ$1|cI8k?detnYsY=Z~fAvzX2yO>QW+lTS$un6+6Z~bH> zEwZ3F_jWx_wneDPgb-dUYv~WovRmvaT3?XRnhhs*Vl3jG>$sq7!_(D(vYvNpYAV3{ zo$3SAfa7g;x=K{Vdsxuctcnh*pKI)b^P}sM%Y>m&o}x>zCoTf)_xE-uzVb|WtrOWx z0dM;5{9|{q=(iV-pwRQzYVBm_RP82CW$2^JvihvWi!tszCkPlvegfmjGm0f1&+}Zc z!5BUie*L#WVJ|z6W~`IqnvlOfYasQSB3BeD6m2y%;vjJ z@IQ_5^1K^BuIeSbrZKxrO{abHBB`npFs$;cP-Hw7y${HuEv>+4@wc)`LfX?0eTYvo z?H2z!vmnJKOUs(ObL~rI(6=C(kKcuH^L`_8BJn6QzKmx_Q6fy(QGY{23DKZ9;JmgxQZ{Jw!B!{Z>)@dBlP8~Pm8w3NRk%HrX5_r^8nQZicS)2s zrI1s$>k3aUPr^L+v*n9c^zT;z@9?8h{zzMYvd0U^hyK<*J?nX(+zaj96aoCs>#%yz zw9g$%PEE=Fq2ktnC9x%7(iIBxh2A0>3oa2IlZWipMk@zG`?K$iL>aSxo?<0}(99#%8YcEW(pH%+mt z>yt6(&HS%QcL8YOHor7uko^z;ku{4yAd3$YA(G@{voVYex+S5o3h;PL;L{gLXFN8>vd?P!$mQO3+|Nz`tHbtL$&XP& z4#IrDfPD*nr+D548d3_;mgu|c%j6lCQn8N6 zr;sx+RR^vib+wB|woRsNijPZub#4i=hRvzy^8^|+InOTk6Odf^>t=*2JhWW0afGV4 zPq_h%M9mjENbBK0dq873!j?DbIpPiF1)2jBQ={BNv6NqC>7GZy+}1Pfu}Y3k$GBEm zQ4x&>CT%uxV|Los);#@frjr9`@a5kKvC(4ngipu1kAisg>VF^47%GV0SEwRRUA#{i zh(2IjQA@wW-A%DWjXkPmRoyv(qA5%*fG@Vid8-o}(|z#L5Q5tKvin((IC>rp6+<%< zJFX-^Gg<;#_{5^Xi~c-(*<{`sG(za)S(au#yfALK*ASYgl6`x@6v@`_)Y}4UFB)zt zB!_5z(;YM_m~ovKk8Q(+XgYel6_wdtHxI7(Vp)W9sPwj>q%&%#85GR_gvd8=!NaeL!DHHOQFlrEhkAbLgVazP4@QW=gR<0Pm=8W^fA~R_Bd6;B*AT^G|6Q?{ zK78Z-vD-m+47;GbHNj5|(jU-4YHUZkL5r`s6@2rJcbcSG;_>1M1v6FG8?f|mKPM}! zB}D;UtmZ}N?%)9DbAgMY11tAI5rWhj!7=>%-9vjHftF9syBy~yhz;|j%tvt;Dqx{x zX>|Q~)9BzHQXrTMUw>K0YuA*>U$gk4()N!yJjVO6H2&POJ0`@y3}`Yuxk0ha3`~z2 z1dsQIfQ2ux9WGQd4;(qmRjjh47OB1GLzI|C2 zF!TWKxXeGau8c`fEMh1jqzaPWC$naHS;xRu$?vlJZaDer(5D>Uoki5%awKRp(^*?v zYpe4K4yJiB2CZE3JN-uKYiR|7ntHJu{FUJR{0CvrYu}5%-BOd*A9?_ntq=5gTf92| zR$7y=lp4v9JV3__Wx@EQzjHb^B6VUW?usw=|5=1r_&-xWgAM1N(bQ+BjR_763qS4A=!9-4~ ziV>@Zv57NodqhH5zy-gqJvgg)EX^9S(E`hxVmeWk#BQRPKELjcXRN8o!G`4hK+ERj z_W9lsu^jU5ER>*S<7mYkgmtwtu*C>!K(BxBYK!TUXRmI};hE${)Q|m0~le3Amew;2nV;g*L4_&1gBK@q5zhol2EG3>6Yu5&T64({?u>R*NoP zRK*=Naq?o((*frqO{uNY8qhWu&aAIL`F*kKko*1$q+iJL_Fv_-w9FHZ=XnHNc072I z=sW(3<4M6k)T z9j;6;BC9*WJO{4u{e+H7+=qFN+`eqJ#KB#ef1>)zw?|QaV!!e6Hl0&J4%Wr*DIG&= z-1UsJVY5oWh_j412b}It`n~QHGH<(Gz*q+uBcc*2gdHiH9S)2rof(}-?3w@UwWJHI zIW6~Kq$x+Ci^3gsGrm6{`KhniZ5$Vo6WJc7^6Y0B{@8*jI@B z=ib+O+PCtCgA9EzAe!3LnPPdr-}KGTLpj%#Ej?8?VhG=GP}a%2q?=I;5e%y1B-=33 z4sEZ20dHKfl`A*0y69ODa5}247t|%;ASZUc2IC&$%egoCsHO-J>lnD@ISCl&p8M

58!Px4_&Ejnq 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

G__s$14z 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⪼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

x}MZ45Fi?49~6D}m#_O{vz> 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 MJ=`vjgheq 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

a;oY~ZMA|_E|Tpa&Y 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 bJsk{39UOiPX + + + + diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index 4bffa40cb..cb682fab0 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit 4bffa40cb60ad3d98cf0ea5b5d819f3f4895dcd6 +Subproject commit cb682fab04e215971abe3d0aeb8bb0f6fc28e7d0 diff --git a/lib/main.dart b/lib/main.dart index 5aeb89508..48ce3a125 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,6 +8,7 @@ import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_libmonero/monero/monero.dart'; +import 'package:flutter_libmonero/wownero/wownero.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hive_flutter/hive_flutter.dart'; @@ -70,7 +71,6 @@ void main() async { appDirectory = (await getLibraryDirectory()); } // FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding); - await Hive.initFlutter(appDirectory.path); if (!(Logging.isArmLinux || Logging.isTestEnv)) { final isar = await Isar.open( [LogSchema], @@ -114,11 +114,14 @@ void main() async { Hive.registerAdapter(NodeAdapter()); - Hive.registerAdapter(WalletInfoAdapter()); + if (!Hive.isAdapterRegistered(WalletInfoAdapter().typeId)) { + Hive.registerAdapter(WalletInfoAdapter()); + } Hive.registerAdapter(WalletTypeAdapter()); Hive.registerAdapter(UnspentCoinsInfoAdapter()); + await Hive.initFlutter(appDirectory.path); await Hive.openBox(DB.boxNameDBInfo); int dbVersion = DB.instance.get( @@ -129,6 +132,7 @@ void main() async { } monero.onStartup(); + wownero.onStartup(); // SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, // overlays: [SystemUiOverlay.bottom]); diff --git a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart index 4e4871bda..0a04c14f9 100644 --- a/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart +++ b/lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart @@ -189,7 +189,7 @@ class _RestoreWalletViewState extends ConsumerState { // TODO: do actual check to make sure it is a valid mnemonic for monero if (bip39.validateMnemonic(mnemonic) == false && - !(widget.coin == Coin.monero)) { + !(widget.coin == Coin.monero || widget.coin == Coin.wownero)) { showFloatingFlushBar( type: FlushBarType.warning, message: "Invalid seed phrase!", diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index 0d1ce7ad8..605676da2 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -534,6 +534,7 @@ class _NodeFormState extends ConsumerState { case Coin.epicCash: case Coin.monero: + case Coin.wownero: return true; } } diff --git a/lib/services/coins/coin_service.dart b/lib/services/coins/coin_service.dart index bc0e4be28..827dd5bbe 100644 --- a/lib/services/coins/coin_service.dart +++ b/lib/services/coins/coin_service.dart @@ -8,6 +8,7 @@ import 'package:stackwallet/services/coins/dogecoin/dogecoin_wallet.dart'; import 'package:stackwallet/services/coins/epiccash/epiccash_wallet.dart'; import 'package:stackwallet/services/coins/firo/firo_wallet.dart'; import 'package:stackwallet/services/coins/monero/monero_wallet.dart'; +import 'package:stackwallet/services/coins/wownero/wownero_wallet.dart'; import 'package:stackwallet/services/transaction_notification_tracker.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/prefs.dart'; @@ -123,6 +124,14 @@ abstract class CoinServiceAPI { // tracker: tracker, ); + case Coin.wownero: + return WowneroWallet( + walletId: walletId, + walletName: walletName, + coin: coin, + // tracker: tracker, + ); + case Coin.dogecoinTestNet: return DogecoinWallet( walletId: walletId, diff --git a/lib/services/coins/wownero/wownero_wallet.dart b/lib/services/coins/wownero/wownero_wallet.dart new file mode 100644 index 000000000..cbc37d147 --- /dev/null +++ b/lib/services/coins/wownero/wownero_wallet.dart @@ -0,0 +1,1559 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:cw_core/monero_transaction_priority.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:cw_wownero/api/exceptions/creation_transaction_exception.dart'; +import 'package:cw_wownero/api/wallet.dart'; +import 'package:cw_wownero/wownero_amount_format.dart'; +import 'package:cw_wownero/wownero_wallet.dart'; +import 'package:cw_wownero/pending_wownero_transaction.dart'; +import 'package:dart_numerics/dart_numerics.dart'; +import 'package:decimal/decimal.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_libmonero/core/key_service.dart'; +import 'package:flutter_libmonero/core/wallet_creation_service.dart'; +import 'package:flutter_libmonero/wownero/wownero.dart'; +import 'package:flutter_libmonero/view_model/send/output.dart' + as wownero_output; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:http/http.dart'; +import 'package:mutex/mutex.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:stackwallet/hive/db.dart'; +import 'package:stackwallet/models/node_model.dart'; +import 'package:stackwallet/models/paymint/fee_object_model.dart'; +import 'package:stackwallet/models/paymint/transactions_model.dart'; +import 'package:stackwallet/models/paymint/utxo_model.dart'; +import 'package:stackwallet/services/coins/coin_service.dart'; +import 'package:stackwallet/services/event_bus/events/global/blocks_remaining_event.dart'; +import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart'; +import 'package:stackwallet/services/event_bus/events/global/updated_in_background_event.dart'; +import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; +import 'package:stackwallet/services/event_bus/global_event_bus.dart'; +import 'package:stackwallet/services/node_service.dart'; +import 'package:stackwallet/services/price.dart'; +import 'package:stackwallet/utilities/constants.dart'; +import 'package:stackwallet/utilities/default_nodes.dart'; +import 'package:stackwallet/utilities/enums/coin_enum.dart'; +import 'package:stackwallet/utilities/enums/fee_rate_type_enum.dart'; +import 'package:stackwallet/utilities/flutter_secure_storage_interface.dart'; +import 'package:stackwallet/utilities/logger.dart'; +import 'package:stackwallet/utilities/prefs.dart'; + +const int MINIMUM_CONFIRMATIONS = 10; + +//https://github.com/wownero-project/wownero/blob/8361d60aef6e17908658128284899e3a11d808d4/src/cryptonote_config.h#L162 +const String GENESIS_HASH_MAINNET = + "013c01ff0001ffffffffffff03029b2e4c0281c0b02e7c53291a94d1d0cbff8883f8024f5142ee494ffbbd08807121017767aafcde9be00dcfd098715ebcf7f410daebc582fda69d24a28e9d0bc890d1"; +const String GENESIS_HASH_TESTNET = + "013c01ff0001ffffffffffff03029b2e4c0281c0b02e7c53291a94d1d0cbff8883f8024f5142ee494ffbbd08807121017767aafcde9be00dcfd098715ebcf7f410daebc582fda69d24a28e9d0bc890d1"; + +class WowneroWallet extends CoinServiceAPI { + static const integrationTestFlag = + bool.fromEnvironment("IS_INTEGRATION_TEST"); + final _prefs = Prefs.instance; + + Timer? timer; + Timer? wowneroAutosaveTimer; + late Coin _coin; + + late FlutterSecureStorageInterface _secureStore; + + late PriceAPI _priceAPI; + + Future getCurrentNode() async { + return NodeService().getPrimaryNodeFor(coin: coin) ?? + DefaultNodes.getNodeFor(coin); + } + + WowneroWallet( + {required String walletId, + required String walletName, + required Coin coin, + PriceAPI? priceAPI, + FlutterSecureStorageInterface? secureStore}) { + _walletId = walletId; + _walletName = walletName; + _coin = coin; + + _priceAPI = priceAPI ?? PriceAPI(Client()); + _secureStore = + secureStore ?? const SecureStorageWrapper(FlutterSecureStorage()); + } + + bool _shouldAutoSync = false; + + @override + bool get shouldAutoSync => _shouldAutoSync; + + @override + set shouldAutoSync(bool shouldAutoSync) { + if (_shouldAutoSync != shouldAutoSync) { + _shouldAutoSync = shouldAutoSync; + if (!shouldAutoSync) { + timer?.cancel(); + wowneroAutosaveTimer?.cancel(); + timer = null; + wowneroAutosaveTimer = null; + stopNetworkAlivePinging(); + } else { + startNetworkAlivePinging(); + // Walletbase needs to be open for this to work + refresh(); + } + } + } + + @override + Future updateNode(bool shouldRefresh) async { + final node = await getCurrentNode(); + + final host = Uri.parse(node.host).host; + await walletBase?.connectToNode( + node: Node(uri: "$host:${node.port}", type: WalletType.wownero)); + + // TODO: is this sync call needed? Do we need to notify ui here? + await walletBase?.startSync(); + + if (shouldRefresh) { + await refresh(); + } + } + + Future> _getMnemonicList() async { + final mnemonicString = + await _secureStore.read(key: '${_walletId}_mnemonic'); + if (mnemonicString == null) { + return []; + } + final List data = mnemonicString.split(' '); + return data; + } + + @override + Future> get mnemonic => _getMnemonicList(); + + Future get currentNodeHeight async { + try { + if (walletBase!.syncStatus! is SyncedSyncStatus && + walletBase!.syncStatus!.progress() == 1.0) { + return await walletBase!.getNodeHeight(); + } + } catch (e, s) {} + int _height = -1; + try { + _height = (walletBase!.syncStatus as SyncingSyncStatus).height; + } catch (e, s) { + Logging.instance.log("$e $s", level: LogLevel.Warning); + } + + int blocksRemaining = -1; + + try { + blocksRemaining = + (walletBase!.syncStatus as SyncingSyncStatus).blocksLeft; + } catch (e, s) { + Logging.instance.log("$e $s", level: LogLevel.Warning); + } + int currentHeight = _height + blocksRemaining; + if (_height == -1 || blocksRemaining == -1) { + currentHeight = int64MaxValue; + } + final cachedHeight = DB.instance + .get(boxName: walletId, key: "storedNodeHeight") as int? ?? + 0; + + if (currentHeight > cachedHeight && currentHeight != int64MaxValue) { + await DB.instance.put( + boxName: walletId, key: "storedNodeHeight", value: currentHeight); + return currentHeight; + } else { + return cachedHeight; + } + } + + Future get currentSyncingHeight async { + //TODO return the tip of the wownero blockchain + try { + if (walletBase!.syncStatus! is SyncedSyncStatus && + walletBase!.syncStatus!.progress() == 1.0) { + Logging.instance + .log("currentSyncingHeight lol", level: LogLevel.Warning); + return getSyncingHeight(); + } + } catch (e, s) {} + int syncingHeight = -1; + try { + syncingHeight = (walletBase!.syncStatus as SyncingSyncStatus).height; + } catch (e, s) { + Logging.instance.log("$e $s", level: LogLevel.Warning); + } + final cachedHeight = + DB.instance.get(boxName: walletId, key: "storedSyncingHeight") + as int? ?? + 0; + + if (syncingHeight > cachedHeight) { + await DB.instance.put( + boxName: walletId, key: "storedSyncingHeight", value: syncingHeight); + return syncingHeight; + } else { + return cachedHeight; + } + } + + Future updateStoredChainHeight({required int newHeight}) async { + await DB.instance.put( + boxName: walletId, key: "storedChainHeight", value: newHeight); + } + + int get storedChainHeight { + return DB.instance.get(boxName: walletId, key: "storedChainHeight") + as int? ?? + 0; + } + + /// Increases the index for either the internal or external chain, depending on [chain]. + /// [chain] - Use 0 for receiving (external), 1 for change (internal). Should not be any other value! + Future _incrementAddressIndexForChain(int chain) async { + // Here we assume chain == 1 if it isn't 0 + String indexKey = chain == 0 ? "receivingIndex" : "changeIndex"; + + final newIndex = + (DB.instance.get(boxName: walletId, key: indexKey)) + 1; + await DB.instance + .put(boxName: walletId, key: indexKey, value: newIndex); + } + + Future _checkCurrentReceivingAddressesForTransactions() async { + try { + await _checkReceivingAddressForTransactions(); + } catch (e, s) { + Logging.instance.log( + "Exception rethrown from _checkCurrentReceivingAddressesForTransactions(): $e\n$s", + level: LogLevel.Error); + rethrow; + } + } + + Future _checkReceivingAddressForTransactions() async { + try { + int highestIndex = -1; + for (var element + in walletBase!.transactionHistory!.transactions!.entries) { + if (element.value.direction == TransactionDirection.incoming) { + int curAddressIndex = + element.value.additionalInfo!['addressIndex'] as int; + if (curAddressIndex > highestIndex) { + highestIndex = curAddressIndex; + } + } + } + + // Check the new receiving index + String indexKey = "receivingIndex"; + final curIndex = + DB.instance.get(boxName: walletId, key: indexKey) as int; + if (highestIndex >= curIndex) { + // First increment the receiving index + await _incrementAddressIndexForChain(0); + final newReceivingIndex = + DB.instance.get(boxName: walletId, key: indexKey) as int; + + // Use new index to derive a new receiving address + final newReceivingAddress = + await _generateAddressForChain(0, newReceivingIndex); + + // Add that new receiving address to the array of receiving addresses + await _addToAddressesArrayForChain(newReceivingAddress, 0); + + // Set the new receiving address that the service + + _currentReceivingAddress = Future(() => newReceivingAddress); + } + } on SocketException catch (se, s) { + Logging.instance.log( + "SocketException caught in _checkReceivingAddressForTransactions(): $se\n$s", + level: LogLevel.Error); + return; + } catch (e, s) { + Logging.instance.log( + "Exception rethrown from _checkReceivingAddressForTransactions(): $e\n$s", + level: LogLevel.Error); + rethrow; + } + } + + @override + bool get isRefreshing => refreshMutex; + + bool refreshMutex = false; + + Timer? syncPercentTimer; + + Mutex syncHeightMutex = Mutex(); + Future stopSyncPercentTimer() async { + syncPercentTimer?.cancel(); + syncPercentTimer = null; + } + + Future startSyncPercentTimer() async { + if (syncPercentTimer != null) { + return; + } + syncPercentTimer?.cancel(); + GlobalEventBus.instance + .fire(RefreshPercentChangedEvent(highestPercentCached, walletId)); + syncPercentTimer = Timer.periodic(const Duration(seconds: 30), (_) async { + if (syncHeightMutex.isLocked) { + return; + } + await syncHeightMutex.protect(() async { + // int restoreheight = walletBase!.walletInfo.restoreHeight ?? 0; + int _height = await currentSyncingHeight; + int _currentHeight = await currentNodeHeight; + double progress = 0; + try { + progress = walletBase!.syncStatus!.progress(); + } catch (e, s) { + Logging.instance.log("$e $s", level: LogLevel.Warning); + } + + final int blocksRemaining = _currentHeight - _height; + + GlobalEventBus.instance + .fire(BlocksRemainingEvent(blocksRemaining, walletId)); + + if (progress == 1 && _currentHeight > 0 && _height > 0) { + await stopSyncPercentTimer(); + GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.synced, + walletId, + coin, + ), + ); + return; + } + + // for some reason this can be 0 which screws up the percent calculation + // int64MaxValue is NOT the best value to use here + if (_currentHeight < 1) { + _currentHeight = int64MaxValue; + } + + if (_height < 1) { + _height = 1; + } + + double restorePercent = progress; + double highestPercent = highestPercentCached; + + Logging.instance.log( + "currentSyncingHeight: $_height, nodeHeight: $_currentHeight, restorePercent: $restorePercent, highestPercentCached: $highestPercentCached", + level: LogLevel.Info); + + if (restorePercent > 0 && restorePercent <= 1) { + // if (restorePercent > highestPercent) { + highestPercent = restorePercent; + highestPercentCached = restorePercent; + // } + } + + GlobalEventBus.instance + .fire(RefreshPercentChangedEvent(highestPercent, walletId)); + }); + }); + } + + double get highestPercentCached => + DB.instance.get(boxName: walletId, key: "highestPercentCached") + as double? ?? + 0; + set highestPercentCached(double value) => DB.instance.put( + boxName: walletId, + key: "highestPercentCached", + value: value, + ); + + /// Refreshes display data for the wallet + @override + Future refresh() async { + if (refreshMutex) { + Logging.instance.log("$walletId $walletName refreshMutex denied", + level: LogLevel.Info); + return; + } else { + refreshMutex = true; + } + + if (walletBase == null) { + throw Exception("Tried to call refresh() in wownero without walletBase!"); + } + + try { + await startSyncPercentTimer(); + GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.syncing, + walletId, + coin, + ), + ); + + final int _currentSyncingHeight = await currentSyncingHeight; + final int storedHeight = storedChainHeight; + int _currentNodeHeight = await currentNodeHeight; + + double progress = 0; + try { + progress = (walletBase!.syncStatus!).progress(); + } catch (e, s) { + Logging.instance.log("$e $s", level: LogLevel.Warning); + } + await _fetchTransactionData(); + + bool stillSyncing = false; + Logging.instance.log( + "storedHeight: $storedHeight, _currentSyncingHeight: $_currentSyncingHeight, _currentNodeHeight: $_currentNodeHeight, progress: $progress, issynced: ${await walletBase!.isConnected()}", + level: LogLevel.Info); + + if (progress < 1.0) { + stillSyncing = true; + } + + if (_currentSyncingHeight > storedHeight) { + // 0 is returned from wownero as I assume an error????? + if (_currentSyncingHeight > 0) { + // 0 failed to fetch current height??? + await updateStoredChainHeight(newHeight: _currentSyncingHeight); + } + } + + await _checkCurrentReceivingAddressesForTransactions(); + String indexKey = "receivingIndex"; + final curIndex = + DB.instance.get(boxName: walletId, key: indexKey) as int; + // Use new index to derive a new receiving address + try { + final newReceivingAddress = await _generateAddressForChain(0, curIndex); + _currentReceivingAddress = Future(() => newReceivingAddress); + } catch (e, s) { + Logging.instance.log( + "Failed to call _generateAddressForChain(0, $curIndex): $e\n$s", + level: LogLevel.Error); + } + final newTxData = await _fetchTransactionData(); + _transactionData = Future(() => newTxData); + + if (isActive || shouldAutoSync) { + timer ??= Timer.periodic(const Duration(seconds: 60), (timer) async { + debugPrint("run timer"); + //TODO: check for new data and refresh if needed. if wownero even needs this + // chain height check currently broken + // if ((await chainHeight) != (await storedChainHeight)) { + // if (await refreshIfThereIsNewData()) { + await refresh(); + GlobalEventBus.instance.fire(UpdatedInBackgroundEvent( + "New data found in $walletId $walletName in background!", + walletId)); + // } + // } + }); + wowneroAutosaveTimer ??= + Timer.periodic(const Duration(seconds: 93), (timer) async { + debugPrint("run wownero timer"); + if (isActive) { + await walletBase?.save(); + GlobalEventBus.instance.fire(UpdatedInBackgroundEvent( + "New data found in $walletId $walletName in background!", + walletId)); + } + }); + } + + if (stillSyncing) { + debugPrint("still syncing"); + GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.syncing, + walletId, + coin, + ), + ); + refreshMutex = false; + return; + } + await stopSyncPercentTimer(); + GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.synced, + walletId, + coin, + ), + ); + refreshMutex = false; + } catch (error, strace) { + refreshMutex = false; + await stopSyncPercentTimer(); + GlobalEventBus.instance.fire( + NodeConnectionStatusChangedEvent( + NodeConnectionStatus.disconnected, + walletId, + coin, + ), + ); + GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.unableToSync, + walletId, + coin, + ), + ); + Logging.instance.log( + "Caught exception in refreshWalletData(): $error\n$strace", + level: LogLevel.Error); + } + } + + @override + // TODO: implement allOwnAddresses + Future> get allOwnAddresses { + return Future(() => []); + } + + @override + Future get balanceMinusMaxFee async => + (await availableBalance) - + (Decimal.fromInt((await maxFee)) / Decimal.fromInt(Constants.satsPerCoin)) + .toDecimal(); + + @override + Future get currentReceivingAddress => + _currentReceivingAddress ??= _getCurrentAddressForChain(0); + + @override + Future exit() async { + await stopSyncPercentTimer(); + _hasCalledExit = true; + isActive = false; + await walletBase?.save(prioritySave: true); + walletBase?.close(); + wowneroAutosaveTimer?.cancel(); + wowneroAutosaveTimer = null; + timer?.cancel(); + timer = null; + stopNetworkAlivePinging(); + } + + bool _hasCalledExit = false; + + @override + bool get hasCalledExit => _hasCalledExit; + + Future? _currentReceivingAddress; + + Future _getFees() async { + return FeeObject( + numberOfBlocksFast: 10, + numberOfBlocksAverage: 10, + numberOfBlocksSlow: 10, + fast: 4, + medium: 2, + slow: 0); + } + + @override + Future get fees => _feeObject ??= _getFees(); + Future? _feeObject; + + @override + // TODO: implement fullRescan + Future fullRescan( + int maxUnusedAddressGap, + int maxNumberOfIndexesToCheck, + ) async { + var restoreHeight = walletBase?.walletInfo.restoreHeight; + await walletBase?.rescan(height: restoreHeight); + GlobalEventBus.instance.fire( + WalletSyncStatusChangedEvent( + WalletSyncStatus.syncing, + walletId, + coin, + ), + ); + return; + } + + Future _generateAddressForChain(int chain, int index) async { + // + String address = walletBase!.getTransactionAddress(chain, index); + + return address; + } + + /// Adds [address] to the relevant chain's address array, which is determined by [chain]. + /// [address] - Expects a standard native segwit address + /// [chain] - Use 0 for receiving (external), 1 for change (internal). Should not be any other value! + Future _addToAddressesArrayForChain(String address, int chain) async { + String chainArray = ''; + if (chain == 0) { + chainArray = 'receivingAddresses'; + } else { + chainArray = 'changeAddresses'; + } + + final addressArray = + DB.instance.get(boxName: walletId, key: chainArray); + if (addressArray == null) { + Logging.instance.log( + 'Attempting to add the following to $chainArray array for chain $chain:${[ + address + ]}', + level: LogLevel.Info); + await DB.instance + .put(boxName: walletId, key: chainArray, value: [address]); + } else { + // Make a deep copy of the existing list + final List newArray = []; + addressArray + .forEach((dynamic _address) => newArray.add(_address as String)); + newArray.add(address); // Add the address passed into the method + await DB.instance + .put(boxName: walletId, key: chainArray, value: newArray); + } + } + + /// Returns the latest receiving/change (external/internal) address for the wallet depending on [chain] + /// and + /// [chain] - Use 0 for receiving (external), 1 for change (internal). Should not be any other value! + Future _getCurrentAddressForChain(int chain) async { + // Here, we assume that chain == 1 if it isn't 0 + String arrayKey = chain == 0 ? "receivingAddresses" : "changeAddresses"; + final internalChainArray = (DB.instance + .get(boxName: walletId, key: arrayKey)) as List; + return internalChainArray.last as String; + } + + //TODO: take in the default language when creating wallet. + Future _generateNewWallet() async { + Logging.instance + .log("IS_INTEGRATION_TEST: $integrationTestFlag", level: LogLevel.Info); + // TODO: ping wownero server and make sure the genesis hash matches + // if (!integrationTestFlag) { + // final features = await electrumXClient.getServerFeatures(); + // Logging.instance.log("features: $features"); + // if (_networkType == BasicNetworkType.main) { + // if (features['genesis_hash'] != GENESIS_HASH_MAINNET) { + // throw Exception("genesis hash does not match main net!"); + // } + // } else if (_networkType == BasicNetworkType.test) { + // if (features['genesis_hash'] != GENESIS_HASH_TESTNET) { + // throw Exception("genesis hash does not match test net!"); + // } + // } + // } + + // this should never fail + if ((await _secureStore.read(key: '${_walletId}_mnemonic')) != null) { + throw Exception( + "Attempted to overwrite mnemonic on generate new wallet!"); + } + + storage = const FlutterSecureStorage(); + // TODO: Wallet Service may need to be switched to Wownero + walletService = + wownero.createWowneroWalletService(DB.instance.moneroWalletInfoBox); + prefs = await SharedPreferences.getInstance(); + keysStorage = KeyService(storage!); + WalletInfo walletInfo; + WalletCredentials credentials; + try { + String name = _walletId; + final dirPath = + await pathForWalletDir(name: name, type: WalletType.wownero); + final path = await pathForWallet(name: name, type: WalletType.wownero); + credentials = wownero.createWowneroNewWalletCredentials( + name: name, + language: "English", + ); + + walletInfo = WalletInfo.external( + id: WalletBase.idFor(name, WalletType.wownero), + name: name, + type: WalletType.wownero, + isRecovery: false, + restoreHeight: credentials.height ?? 0, + date: DateTime.now(), + path: path, + dirPath: dirPath, + // TODO: find out what to put for address + address: ''); + credentials.walletInfo = walletInfo; + + _walletCreationService = WalletCreationService( + secureStorage: storage, + sharedPreferences: prefs, + walletService: walletService, + keyService: keysStorage, + ); + _walletCreationService?.changeWalletType(); + // To restore from a seed + final wallet = await _walletCreationService?.create(credentials); + + // subtract a couple days to ensure we have a buffer for SWB + final bufferedCreateHeight = + getSeedHeightSync(wallet?.seed.trim() as String); + + await DB.instance.put( + boxName: walletId, key: "restoreHeight", value: bufferedCreateHeight); + walletInfo.restoreHeight = bufferedCreateHeight; + + await _secureStore.write( + key: '${_walletId}_mnemonic', value: wallet?.seed.trim()); + walletInfo.address = wallet?.walletAddresses.address; + await DB.instance + .add(boxName: WalletInfo.boxName, value: walletInfo); + walletBase?.close(); + walletBase = wallet as WowneroWalletBase; + } catch (e, s) { + debugPrint(e.toString()); + debugPrint(s.toString()); + } + final node = await getCurrentNode(); + final host = Uri.parse(node.host).host; + await walletBase?.connectToNode( + node: Node(uri: "$host:${node.port}", type: WalletType.wownero)); + await walletBase?.startSync(); + await DB.instance + .put(boxName: walletId, key: "id", value: _walletId); + + // Set relevant indexes + await DB.instance + .put(boxName: walletId, key: "receivingIndex", value: 0); + await DB.instance + .put(boxName: walletId, key: "changeIndex", value: 0); + await DB.instance.put( + boxName: walletId, + key: 'blocked_tx_hashes', + value: ["0xdefault"], + ); // A list of transaction hashes to represent frozen utxos in wallet + // initialize address book entries + await DB.instance.put( + boxName: walletId, + key: 'addressBookEntries', + value: {}); + await DB.instance + .put(boxName: walletId, key: "isFavorite", value: false); + + // Generate and add addresses to relevant arrays + final initialReceivingAddress = await _generateAddressForChain(0, 0); + // final initialChangeAddress = await _generateAddressForChain(1, 0); + + await _addToAddressesArrayForChain(initialReceivingAddress, 0); + // await _addToAddressesArrayForChain(initialChangeAddress, 1); + + await DB.instance.put( + boxName: walletId, + key: 'receivingAddresses', + value: [initialReceivingAddress]); + await DB.instance + .put(boxName: walletId, key: "receivingIndex", value: 0); + + _currentReceivingAddress = Future(() => initialReceivingAddress); + + Logging.instance.log("_generateNewWalletFinished", level: LogLevel.Info); + } + + @override + // TODO: implement initializeWallet + Future initializeNew() async { + await _prefs.init(); + // TODO: ping actual wownero network + // try { + // final hasNetwork = await _electrumXClient.ping(); + // if (!hasNetwork) { + // return false; + // } + // } catch (e, s) { + // Logging.instance.log("Caught in initializeWallet(): $e\n$s"); + // return false; + // } + storage = const FlutterSecureStorage(); + walletService = + wownero.createWowneroWalletService(DB.instance.moneroWalletInfoBox); + prefs = await SharedPreferences.getInstance(); + keysStorage = KeyService(storage!); + + await _generateNewWallet(); + // var password; + // try { + // password = + // await keysStorage?.getWalletPassword(walletName: this._walletId); + // } catch (e, s) { + // Logging.instance.log("$e $s"); + // Logging.instance.log("Generating new ${coin.ticker} wallet."); + // // Triggers for new users automatically. Generates new wallet + // await _generateNewWallet(wallet); + // await wallet.put("id", this._walletId); + // return true; + // } + // walletBase = (await walletService?.openWallet(this._walletId, password)) + // as WowneroWalletBase; + // Logging.instance.log("Opening existing ${coin.ticker} wallet."); + // // Wallet already exists, triggers for a returning user + // final currentAddress = awaicurrentHeightt _getCurrentAddressForChain(0); + // this._currentReceivingAddress = Future(() => currentAddress); + // + // await walletBase?.connectToNode( + // node: Node( + // uri: "xmr-node.cakewallet.com:18081", type: WalletType.wownero)); + // walletBase?.startSync(); + + return true; + } + + @override + Future initializeExisting() async { + Logging.instance.log( + "Opening existing ${coin.prettyName} wallet $walletName...", + level: LogLevel.Info); + + if ((DB.instance.get(boxName: walletId, key: "id")) == null) { + debugPrint("Exception was thrown"); + throw Exception( + "Attempted to initialize an existing wallet using an unknown wallet ID!"); + } + + storage = const FlutterSecureStorage(); + walletService = + wownero.createWowneroWalletService(DB.instance.moneroWalletInfoBox); + prefs = await SharedPreferences.getInstance(); + keysStorage = KeyService(storage!); + + await _prefs.init(); + final data = + DB.instance.get(boxName: walletId, key: "latest_tx_model") + as TransactionData?; + if (data != null) { + _transactionData = Future(() => data); + } + + String? password; + try { + password = await keysStorage?.getWalletPassword(walletName: _walletId); + } catch (e, s) { + debugPrint("Exception was thrown $e $s"); + throw Exception("Password not found $e, $s"); + } + walletBase = (await walletService?.openWallet(_walletId, password!)) + as WowneroWalletBase; + debugPrint("walletBase $walletBase"); + Logging.instance.log( + "Opened existing ${coin.prettyName} wallet $walletName", + level: LogLevel.Info); + // Wallet already exists, triggers for a returning user + + String indexKey = "receivingIndex"; + final curIndex = + await DB.instance.get(boxName: walletId, key: indexKey) as int; + // Use new index to derive a new receiving address + final newReceivingAddress = await _generateAddressForChain(0, curIndex); + Logging.instance.log("xmr address in init existing: $newReceivingAddress", + level: LogLevel.Info); + _currentReceivingAddress = Future(() => newReceivingAddress); + } + + @override + Future get maxFee async { + var bal = await availableBalance; + var fee = walletBase!.calculateEstimatedFee( + wownero.getDefaultTransactionPriority(), bal.toBigInt().toInt()) ~/ + 10000; + + return fee; + } + + @override + // TODO: implement pendingBalance + Future get pendingBalance => throw UnimplementedError(); + + bool longMutex = false; + + // TODO: are these needed? + FlutterSecureStorage? storage; + WalletService? walletService; + SharedPreferences? prefs; + KeyService? keysStorage; + WowneroWalletBase? walletBase; + WalletCreationService? _walletCreationService; + + String toStringForinfo(WalletInfo info) { + return "id: ${info.id} name: ${info.name} type: ${info.type} recovery: ${info.isRecovery}" + " restoreheight: ${info.restoreHeight} timestamp: ${info.timestamp} dirPath: ${info.dirPath} " + "path: ${info.path} address: ${info.address} addresses: ${info.addresses}"; + } + + Future pathForWalletDir({ + required String name, + required WalletType type, + }) async { + Directory root = (await getApplicationDocumentsDirectory()); + if (Platform.isIOS) { + root = (await getLibraryDirectory()); + } + final prefix = walletTypeToString(type).toLowerCase(); + final walletsDir = Directory('${root.path}/wallets'); + final walletDire = Directory('${walletsDir.path}/$prefix/$name'); + + if (!walletDire.existsSync()) { + walletDire.createSync(recursive: true); + } + + return walletDire.path; + } + + Future pathForWallet({ + required String name, + required WalletType type, + }) async => + await pathForWalletDir(name: name, type: type) + .then((path) => '$path/$name'); + + // TODO: take in a dynamic height + @override + Future recoverFromMnemonic({ + required String mnemonic, + required int maxUnusedAddressGap, + required int maxNumberOfIndexesToCheck, + required int height, + }) async { + await _prefs.init(); + longMutex = true; + final start = DateTime.now(); + try { + // Logging.instance.log("IS_INTEGRATION_TEST: $integrationTestFlag"); + // if (!integrationTestFlag) { + // final features = await electrumXClient.getServerFeatures(); + // Logging.instance.log("features: $features"); + // if (_networkType == BasicNetworkType.main) { + // if (features['genesis_hash'] != GENESIS_HASH_MAINNET) { + // throw Exception("genesis hash does not match main net!"); + // } + // } else if (_networkType == BasicNetworkType.test) { + // if (features['genesis_hash'] != GENESIS_HASH_TESTNET) { + // throw Exception("genesis hash does not match test net!"); + // } + // } + // } + // check to make sure we aren't overwriting a mnemonic + // this should never fail + if ((await _secureStore.read(key: '${_walletId}_mnemonic')) != null) { + longMutex = false; + throw Exception("Attempted to overwrite mnemonic on restore!"); + } + await _secureStore.write( + key: '${_walletId}_mnemonic', value: mnemonic.trim()); + + height = getSeedHeightSync(mnemonic.trim()); + + await DB.instance + .put(boxName: walletId, key: "restoreHeight", value: height); + + storage = const FlutterSecureStorage(); + walletService = + wownero.createWowneroWalletService(DB.instance.moneroWalletInfoBox); + prefs = await SharedPreferences.getInstance(); + keysStorage = KeyService(storage!); + WalletInfo walletInfo; + WalletCredentials credentials; + String name = _walletId; + final dirPath = + await pathForWalletDir(name: name, type: WalletType.wownero); + final path = await pathForWallet(name: name, type: WalletType.wownero); + credentials = wownero.createWowneroRestoreWalletFromSeedCredentials( + name: name, + height: height, + mnemonic: mnemonic.trim(), + ); + try { + walletInfo = WalletInfo.external( + id: WalletBase.idFor(name, WalletType.wownero), + name: name, + type: WalletType.wownero, + isRecovery: false, + restoreHeight: credentials.height ?? 0, + date: DateTime.now(), + path: path, + dirPath: dirPath, + // TODO: find out what to put for address + address: ''); + credentials.walletInfo = walletInfo; + + _walletCreationService = WalletCreationService( + secureStorage: storage, + sharedPreferences: prefs, + walletService: walletService, + keyService: keysStorage, + ); + _walletCreationService!.changeWalletType(); + // To restore from a seed + final wallet = + await _walletCreationService!.restoreFromSeed(credentials); + walletInfo.address = wallet.walletAddresses.address; + await DB.instance + .add(boxName: WalletInfo.boxName, value: walletInfo); + walletBase?.close(); + walletBase = wallet as WowneroWalletBase; + await DB.instance.put( + boxName: walletId, + key: 'receivingAddresses', + value: [walletInfo.address!]); + await DB.instance + .put(boxName: walletId, key: "receivingIndex", value: 0); + await DB.instance + .put(boxName: walletId, key: "id", value: _walletId); + await DB.instance + .put(boxName: walletId, key: "changeIndex", value: 0); + await DB.instance.put( + boxName: walletId, + key: 'blocked_tx_hashes', + value: ["0xdefault"], + ); // A list of transaction hashes to represent frozen utxos in wallet + // initialize address book entries + await DB.instance.put( + boxName: walletId, + key: 'addressBookEntries', + value: {}); + await DB.instance + .put(boxName: walletId, key: "isFavorite", value: false); + } catch (e, s) { + debugPrint(e.toString()); + debugPrint(s.toString()); + } + final node = await getCurrentNode(); + final host = Uri.parse(node.host).host; + await walletBase?.connectToNode( + node: Node(uri: "$host:${node.port}", type: WalletType.wownero)); + await walletBase?.rescan(height: credentials.height); + } catch (e, s) { + Logging.instance.log( + "Exception rethrown from recoverFromMnemonic(): $e\n$s", + level: LogLevel.Error); + longMutex = false; + rethrow; + } + longMutex = false; + + final end = DateTime.now(); + Logging.instance.log( + "$walletName Recovery time: ${end.difference(start).inMilliseconds} millis", + level: LogLevel.Info); + } + + @override + Future send({ + required String toAddress, + required int amount, + Map args = const {}, + }) async { + try { + final txData = await prepareSend( + address: toAddress, satoshiAmount: amount, args: args); + final txHash = await confirmSend(txData: txData); + return txHash; + } catch (e, s) { + Logging.instance + .log("Exception rethrown from send(): $e\n$s", level: LogLevel.Error); + rethrow; + } + } + + @override + Future testNetworkConnection() async { + return await walletBase?.isConnected() ?? false; + } + + Timer? _networkAliveTimer; + + void startNetworkAlivePinging() { + // call once on start right away + _periodicPingCheck(); + + // then periodically check + _networkAliveTimer = Timer.periodic( + Constants.networkAliveTimerDuration, + (_) async { + _periodicPingCheck(); + }, + ); + } + + void _periodicPingCheck() async { + bool hasNetwork = await testNetworkConnection(); + _isConnected = hasNetwork; + if (_isConnected != hasNetwork) { + NodeConnectionStatus status = hasNetwork + ? NodeConnectionStatus.connected + : NodeConnectionStatus.disconnected; + GlobalEventBus.instance + .fire(NodeConnectionStatusChangedEvent(status, walletId, coin)); + } + } + + void stopNetworkAlivePinging() { + _networkAliveTimer?.cancel(); + _networkAliveTimer = null; + } + + bool _isConnected = false; + + @override + bool get isConnected => _isConnected; + + @override + Future get totalBalance async { + var transactions = walletBase?.transactionHistory!.transactions; + int transactionBalance = 0; + for (var tx in transactions!.entries) { + if (tx.value.direction == TransactionDirection.incoming) { + transactionBalance += tx.value.amount!; + } else { + transactionBalance += -tx.value.amount! - tx.value.fee!; + } + } + + // TODO: grab total balance + var bal = 0; + for (var element in walletBase!.balance!.entries) { + bal = bal + element.value.fullBalance; + } + debugPrint("balances: $transactionBalance $bal"); + if (isActive) { + String am = wowneroAmountToString(amount: bal); + + return Decimal.parse(am); + } else { + String am = wowneroAmountToString(amount: transactionBalance); + + return Decimal.parse(am); + } + } + + @override + // TODO: implement onIsActiveWalletChanged + void Function(bool)? get onIsActiveWalletChanged => (isActive) async { + await walletBase?.save(); + walletBase?.close(); + wowneroAutosaveTimer?.cancel(); + wowneroAutosaveTimer = null; + timer?.cancel(); + timer = null; + await stopSyncPercentTimer(); + if (isActive) { + String? password; + try { + password = + await keysStorage?.getWalletPassword(walletName: _walletId); + } catch (e, s) { + debugPrint("Exception was thrown $e $s"); + throw Exception("Password not found $e, $s"); + } + walletBase = (await walletService?.openWallet(_walletId, password!)) + as WowneroWalletBase?; + if (!(await walletBase!.isConnected())) { + final node = await getCurrentNode(); + final host = Uri.parse(node.host).host; + await walletBase?.connectToNode( + node: + Node(uri: "$host:${node.port}", type: WalletType.wownero)); + await walletBase?.startSync(); + } + await refresh(); + } + this.isActive = isActive; + }; + + bool isActive = false; + + @override + Future get transactionData => + _transactionData ??= _fetchTransactionData(); + Future? _transactionData; + + Future _fetchTransactionData() async { + final transactions = walletBase?.transactionHistory!.transactions; + + final cachedTransactions = + DB.instance.get(boxName: walletId, key: 'latest_tx_model') + as TransactionData?; + int latestTxnBlockHeight = + DB.instance.get(boxName: walletId, key: "storedTxnDataHeight") + as int? ?? + 0; + + final txidsList = DB.instance + .get(boxName: walletId, key: "cachedTxids") as List? ?? + []; + + final Set cachedTxids = Set.from(txidsList); + + // TODO: filter to skip cached + confirmed txn processing in next step + // final unconfirmedCachedTransactions = + // cachedTransactions?.getAllTransactions() ?? {}; + // unconfirmedCachedTransactions + // .removeWhere((key, value) => value.confirmedStatus); + // + // if (cachedTransactions != null) { + // for (final tx in allTxHashes.toList(growable: false)) { + // final txHeight = tx["height"] as int; + // if (txHeight > 0 && + // txHeight < latestTxnBlockHeight - MINIMUM_CONFIRMATIONS) { + // if (unconfirmedCachedTransactions[tx["tx_hash"] as String] == null) { + // allTxHashes.remove(tx); + // } + // } + // } + // } + + // sort thing stuff + // change to get Wownero price + final priceData = + await _priceAPI.getPricesAnd24hChange(baseCurrency: _prefs.currency); + Decimal currentPrice = priceData[coin]?.item1 ?? Decimal.zero; + final List> midSortedArray = []; + + if (transactions != null) { + for (var tx in transactions.entries) { + cachedTxids.add(tx.value.id); + Logging.instance.log( + "${tx.value.accountIndex} ${tx.value.addressIndex} ${tx.value.amount} ${tx.value.date} " + "${tx.value.direction} ${tx.value.fee} ${tx.value.height} ${tx.value.id} ${tx.value.isPending} ${tx.value.key} " + "${tx.value.recipientAddress}, ${tx.value.additionalInfo} con:${tx.value.confirmations}" + " ${tx.value.keyIndex}", + level: LogLevel.Info); + String am = wowneroAmountToString(amount: tx.value.amount!); + final worthNow = (currentPrice * Decimal.parse(am)).toStringAsFixed(2); + Map midSortedTx = {}; + // // create final tx map + midSortedTx["txid"] = tx.value.id; + midSortedTx["confirmed_status"] = !tx.value.isPending && + tx.value.confirmations! >= MINIMUM_CONFIRMATIONS; + midSortedTx["confirmations"] = tx.value.confirmations ?? 0; + midSortedTx["timestamp"] = + (tx.value.date.millisecondsSinceEpoch ~/ 1000); + midSortedTx["txType"] = + tx.value.direction == TransactionDirection.incoming + ? "Received" + : "Sent"; + midSortedTx["amount"] = tx.value.amount; + midSortedTx["worthNow"] = worthNow; + midSortedTx["worthAtBlockTimestamp"] = worthNow; + midSortedTx["fees"] = tx.value.fee; + // TODO: shouldn't wownero have an address I can grab + if (tx.value.direction == TransactionDirection.incoming) { + final addressInfo = tx.value.additionalInfo; + + midSortedTx["address"] = walletBase?.getTransactionAddress( + addressInfo!['accountIndex'] as int, + addressInfo['addressIndex'] as int, + ); + } else { + midSortedTx["address"] = ""; + } + + final int txHeight = tx.value.height ?? 0; + midSortedTx["height"] = txHeight; + if (txHeight >= latestTxnBlockHeight) { + latestTxnBlockHeight = txHeight; + } + + midSortedTx["aliens"] = []; + midSortedTx["inputSize"] = 0; + midSortedTx["outputSize"] = 0; + midSortedTx["inputs"] = []; + midSortedTx["outputs"] = []; + midSortedArray.add(midSortedTx); + } + } + + // sort by date ---- + midSortedArray + .sort((a, b) => (b["timestamp"] as int) - (a["timestamp"] as int)); + Logging.instance.log(midSortedArray, level: LogLevel.Info); + + // buildDateTimeChunks + final Map result = {"dateTimeChunks": []}; + final dateArray = []; + + for (int i = 0; i < midSortedArray.length; i++) { + final txObject = midSortedArray[i]; + final date = extractDateFromTimestamp(txObject["timestamp"] as int); + final txTimeArray = [txObject["timestamp"], date]; + + if (dateArray.contains(txTimeArray[1])) { + result["dateTimeChunks"].forEach((dynamic chunk) { + if (extractDateFromTimestamp(chunk["timestamp"] as int) == + txTimeArray[1]) { + if (chunk["transactions"] == null) { + chunk["transactions"] = >[]; + } + chunk["transactions"].add(txObject); + } + }); + } else { + dateArray.add(txTimeArray[1]); + final chunk = { + "timestamp": txTimeArray[0], + "transactions": [txObject], + }; + result["dateTimeChunks"].add(chunk); + } + } + + final transactionsMap = cachedTransactions?.getAllTransactions() ?? {}; + transactionsMap + .addAll(TransactionData.fromJson(result).getAllTransactions()); + + final txModel = TransactionData.fromMap(transactionsMap); + + await DB.instance.put( + boxName: walletId, + key: 'storedTxnDataHeight', + value: latestTxnBlockHeight); + await DB.instance.put( + boxName: walletId, key: 'latest_tx_model', value: txModel); + await DB.instance.put( + boxName: walletId, + key: 'cachedTxids', + value: cachedTxids.toList(growable: false)); + + return txModel; + } + + @override + // TODO: implement unspentOutputs + Future> get unspentOutputs => throw UnimplementedError(); + + @override + // TODO: implement validateAddress + bool validateAddress(String address) { + bool valid = RegExp("[a-zA-Z0-9]{95}").hasMatch(address) || + RegExp("[a-zA-Z0-9]{106}").hasMatch(address); + return valid; + } + + @override + String get walletId => _walletId; + late String _walletId; + + @override + String get walletName => _walletName; + late String _walletName; + + // setter for updating on rename + @override + set walletName(String newName) => _walletName = newName; + + @override + set isFavorite(bool markFavorite) { + DB.instance.put( + boxName: walletId, key: "isFavorite", value: markFavorite); + } + + @override + bool get isFavorite { + try { + return DB.instance.get(boxName: walletId, key: "isFavorite") + as bool; + } catch (e, s) { + Logging.instance + .log("isFavorite fetch failed: $e\n$s", level: LogLevel.Error); + rethrow; + } + } + + @override + // TODO: implement availableBalance + Future get availableBalance async { + var bal = 0; + for (var element in walletBase!.balance!.entries) { + bal = bal + element.value.unlockedBalance; + } + String am = wowneroAmountToString(amount: bal); + + return Decimal.parse(am); + } + + @override + Coin get coin => _coin; + + @override + Future confirmSend({required Map txData}) async { + try { + Logging.instance.log("confirmSend txData: $txData", level: LogLevel.Info); + final pendingWowneroTransaction = + txData['pendingWowneroTransaction'] as PendingWowneroTransaction; + try { + await pendingWowneroTransaction.commit(); + Logging.instance.log( + "transaction ${pendingWowneroTransaction.id} has been sent", + level: LogLevel.Info); + return pendingWowneroTransaction.id; + } catch (e, s) { + Logging.instance.log("$walletName wownero confirmSend: $e\n$s", + level: LogLevel.Error); + rethrow; + } + } catch (e, s) { + Logging.instance.log("Exception rethrown from confirmSend(): $e\n$s", + level: LogLevel.Info); + rethrow; + } + } + + // TODO: fix the double free memory crash error. + @override + Future> prepareSend( + {required String address, + required int satoshiAmount, + Map? args}) async { + int amount = satoshiAmount; + String toAddress = address; + try { + final feeRate = args?["feeRate"]; + if (feeRate is FeeRateType) { + MoneroTransactionPriority feePriority = MoneroTransactionPriority.slow; + switch (feeRate) { + case FeeRateType.fast: + feePriority = MoneroTransactionPriority.fastest; + break; + case FeeRateType.average: + feePriority = MoneroTransactionPriority.medium; + break; + case FeeRateType.slow: + feePriority = MoneroTransactionPriority.slow; + break; + } + + Future? awaitPendingTransaction; + try { + Logging.instance + .log("$toAddress $amount $args", level: LogLevel.Info); + String amountToSend = wowneroAmountToString(amount: amount * 10000); + Logging.instance.log("$amount $amountToSend", level: LogLevel.Info); + + wownero_output.Output output = wownero_output.Output(walletBase!); + output.address = toAddress; + output.setCryptoAmount(amountToSend); + + List outputs = [output]; + Object tmp = wownero.createWowneroTransactionCreationCredentials( + outputs: outputs, priority: feePriority); + + awaitPendingTransaction = walletBase!.createTransaction(tmp); + } catch (e, s) { + Logging.instance.log("Exception rethrown from prepareSend(): $e\n$s", + level: LogLevel.Warning); + } + + PendingWowneroTransaction pendingWowneroTransaction = + await (awaitPendingTransaction!) as PendingWowneroTransaction; + int realfee = (Decimal.parse(pendingWowneroTransaction.feeFormatted) * + 100000000.toDecimal()) + .toBigInt() + .toInt(); + debugPrint("fee? $realfee"); + Map txData = { + "pendingWowneroTransaction": pendingWowneroTransaction, + "fee": realfee, + "addresss": toAddress, + "recipientAmt": satoshiAmount, + }; + + Logging.instance.log("prepare send: $txData", level: LogLevel.Info); + return txData; + } else { + throw ArgumentError("Invalid fee rate argument provided!"); + } + } catch (e, s) { + Logging.instance.log("Exception rethrown from prepare send(): $e\n$s", + level: LogLevel.Info); + + if (e.toString().contains("Incorrect unlocked balance")) { + throw Exception("Insufficient balance!"); + } else if (e is CreationTransactionException) { + throw Exception("Insufficient funds to pay for transaction fee!"); + } else { + throw Exception("Transaction failed with error code $e"); + } + } + } + + @override + Future estimateFeeFor(int satoshiAmount, int feeRate) async { + MoneroTransactionPriority? priority; + switch (feeRate) { + case 1: + priority = MoneroTransactionPriority.regular; + break; + case 2: + priority = MoneroTransactionPriority.medium; + break; + case 3: + priority = MoneroTransactionPriority.fast; + break; + case 4: + priority = MoneroTransactionPriority.fastest; + break; + case 0: + default: + priority = MoneroTransactionPriority.slow; + break; + } + final fee = + (walletBase?.calculateEstimatedFee(priority, satoshiAmount) ?? 0) ~/ + 10000; + return fee; + } + + @override + Future generateNewAddress() async { + try { + const String indexKey = "receivingIndex"; + // First increment the receiving index + await _incrementAddressIndexForChain(0); + final newReceivingIndex = + DB.instance.get(boxName: walletId, key: indexKey) as int; + + // Use new index to derive a new receiving address + final newReceivingAddress = + await _generateAddressForChain(0, newReceivingIndex); + + // Add that new receiving address to the array of receiving addresses + await _addToAddressesArrayForChain(newReceivingAddress, 0); + + // Set the new receiving address that the service + + _currentReceivingAddress = Future(() => newReceivingAddress); + + return true; + } catch (e, s) { + Logging.instance.log( + "Exception rethrown from generateNewAddress(): $e\n$s", + level: LogLevel.Error); + return false; + } + } +} diff --git a/lib/utilities/address_utils.dart b/lib/utilities/address_utils.dart index 805dc64db..e995e16f6 100644 --- a/lib/utilities/address_utils.dart +++ b/lib/utilities/address_utils.dart @@ -49,6 +49,9 @@ class AddressUtils { case Coin.monero: return RegExp("[a-zA-Z0-9]{95}").hasMatch(address) || RegExp("[a-zA-Z0-9]{106}").hasMatch(address); + case Coin.wownero: + return RegExp("[a-zA-Z0-9]{95}").hasMatch(address) || + RegExp("[a-zA-Z0-9]{106}").hasMatch(address); case Coin.bitcoinTestNet: return Address.validateAddress(address, testnet); case Coin.firoTestNet: diff --git a/lib/utilities/assets.dart b/lib/utilities/assets.dart index 72ceac3ca..fb403b58b 100644 --- a/lib/utilities/assets.dart +++ b/lib/utilities/assets.dart @@ -109,6 +109,7 @@ class _SVG { String get epicCash => "assets/svg/coin_icons/EpicCash.svg"; String get firo => "assets/svg/coin_icons/Firo.svg"; String get monero => "assets/svg/coin_icons/Monero.svg"; + String get wownero => "assets/svg/coin_icons/Wownero.svg"; // TODO provide proper assets String get bitcoinTestnet => "assets/svg/coin_icons/Bitcoin.svg"; @@ -127,6 +128,8 @@ class _SVG { return firo; case Coin.monero: return monero; + case Coin.wownero: + return wownero; case Coin.bitcoinTestNet: return bitcoinTestnet; case Coin.firoTestNet: @@ -144,6 +147,7 @@ class _PNG { String get splash => "assets/images/splash.png"; String get monero => "assets/images/monero.png"; + String get wownero => "assets/images/wownero.png"; String get firo => "assets/images/firo.png"; String get dogecoin => "assets/images/doge.png"; String get bitcoin => "assets/images/bitcoin.png"; @@ -164,6 +168,8 @@ class _PNG { return firo; case Coin.monero: return monero; + case Coin.wownero: + return wownero; } } } diff --git a/lib/utilities/block_explorers.dart b/lib/utilities/block_explorers.dart index a9b3d5db5..5b544877f 100644 --- a/lib/utilities/block_explorers.dart +++ b/lib/utilities/block_explorers.dart @@ -18,6 +18,8 @@ Uri getBlockExplorerTransactionUrlFor({ throw UnimplementedError("missing block explorer for epic cash"); case Coin.monero: return Uri.parse("https://xmrchain.net/tx/$txid"); + case Coin.wownero: + return Uri.parse("https://explore.wownero.com/search?value=$txid"); case Coin.firo: return Uri.parse("https://explorer.firo.org/tx/$txid"); case Coin.firoTestNet: diff --git a/lib/utilities/cfcolors.dart b/lib/utilities/cfcolors.dart index 741ca1230..43fb34f93 100644 --- a/lib/utilities/cfcolors.dart +++ b/lib/utilities/cfcolors.dart @@ -10,6 +10,7 @@ class _CoinThemeColor { Color get dogecoin => const Color(0xFFFFE079); Color get epicCash => const Color(0xFFC5C7CB); Color get monero => const Color(0xFFFF9E6B); + Color get wownero => const Color(0xFFFF9E6B); Color forCoin(Coin coin) { switch (coin) { @@ -26,6 +27,8 @@ class _CoinThemeColor { return firo; case Coin.monero: return monero; + case Coin.wownero: + return wownero; } } } diff --git a/lib/utilities/constants.dart b/lib/utilities/constants.dart index 3b82cde40..8e4e231df 100644 --- a/lib/utilities/constants.dart +++ b/lib/utilities/constants.dart @@ -51,6 +51,9 @@ abstract class Constants { case Coin.monero: values.addAll([25]); break; + case Coin.wownero: + values.addAll([14]); + break; } return values; } @@ -75,6 +78,9 @@ abstract class Constants { case Coin.monero: return 120; + + case Coin.wownero: + return 120; } } diff --git a/lib/utilities/default_nodes.dart b/lib/utilities/default_nodes.dart index d2e042439..db9ffc1b9 100644 --- a/lib/utilities/default_nodes.dart +++ b/lib/utilities/default_nodes.dart @@ -68,6 +68,20 @@ abstract class DefaultNodes { isDown: false, ); + // TODO: eventually enable ssl and set scheme to https + // currently get certificate failure + static NodeModel get wownero => NodeModel( + host: "eu-west-2.wow.xmr.pm", + port: 34568, + name: defaultName, + id: _nodeId(Coin.wownero), + useSSL: false, + enabled: true, + coinName: Coin.wownero.name, + isFailover: true, + isDown: false, + ); + static NodeModel get epicCash => NodeModel( host: "http://epiccash.stackwallet.com", port: 3413, @@ -133,6 +147,9 @@ abstract class DefaultNodes { case Coin.monero: return monero; + case Coin.wownero: + return wownero; + case Coin.bitcoinTestNet: return bitcoinTestnet; diff --git a/lib/utilities/enums/coin_enum.dart b/lib/utilities/enums/coin_enum.dart index 9e489dde4..0f14dfc23 100644 --- a/lib/utilities/enums/coin_enum.dart +++ b/lib/utilities/enums/coin_enum.dart @@ -5,6 +5,7 @@ import 'package:stackwallet/services/coins/epiccash/epiccash_wallet.dart' as epic; import 'package:stackwallet/services/coins/firo/firo_wallet.dart' as firo; import 'package:stackwallet/services/coins/monero/monero_wallet.dart' as xmr; +import 'package:stackwallet/services/coins/wownero/wownero_wallet.dart' as wow; enum Coin { bitcoin, @@ -12,6 +13,7 @@ enum Coin { epicCash, firo, monero, + wownero, /// /// @@ -38,6 +40,8 @@ extension CoinExt on Coin { return "Firo"; case Coin.monero: return "Monero"; + case Coin.wownero: + return "Wownero"; case Coin.bitcoinTestNet: return "tBitcoin"; case Coin.firoTestNet: @@ -59,6 +63,8 @@ extension CoinExt on Coin { return "FIRO"; case Coin.monero: return "XMR"; + case Coin.wownero: + return "WOW"; case Coin.bitcoinTestNet: return "tBTC"; case Coin.firoTestNet: @@ -81,6 +87,8 @@ extension CoinExt on Coin { return "firo"; case Coin.monero: return "monero"; + case Coin.wownero: + return "wownero"; case Coin.bitcoinTestNet: return "bitcoin"; case Coin.firoTestNet: @@ -102,6 +110,7 @@ extension CoinExt on Coin { case Coin.epicCash: case Coin.monero: + case Coin.wownero: return false; } } @@ -125,6 +134,9 @@ extension CoinExt on Coin { case Coin.monero: return xmr.MINIMUM_CONFIRMATIONS; + + case Coin.wownero: + return wow.MINIMUM_CONFIRMATIONS; } } } diff --git a/pubspec.yaml b/pubspec.yaml index 0150e5728..01bb07a5a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,6 +31,9 @@ dependencies: cw_monero: path: ./crypto_plugins/flutter_libmonero/cw_monero + cw_wownero: + path: ./crypto_plugins/flutter_libmonero/cw_wownero + cw_core: path: ./crypto_plugins/flutter_libmonero/cw_core @@ -177,6 +180,7 @@ flutter: - assets/svg/clipboard.svg - assets/images/stack.png - assets/images/monero.png + - assets/images/wownero.png - assets/images/firo.png - assets/images/doge.png - assets/images/bitcoin.png @@ -265,6 +269,7 @@ flutter: - assets/svg/coin_icons/EpicCash.svg - assets/svg/coin_icons/Firo.svg - assets/svg/coin_icons/Monero.svg + - assets/svg/coin_icons/Wownero.svg # lottie animations - assets/lottie/test.json - assets/lottie/test2.json From 88653f96df9e42deac08a913055a008d23279266 Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 27 Sep 2022 10:27:51 -0600 Subject: [PATCH 03/10] missing wow enum and price values --- lib/services/price.dart | 2 +- lib/utilities/enums/coin_enum.dart | 8 +++++++- lib/utilities/theme/color_theme.dart | 4 ++-- lib/utilities/theme/stack_colors.dart | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/services/price.dart b/lib/services/price.dart index c79be324f..d157580ad 100644 --- a/lib/services/price.dart +++ b/lib/services/price.dart @@ -79,7 +79,7 @@ class PriceAPI { Map> result = {}; try { final uri = Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency=${baseCurrency.toLowerCase()}&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"); + "https://api.coingecko.com/api/v3/coins/markets?vs_currency=${baseCurrency.toLowerCase()}&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin,wownero&order=market_cap_desc&per_page=10&page=1&sparkline=false"); // final uri = Uri.parse( // "https://api.coingecko.com/api/v3/coins/markets?vs_currency=${baseCurrency.toLowerCase()}&ids=monero%2Cbitcoin%2Cepic-cash%2Czcoin%2Cdogecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"); diff --git a/lib/utilities/enums/coin_enum.dart b/lib/utilities/enums/coin_enum.dart index 92a6a775f..78a04e220 100644 --- a/lib/utilities/enums/coin_enum.dart +++ b/lib/utilities/enums/coin_enum.dart @@ -7,9 +7,9 @@ import 'package:stackwallet/services/coins/epiccash/epiccash_wallet.dart' as epic; import 'package:stackwallet/services/coins/firo/firo_wallet.dart' as firo; import 'package:stackwallet/services/coins/monero/monero_wallet.dart' as xmr; -import 'package:stackwallet/services/coins/wownero/wownero_wallet.dart' as wow; import 'package:stackwallet/services/coins/namecoin/namecoin_wallet.dart' as nmc; +import 'package:stackwallet/services/coins/wownero/wownero_wallet.dart' as wow; enum Coin { bitcoin, @@ -217,6 +217,10 @@ Coin coinFromPrettyName(String name) { case "tDogecoin": case "dogecoinTestNet": return Coin.dogecoinTestNet; + case "Wownero": + case "tWownero": + case "wownero": + return Coin.wownero; default: throw ArgumentError.value( name, "name", "No Coin enum value with that prettyName"); @@ -247,6 +251,8 @@ Coin coinFromTickerCaseInsensitive(String ticker) { return Coin.firoTestNet; case "tdoge": return Coin.dogecoinTestNet; + case "wow": + return Coin.wownero; default: throw ArgumentError.value( ticker, "name", "No Coin enum value with that ticker"); diff --git a/lib/utilities/theme/color_theme.dart b/lib/utilities/theme/color_theme.dart index 9ab9aa293..361d922dc 100644 --- a/lib/utilities/theme/color_theme.dart +++ b/lib/utilities/theme/color_theme.dart @@ -209,8 +209,8 @@ class CoinThemeColor { return monero; case Coin.namecoin: return namecoin; - // case Coin.wownero: - // return wownero; + case Coin.wownero: + return wownero; } } } diff --git a/lib/utilities/theme/stack_colors.dart b/lib/utilities/theme/stack_colors.dart index 852bc7d6b..c6ee28892 100644 --- a/lib/utilities/theme/stack_colors.dart +++ b/lib/utilities/theme/stack_colors.dart @@ -1422,8 +1422,8 @@ class StackColors extends ThemeExtension { return _coin.monero; case Coin.namecoin: return _coin.namecoin; - // case Coin.wownero: - // return wownero; + case Coin.wownero: + return _coin.wownero; } } From edc9c11c95430ed63dd046907b6c07bebfa05405 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 28 Sep 2022 09:12:25 -0600 Subject: [PATCH 04/10] wownero coin icon --- assets/svg/coin_icons/Wownero.svg | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/assets/svg/coin_icons/Wownero.svg b/assets/svg/coin_icons/Wownero.svg index d1b70188e..f7a90e94c 100644 --- a/assets/svg/coin_icons/Wownero.svg +++ b/assets/svg/coin_icons/Wownero.svg @@ -1,5 +1,7 @@ - - - + + + + + From 7b3b7554b09c9bab42a1e0cf21d74fa25608b474 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 28 Sep 2022 09:17:16 -0600 Subject: [PATCH 05/10] wownero node and ui fixes --- lib/pages/exchange_view/send_from_view.dart | 7 +++++-- .../manage_nodes_views/add_edit_node_view.dart | 18 ++++++++++++++---- .../manage_nodes_views/node_details_view.dart | 1 + .../wallet_network_settings_view.dart | 13 ++++++++++++- .../transaction_details_view.dart | 12 ++++++------ .../transaction_search_filter_view.dart | 2 +- lib/services/wallets.dart | 4 ++-- lib/utilities/default_nodes.dart | 3 ++- lib/widgets/node_options_sheet.dart | 1 + lib/widgets/transaction_card.dart | 4 ++-- 10 files changed, 46 insertions(+), 19 deletions(-) diff --git a/lib/pages/exchange_view/send_from_view.dart b/lib/pages/exchange_view/send_from_view.dart index e677ab5c0..7528dacc8 100644 --- a/lib/pages/exchange_view/send_from_view.dart +++ b/lib/pages/exchange_view/send_from_view.dart @@ -85,7 +85,7 @@ class _SendFromViewState extends ConsumerState { height: 8, ), Text( - "You need to send ${amount.toStringAsFixed(coin == Coin.monero ? 12 : 8)} ${coin.ticker}", + "You need to send ${amount.toStringAsFixed(coin == Coin.monero || coin == Coin.wownero ? 12 : 8)} ${coin.ticker}", style: STextStyles.itemSubtitle(context), ), const SizedBox( @@ -307,7 +307,10 @@ class _SendFromCardState extends ConsumerState { "${Format.localizedStringAsFixed( value: snapshot.data!, locale: locale, - decimalPlaces: coin == Coin.monero ? 12 : 8, + decimalPlaces: + coin == Coin.monero || coin == Coin.wownero + ? 12 + : 8, )} ${coin.ticker}", style: STextStyles.itemSubtitle(context), ); diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index e71e3520d..143b1e84d 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -90,6 +90,7 @@ class _AddEditNodeViewState extends ConsumerState { break; case Coin.monero: + case Coin.wownero: try { final uri = Uri.parse(formData.host!); if (uri.scheme.startsWith("http")) { @@ -384,6 +385,7 @@ class _AddEditNodeViewState extends ConsumerState { // strip unused path String address = formData.host!; if (coin == Coin.monero || + coin == Coin.wownero || coin == Coin.epicCash) { if (address.startsWith("http")) { final uri = Uri.parse(address); @@ -700,7 +702,9 @@ class _NodeFormState extends ConsumerState { focusNode: _hostFocusNode, style: STextStyles.field(context), decoration: standardInputDecoration( - (widget.coin != Coin.monero && widget.coin != Coin.epicCash) + (widget.coin != Coin.monero && + widget.coin != Coin.wownero && + widget.coin != Coin.epicCash) ? "IP address" : "Url", _hostFocusNode, @@ -881,7 +885,9 @@ class _NodeFormState extends ConsumerState { const SizedBox( height: 8, ), - if (widget.coin != Coin.monero && widget.coin != Coin.epicCash) + if (widget.coin != Coin.monero && + widget.coin != Coin.wownero && + widget.coin != Coin.epicCash) Row( children: [ GestureDetector( @@ -932,11 +938,15 @@ class _NodeFormState extends ConsumerState { ), ], ), - if (widget.coin != Coin.monero && widget.coin != Coin.epicCash) + if (widget.coin != Coin.monero && + widget.coin != Coin.wownero && + widget.coin != Coin.epicCash) const SizedBox( height: 8, ), - if (widget.coin != Coin.monero && widget.coin != Coin.epicCash) + if (widget.coin != Coin.monero && + widget.coin != Coin.wownero && + widget.coin != Coin.epicCash) Row( children: [ GestureDetector( diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart index 340bd859b..8baddb700 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/node_details_view.dart @@ -81,6 +81,7 @@ class _NodeDetailsViewState extends ConsumerState { break; case Coin.monero: + case Coin.wownero: try { final uri = Uri.parse(node!.host); if (uri.scheme.startsWith("http")) { diff --git a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart index 892cd13d8..c4045dc9b 100644 --- a/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart +++ b/lib/pages/settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart @@ -12,6 +12,7 @@ import 'package:stackwallet/pages/settings_views/wallet_settings_view/wallet_net import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/services/coins/epiccash/epiccash_wallet.dart'; import 'package:stackwallet/services/coins/monero/monero_wallet.dart'; +import 'package:stackwallet/services/coins/wownero/wownero_wallet.dart'; import 'package:stackwallet/services/event_bus/events/global/blocks_remaining_event.dart'; import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart'; @@ -205,7 +206,7 @@ class _WalletNetworkSettingsViewState .getManager(widget.walletId) .coin; - if (coin == Coin.monero || coin == Coin.epicCash) { + if (coin == Coin.monero || coin == Coin.wownero || coin == Coin.epicCash) { _blocksRemainingSubscription = eventBus.on().listen( (event) async { if (event.walletId == widget.walletId) { @@ -271,6 +272,15 @@ class _WalletNetworkSettingsViewState if (_percent < highestPercent) { _percent = highestPercent.clamp(0.0, 1.0); } + } else if (coin == Coin.wownero) { + double highestPercent = (ref + .read(walletsChangeNotifierProvider) + .getManager(widget.walletId) + .wallet as WowneroWallet) + .highestPercentCached; + if (_percent < highestPercent) { + _percent = highestPercent.clamp(0.0, 1.0); + } } else if (coin == Coin.epicCash) { double highestPercent = (ref .read(walletsChangeNotifierProvider) @@ -545,6 +555,7 @@ class _WalletNetworkSettingsViewState ), ), if (coin == Coin.monero || + coin == Coin.wownero || coin == Coin.epicCash) Text( " (Blocks to go: ${_blocksRemaining == -1 ? "?" : _blocksRemaining})", diff --git a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart index 391b5caec..f68a72c3c 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_details_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_details_view.dart @@ -239,7 +239,7 @@ class _TransactionDetailsViewState children: [ SelectableText( "$amountPrefix${Format.localizedStringAsFixed( - value: coin == Coin.monero + value: coin == Coin.monero || coin == Coin.wownero ? (amount / 10000.toDecimal()).toDecimal() : amount, locale: ref.watch( @@ -254,7 +254,7 @@ class _TransactionDetailsViewState height: 2, ), SelectableText( - "${Format.localizedStringAsFixed(value: (coin == Coin.monero ? (amount / 10000.toDecimal()).toDecimal() : amount) * ref.watch(priceAnd24hChangeNotifierProvider.select((value) => value.getPrice(coin).item1)), locale: ref.watch( + "${Format.localizedStringAsFixed(value: (coin == Coin.monero || coin == Coin.wownero ? (amount / 10000.toDecimal()).toDecimal() : amount) * ref.watch(priceAnd24hChangeNotifierProvider.select((value) => value.getPrice(coin).item1)), locale: ref.watch( localeServiceChangeNotifierProvider .select((value) => value.locale), ), decimalPlaces: 2)} ${ref.watch( @@ -298,14 +298,14 @@ class _TransactionDetailsViewState ], ), ), - if (!(coin == Coin.monero && + if (!((coin == Coin.monero || coin == Coin.wownero) && _transaction.txType.toLowerCase() == "sent") && !((coin == Coin.firo || coin == Coin.firoTestNet) && _transaction.subType == "mint")) const SizedBox( height: 12, ), - if (!(coin == Coin.monero && + if (!((coin == Coin.monero || coin == Coin.wownero) && _transaction.txType.toLowerCase() == "sent") && !((coin == Coin.firo || coin == Coin.firoTestNet) && _transaction.subType == "mint")) @@ -462,7 +462,7 @@ class _TransactionDetailsViewState showFeePending ? _transaction.confirmedStatus ? Format.localizedStringAsFixed( - value: coin == Coin.monero + value: coin == Coin.monero || coin == Coin.wownero ? (fee / 10000.toDecimal()).toDecimal() : fee, locale: ref.watch( @@ -471,7 +471,7 @@ class _TransactionDetailsViewState decimalPlaces: Constants.decimalPlaces) : "Pending" : Format.localizedStringAsFixed( - value: coin == Coin.monero + value: coin == Coin.monero || coin == Coin.wownero ? (fee / 10000.toDecimal()).toDecimal() : fee, locale: ref.watch( diff --git a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart index 728706702..028c04416 100644 --- a/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart +++ b/lib/pages/wallet_view/transaction_views/transaction_search_filter_view.dart @@ -750,7 +750,7 @@ class _TransactionSearchViewState } int? amount; if (amountDecimal != null) { - if (widget.coin == Coin.monero) { + if (widget.coin == Coin.monero || widget.coin == Coin.wownero) { amount = (amountDecimal * Decimal.fromInt(Constants.satsPerCoinMonero)) .floor() .toBigInt() diff --git a/lib/services/wallets.dart b/lib/services/wallets.dart index 034db9308..db3011d4e 100644 --- a/lib/services/wallets.dart +++ b/lib/services/wallets.dart @@ -223,7 +223,7 @@ class Wallets extends ChangeNotifier { final shouldSetAutoSync = shouldAutoSyncAll || walletIdsToEnableAutoSync.contains(manager.walletId); - if (manager.coin == Coin.monero) { + if (manager.coin == Coin.monero || manager.coin == Coin.wownero) { walletsToInitLinearly.add(Tuple2(manager, shouldSetAutoSync)); } else { walletInitFutures.add(manager.initializeExisting().then((value) { @@ -312,7 +312,7 @@ class Wallets extends ChangeNotifier { final shouldSetAutoSync = shouldAutoSyncAll || walletIdsToEnableAutoSync.contains(manager.walletId); - if (manager.coin == Coin.monero) { + if (manager.coin == Coin.monero || manager.coin == Coin.wownero) { walletsToInitLinearly.add(Tuple2(manager, shouldSetAutoSync)); } else { walletInitFutures.add(manager.initializeExisting().then((value) { diff --git a/lib/utilities/default_nodes.dart b/lib/utilities/default_nodes.dart index 4b09f92b8..2ffd6f307 100644 --- a/lib/utilities/default_nodes.dart +++ b/lib/utilities/default_nodes.dart @@ -15,6 +15,7 @@ abstract class DefaultNodes { epicCash, bitcoincash, namecoin, + wownero, bitcoinTestnet, bitcoincashTestnet, dogecoinTestnet, @@ -86,7 +87,7 @@ abstract class DefaultNodes { // TODO: eventually enable ssl and set scheme to https // currently get certificate failure static NodeModel get wownero => NodeModel( - host: "eu-west-2.wow.xmr.pm", + host: "http://eu-west-2.wow.xmr.pm", port: 34568, name: defaultName, id: _nodeId(Coin.wownero), diff --git a/lib/widgets/node_options_sheet.dart b/lib/widgets/node_options_sheet.dart index 02570b76c..58a5bf30a 100644 --- a/lib/widgets/node_options_sheet.dart +++ b/lib/widgets/node_options_sheet.dart @@ -85,6 +85,7 @@ class NodeOptionsSheet extends ConsumerWidget { break; case Coin.monero: + case Coin.wownero: try { final uri = Uri.parse(node.host); if (uri.scheme.startsWith("http")) { diff --git a/lib/widgets/transaction_card.dart b/lib/widgets/transaction_card.dart index 4a8da2357..468e96dc9 100644 --- a/lib/widgets/transaction_card.dart +++ b/lib/widgets/transaction_card.dart @@ -170,7 +170,7 @@ class _TransactionCardState extends ConsumerState { fit: BoxFit.scaleDown, child: Builder( builder: (_) { - final amount = coin == Coin.monero + final amount = coin == Coin.monero || coin == Coin.wownero ? (_transaction.amount ~/ 10000) : _transaction.amount; return Text( @@ -210,7 +210,7 @@ class _TransactionCardState extends ConsumerState { builder: (_) { // TODO: modify Format. to take optional Coin parameter so this type oif check isn't done in ui int value = _transaction.amount; - if (coin == Coin.monero) { + if (coin == Coin.monero || coin == Coin.wownero) { value = (value ~/ 10000); } From e8de5e3b10d461cd4f641ec2dfd3ac14f1a3b1de Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 28 Sep 2022 09:17:37 -0600 Subject: [PATCH 06/10] flutter_libmonero update for wow fixes --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index cb682fab0..c330f25ef 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit cb682fab04e215971abe3d0aeb8bb0f6fc28e7d0 +Subproject commit c330f25ef6854477eb113b95c48d9b5e0cc09f3f From 80a7b3de8a503691caac1dd85120e961144eeb29 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 28 Sep 2022 09:46:46 -0600 Subject: [PATCH 07/10] confirms null check --- lib/services/coins/wownero/wownero_wallet.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/services/coins/wownero/wownero_wallet.dart b/lib/services/coins/wownero/wownero_wallet.dart index cbc37d147..857b89031 100644 --- a/lib/services/coins/wownero/wownero_wallet.dart +++ b/lib/services/coins/wownero/wownero_wallet.dart @@ -13,17 +13,17 @@ import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_wownero/api/exceptions/creation_transaction_exception.dart'; import 'package:cw_wownero/api/wallet.dart'; +import 'package:cw_wownero/pending_wownero_transaction.dart'; import 'package:cw_wownero/wownero_amount_format.dart'; import 'package:cw_wownero/wownero_wallet.dart'; -import 'package:cw_wownero/pending_wownero_transaction.dart'; import 'package:dart_numerics/dart_numerics.dart'; import 'package:decimal/decimal.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_libmonero/core/key_service.dart'; import 'package:flutter_libmonero/core/wallet_creation_service.dart'; -import 'package:flutter_libmonero/wownero/wownero.dart'; import 'package:flutter_libmonero/view_model/send/output.dart' as wownero_output; +import 'package:flutter_libmonero/wownero/wownero.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:http/http.dart'; import 'package:mutex/mutex.dart'; @@ -1249,6 +1249,7 @@ class WowneroWallet extends CoinServiceAPI { // // create final tx map midSortedTx["txid"] = tx.value.id; midSortedTx["confirmed_status"] = !tx.value.isPending && + tx.value.confirmations != null && tx.value.confirmations! >= MINIMUM_CONFIRMATIONS; midSortedTx["confirmations"] = tx.value.confirmations ?? 0; midSortedTx["timestamp"] = From 3ecd7fdce7bc2e91cfd290f018c9a8ff9662e977 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 28 Sep 2022 10:16:54 -0600 Subject: [PATCH 08/10] confirmations fix --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index c330f25ef..66c311b9c 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit c330f25ef6854477eb113b95c48d9b5e0cc09f3f +Subproject commit 66c311b9c9799d3d81e2297a9982797603ee989f From 1f56c73591c1577f05cb122a8e1a4b4e3958f277 Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Wed, 28 Sep 2022 11:15:24 -0600 Subject: [PATCH 09/10] change build --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 7baac7012..92a51d7d6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: Stack Wallet # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.4.50+65 +version: 1.4.51+67 environment: sdk: ">=2.17.0 <3.0.0" From 145c03a80bee4c1f6c4d549c3da5f111060ab7e4 Mon Sep 17 00:00:00 2001 From: julian Date: Wed, 28 Sep 2022 11:33:45 -0600 Subject: [PATCH 10/10] update price tests to include wownero --- test/price_test.dart | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/price_test.dart b/test/price_test.dart index ac1110df5..b806bfd61 100644 --- a/test/price_test.dart +++ b/test/price_test.dart @@ -23,7 +23,7 @@ void main() { when(client.get( Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"), + "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin,wownero&order=market_cap_desc&per_page=10&page=1&sparkline=false"), headers: { 'Content-Type': 'application/json' })).thenAnswer((_) async => Response( @@ -36,10 +36,10 @@ void main() { final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc"); expect(price.toString(), - '{Coin.bitcoin: [1, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0.00000315, -2.68533], Coin.epicCash: [0.00002803, 7.27524], Coin.firo: [0.0001096, -0.89304], Coin.monero: [0.00717236, -0.77656], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); + '{Coin.bitcoin: [1, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0.00000315, -2.68533], Coin.epicCash: [0.00002803, 7.27524], Coin.firo: [0.0001096, -0.89304], Coin.monero: [0.00717236, -0.77656], Coin.wownero: [0, 0.0], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); verify(client.get( Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"), + "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin,wownero&order=market_cap_desc&per_page=10&page=1&sparkline=false"), headers: {'Content-Type': 'application/json'})).called(1); verifyNoMoreInteractions(client); @@ -50,7 +50,7 @@ void main() { when(client.get( Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"), + "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin,wownero&order=market_cap_desc&per_page=10&page=1&sparkline=false"), headers: { 'Content-Type': 'application/json' })).thenAnswer((_) async => Response( @@ -68,12 +68,12 @@ void main() { await priceAPI.getPricesAnd24hChange(baseCurrency: "btc"); expect(cachedPrice.toString(), - '{Coin.bitcoin: [1, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0.00000315, -2.68533], Coin.epicCash: [0.00002803, 7.27524], Coin.firo: [0.0001096, -0.89304], Coin.monero: [0.00717236, -0.77656], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); + '{Coin.bitcoin: [1, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0.00000315, -2.68533], Coin.epicCash: [0.00002803, 7.27524], Coin.firo: [0.0001096, -0.89304], Coin.monero: [0.00717236, -0.77656], Coin.wownero: [0, 0.0], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); // verify only called once during filling of cache verify(client.get( Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"), + "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin,wownero&order=market_cap_desc&per_page=10&page=1&sparkline=false"), headers: {'Content-Type': 'application/json'})).called(1); verifyNoMoreInteractions(client); @@ -84,7 +84,7 @@ void main() { when(client.get( Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"), + "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin,wownero&order=market_cap_desc&per_page=10&page=1&sparkline=false"), headers: { 'Content-Type': 'application/json' })).thenAnswer((_) async => Response( @@ -97,7 +97,7 @@ void main() { final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc"); expect(price.toString(), - '{Coin.bitcoin: [0, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0, 0.0], Coin.epicCash: [0, 0.0], Coin.firo: [0, 0.0], Coin.monero: [0, 0.0], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); + '{Coin.bitcoin: [0, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0, 0.0], Coin.epicCash: [0, 0.0], Coin.firo: [0, 0.0], Coin.monero: [0, 0.0], Coin.wownero: [0, 0.0], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); }); test("no internet available", () async { @@ -105,7 +105,7 @@ void main() { when(client.get( Uri.parse( - "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin&order=market_cap_desc&per_page=10&page=1&sparkline=false"), + "https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=monero,bitcoin,epic-cash,zcoin,dogecoin,bitcoin-cash,namecoin,wownero&order=market_cap_desc&per_page=10&page=1&sparkline=false"), headers: { 'Content-Type': 'application/json' })).thenThrow(const SocketException( @@ -117,7 +117,7 @@ void main() { final price = await priceAPI.getPricesAnd24hChange(baseCurrency: "btc"); expect(price.toString(), - '{Coin.bitcoin: [0, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0, 0.0], Coin.epicCash: [0, 0.0], Coin.firo: [0, 0.0], Coin.monero: [0, 0.0], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); + '{Coin.bitcoin: [0, 0.0], Coin.bitcoincash: [0, 0.0], Coin.dogecoin: [0, 0.0], Coin.epicCash: [0, 0.0], Coin.firo: [0, 0.0], Coin.monero: [0, 0.0], Coin.wownero: [0, 0.0], Coin.namecoin: [0, 0.0], Coin.bitcoinTestNet: [0, 0.0], Coin.bitcoincashTestnet: [0, 0.0], Coin.dogecoinTestNet: [0, 0.0], Coin.firoTestNet: [0, 0.0]}'); }); tearDown(() async {